iCloud Calendar (CalDAV) MCP server
io.github.Glob0x17 · Updated
iCloud Calendar over CalDAV: list, create, update, move and delete events. Optional read-only mode.
At a glance
iCloud Calendar (CalDAV) is an MCP server in the Dev Tools & Git category. It runs locally over stdio via `uvx mcp-icloud-caldav`, and needs ICLOUD_USERNAME and ICLOUD_PASSWORD. It exposes 6 tools, including list_calendars, list_events and create_event. It scores B (73/100) on the MCP Skills Hub health score as of Oct 28, 2026.
One-click install
Opens your editor and pre-fills the config. Your editor will ask before adding it.
How to install iCloud Calendar (CalDAV) in your AI client
Setup for Claude Code, Claude Desktop, Cursor, Codex, Windsurf, Cline and VS Code — copy-paste ready.
How to install iCloud Calendar (CalDAV) in Claude CodeAnthropic's agentic CLI
Add the server
bashclaude mcp add mcp-icloud-caldav -e 'ICLOUD_USERNAME=<ICLOUD_USERNAME>' -e 'ICLOUD_PASSWORD=<ICLOUD_PASSWORD>' -- uvx mcp-icloud-caldavFill in your credentials
Replace <ICLOUD_USERNAME>, <ICLOUD_PASSWORD> with your real values. Keep secrets out of any config file you commit.
Verify it's connected
bashclaude mcp listSharing it with your team?
Add `--scope project` to write it to .mcp.json in the repository root, which you can commit (with the secrets left as environment variables).
Use it in a session
Ask Claude to use the tools this server exposes (e.g. list_calendars, list_events, create_event). It discovers them automatically.
How to install iCloud Calendar (CalDAV) in Claude DesktopDesktop app (MCP config)
Open your MCP config
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json
Add this server
json{ "mcpServers": { "mcp-icloud-caldav": { "command": "uvx", "args": [ "mcp-icloud-caldav" ], "env": { "ICLOUD_USERNAME": "<ICLOUD_USERNAME>", "ICLOUD_PASSWORD": "<ICLOUD_PASSWORD>" } } } }Fill in your credentials
Replace <ICLOUD_USERNAME>, <ICLOUD_PASSWORD> with your real values. Keep secrets out of any config file you commit.
Restart Claude Desktop
The tools appear under the 🔌 menu once the app reloads.
How to install iCloud Calendar (CalDAV) in CursorAI-first code editor
Create / edit .cursor/mcp.json in your project
json{ "mcpServers": { "mcp-icloud-caldav": { "command": "uvx", "args": [ "mcp-icloud-caldav" ], "env": { "ICLOUD_USERNAME": "<ICLOUD_USERNAME>", "ICLOUD_PASSWORD": "<ICLOUD_PASSWORD>" } } } }Fill in your credentials
Replace <ICLOUD_USERNAME>, <ICLOUD_PASSWORD> with your real values. Keep secrets out of any config file you commit.
Enable it
Cursor Settings → MCP → toggle the server on. Tools become available to the Composer/Agent.
How to install iCloud Calendar (CalDAV) in Codex CLIOpenAI coding agent
Add to ~/.codex/config.toml
toml[mcp_servers.mcp-icloud-caldav] command = "uvx" args = ["mcp-icloud-caldav"] env = { ICLOUD_USERNAME = "<ICLOUD_USERNAME>", ICLOUD_PASSWORD = "<ICLOUD_PASSWORD>" }Fill in your credentials
Replace <ICLOUD_USERNAME>, <ICLOUD_PASSWORD> with your real values. Keep secrets out of any config file you commit.
Run Codex
Codex loads MCP servers from config.toml on startup and exposes their tools to the agent.
How to install iCloud Calendar (CalDAV) in WindsurfCodeium's agentic IDE
Edit ~/.codeium/windsurf/mcp_config.json
json{ "mcpServers": { "mcp-icloud-caldav": { "command": "uvx", "args": [ "mcp-icloud-caldav" ], "env": { "ICLOUD_USERNAME": "<ICLOUD_USERNAME>", "ICLOUD_PASSWORD": "<ICLOUD_PASSWORD>" } } } }Fill in your credentials
Replace <ICLOUD_USERNAME>, <ICLOUD_PASSWORD> with your real values. Keep secrets out of any config file you commit.
Reload
Windsurf → Cascade → refresh MCP servers. Cascade can now call the tools.
How to install iCloud Calendar (CalDAV) in ClineVS Code autonomous agent
Open Cline → MCP Servers → Configure
Adds to cline_mcp_settings.json.
Add the server
json{ "mcpServers": { "mcp-icloud-caldav": { "command": "uvx", "args": [ "mcp-icloud-caldav" ], "env": { "ICLOUD_USERNAME": "<ICLOUD_USERNAME>", "ICLOUD_PASSWORD": "<ICLOUD_PASSWORD>" } } } }Fill in your credentials
Replace <ICLOUD_USERNAME>, <ICLOUD_PASSWORD> with your real values. Keep secrets out of any config file you commit.
How to install iCloud Calendar (CalDAV) in VS CodeCopilot / MCP support
Create .vscode/mcp.json
json{ "servers": { "mcp-icloud-caldav": { "type": "stdio", "command": "uvx", "args": [ "mcp-icloud-caldav" ], "env": { "ICLOUD_USERNAME": "<ICLOUD_USERNAME>", "ICLOUD_PASSWORD": "<ICLOUD_PASSWORD>" } } } }Fill in your credentials
Replace <ICLOUD_USERNAME>, <ICLOUD_PASSWORD> with your real values. Keep secrets out of any config file you commit.
Start it
VS Code shows a ▶ Start action above the server entry. Agent mode (Copilot Chat) can then use the tools.
What does iCloud Calendar (CalDAV) need from you?
API key — App-specific password from appleid.apple.com (not the Apple ID password)
ICLOUD_USERNAMErequiredEnvironment variableApple ID email address
ICLOUD_PASSWORDrequiredsecretEnvironment variableApp-specific password from appleid.apple.com (not the Apple ID password)
MCP_ICAL_READ_ONLYoptionalEnvironment variableSet to true to leave out the create, update and delete tools
MCP_ICAL_LOG_LEVELoptionalEnvironment variableLog level on stderr: TRACE, DEBUG, INFO, WARNING or ERROR
Pass secrets through your shell environment rather than committing them into a config file.
What tools does iCloud Calendar (CalDAV) expose? (6)
Taken from the project's README — the server itself was not queried, so check its docs for the exact schemas.
- list_calendarsNames of the available calendars
- list_eventsEvents in a date range, optionally for one calendar, sorted by start time
- create_eventNew event: title, times, all-day, location, notes, URL, alarms, recurrence
- update_eventChange any of those fields, or move the event to another calendar
- delete_eventDelete an event by identifier
- debug_calendar_connectionConnection check: calendars and event counts over the last 7 days
What the code can do
Source analysis currently covers npm packages only. This server ships as a Python package, which needs a different parser.
Before you install
Signals gathered from the source repo and package registry — not a safety verdict.
What it can reach
- Runs code on your machine — Executes as a local process with your user's permissions, including filesystem access.
- Downloads at launch — The package is fetched from its registry each run unless you pin a version.
- Last commit 17 days ago — Actively maintained.
- Repository created 17 days ago — Very new project with little track record yet.
- Fork of another repository — Check whether the upstream project is the one you actually want.
- 0 GitHub stars — Very little community usage so far.
Client compatibility
Health score
B · 73Maintenance, adoption, transparency and packaging — not a safety audit. How this is calculated
- Maintenance30%100%
Last commit 17 days ago.
- Adoption20%0%
0 stars.
- Transparency20%100%
4/4: ✓ public source repo, ✓ declared license, ✓ documentation, ✓ discoverable tool list.
- Provenance15%50%
Repository is a fork.
- Packaging15%100%
Publishes a pinned version (0.2.1).
Documentation
Full READMEiCloud Calendar MCP Server
A Model Context Protocol server that gives MCP clients access to iCloud Calendar over CalDAV: list calendars, read, create, update, move and delete events. It works on Linux, macOS and Windows, since it talks to iCloud directly instead of going through the macOS Calendar app.
This is a maintained fork of zwrong/iCalendar, itself derived from the macOS mcp-ical server. See Changes in this fork.
Tools
| Tool | Description | |---|---| | list_calendars | Names of the available calendars | | list_events | Events in a date range, optionally for one calendar, sorted by start time | | create_event | New event: title, times, all-day, location, notes, URL, alarms, recurrence | | update_event | Change any of those fields, or move the event to another calendar | | delete_event | Delete an event by identifier | | debug_calendar_connection | Connection check: calendars and event counts over the last 7 days |
The calendars://list resource also lists the calendars. With MCP_ICAL_READ_ONLY=true, the three write tools are not registered at all.
Requirements
- Python 3.12 or later and uv
- An Apple ID with iCloud Calendar enabled
- An app-specific password for that Apple ID
App-specific password
- Sign in to appleid.apple.com, open Sign-In and Security, then
App-Specific Passwords.
- Generate a password, for example named
mcp-icloud-caldav.
The username is your Apple ID address, which is not necessarily an @icloud.com address. An app-specific password gives access to iCloud CalDAV, CardDAV and IMAP: keep it out of version control and revoke it if it leaks.
Installation
Excerpt — the full document is on GitHub.
Alternatives to iCloud Calendar (CalDAV)
- icloud-calendarA · 84Manage Apple iCloud Calendar through a reliable CalDAV MCP server.
- CalendarMCPB · 71Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
- Calendar Agent by Nova (CIVAI)D · 33I do everything related to calendar scheduling
- Mailoo - Email MCP ServerA · 80Email MCP server for AI agents: IMAP/SMTP, Gmail, Outlook, calendar, ManageSieve, AI triage, OAuth2.
Maintain iCloud Calendar (CalDAV)? Add a badge to your README
Shows its health grade, and links readers to install steps for every client.
[](https://mcp-skills-hub.vercel.app/mcps/io-github-glob0x17-mcp-icloud-caldav)Catalog data refreshed . Something wrong? Report it.