An open API service indexing awesome lists of open source software.

https://github.com/insanum/reminders

Notification Reminders
https://github.com/insanum/reminders

Last synced: 5 months ago
JSON representation

Notification Reminders

Awesome Lists containing this project

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:

```
/

[/|/] : - Date @
[/|/] : - Date @
[/|/] - Date @
[/|/] - Date @ 8:00am

: - @

: - 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.