
Security News
Browserslist-rs Gets Major Refactor, Cutting Binary Size by Over 1MB
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
A powerful CLI designed to help you schedule and organize reminders efficiently and effectively. Easily manage your To Do list, schedule one-time or recurring reminders, add notes, and view and manage upcoming reminders, all from the comfort of your terminal.
.md
file to a YAML file
RemindMail offers a variety of features to enhance your productivity:
zsh
or bash
python3
remindmail.yml
path and other important variables pip install remindmail
# adjust path accordingly
pip install -r requirements.md
cabinet --configure # see below for instructions
curl -s https://api.github.com/repos/tylerjwoodfin/remindmail/releases/latest \
| grep "browser_download_url" \
| cut -d '"' -f 4 \
| xargs curl -L -o remindmail.pex
sudo mv remindmail.pex /usr/local/bin/remind
remind -m cabinet --config
cabinet is installed as a dependency.
initialize using cabinet --configure
; see cabinet's README for details.
add the properties below using cabinet -e
:
{
"remindmail": {
"mongodb_enabled": true, # optional if using mongodb - default false
"path": {
"file": "/path/to/remindmail.yml"
}
},
"email": {
"from": "YourUniqueAndNonGmailEmailAddress",
"from_pw": "YourPassword",
"from_name": "Your Name",
"to": "RemindersSentToThisEmailAddress",
"smtp_server": "your domain's smtp server",
"imap_server": "your domain's imap server",
"port": 465
}
}
Gmail will not work due to their security restrictions.
it's very bad practice to store your password in plaintext; take appropriate precautions.
mongodb_enabled
is set to true
.~/.config/cabinet/config.json
- see https://www.github.com/tyjerwoodfin/cabinet for configuration instructions.type "crontab -e" in the terminal and add something like:
0 4 * * * remind --generate
(sends matching reminders at 4AM)0 4 * * * remind --later
(sends emails scheduled for later)your setup may require remind
to be replaced with something like:
0 4 * * * python3 /path/to/site-packages/remind/remind.py --generate
this function requires use of SMTP through Cabinet; please ensure you've configured this correctly.
remind
: Schedule a new reminder interactivelyremind --title 'reminder title' --when 'june 20'
: Schedule a new reminder programaticallyremind --title 'reminder title' --when '2024-06-20'
: Schedule a new reminder programaticallyremind --title 'reminder title' --when 'every 3 weeks'
: Schedule a new reminder programaticallyremind --title 'reminder title' --when 'friday'
: Schedule a new reminder programaticallyremind --title 'reminder title' --when friday --save
: Schedule a new reminder programatically, saves without confirmationremind --title 'reminder title' --when 'every 2 Mondays'
: Schedule a new reminder programaticallyremind --title 'reminder title' --when 'now'
: Sends an email immediatelyremind -h
(or --help
): Displays usage information.remind -g
(or --generate
): Generates all reminders scheduled for today.
--dry-run
to see what would be sent without actually sending anything.remind -g --file=/path/to/special/remindmail.yml
will use the specified file instead of the default.remind --later
: Emails reminders that are marked with [later]
remind --st
(or --show-tomorrow
): Lists reminders in remindmail.yml that target tomorrow's dateremind --sw
(or --show-week
): Lists reminders for the next 7 daysremind -e
(or --edit
): Opens remindmail.yml
in your configured editorremind --list-all
: Lists all reminders in remindmail.yml
. Useful for debugging.remind --find 'search text'
: Displays reminders containing the given text in title, date, or day fields.
remind --find laundry
, remind --find monday
remind --find 2025-04-24
, remind --find 04/24
cabinet --config
: Configures cabinet--save
is used, a confirmation will appear.j
and k
in VI Mode) to navigate.j
or k
to enter VI mode.j
and k
navigate up and down; h
and l
navigate left and right.i
to exit VI mode.q
to cancel the reminder.remindmail.yml
file is a YAML configuration file that contains your reminders.reminders
key.name
string
every
int
2
units of time).days
(unless unit
is specified).unit
string
(days
, weeks
, months
)every
. Only needed for non-day intervals.offset
int
every
) before the first occurrence.day
string
(mon
, tue
, ..., sun
)dom
int
(1ā31)date
string
(YYYY-MM-DD
or MM-DD
)later
bool
delete
bool
true
, the reminder should be deleted after it's triggered.notes
string
command
string
tags
Optional list of tags to categorize and filter reminders. Tags can be used to group related reminders and filter which reminders are sent when using the --generate
command.
Example:
reminders:
- name: "Weekly team meeting"
day: "mon"
tags: ["work", "meeting"]
notes: "Don't forget to prepare the agenda"
- name: "Grocery shopping"
every: 7
tags: ["personal", "shopping"]
notes: "Buy milk and eggs"
You can then filter reminders by tags when generating:
remindmail --generate --tags work,meeting # Only sends reminders with work or meeting tags
remindmail --generate --tags personal # Only sends reminders with personal tag
remindmail --generate # Sends all reminders (default behavior)
Tags can be specified by a string or list in the YAML file:
tags: "meeting"
or
tags: ["work", "meeting"]
Here are some examples of how your remindmail.yml file could look:
reminders:
- name: Workout and Stretch
day: mon,wed,fri
delete: false
- name: Try Cursor IDE
date: 2025-03-31
delete: true
notes: This will be <u>VERY</u> useful! <b>WOW</b>
- name: Laundry and Sheets
every: 6
offset: 5
delete: false
- name: Monthly Budget
unit: months
- name: Change Toothbrush Head
every: 3
unit: months
offset: 2
delete: false
- name: Try Umbrell OS
later: true
- name: Update Team Spreadsheet
day: wed
every: 2
offset: 1
- name: Homework File Count
day: fri
command: find ~/homework -maxdepth 1 -type f | wc -l
notes: This is how many files are in ~/homework.
ā ļø Comments and extraneous spacing will NOT be saved after reminders are generated.
FAQs
Easily schedule reminders to be emailed
We found that remindmail demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.Ā It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.
Security News
The official Go SDK for the Model Context Protocol is in development, with a stable, production-ready release expected by August 2025.