- Go 99.2%
- Dockerfile 0.8%
|
|
||
|---|---|---|
| .forgejo | ||
| cmd/xmpp-reminderbot | ||
| internal | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| README.md | ||
| sample.config.yaml | ||
XMPP Reminder Bot
An XMPP bot to remind you about things! Adapted from matrix-reminder-bot.
Features
- Set one-time or recurring reminders in MUC rooms or direct messages
- Cron-tab syntax support for complex schedules
- Alarms that repeat every 5 minutes until silenced
- SQLite database for persistence
- Allowlist/blocklist for access control
Installation
Docker (recommended)
cp sample.config.yaml data/config.yaml
# edit data/config.yaml
docker compose up -d
From source
Requires Go 1.22+.
go build -o xmpp-reminderbot ./cmd/xmpp-reminderbot
Configuration
Copy sample.config.yaml to config.yaml and fill in your XMPP account details:
xmpp:
jid: "bot@example.com"
password: "yourpassword"
server: "example.com" # optional, uses SRV lookup if omitted
port: 5222 # optional
storage:
database: "bot.db"
Usage
./xmpp-reminderbot config.yaml
Commands
All commands use the configured prefix (default: !).
Reminders
-
!remindme|remind|r [every <recurring time>;] <start time>; <reminder text>
Set a personal reminder. -
!remindroom|rr [every <recurring time>;] <start time>; <reminder text>
Set a room reminder. -
!listreminders|list|lr|l
List active reminders. -
!cancelreminder|cancel|cr|c <reminder text or #id>
Cancel a reminder, by its text or by the#idshown in the list.
Alarms
-
!alarmme|alarm|a [every <recurring time>;] <start time>; <reminder text>
Set a personal alarm. -
!alarmroom|ar [every <recurring time>;] <start time>; <reminder text>
Set a room alarm. -
!silence|s [<reminder text>]
Silence a firing alarm.
Cron Syntax
!remindme|remind|r cron <min> <hour> <day of month> <month> <day of week>; <reminder text>
Set a cron-based reminder.
License
Apache License 2.0
