把日历接入 OpenClaw 后,你可以用自然语言管理所有日程—— 「下周有什么会议」「帮我找个周三下午两小时的空挡」「明天会议前提醒我准备材料」。
支持的日历服务
| 服务 | 协议 | 配置难度 |
|---|---|---|
| Google Calendar | Google API (OAuth) | 中 |
| Apple Calendar (iCloud) | CalDAV | 低 |
| Outlook / Microsoft 365 | Microsoft Graph API | 中 |
| 任意 CalDAV 服务 | CalDAV | 低 |
| Nextcloud Calendar | CalDAV | 低 |
Google Calendar 配置
Step 1:启用 Google Calendar API
- 进入 Google Cloud Console
- 创建或选择项目
- 搜索「Google Calendar API」-> 启用
- 创建凭据:OAuth 2.0 Client ID(Desktop app)
- 下载
credentials.json
Step 2:OpenClaw 配置
json
// ~/.openclaw/config.json
{
"integrations": {
"googleCalendar": {
"enabled": true,
"credentialsPath": "~/.openclaw/google-credentials.json",
"calendars": ["primary", "work@company.com"],
"readOnly": false,
"reminderMinutes": [10, 60]
}
}
}首次运行会打开浏览器完成 OAuth 授权,Token 保存在本地。
Apple Calendar / Caldav 配置
json
{
"integrations": {
"caldav": {
"enabled": true,
"url": "https://caldav.icloud.com",
"username": "your@icloud.com",
"password": "应用专用密码",
"calendars": ["Personal", "Work"]
}
}
}Apple Calendar 需要在 appleid.apple.com 生成「应用专用密码」。
日常对话示例
查询日程
你:今天有什么安排?
助手:今天(周一)你有 3 个日程:
• 10:00 产品周会(1小时)
• 14:00 与 John 一对一(30分钟)
• 17:00 需要提交周报
你:本周什么时候有连续 2 小时的空闲?
助手:本周空闲时段(连续 2 小时以上):
• 周二 9:00-12:00
• 周三 14:30-17:00
• 周五 全天
创建日程
你:帮我约个会,下周三下午 3 点,和设计团队讨论新功能,1 小时
助手:已创建日程:
📅 下周三(3月20日)15:00-16:00
📝 与设计团队讨论新功能
需要我发邀请给设计团队成员吗?
你:对,邀请 design@company.com 和 product@company.com
助手:已发送邀请给 2 位参与者。
智能冲突检测
你:帮我明天下午 2 点安排一个客户电话
助手:注意:明天 14:00-15:00 已有「Sprint Review」会议。
可选方案:
• 改到 13:00-13:30(客户电话前)
• 改到 15:30-16:00(Sprint Review 后)
你偏向哪个时间段?
HEARTBEAT 日程提醒配置
markdown
# HEARTBEAT.md
## 日程检查
每次心跳检查未来 2 小时内的日程:
- 距离会议 60 分钟:发 Telegram 提醒,附议程(如果有)
- 距离会议 10 分钟:再次提醒
- 如果明天有早会(9点前):今晚 22 点提前提醒
## 每日早报(09:00)
汇总今日所有日程,标注需要准备材料的会议自动化工作流
会议前自动准备
bash
# Cron:会议前 30 分钟执行
openclaw cron add --schedule "*/30 * * * *" --task "检查未来 30 分钟内有没有会议,
如果有,读取会议标题和描述,
搜索相关的上下文(笔记、邮件、代码),
生成会议准备简报发 Telegram"每日日报
bash
# 每天 8:30 发今日日程总结
openclaw cron add --schedule "30 8 * * 1-5" --task "读取今天日历,发 Telegram:
1. 今日日程列表(时间+标题)
2. 最重要的 3 件事
3. 下班前需完成的事项"周末规划
bash
# 每周五 17:00 发下周规划
openclaw cron add --schedule "0 17 * * 5" --task "读取下周日历,分析:
- 重要会议和截止日期
- 忙碌程度评估(很忙/正常/轻松)
- 建议提前准备的事项
发 Telegram 周末规划提醒"隐私与安全
- 日历数据只在本地处理,不上传到第三方
- Token 存储在
~/.openclaw/tokens/本地加密 - 只授予最小必要权限(可配置只读或读写)
- 可以限制只同步特定日历,不暴露私人日历
来源:OpenClaw 官方文档 | Google Calendar API 文档