日历管理服务器

一个通过CalDAV标准管理Apple iCloud日历的MCP服务器,提供只读功能包括列出日历、搜索事件和查询空闲/忙碌状态。

  • by ScottSucksAtProgramming
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ScottSucksAtProgramming/apple_calendar-mcp-server

使用说明

Apple 日历(iCloud)MCP 服务器

一个通过CalDAV管理Apple iCloud日历的模型上下文协议(MCP)服务器。 此构建为只读列出日历、列出/搜索事件以及查询空闲/忙碌状态。系统提供了创建/更新/删除工具,但已故意禁用。

目的

这台MCP服务器为AI助手提供了一个安全接口,使其能够使用CalDAV标准读取iCloud日历数据。

特点/功能

当前实施情况

  • list_calendars – 列出可用的日历(包括共享日历)。
  • list_events – 列出时间窗口内的事件;展开重复事件。
  • search_events – 在窗口内对摘要/位置进行文本搜索。
  • find_freebusy – 一个范围内的空闲/忙碌信息。
  • create_event – 在此只读构建中存在但已禁用。
  • update_event – 在此只读构建中存在但已禁用。
  • delete_event – 在此只读构建中存在但已禁用。

先决条件

  • 启用了MCP Toolkit的Docker Desktop
  • Docker MCP CLI 插件(docker mcp)
  • 带有iCloud账户的 已启用双因素认证(2FA) 和一个 应用专用密码
  • 要设置的秘密:
    • ICLOUD_APPLE_ID – 您的Apple ID电子邮件
    • ICLOUD_APP_PASSWORD – 应用专用密码(来自appleid.apple.com)
    • ICLOUD_DEFAULT_CALENDAR – 可选的默认日历显示名称
  • 默认时区: America/New_York (通过……覆盖 APPLECAL_TZ (如需)环境变量

使用示例

在Claude Desktop中,您可以询问:

  • “🔍 显示我的日历” list_calendars
  • “📅 我明天默认日历上有什么安排?” → list_events (与)一起 start/end
  • “🧭 查找接下来两周内的‘换班’事件” search_events (与)一起;带着;具有 q="shift"
  • “⛔ 试图添加一个事件” create_event 返回只读消息

示例工具提示(自然语言 → 参数化)

  • “列出‘主页’上从2025年10月24日到2025年10月27日的事件”
    → list_events(calendar="Home", start="2025-10-24T00:00:00-04:00", end="2025-10-27T23:59:59-04:00")
  • “在默认日历中搜索接下来30天内的‘会议’”
    → search_events(q="meeting")
  • “今天‘工作’的日程空闲/繁忙情况”
    → find_freebusy(calendar="Work", start="2025-10-23T00:00:00-04:00", end="2025-10-23T23:59:59-04:00")

建筑