Source Code
Reminder (secretary)
A lightweight personal secretary for OpenClaw:
- Tell it events in natural language (Chinese/English).
- It extracts structured info and stores it in your workspace (so Git/
claw-roamcan sync across devices). - It schedules Telegram reminders using OpenClaw
cron.
What it does
- Capture events from chat (meetings / birthdays / deadlines)
- Store events in a workspace data file (easy to back up & sync via Git/
claw-roam) - Schedule Telegram reminders using OpenClaw
cron - Answer queries like âććčżćäťäšĺŽć/莥ĺďźâ
Data (separated from skill)
This skill contains no personal event data.
User data lives in the workspace at:
- Events file:
~/.openclaw/workspace/reminders/events.yml
Template (shipped with the skill):
skills/reminder/assets/events.template.yml
Config (env)
REMINDER_TZ(default:Asia/Shanghai)REMINDER_OFFSETS_MINUTES(default:1440,60,10for 24h/1h/10m)
Capture behavior
When user says something like:
- âĺ夊ä¸ĺ10çšć个äźâ
- âä¸ä¸Şć2ĺˇćĺŚçćĽâ
- âĺ¨äşä¸ĺä¸çšäş¤ćĽĺâ
Do:
- Parse the event:
- title
- start datetime (Shanghai)
- notes (optional)
- reminders offsets (default 24h/1h/10m)
- repeat (optional: yearly/monthly/weekly)
- If key info is ambiguous (e.g. âĺ夊â date, âä¸ä¸Şćâ which month, lunar birthday conversion, time missing), ask only the minimal clarifying question(s).
- Write/update the event in
reminders/events.yml. - Create
cronjobs for each reminder time (delivery to current Telegram).
Reply style
- After scheduling: reply briefly with the resolved datetime + confirmation.
- For cancellations/changes: confirm what was changed and whether cron jobs were removed/replaced.
Queries
If user asks:
- âććčżćäťäšĺŽćďźâ
- âä¸ĺ¨ćäťäšďźâ
Then read reminders/events.yml, compute upcoming items (Shanghai time), and summarize.
Notes / safety
- Never commit machine-specific secrets (keep them in
LOCAL_CONFIG.md, already gitignored). - For lunar birthdays: store the canonical lunar date + the computed solar date for the target year; ask how to handle leap months when needed.