作为团队负责人,每天面对大量的会议、周期性任务和截止日期。传统的日历工具(Google Calendar、Outlook)虽然成熟,但缺乏与 AI 助手的深度集成——你没法对着日历说"帮我整理本周待办",也没法让日历自动判断"这个月第一周最后一个工作日是哪天"。
苏米注:OpenClaw 提供了一种不同的思路:用 AI 助手 + 结构化数据 + 定时任务,构建一套可对话、可自动化的日程管理系统。

整体架构
三层协作:
- 日程数据层:JSON 文件存储事件信息
- 提醒执行层:OpenClaw Cron 定时触发
- 投递通道层:消息推送到你常用的 IM(微信/Telegram/Discord)
第一步:设计日程数据结构
为什么不直接用 Cron?
OpenClaw 的 Cron 能设置定时提醒,但它只管"什么时候提醒",不管"这个事件的完整信息"。当你问"这周有什么会"或"上个月那笔费用处理了没"时,单靠 Cron 是回答不了的。
所以我们需要一层结构化的日程数据,记录事件的完整信息。
参考 Google Calendar,但更轻量
Google Calendar 的事件模型(基于 iCalendar RFC 5545 标准)久经考验,我们取其精华:
{
"id": "evt-2026-0403-001",
"summary": "客户每周例会",
"description": "每周五上午 9:30 客户例会",
"notes": "需提前与对方负责人确认时间",
"status": "completed",
"start": {
"dateTime": "2026-04-03T09:30:00+08:00",
"timeZone": "Asia/Shanghai"
},
"end": {
"dateTime": "2026-04-03T10:30:00+08:00",
"timeZone": "Asia/Shanghai"
},
"recurrence": ["RRULE:FREQ=WEEKLY;BYDAY=FR"],
"reminders": [
{
"minutesBefore": 30,
"method": "push",
"cronJobId": "468ef7c8-..."
}
],
"category": "meeting",
"priority": "P2",
"project": "project-alpha",
"result": "已完成",
"memoryRef": "memory/2026-04-03.md"
}
三个关键字段的区别
| 字段 | 用途 | 谁看 |
|---|---|---|
| summary | 标题,一眼看懂是什么事 | 所有人 |
| description | 正式描述:议程、目标、背景 | 参与者 |
| notes | 私人备注:执行细节、踩过的坑 | 仅自己 |
summary 沿用 iCalendar 标准命名(而非 title),保持与 Google Calendar 的兼容性。
事件不只管未来,也管过去
传统日历只看前方。但实际工作中,"上周那个会开了没"、"这个月费用处理了吗"同样重要。
通过 status 字段区分:
confirmed— 已确认,待执行tentative— 待定completed— 已完成cancelled— 已取消
已完成的事件加上 result(结果)和 followUp(后续跟进),就变成了事件台账——既是日程,也是记录。
第二步:文件结构设计
单文件 vs 按日期拆分
最初我们把所有事件放在一个 events.json 里,很快发现问题:
- 文件会越来越大
- 多个任务同时更新容易冲突
- 归档麻烦
最终采用三层结构:
calendar/
schema.json ← 字段定义(JSON Schema)
recurring.json ← 周期性事件模板
events/
2026-04-01.json ← 当天的事件实例
2026-04-02.json
2026-04-03.json
...
recurring.json:周期性事件模板
把重复发生的事件抽成模板,只定义一次:
{
"id": "rec-weekly-dev-standup",
"summary": "研发每周例会",
"description": "每周第一个工作日上午 9:30",
"recurrence": ["RRULE:FREQ=WEEKLY;BYDAY=MO"],
"reminders": [
{"minutesBefore": 1440, "cronJobId": "acea7714-..."},
{"minutesBefore": 30, "cronJobId": "b65f88f0-..."}
]
}
events/YYYY-MM-DD.json:每天的事件实例
从模板生成的具体实例,或一次性事件:
{
"date": "2026-04-02",
"events": [
{
"id": "evt-2026-0402-001",
"recurringId": "rec-weekly-client-dev",
"summary": "客户研发内部会议(4/2)",
"status": "completed",
"result": "已完成"
}
]
}
通过 recurringId 关联模板,追溯来源。
这样做的好处
- 并发安全 — 不同天改不同文件,不冲突
- 自然归档 — 过了的日期文件天然有序
- 文件小 — 每天几条,读写快
- 模板复用 — 周期性事件只定义一次
第三步:设置 Cron 提醒
OpenClaw 的 Cron 系统是提醒的执行引擎。每个提醒对应一个 Cron Job。
第四步:自然语言创建事件
有了数据结构和 Cron 系统,接下来让 AI 理解自然语言并创建事件。
示例指令:
帮我记录每周五上午 9:30 的客户例会,提前 30 分钟提醒我,需要准备好项目进度报告
AI 会自动:
- 解析时间(每周五 9:30)
- 创建 recurring 模板
- 设置 Cron 提醒
- 生成事件实例
第五步:多渠道推送
提醒触发后,需要推送到你常用的 IM 工具:
- 微信(企业微信)
- Telegram
- Discord
- 飞书
OpenClaw 支持通过 Skill 扩展推送通道,配置一次,多处接收。
实战场景
场景一:周期性会议管理
需求:每周一研发例会、每周五客户例会、每月最后一个工作日财务结算
实现:创建 recurring 模板,设置多个提醒(提前 1 天 + 提前 30 分钟)
场景二:项目里程碑跟踪
需求:项目关键节点提醒,完成后自动记录结果
实现:事件设置 status 字段,完成后更新 result 和 followUp
场景三:费用报销管理
需求:每月固定日期提醒报销,记录报销状态
实现:周期性事件 + status 跟踪 + 结果记录
总结
OpenClaw 日程管理系统的核心价值:
- 可对话:用自然语言创建和管理事件
- 可自动化:Cron 定时触发,多渠道推送
- 可追溯:事件台账记录过去和未来
- 可扩展:基于 JSON Schema,灵活添加字段
苏米注:这套系统的精髓在于"AI 理解意图 + 结构化存储 + 自动执行"的闭环。传统日历只能看,OpenClaw 日历能对话、能执行、能记录。
最佳实践:建议从简单的周期性事件开始(如每周例会),熟悉数据结构后,再扩展到项目管理、费用跟踪等复杂场景。