https://github.com/insanum/reminders
Notification Reminders
https://github.com/insanum/reminders
Last synced: 5 months ago
JSON representation
Notification Reminders
- Host: GitHub
- URL: https://github.com/insanum/reminders
- Owner: insanum
- License: mit
- Created: 2019-03-19T16:56:29.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-02-01T06:35:40.000Z (about 1 year ago)
- Last Synced: 2024-08-13T07:15:45.788Z (8 months ago)
- Language: Rust
- Homepage:
- Size: 58.6 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - insanum/reminders - Notification Reminders (Rust)
README
# Reminders
This is a simple application that parses a text file for reminder
strings and compares the reminder's specified date/time against the
current time. If they match then a notification is sent with the
reminder's text as the message. It is expected to be executed
periodically via a system tool like cron.Current notification channels are:
- print to stdout
- [Pushover](https://pushover.net)## Reminder Specification
A reminder string is specified as follows:
```
/remind
/rem
/r
```Additionally, markdown tasks can also be used:
```
- [ ] /remind
- [ ] /rem
- [ ] /r
```The `` format can be any of the following:
```
/
: - @
: - Every day @
: - Every day @
- Every day @
monthly - Every month on the 1st @ 8:00am
biweekly - Every other Monday @ 8:00am (even weeks)
weekly - Every Monday @ 8:00am
daily - Every day @ 8:00am
```
Example reminders:
```
/remind 4/29/2020 11:00am test with date and time
/remind 11am test with time
/remind tue 10:00pm test on tuesday
/remind weekly test weekly
```
## Installation
Requires [Rust](https://www.rust-lang.org/).
```
% git clone https://github.com/insanum/reminders
% cd reminders
% cargo install --path .
```
The application binary will be located at `$HOME/.cargo/bin/reminders`.
## Usage
```
% $HOME/.cargo/bin/reminders -h
Usage: reminders [options]
Options:
-c config file
-t time override ''
-p, --pushover send test message to pushover
-h, --help print this help menu
```
The `-c` option is required.
Use `-t` to override the current time that is checked against. This is
useful for testing.
## Configuration
The YAML configuration file can contain the following variables:
- `file: ` - The text file to parse looking for reminder strings.
If the file is prefixed with `http://` or `https://` then the file is
fetched via HTTP, else the file is read from local disk. If this variable
is missing then it's an error unless a `reminders:` variable exists.
- `http_auth: basic` - If present then Basic HTTP auth is performed when
fetching the text file.
- `http_username: ` - The user name to use for Basic HTTP auth.
- `http_password: ` - The password to use for Basic HTTP auth.
- `pushover_app_token: ` - The Pushover application token to
use when sending the notification to Pushover. If this variable is missing
then the notification is printed to stdout.
- `pushover_user_key: ` - The Pushover user key to use when
sending the notification to Pushover. If this variable is missing then
the notification is printed to stdout.
- `reminders: ` - Instead of specifying the `file:`, the
reminder strings can simply be placed in the config file. Note that
reminders found in both this variable and from `file:` are processed.
See `test.yaml` for an example.