Skip to content

MxMarx/reminder

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⏰ reminder-agenda bot

A maubot to remind you about things.

Basically matrix-reminder-bot and maubot/reminder smushed together. This project includes code taken from both repositories, credit goes to them!

example of interacting with the bot

Features

  • Set once-off reminders and recurring reminders
  • To-do lists
  • Parse natural language (e.g. every friday at 2pm) and crontab syntax
  • Remind just yourself or the whole room
  • Subscribe to other people's reminders
  • Lots of locales
  • Per-user rate limits
  • Maubot!

Setup

This bot requires python libraries that aren't included in the official maubot docker image.

Be sure to add them to the optional-requirements.txt file in maubot and build a new docker image with docker build --tag maubot-for-reminders . -f Dockerfile

This is pretty easy to use with the ansible deployment, just add this line to your vars.yml: matrix_bot_maubot_docker_image: maubot-for-reminders

Usage

Creating optionally recurring reminders:

!remind|remindme|r <date> <message> Adds a reminder

  • !remind 8 hours buy more pumpkins
  • !remind 2023-11-30 15:00 befriend rats
  • !remind abolish closed-access journals at 3pm tomorrow
  • July 2, tuesday at 2pm, 8pm, 20 days, 4d, 2wk, ...
  • Dates doesn't need to be at the beginning of the string, but parsing works better if they are.

!remind [room] [every] ...

  • [room] pings the whole room
  • [every] create recurring reminders !remind every friday 3pm take out the trash

!remind [room] <cron> <message> Schedules a reminder using a crontab syntax

  • !remind cron 30 9 * * mon-fri do something sets reminders for 9:30am, Monday through Friday.
  • !remind cron lists more examples

You can also reply to any message with !remind ... to get reminded about that message.
To get pinged by someone else's reminder, react to their message with 👍.

Creating agenda items

!agenda [room] <message> creates an agenda item. Agenda items are like reminders but don't have a time, for things like to-do lists.

Listing active reminders

!remind list [all] [my] [subscribed] lists all reminders in a room

  • all lists all reminders from every room
  • my lists only reminders you created
  • subscribed lists only reminders you are subscribed to

Deleting reminders

Cancel reminders by removing the message creating it, unsubscribe by removing your upvote.
Cancel recurring reminders by replying with !remind cancel|delete

  • !remind cancel|delete <ID> deletes a reminder matching the 4 letter ID shown by list
  • !remind cancel|delete <message> deletes a reminder beginning with
    • e.g. !remind delete buy more would delete the reminder buy more pumpkins

Rescheduling

Reminders can be rescheduled after they have fired by replying with !remind <new date>

Settings

Dates are parsed using your timezone and locale.

  • !remind tz|timezone [new-timezone] view or set your timezone
  • !remind locale [new-locale] view or set your locale

Cron Syntax

*	any value
,	value list separator
-	range of values
/	step 

┌─────── minute (0 - 59)
│ ┌─────── hour (0 - 23)
│ │ ┌─────── day of the month (1 - 31)
│ │ │ ┌─────── month (1 - 12)
│ │ │ │ ┌─────── weekday (0 - 6) (Sunday to Saturday)                             
│ │ │ │ │
* * * * * <message>
30 9 * * *              Every day at 9:30am
0/30 9-17 * * mon-fri   Every 30 minutes from 9am to 5pm, Monday through Friday
0 14 1,16 * *           2:00pm on the 1st and 16th day of the month
0 0 1-7 * mon           First Monday of the month at midnight

About

A maubot plugin to remind you about things.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%