
Apple Calendar
io.github.mgcrea由 GitHub 帳號 mgcrea 發布v1.37.1更新於 Nov 8, 2026
Search, read and act on Apple Calendar — ranges, free-time lookup, writes off by default
概覽
本機 macOS MCP 伺服器,讓助理搜尋與讀取 Apple 行事曆事件,建立、修改與刪除預設關閉。
- 可以做什麼
- 列出帳號與行事曆,並對本機行事曆資料庫執行診斷
- 依日期範圍列出與搜尋事件,並取得單一事件詳細資料
- 僅在明確開啟寫入後建立、修改與刪除事件
- 將讀寫限制在指定帳號與行事曆,並設定預設行事曆、範圍與時區
- 適用情境
- 適合讓助理根據 Mac 上使用者自己的 Apple 行事曆回答行程問題,例如尋找空檔或彙整近期事件;若刻意開啟寫入,也可管理事件。
- 執行需求
- 在 macOS 上透過 npx(Node.js)在本機執行,讀取行事曆 App 的 SQLite 資料庫,因此必須為啟動伺服器的程式(終端機、IDE、助理應用程式)授予完整磁碟存取權並重新啟動。寫入另需行事曆的自動化權限。透過環境變數設定,例如 APPLE_CALENDAR_ALLOW_WRITES、APPLE_CALENDAR_ACCOUNTS 與 APPLE_CALENDAR_CALENDARS。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Apple Calendar,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
@mgcrea/mcp-apple-calendar
Model Context Protocol server for the macOS Apple Calendar app.
Unofficial. Not affiliated with Apple. It reads the Calendar store already on your Mac.
One lane for reads, one for writes
- Index lane — read-only SQLite over
Calendar.sqlitedb. Every read goes through it. - Apple Events lane — writes only. There is no
jxa/read.tsin this package, and a test asserts there never will be.
This is the inverse of Notes. Notes shipped on Apple Events because search took 97 ms. Calendar
cannot: a ±90-day range query over 1,349 events takes 3,355 ms over Apple Events, whose is
worse and unstable, and every per-property bulk fetch costs ~1.8 s whichever property it is — so the
cost cannot be amortised the way Notes amortises a bulk fetch. The store opens read-only in 1 ms.
Calendar needs the file lane for speed, not capability.
It does not need EventKit, which is why the companion app stays a pure broker rather than linking a framework that would drag its own TCC prompt in.
Neither is granted to Calendar.app — it is the reader that needs permission. Grant Full Disk Access to whatever launches the server (Terminal, iTerm, VS Code, Claude), then restart it.
With writes off — the default — no Automation prompt appears at all. A read-only Calendar server needs exactly one permission.
Tools
Read: diagnostics, list_accounts, list_calendars, list_events, search_events, get_event.
Write, registered only when APPLE_CALENDAR_ALLOW_WRITES=1 — with the flag off they are
invisible to the model, not merely refused: create_event, update_event, delete_events.
Configuration
Notes that will bite you
~/Library/Calendarsdoes not exist. The store is~/Library/Group Containers/group.com.apple.calendar/Calendar.sqlitedb.- Recurrence lives in a cache table. A naive
SELECT ... FROM CalendarItemover a date range misses expanded repeats; the range query unions items carrying no recurrence rule with everything in the cache. 456 of 489 cached parents carry no rule of their own. - Dates are seconds since 2001, not 1970 —
CalendarItem.last_modifiedandorig_dateboth. - A floating time zone is not the system one. Anything matching
GMT±HHMMis a real zone; treating the rest as floating is what stops a two-hour silent shift. - Writes always go through Apple Events, never the store, which the app holds open and syncs.
Licence
MIT.
來源:packages/calendar/README.md,提交 2398a54
工具
0版本歷史
17- v1.37.0Nov 7, 2026
- v1.36.2Nov 4, 2026
- v1.36.1Nov 3, 2026
- v1.35.0Oct 30, 2026
- v1.34.0Oct 29, 2026
- v1.31.0Oct 26, 2026
- v1.30.0Oct 22, 2026
- v1.29.1Oct 21, 2026
- v1.28.0Oct 13, 2026
- v1.27.0Oct 13, 2026
- v1.26.0Oct 6, 2026
- v1.25.0Oct 3, 2026
- v1.24.1Sep 29, 2026
- v1.24.0Sep 27, 2026
- v1.23.0Sep 19, 2026
- v1.22.1Sep 16, 2026
- v1.21.1Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分