安裝
"command": "npx",
"args": [
"caldav-mcp"
],適合誰
- 已經有 CalDAV 伺服器帳號(自建或由服務商提供),想讓 AI 助理直接檢視和管理日曆的人。官方對它的定位是把日曆操作變成 AI 助理可用的工具。
- 涵蓋的操作包括:連線 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,只提供要修改的欄位;官方對它的說明是「更新現有的日曆事件,只會變更有提供的欄位」。可期待的結果:只有你提供的欄位被更新,其餘欄位保持不變。確認點:這是遠端寫入操作,改動直接落到 CalDAV 伺服器,執行前務必核對目標事件與待改欄位。
使用邊界
- 讀寫性質:能力同時包含讀取(列出日曆、依時間段列出事件)與寫入(建立、更新、依 UID 刪除事件),工具直接作用於線上日曆。刪除依 UID 進行,官方未說明刪除後能否復原,也沒有提供撤銷路徑,請在確認環節格外嚴格。
- 憑證要求:伺服器位址、使用者名稱、密碼必須經環境變數提供;官方文件未說明是否支援 OAuth、應用程式專用密碼等替代認證,未確認。
- 副作用與確認點:寫入操作會真的修改伺服器上的日曆;update-event 只改提供的欄位,未提及的欄位不受影響。
- 其他未確認:支援的 CalDAV 伺服器軟體清單、速率或併發限制,官方均未說明。「未說明」只代表文件範圍,不構成任何安全結論。