iCloud Calendar MCP
@kembec/ical-mcp · Model Context Protocol Server
Install
npm install -g @kembec/ical-mcp Generate an app-specific password at appleid.apple.com → Sign-In & Security. Your regular Apple ID password will not work.
A lightweight Model Context Protocol server for iCloud Calendar written in Rust. Communicates directly with Apple's CalDAV servers — no intermediary APIs, no cloud relay. Authenticate once with an app-specific password from appleid.apple.com, then give Claude, Cursor, or any MCP client full read/write access to your iCloud calendars through five focused tools. Ships as a single static binary: no JVM, no Python runtime, no native build step.
What you can do
Read and search events across iCloud calendars from Claude
Create timed or all-day events with description and location
Update or delete events by UID without opening Calendar.app
Lightweight alternative for Apple ecosystem users
Requirements
- An active iCloud account
- App-specific password generated at appleid.apple.com → Sign-In & Security
Configuration
{
"mcpServers": {
"ical": {
"command": "npx",
"args": ["-y", "@kembec/ical-mcp"],
"env": {
"ICLOUD_USERNAME": "you@icloud.com",
"ICLOUD_PASSWORD": "xxxx-xxxx-xxxx-xxxx"
}
}
}
}
[mcp_servers.ical]
command = "npx"
args = ["-y", "@kembec/ical-mcp"]
enabled = true
[mcp_servers.ical.env]
ICLOUD_USERNAME = "you@icloud.com"
ICLOUD_PASSWORD = "xxxx-xxxx-xxxx-xxxx"
Tools 5
list-calendars List every calendar in the iCloud account
get-events Get events in a calendar for a date range (YYYY-MM-DD format)
create-event Create a timed or all-day event with optional description and location
update-event Update an existing event by UID or URL
delete-event Delete an event by UID or URL