MCP

caldav-mcp:CalDAV 日历接入 AI 助手

最适合已有 CalDAV 服务器账号、想让 AI 助手查看并管理日历的人;必须提供服务器地址、用户名和密码,且创建、更新、删除会直接写入线上日历,动作前需确认。

官方来源 · caldav-mcp

安装

"command": "npx",
      "args": [
        "caldav-mcp"
      ],

适合谁

  • 已经有 CalDAV 服务器账号(自建或由服务商提供),想让 AI 助手直接查看和管理日历的人。官方对它的定位是把日历操作暴露成 AI 助手可用的工具(“expose calendar operations as tools for AI assistants”)。
  • 它覆盖的操作包括:连接 CalDAV 服务器、列出日历、按时间段列出日历事件、创建事件、更新事件、按 UID 删除事件。
  • 使用前提很明确:必须提供 CalDAV 服务器地址、用户名和密码,分别通过 CALDAV_BASE_URL、CALDAV_USERNAME、CALDAV_PASSWORD 三个环境变量传入,三者缺一不可。
  • 不适合:没有 CalDAV 服务器,或不愿把账号密码交给本地进程的人。官方文档没有说明它适配哪些具体的 CalDAV 服务端实现,也没有说明是否提供只读模式,这两点未确认。

3 分钟完成第一次尝试

推荐主路径:在 MCP 客户端的 mcpServers 配置中用 npx 启动,npx 会自动获取并运行 caldav-mcp 包。把以下片段加入配置:

"command": "npx",
      "args": [
        "caldav-mcp"
      ],

并在同一份配置中通过环境变量提供凭证:

"CALDAV_BASE_URL": "<CalDAV server URL>",
        "CALDAV_USERNAME": "<CalDAV username>",
        "CALDAV_PASSWORD": "<CalDAV password>"

保存并重启客户端后,先做一次读取类调用:对 AI 助手说“列出我的日历”,对应官方能力列表中的 List calendars。能看到的成功信号是助手返回该账号下的日历清单。这一步只读取日历结构、不创建或修改事件,但会带着你的凭证连接 CalDAV 服务器。

必须提醒:这个服务的创建、更新、删除都是远端写操作,会直接改动线上日历。任何写动作之前,让助手先复述将要执行的操作、目标事件和字段,经你确认后再执行。

官方还提供一种面向开发的运行方式:以 watch 模式直接运行 TypeScript 代码,并自动从 .env 加载环境变量;它适合改代码调试,日常使用仍走上面的 npx 主路径。

使用案例

案例一:确认连接与权限(List calendars)。场景:刚配好凭证,不确定地址或密码是否正确。做法:对助手说“列出我的日历”,这是验证凭证成本最低的读取动作。可期待的结果:返回该 CalDAV 账号下的日历列表;若失败,先核对三个环境变量的取值再重试。

案例二:用 update-event 只改需要的字段。场景:一场会议改了时间,但标题、地点等其余信息不变。做法:让助手定位目标事件后调用 update-event,只提供要修改的字段;官方对它的说明是 “Updates an existing calendar event. Only provided fields are changed.”。可期待的结果:只有你提供的字段被更新,其余字段保持不变。确认点:这是远端写操作,改动直接落到 CalDAV 服务器,执行前务必核对目标事件与待改字段。

使用边界

  • 读写性质:能力同时包含读取(列出日历、按时间段列出事件)与写入(创建、更新、按 UID 删除事件),工具直接作用于线上日历。删除按 UID 进行,官方未说明删除后能否恢复,也没有给出撤销路径,请在确认环节格外严格。
  • 凭证要求:服务器地址、用户名、密码必须经环境变量提供;官方文档未说明是否支持 OAuth、应用专用密码等替代认证,未确认。
  • 副作用与确认点:写操作会真实修改服务器上的日历;update-event 只改提供的字段,未提及的字段不受影响。
  • 其他未确认:支持的 CalDAV 服务端软件清单、速率或并发限制,官方均未说明。“未说明”只代表文档范围,不构成任何安全结论。