Skip to main content

概览

日程模块让用户通过自然语言设置提醒,系统自动解析时间并在指定时刻通过用户所在平台推送通知。
用户: "明天下午 3 点提醒我开会"
Agent → schedule_insert(content="开会", trigger_time="2026-03-30T15:00:00")
Agent: "已设置提醒:明天 15:00 开会"
// 到时间后 → 推送到用户的 Telegram/微信/QQ/飞书/Web

数据模型

字段类型说明
idint主键
user_idint所属用户
contentstring提醒内容
trigger_timedatetime触发时间
statusstring状态
created_atdatetime创建时间

状态流转

PENDING → EXECUTED  (定时到达,成功推送)
       → CANCELLED (用户取消)
       → FAILED    (推送失败)
系统支持 30+ 个中英文状态别名映射,例如”待执行”、“已完成”、“已取消”、“done”、“cancelled” 等都能正确识别。

工具链

工具功能
schedule_insert创建提醒(自动注册 APScheduler job)
schedule_update更新内容/时间/状态(自动重新调度)
schedule_delete删除提醒(移除 APScheduler job)
schedule_list按状态/日期范围筛选

时间解析

trigger_time 支持多种格式:
格式示例
ISO 86012026-03-30T15:00:00
日期 + 时间2026-03-30 15:00
相对表达LLM 将”明天下午3点”转换为绝对时间
时间统一按 TIMEZONE 配置(默认 Asia/Shanghai)处理。

执行与推送

1

创建提醒

Agent 调用 schedule_insert → DB 写入 + APScheduler 注册 job
2

定时触发

APScheduler 到时执行 send_reminder_job()
3

多平台推送

UnifiedSender 根据用户 platform 推送到对应渠道(Telegram/微信/QQ/飞书/小程序/Web)
4

状态更新

推送成功 → EXECUTED;失败 → FAILED

API 端点

方法路径说明
GET/api/schedules列表查询
POST/api/schedules创建提醒
PATCH/api/schedules/{id}更新提醒
DELETE/api/schedules/{id}删除提醒
GET/api/calendar日历视图(含日程 + 账单)

使用示例

"明天下午 3 点提醒我开会"     → 创建提醒
"把开会提醒改到 4 点"         → 更新时间
"取消明天的提醒"               → 状态改为 CANCELLED
"这周有哪些提醒"               → 列表查询