calendar-reminders

📅 本地优先的日历提醒自动化管道

基于 gcalcli 和 CalDAV 的日历提醒自动化工具,通过 JSON 计划输出实现 OpenClaw 提醒集成,适合需要本地化处理日历提醒的技术用户。

收藏
11.5k
安装
2.4k
版本
v0.1.1
CLS 安全性认证2026-05-18
点击查看完整报告 >

使用说明

核心用法

calendar-reminders 是一个配置驱动的日历提醒管道工具,主要提供两大功能模块:一是 scripts/calendar 包装器,封装了 gcalcli(Google Calendar CLI)和可选的 CalDAV 同步工具链(vdirsyncer + khal);二是 scripts/calendar_reminder_plan.py 提醒计划生成器,输出 JSON 格式的提醒调度计划,供 OpenClaw 系统创建一次性提醒。

用户需将示例配置复制到 ~/.config/openclaw/calendar.json 或通过环境变量 OPENCLAW_CALENDAR_CONFIG 指定路径。对于 Google 日历,需完成 OAuth 认证(headless 服务器可通过 SSH 端口转发配合 --noauth_local_server 参数)。CalDAV/iCloud 支持为可选项。典型部署模式是设置每日 cron 任务:先同步 CalDAV(如启用),再运行计划生成器,最后遍历 JSON 输出创建 OpenClaw systemEvent 提醒,同时通过状态文件避免重复调度。

显著优点

该技能的最大优势在于解耦设计——它将日历数据获取、提醒计划生成与实际调度执行分离,使用户可以灵活选择调度后端(cron、systemd timer 或 Agent 轮询)。这种架构既保留了 gcalcli 和 khal 成熟工具的可靠性,又避免了深度绑定特定提醒系统。

配置灵活性体现在多源支持(Google Calendar + CalDAV/iCloud)、环境变量覆盖路径、以及细粒度的提醒规则(自动忽略生日、区分定时/全天事件的关键词匹配)。本地优先的隐私设计确保日历数据不经过第三方中转,JSON 输出格式也便于与其他自动化工具链集成。

潜在缺点与局限性

外部工具依赖是首要门槛:gcalcli 的 OAuth 流程对非技术用户不够友好,headless 环境的端口转发配置可能困扰新手;vdirsyncer 和 khal 的 CalDAV 支持虽强大,但增加了系统复杂度。调度责任外置意味着用户必须自行实现 cron 作业或 Agent 逻辑,技能本身不提供开箱即用的提醒触发机制。

功能边界方面,提醒规则相对基础(关键词匹配、时间类型判断),不支持复杂的重复模式或条件逻辑;状态文件机制虽防重复,但在分布式或多实例场景下可能产生竞态条件。此外,技能仅输出计划而不执行实际通知,最终用户体验取决于下游 OpenClaw 提醒系统的可靠性。

适合的目标群体

该技能面向技术型用户自动化爱好者:熟悉命令行操作、有 cron/systemd 经验、希望自建日历提醒工作流的开发者或运维人员。适合已使用 gcalcli/khal 管理日历、需要将提醒集成到 OpenClaw 或其他自动化平台的场景。对个人隐私敏感、偏好本地处理而非云服务托管的用户也是理想受众。

不适合追求零配置开箱体验的普通用户,或需要复杂提醒规则(如地理位置触发、智能推迟)的高级日程管理需求。

使用风险

性能风险较低:计划生成操作为只读,不修改日历数据;状态文件 I/O 轻量。但大规模日历(数千事件)的 JSON 序列化可能产生内存压力。依赖项风险需关注:gcalcli 和 khal 的版本兼容性、Google OAuth token 的过期刷新、CalDAV 服务器的可用性均可能影响服务连续性。配置风险包括:配置文件权限设置不当导致日历信息泄露;状态文件损坏可能导致提醒重复或遗漏。建议将配置目录权限设为 700,并监控 cron 作业的退出状态。

安全解读

核心用法

本Skill是一个日历提醒规划管道,主要功能包括:

1. 日历数据获取:通过scripts/calendar包装器调用gcalcli(Google Calendar)或vdirsyncer+khal(CalDAV/iCloud)获取日历事件
2. 智能提醒规划scripts/calendar_reminder_plan.py分析事件并输出JSON格式的提醒计划,自动识别重要事件(定时事件、关键词匹配的全天事件),忽略生日类事件

3. OpenClaw集成:生成的JSON计划可被cron作业或Agent读取,创建一次性systemEvent提醒

典型工作流

  • 配置~/.config/openclaw/calendar.json(支持环境变量覆盖)
  • 设置每日定时任务:同步CalDAV → 运行规划脚本 → 创建OpenClaw提醒 → 记录状态防重复

显著优点

  • 零依赖风险:纯Python标准库实现,无第三方包依赖,供应链攻击面极小
  • 隐私优先设计:所有日历数据本地处理,不上传至任何中间服务
  • 多源兼容:同时支持Google Calendar和CalDAV标准(iCloud、Nextcloud等)
  • 灵活配置:关键词驱动的智能过滤,可自定义重要事件识别规则
  • 可信来源:由GitHub组织openclaw维护,T2级别可信组织认证

潜在局限

  • 外部工具依赖:必须单独安装gcalcli(需OAuth配置)或vdirsyncer+khal,对非技术用户门槛较高
  • 无直接网络层:本身不处理API认证,依赖外部工具的OAuth流程(headless服务器需SSH端口转发)
  • 状态管理简化:依赖文件状态防重复,无数据库级一致性保障
  • 功能边界明确:仅提供"规划器",实际调度需用户自行配置cron/Agent wiring

适合人群

  • 自托管爱好者:已使用gcalcli或khal管理日历的CLI用户
  • 隐私敏感用户:不希望将日历数据同步至第三方提醒服务
  • 自动化需求者:需要将日历事件整合至OpenClaw或其他自动化框架的技术用户
  • 多日历整合场景:同时管理Google工作日历和个人Apple日历的用户

常规风险

| 风险项 | 等级 | 说明 |
|--------|------|------|
| subprocess命令执行 | 低 | 调用gcalcli/khal,参数来自用户配置,已做基本验证 |
| 配置文件读取 | 低 | 标准路径`~/.config/openclaw/`,建议使用`chmod 600`限制权限 |
| OAuth凭证管理 | 中 | gcalcli的OAuth令牌由外部工具管理,不在本Skill控制范围内 |
| 状态文件完整性 | 低 | 简单的JSON状态文件,无加密或签名保护 |

安全认证总分70/100(A级),核心风险可控,符合GDPR数据最小化原则。

calendar-reminders 内容

references文件夹
scripts文件夹
手动下载zip · 4.9 kB
openclaw-calendar.example.jsonapplication/json
请选择文件