71 lines
1.6 KiB
Markdown
71 lines
1.6 KiB
Markdown
---
|
|
name: discord-reminder
|
|
description: Discord Reminder System - Schedule one-time reminders via natural language commands
|
|
emoji: 🔔
|
|
---
|
|
|
|
# Discord Reminder System
|
|
|
|
Schedule and manage reminders in Discord channels.
|
|
|
|
## Commands
|
|
|
|
### `/remind` - Add a reminder
|
|
Add a one-time reminder with natural language time.
|
|
|
|
**Time formats:**
|
|
- `20m`, `2h`, `1h30m` — Relative time from now
|
|
- `9am`, `2:30pm`, `15:00` — Today at that time (or tomorrow if past)
|
|
- `tomorrow 9am` — Tomorrow at time
|
|
- `tomorrow` — Tomorrow at same time
|
|
|
|
**Examples:**
|
|
```
|
|
/remind 20m Call John
|
|
/remind 2h Check email
|
|
/remind 9am Team standup
|
|
/remind tomorrow 9am Dentist appointment
|
|
```
|
|
|
|
### `/reminders` - List your reminders
|
|
Show all active upcoming reminders.
|
|
|
|
**Example:**
|
|
```
|
|
/reminders
|
|
```
|
|
|
|
Output:
|
|
```
|
|
#1: Call John - Feb 21 at 2:30 PM
|
|
#3: Dentist appointment - Mar 3 at 9:00 AM
|
|
```
|
|
|
|
### `/remind cancel <id>` - Cancel a reminder
|
|
Remove a reminder by its ID.
|
|
|
|
**Example:**
|
|
```
|
|
/remind cancel 2
|
|
```
|
|
|
|
## Implementation Notes
|
|
|
|
The reminder system uses:
|
|
1. **SQLite database** at `~/.openclaw/workspace/data/reminders.db`
|
|
2. **OpenClaw cron** for scheduling - when a reminder is added, a one-shot cron job is created
|
|
3. **Auto-cleanup** - old reminders are deleted after firing
|
|
|
|
## How It Works
|
|
|
|
1. User says: "remind me 20m to call John"
|
|
2. OpenClaw parses the natural language
|
|
3. Creates DB entry with user_id, channel_id, message, remind_at
|
|
4. Schedules OpenClaw cron job for that exact time
|
|
5. At trigger time, OpenClaw sends reminder message to channel
|
|
6. Reminder marked inactive in DB
|
|
|
|
## Timezone
|
|
|
|
All times are **America/Chicago** (Corey's timezone). The system handles DST automatically.
|