Reminder
Creates a one-shot cron job that delivers a reminder to Telegram at the specified time.
Workflow
1. Parse the user's message
Extract:
| Field | Notes |
|---|
| INLINECODE0 | What to remember (verbatim or paraphrased, concise) |
| INLINECODE1 |
When to deliver — relative or absolute |
If when is ambiguous, ask for clarification before proceeding.
2. Compute the when value
Relative durations → pass directly as <n><unit>:
- - "in 20 minutes" → INLINECODE5
- "in 2 hours" → INLINECODE6
- "in 1 day" → INLINECODE7
Absolute times → convert to ISO 8601 in Europe/Paris timezone:
CODEBLOCK0
3. Confirm with the user before scheduling
Show a summary and ask for confirmation:
CODEBLOCK1
Only proceed after the user confirms.
4. Run the reminder script
This is the only way to create a reminder. Do not use any other method.
CODEBLOCK2
The script handles everything: chat ID resolution, cron job creation, and verification.
5. Check the script output
The script prints the result. Look for:
- -
OK: reminder-xxx is scheduled → success - INLINECODE9 → report the exact error to the user
Do not confirm success unless the script output says "OK".
6. Confirm to the user
Only after seeing "OK" in the script output:
CODEBLOCK3
7. Error handling
- - Never assume failure without running the script. Always execute it and report the actual output.
- Never invent a diagnosis. If something fails, show the raw error.
- Never use sessions_spawn, sleep, or any other method. Only use the script above.
- If the time is in the past → warn the user and ask for a new time
- If the reminder text is empty → ask what to remind them of
Examples
| User says | INLINECODE10 | INLINECODE11 |
|---|
| "in 20 minutes, remind me to take out the laundry" | INLINECODE12 | INLINECODE13 |
| "remind me to call Alice tomorrow at 14h" |
2026-03-03T14:00:00+01:00 |
Call Alice |
| "in 2 hours: check the oven" |
2h |
Check the oven |
| "friday at 9am: team standup" |
2026-03-06T09:00:00+01:00 |
Team standup |
技能名称: remind-myself
详细描述:
提醒
创建一个一次性定时任务,在指定时间通过Telegram发送提醒。
工作流程
1. 解析用户消息
提取以下字段:
| 字段 | 说明 |
|---|
| text | 需要记住的内容(逐字或转述,简洁) |
| when |
发送时间——相对时间或绝对时间 |
如果when存在歧义,需先向用户澄清后再继续。
2. 计算when的值
相对时长 → 直接以<数字><单位>格式传递:
- - 20分钟后 → 20m
- 2小时后 → 2h
- 1天后 → 1d
绝对时间 → 转换为欧洲/巴黎时区的ISO 8601格式:
bash
TZ=Europe/Paris date -d 明天 09:00 --iso-8601=seconds
→ 2026-03-03T09:00:00+01:00
3. 在安排前与用户确认
显示摘要并请求确认:
设置此提醒?
仅在用户确认后继续。
4. 运行提醒脚本
这是创建提醒的唯一方式。请勿使用任何其他方法。
json
{
tool: exec,
command: bash {baseDir}/scripts/remind.sh \\ \\
}
该脚本处理所有事项:聊天ID解析、定时任务创建和验证。
5. 检查脚本输出
脚本会打印结果。查找以下内容:
- - OK: reminder-xxx is scheduled → 成功
- ERROR: ... → 向用户报告确切的错误信息
除非脚本输出显示OK,否则不要确认成功。
6. 向用户确认
仅在脚本输出中看到OK后:
⏰ 提醒已设置!
📝
🕐 <人类可读时间>
7. 错误处理
- - 切勿在未运行脚本的情况下假设失败。 始终执行脚本并报告实际输出。
- 切勿自行编造诊断结果。 如果出现问题,显示原始错误。
- 切勿使用sessions_spawn、sleep或任何其他方法。 仅使用上述脚本。
- 如果时间已过 → 警告用户并要求提供新时间
- 如果提醒内容为空 → 询问需要提醒什么
示例
| 用户输入 | when | text |
|---|
| 20分钟后提醒我取洗衣物 | 20m | 取洗衣物 |
| 提醒我明天14点给爱丽丝打电话 |
2026-03-03T14:00:00+01:00 | 给爱丽丝打电话 |
| 2小时后:检查烤箱 | 2h | 检查烤箱 |
| 周五上午9点:团队站会 | 2026-03-06T09:00:00+01:00 | 团队站会 |