mcpField
A
Apple Calendar

Apple Calendar

本地服务
github.com生产力01 天前更新

关于 Apple Calendar

Apple Calendar MCP 通过 EventKit 将 macOS 日历中的日程连接到 Claude 和其他 MCP 客户端。工具涵盖搜索、排程、提醒事项及可撤销的更改;删除和修改共享日程前会请求确认。

主要功能

  1. 01跨日历搜索和查看日程
  2. 02查找空闲时间与冲突
  3. 03创建日程并批量更新
  4. 04更改前确认并支持撤销
  5. 05可选提醒事项工具与日历技能

适用场景

  1. 01跨账户寻找会议空档
  2. 02规划一周的专注时段
  3. 03检查或清理重复日程
  4. 04同时管理提醒事项与日程

MCP 相关

MCP 服务提供日历及可选提醒事项工具、作为提示词提供的技能,以及 today/upcoming 资源。它支持 stdio 和 HTTP 模式,供 MCP 客户端连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbAppleCalendarMCP-0.4.0.mcpb0.4.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Apple Calendar MCP 图标

Apple Calendar MCP

让 Claude 读取、搜索和安排你的 Apple Calendar:快速、本地运行,未经你同意,不会删除任何内容,也不会向他人发送任何内容。

最新版本 CI macOS 14+,Apple 芯片和 Intel Swift 6 MIT 许可证 已列入 mcpservers.org

Apple Calendar MCP 是一款用于 Mac 上 Calendar 应用的 MCP 服务,并配有一款小巧的菜单栏应用。Claude(Claude Code、Claude 应用或任何 MCP 客户端)可以查看你的一天、搜索多年的日程、在所有日历中查找空闲时间、规划专注时段、准备会议,以及添加或移动日程;只有在你点击确定后,它才能删除日程,或更改邀请了其他人的日程。

它是 Apple Mail MCP 的配套项目,构建方式相同。

日历标签页:等待批准的共享日程更改、下方的另外两项请求、今天的日程及当前和接下来的安排,以及近期活动 Claude 标签页:Claude Code 和 Claude 应用,以及通过斜杠命令调用的九项技能 设置标签页:删除和共享日程策略、claude.ai 的远程访问、工作时间,以及 Claude 可以对每个日历和提醒事项列表执行的操作

适用于任何日历账户,随时供 AI 使用

Apple Calendar MCP 适用于所有可以添加到 Calendar 的日历:iCloud、Google、Microsoft 365 和 Exchange、Yahoo、Fastmail、任何 CalDAV 服务、订阅日历(节假日、体育赛事、团队日程)、生日, 以及仅存储在 Mac 上的日历。

你的服务提供商不需要 API、开发者账户,也不需要支持 MCP。像平常一样在 Calendar › 设置 › 账户中添加账户;Calendar 同步完成后,每个工具都能与它配合使用,也可与其他日历并行使用。你的密码由 macOS 保管:此应用不会查看密码,也不会连接到你的服务提供商。

为什么还要开发另一款日历服务?

大多数日历服务通过 AppleScript 操作 Calendar。Calendar 随后会逐个遍历事件,因此搜索日程繁忙的一年需要几秒钟,甚至会超时;重复事件也会返回错误,而 Calendar 在此期间无法处理其他事情。

Apple Calendar MCP 使用 EventKit,也就是 Calendar 本身所基于的框架。读取操作通过数据库查询完成,几毫秒内即可返回;重复事件的展开方式与 Calendar 中显示的完全一致,而且 Calendar 无需运行。

  • 快速:几毫秒内即可从所有账户同时获取一天、一周或一年的事件。
  • 了解你一周安排的空闲时间:工作时间、会议间隔缓冲、全天事件和已拒绝的事件,均按 Calendar 的显示方式处理。
  • 默认安全:删除前会先询问;修改他人受邀参加的事件前也会先询问;每项更改都可以撤销;每个日历都由你设置:Claude 可以修改、只能读取,或完全不可见。
  • 多项更改,一次确认:一周的专注时段或一个下午的重新排期,只需一次调用、一次确认和一次撤销。
  • 也支持提醒事项:获得 Reminders 访问权限后,Claude 可以列出、添加和勾选完成提醒事项,日程也会显示即将到期的事项。
  • 一项权限(启用 Reminders 时为两项):只需向菜单栏应用授权一次。无需完全磁盘访问权限,也无需自动化权限。
  • 无需密码,不上云:所有内容都保留在你的 Mac 上。

安装

Homebrew:

brew install --cask mp-consulting/tap/apple-calendar-mcp

或者下载应用或 Claude 扩展,前往最新版本:

文件用途
AppleCalendarMCP-x.y.z.dmg内置服务的菜单栏应用:可访问 Calendar、审批、活动记录、技能和一键设置。必需。
AppleCalendarMCP-x.y.z.mcpb仅适用于 Claude 应用:双击即可将服务安装为 Claude 扩展。访问 Calendar 仍需使用上方的应用。

两者均经过公证并使用 Developer ID 签名,可在 Apple 芯片和 Intel Mac(macOS 14+)上运行。该服务也已列入 MCP registry,名称为 io.github.mp-consulting/apple-calendar-mcp。

