
Apple Calendar
io.github.mp-consulting由 GitHub 帳號 mp-consulting 發布v0.4.1更新於 Oct 30, 2026
Read, search and plan Apple Calendar on macOS via EventKit: free time, undo, you approve deletes
概覽
本機 macOS MCP 伺服器,讓助理透過 EventKit 讀取、搜尋與規劃 Apple 行事曆事件和提醒事項,刪除或修改共享事件前需確認。
- 可以做什麼
- 查看當天行程、列出事件,並在所有行事曆中搜尋多年事件,重複事件依行事曆顯示展開
- 檢視單一事件的備註、參與者、提醒與重複規則,並列出行事曆
- 尋找空閒時間、衝突、重複事件、待回覆邀請與時間統計
- 單筆或批次新增、修改、移動、刪除事件,並可復原近期變更
- 管理提醒事項:列出、新增、完成、移動與刪除
- 匯入匯出 iCalendar 檔案、CSV 或 JSON,並在行事曆中開啟事件
- 適用情境
- 適合想在 Mac 上讓助理回答行程問題、尋找會議時段、安排專注時間、準備會議或清理重複事件的場合,涵蓋已在行事曆同步的 iCloud、Google、Microsoft 365、CalDAV 等帳號。
- 執行需求
- 需要 macOS 14 以上版本的 Apple 晶片或 Intel Mac,並安裝搭配的選單列應用程式(Homebrew cask 或 DMG);只安裝 .mcpb 擴充功能仍需該應用程式。需授予行事曆完整取用權限,可選授予提醒事項完整取用權限。不需 API 金鑰或密碼。供 claude.ai 或手機遠端存取需自備通道與通行碼。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Apple Calendar,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Apple Calendar MCP
Let Claude read, search and plan your Apple Calendar: fast, local, and nothing deleted or sent to other people without your OK.
[Latest release] [CI] [macOS 14+, Apple silicon and Intel] [Swift 6] [MIT License] [Listed on mcpservers.org]
Apple Calendar MCP is an MCP server for the Calendar app on your Mac, plus a small menu bar app. Claude (Claude Code, the Claude app, or any MCP client) can see your day, search years of events, find free time across all your calendars, plan focus blocks, prepare meetings, and add or move events, and it can only delete an event, or change one other people are invited to, after you click OK.
The companion of Apple Mail MCP, built the same way.
[Calendar tab: a shared event change waiting for approval, two more requests below, today's events with what is on now and next, recent activity] [Claude tab: Claude Code and the Claude app, the nine skills by slash command] [Settings tab: delete and shared-event policies, remote access for claude.ai, working hours, what Claude may do with each calendar and reminder list]
Any calendar account, ready for AI
Apple Calendar MCP works with every calendar you can add to Calendar: iCloud, Google, Microsoft 365 and Exchange, Yahoo, Fastmail, any CalDAV server, subscribed calendars (holidays, sports, team schedules), birthdays, and calendars on your Mac only.
Your provider needs no API, no developer account and no MCP support of its own. Add the account in Calendar › Settings › Accounts as you normally would; as soon as Calendar syncs it, every tool works with it, side by side with the others. Your passwords stay with macOS: this app never sees them and never connects to your provider.
Why another Calendar server?
Most Calendar servers drive Calendar with AppleScript. Calendar then walks its events one by one, so a search over a busy year takes seconds or times out, repeating events come back wrong, and Calendar is busy meanwhile.
Apple Calendar MCP uses EventKit, the framework Calendar itself is built on. Reads are database queries that return in milliseconds, repeating events expand exactly as Calendar shows them, and Calendar never has to run.
- Fast: a day, a week or a year of events in milliseconds, from every account at once.
- Free time that knows your week: working hours, buffers between meetings, all-day and declined events handled the way Calendar shows them.
- Safe by default: deleting asks first, changes to events other people are invited to ask first, every change can be undone, and each calendar is yours to set: Claude may change it, only read it, or never see it.
- Many changes, one OK: a week of focus blocks or a rescheduled afternoon is one call, one approval and one undo.
- Reminders too: with Reminders access, Claude lists, adds and ticks off reminders, and the agenda shows what is due.
- One permission (two with Reminders): given once to the menu bar app. No Full Disk Access, no Automation.
- No passwords, no cloud: everything stays on your Mac.
Install
Homebrew:
Or download the app or the Claude extension from the latest release:
Both are notarized, signed with Developer ID, and run on Apple silicon and Intel Macs (macOS 14+). The server is also
listed in the MCP registry as io.github.mp-consulting/apple-calendar-mcp.
Then:
- Open Apple Calendar MCP: a calendar appears in the menu bar.
- Click Allow Calendar Access and choose Allow Full Access in the macOS prompt.
- Open the Claude tab and click Connect next to Claude Code and/or the Claude app.
Permissions
macOS gives calendar access to the app that starts a process. Claude, a terminal or an editor starts the server, and none of them can be given Calendar access on its behalf. So the menu bar app holds the Calendars permission, and servers reach your calendars through it, over a socket in your owner-only support folder. Each side checks the other's code signature: the app answers only this project's server, and the server talks only to this project's app. If the app is not running, the server opens it in the background.
claude.ai and your phone
The Claude apps on iPhone, Android and the web reach Calendar on your Mac as a custom connector. The menu bar app serves MCP over HTTP with OAuth; a tunnel (such as cloudflared) publishes it at an HTTPS address of yours. Turn it on in More settings… › Remote access:
- Enter the public address the tunnel publishes, such as
https://mcp.example.com/me/calendar. Several servers can share one host name, each on its own path (Apple Mail MCP at/me/mail, for instance). - Route that path to the port (8591 by default) in the tunnel. The route must also carry the discovery documents,
which OAuth puts at the root with the path appended; the settings show the exact path pattern, for example
^/(\.well-known/[^/]+/)?me/calendar(/.*)?$. - Set a passcode to approve connections from anywhere, or approve them in the menu bar app.
- In claude.ai, Settings › Connectors › Add custom connector with the connector URL (no client ID or secret). Connect opens the sign-in page:
[The sign-in page: Connect Claude to Apple Calendar, a choice of full access or read only, the passcode field with Allow, Approve on my Mac, and Don't allow] [The menu bar app asks: Claude wants to connect to Apple Calendar, with Deny and Allow]
A connection may do what Claude on the Mac may do, or only read; deleting and changing shared events still wait for your OK in the menu bar app. Connected apps lists each one, and Disconnect ends it at its next request. Tokens last an hour and refresh for 90 days of use; the server keeps only their hashes. Details, the tunnel set-up and the security model: docs/remote.md.
What Claude can do
Event ids are EventKit's own; one occurrence of a repeating event is <id>#<start in Unix seconds>.
EventKit cannot invite people from Calendar. Invite them in Calendar, or by email: export_events with invite
writes a standard invitation they can accept or decline, and the calendar-invite-by-mail skill attaches it to a
draft in Mail (with Apple Mail MCP). Invitations to you can be answered with
respond_to_invitation, which uses the same (undocumented) EventKit call as Calendar; the account sends the answer
to the organizer, and the app asks you first.
You stay in control
When Claude wants to delete events, or change an event other people are invited to, a small window pops up with what would change; nothing happens without a click on OK.
- Delete policy (Settings): Ask me first (the default), Delete right away, or Never delete.
- Shared events: changes to events with other attendees ask first by default, because their calendar server may tell them.
- Undo: every change can be put back with
undo_change, a whole batch with one id. A deleted event comes back without its attendees (EventKit cannot invite them again). - Each calendar and reminder list (Settings): Read and change, Read only (Claude never adds, moves, changes or deletes anything there), or Hidden (never read, listed or changed).
- Batch limits: at most 50 events per change by default.
- Read-only mode:
apple-calendar-mcp --read-onlyoffers only the reading tools. - Activity: every tool call is listed in the menu bar app (never with event details).
Skills
Pick them in the panel's Claude tab: each one shows what it does and whether it's installed.
The skills are also served as MCP prompts (in Claude Code: /mcp__apple-calendar__calendar-daily-brief and so
on), and two resources, calendar://today and calendar://upcoming, notify subscribed clients when the day changes.
Command line
How it works
- CalendarStore: the event model, EventKit, the bridge, repeat rules, free time, conflicts, statistics and iCalendar files.
- CalendarMCPKit: the tools, policies, approvals, undo and skills; CalendarMCPBar is the SwiftUI menu bar app (Liquid Glass on macOS 26).
Development
apple-calendar-mcp --demo serves a made-up week from memory, to try the tools without touching your calendars.
The screenshots come from the app's --demo --approval 3 --snapshot DIR.
Tests never touch your calendars: they run on MemoryBackend, which follows EventKit's rules for repeating
events and read-only calendars. Requires Xcode 26 (Swift 6.2) for the app; the server builds with Swift 6.1.
License
MIT © 2026 Mickael Palma. Not affiliated with Apple. Apple Calendar is a trademark of Apple Inc.
來源:README.md,提交 208560c
工具
0版本歷史
6- v0.4.1最新Oct 30, 2026
- v0.4.0Oct 29, 2026
- v0.3.0Oct 22, 2026
- v0.1.3Oct 21, 2026
- v0.1.2Oct 21, 2026
- v0.1.0Oct 21, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分