Google Calendar/CalDAV 日程同步与提醒规划工具,生成 JSON 计划供 OpenClaw 创建一次性提醒
说明:
# gcalcli + CalDAV 日程提醒规划器
## 核心用法
本技能提供两层功能:**日历数据同步**与**智能提醒规划**。首先通过 `scripts/calendar` 封装 `gcalcli`(Google Calendar CLI)获取 Google 日程,可选通过 `vdirsyncer+khal` 接入 CalDAV/iCloud 等源。其次由 `scripts/calendar_reminder_plan.py` 分析日程数据,输出标准化 JSON 计划,供下游系统(如 OpenClaw cron 任务)创建精准的一次性提醒。
配置位于 `~/.config/openclaw/calendar.json`,支持环境变量覆盖路径。用户需完成 OAuth 授权(headless 环境建议 SSH 端口转发),并可自定义提醒规则:忽略生日、为定时事件设置高优先级、按关键词过滤全天事件。
## 显著优点
– **多源兼容**:原生支持 Google Calendar,通过成熟工具链扩展至 Apple/iCloud、Nextcloud 等 CalDAV 服务
– **安全执行**:子进程调用使用 `shell=False` + 参数列表形式,有效防御事件标题中的 Shell 注入
– **解耦架构**:规划器仅输出 JSON 计划,不直接操作提醒系统,便于集成到现有自动化工作流(cron/systemd/agent)
– **可配置过滤**:灵活的规则引擎减少提醒噪音,避免生日/节假日轰炸
– **状态去重**:建议配合状态文件记录,防止重复创建提醒
## 潜在缺点与局限性
– **外部依赖重**:必须安装 `gcalcli`(Python 生态),CalDAV 支持还需 `vdirsyncer` 和 `khal`,版本兼容性需自行维护
– **OAuth 门槛**:Google OAuth 流程对非技术用户不够友好,headless 服务器需额外网络配置
– **非实时同步**:依赖定时任务拉取数据,非推送式提醒,延迟取决于 cron 频率
– **无内置调度**:技能本身不执行提醒投递,需用户自行编写 cron 或 agent 逻辑完成”JSON 计划 → OpenClaw reminder”的转换
– **配置敏感**:二进制路径指向受信程序是安全前提,误配置可能导致执行未授权代码
## 适合人群
– 技术型用户(熟悉 Python/Shell/cron)
– 需要将 Google/iCloud 日程深度整合到 OpenClaw 自动化工作流的进阶玩家
– 对提醒粒度有定制需求、不满于原生日历推送的开发者
– 多日历源聚合需求者(工作 Google + 个人 iCloud)
## 常规风险
– **OAuth 令牌泄露**:`gcalcli` 存储的凭证文件需妥善保管,避免仓库提交或权限过宽
– **子进程注入**:虽采用 `shell=False` 防御,但若配置指向恶意二进制(如被篡改的 `gcalcli` 替身),仍可执行任意代码
– **隐私数据外泄**:日程内容(会议标题、地点)会进入 JSON 计划和日志,需确保下游提醒系统的存储安全
– **定时任务故障沉默**:cron 失败无自动告警,可能漏掉关键日程提醒