然后:

  1. 打开 Apple Calendar MCP:菜单栏中会出现日历图标。
  2. 点击 Allow Calendar Access,并在 macOS 提示中选择 Allow Full Access。
  3. 打开 Claude 标签页,点击 Claude Code 和/或 Claude 应用旁的 Connect。
权限

macOS 会将日历访问权限授予启动进程的应用。Claude、终端或编辑器会启动服务,但无法代替服务获得 Calendar 访问权限。因此,菜单栏应用持有 Calendars 权限,服务通过它经由你专属的支持文件夹中的套接字访问日历。双方都会检查对方的代码签名:应用只响应本项目的服务,服务也只与本项目的应用通信。如果应用尚未运行,服务会在后台将其打开。

权限用途位置
Apple Calendar MCP 的 Calendars › Full Access读取和更改事件应用仅询问一次;System Settings › Privacy & Security › Calendars
Reminders › Full Access(可选)读取、添加和完成提醒事项在应用的 Settings 标签页启用 Reminders 时询问;System Settings › Privacy & Security › Reminders

claude.ai 和你的手机

iPhone、Android 和网页上的 Claude 应用可通过自定义连接器访问 Mac 上的 Calendar。菜单栏应用通过 HTTP 和 OAuth 提供 MCP 服务;隧道(例如 cloudflared)会将其发布到你自己的 HTTPS 地址。 在 More settings… › Remote access 中开启:

远程访问设置:开关及其状态、连接、可复制的连接器 URL 和隧道路径、通行码,以及两个已连接的 Claude 应用和“断开连接”选项

  1. 输入隧道发布的公共地址,例如 https://mcp.example.com/me/calendar。多个 服务可以共用一个主机名,各自使用不同路径(例如 Apple Mail MCP 使用 /me/mail)。
  2. 在隧道中将该路径路由到相应端口(默认为 8591)。路由还必须包含发现文档, OAuth 会将这些文档放在根路径下,并附加该路径;设置中会显示确切的路径模式,例如 ^/(\.well-known/[^/]+/)?me/calendar(/.*)?$。
  3. 设置一个通行码,以批准来自任何位置的连接;或者在菜单栏应用中批准连接。
  4. 在 claude.ai 中,前往 Settings › Connectors › Add custom connector,并输入连接器 URL(无需客户端 ID 或密钥)。 点击 Connect 会打开登录页面:

登录页面:将 Claude 连接到 Apple Calendar,可选择完全访问或只读,通行码输入框及“允许”、“在我的 Mac 上批准”和“不允许”选项 菜单栏应用提示:Claude 想要连接到 Apple Calendar,提供“拒绝”和“允许”选项

连接可以执行 Claude 在 Mac 上可以执行的操作,也可以仅具备读取权限;删除和更改共享事件仍需在菜单栏应用中由你确认。已连接的应用会列出每个应用,点击断开连接后,该连接会在下次请求时结束。 令牌有效期为一小时,并可在 90 天的使用期内刷新;服务只保存令牌的哈希值。详情、隧道设置 和安全模型:docs/remote.md。

Claude 能做什么

工具功能
agenda一次调用查看今天(或接下来几天)的安排:现在和接下来的事项、冲突、剩余空闲时间、待处理邀请和到期提醒
list_events查看某个时间段内的事件,可选择所有日历或部分日历,并展开重复事件
search_events按文本、人员、地点、日历、日期、视频通话或状态搜索;也可使用 group_by 按日历、月份、星期或人员统计数量
get_event查看单个事件的完整信息:备注、参与者及其回复、闹钟、重复规则和视频链接
find_free_time在所有计入的日历中,查找工作时间内符合指定时长的时段,并考虑缓冲时间;也可按他人所在时区的工作时间查找,或生成可粘贴到消息中的文本
find_conflicts查找相互重叠且都占用时间的事件
find_duplicates查找重复录入的事件、应保留的副本,以及可安全删除的副本
pending_invitations查看尚未回复的邀请
respond_to_invitation接受、拒绝或回复“暂定”以回应邀请;Calendar 会将回复发送给组织者
calendar_statistics查看时间都花在了哪里:按日历、星期、小时和人员统计,以及会议负荷和连续会议情况
list_calendars查看日历及其账户、颜色和是否可修改
create_event、update_event、delete_event添加、更改、移动或删除事件,可操作单次事件或整个系列,并设置闹钟和重复规则
create_events、update_events一次调用处理多个事件;任何更改前都会先检查,只需一次确认即可完成全部操作,并可一次撤销全部操作
list_reminders、create_reminder、update_reminder、delete_reminders管理提醒:查看未完成或已逾期的提醒、添加带截止日期或时间的提醒、勾选完成,或将提醒移至其他列表
undo_change列出最近的更改并撤销其中一项
import_ics、export_events从 .ics 文件(从 Mail 保存的邀请)添加事件,或将事件导出为 .ics、CSV 或 JSON:仅包含忙闲信息,或生成可附在邮件中的邀请
open_in_calendar在 Calendar 中显示某个事件或某一天

事件 ID 由 EventKit 生成;重复事件的单次实例 ID 格式为 <id>#<start in Unix seconds>。

EventKit 无法通过 Calendar 邀请他人。请在 Calendar 中邀请,或通过电子邮件邀请:export_events 配合 invite 会生成标准邀请,收件人可接受或拒绝;calendar-invite-by-mail 技能会将其附加到 Mail 中的 草稿里(需搭配 Apple Mail MCP)。你收到的邀请可通过 respond_to_invitation 回复;它使用与 Calendar 相同的(未公开)EventKit 调用。账户会将回复发送给组织者, 并且应用会先征求你的确认。

由你掌控

确认窗口:完整显示对共享事件所做的更改,带有 1/3 页码,以及可能收到通知的人;下方还有两个待处理的删除操作

当 Claude 想要删除事件,或更改其他受邀者也参加的事件时,会弹出一个小窗口,显示将要进行的更改;只有点击 OK 后才会执行操作。

  • 删除策略(设置):先询问我(默认)、立即删除或从不删除。
  • 共享事件:默认情况下,更改有其他参加者的事件时会先询问,因为他们的日历服务可能会通知他们。
  • 撤销:每项更改都可以通过 undo_change 还原;整批更改可通过一个 ID 还原。已删除的事件会恢复,但不包含参加者(EventKit 无法再次邀请他们)。
  • 每个日历和提醒事项列表(设置):读取和更改、只读(Claude 不会在其中添加、移动、更改或删除任何内容)或隐藏(永不读取、列出或更改)。
  • 批量限制:默认情况下,每次更改最多处理 50 个事件。
  • 只读模式:apple-calendar-mcp --read-only 仅提供读取工具。
  • 活动记录:菜单栏应用会列出每次工具调用(绝不显示事件详情)。

技能

在面板的 Claude 选项卡中选择技能:每个技能都会说明其功能以及是否已安装。

技能或者直接询问……
/calendar-daily-brief“我今天的安排是什么?”
/calendar-scheduler“下周找一个没有会议的小时,用来进行预算审查。”
/calendar-focus-time“这周安排六小时的专注时间,如果可以的话,安排在上午。”
/calendar-meeting-prep“帮我准备明天的会议。”
/calendar-weekly-review“我这周过得怎么样?下周又有什么安排?”
/calendar-time-audit“我这个月的时间都花在哪儿了?”
/calendar-cleanup“找出日历中的重复项和冲突并清理它们。”
/calendar-invite-import“把这份航班确认信息添加到我的日历。”
/calendar-invite-by-mail“邀请 Sam 和 Priya 参加周四的规划会议。”

这些技能也会作为 MCP 提示词提供(在 Claude Code 中:/mcp__apple-calendar__calendar-daily-brief 等),还有两个资源 calendar://today 和 calendar://upcoming,会在日期变更时通知已订阅的客户端。

命令行

apple-calendar-mcp [--read-only]                                        serve MCP over stdio
apple-calendar-mcp remote [--port N] [--listen ADDR] [--address URL]    serve MCP over HTTP with OAuth (claude.ai)
apple-calendar-mcp doctor                                               check the app, the permission and the bridge
apple-calendar-mcp install | uninstall [claude-code | claude-desktop]   register with Claude
apple-calendar-mcp skills [list | install | uninstall | export DIR]     manage the Claude skills
apple-calendar-mcp call <tool> '{"json": "arguments"}'                  run one tool

工作原理

claude.ai ──HTTPS──▶ tunnel ──HTTP──▶ apple-calendar-mcp remote (OAuth, run by the app) ──▶ EventKit; approvals over the socket
Claude ──MCP (stdio)──▶ apple-calendar-mcp ──socket (signatures checked)──▶ Apple Calendar MCP.app ──▶ EventKit ──▶ your accounts
                                                                            menu bar: approvals · activity · settings · Claude setup · updates
  • CalendarStore:事件模型、EventKit、桥接层、重复规则、空闲时间、冲突、统计信息和 iCalendar 文件。
  • CalendarMCPKit:工具、策略、审批、撤销和技能;CalendarMCPBar 是 SwiftUI 菜单栏应用(macOS 26 上采用 Liquid Glass)。

开发

git clone https://github.com/mp-consulting/apple-calendar-mcp && cd apple-calendar-mcp
# Files under ~/Documents carry Finder metadata that codesign rejects: build outside the repo.
swift test --scratch-path ~/Library/Caches/apple-calendar-mcp-build   # tests run on in-memory calendars
Scripts/build-app.sh --install                                        # build, sign, install, launch the app

apple-calendar-mcp --demo 会在内存中提供一个虚构的一周日程,让你可以在不触碰日历的情况下试用工具。截图由应用通过 --demo --approval 3 --snapshot DIR 生成。

测试绝不会触碰你的日历:它们在 MemoryBackend 上运行,该后端遵循 EventKit 对重复事件和只读日历的规则。应用需要 Xcode 26(Swift 6.2);服务可使用 Swift 6.1 构建。

许可证

MIT © 2026 Mickael Palma。与 Apple 无关。Apple Calendar 是 Apple Inc. 的商标。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。