io.github.IceyWu/icloud-calendar

Official registry Productivity

Manage Apple iCloud Calendar through a reliable CalDAV MCP server.

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package icloud-calendar-mcp
Claude Code
claude mcp add icloud-calendar -e 'ICLOUD_USERNAME=<ICLOUD_USERNAME>' -e 'ICLOUD_APP_PASSWORD=<your icloud_app_password>' -- npx -y icloud-calendar-mcp@0.1.3
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "icloud-calendar": {
            "command": "npx",
            "args": [
                "-y",
                "icloud-calendar-mcp@0.1.3"
            ],
            "env": {
                "ICLOUD_USERNAME": "<ICLOUD_USERNAME>",
                "ICLOUD_APP_PASSWORD": "<your icloud_app_password>"
            }
        }
    }
}

Environment variables

  • ICLOUD_USERNAME required Apple Account email address
  • ICLOUD_APP_PASSWORD required secret Apple app-specific password (never the Apple Account password)

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. iCloud Calendar MCP
  2. Setup
  3. Tools
  4. Example requests
  5. Behavior
  6. HTTP
  7. Development
  8. License

iCloud Calendar MCP

An MCP server for managing iCloud Calendar.

English · 简体中文

Setup

Requirements:

Add the server to your MCP client:

{
  "mcpServers": {
    "icloud-calendar": {
      "command": "npx",
      "args": ["-y", "icloud-calendar-mcp"],
      "env": {
        "ICLOUD_USERNAME": "you@example.com",
        "ICLOUD_APP_PASSWORD": "xxxx-xxxx-xxxx-xxxx"
      }
    }
  }
}

Use an app-specific password, not your Apple Account password.

Tools

ToolPurpose
list_calendarsList calendars
list_eventsList events in a time range
get_eventGet an event
create_eventCreate an event
update_eventUpdate an event
delete_eventDelete an event
find_conflictsFind overlapping events
free_busyReturn busy time ranges

Events can include time zones, all-day dates, recurrence rules, alarms, locations, descriptions, URLs, and attendees.

Example requests

Once the server is connected, you can ask your MCP client:

Show my calendars.

What is on my calendar next week in Asia/Shanghai time?

Add a project review to my Work calendar tomorrow from 2:00 PM to 3:00 PM, with a reminder 15 minutes before.

Do I have any conflicts on Friday between 9:00 AM and noon?

Move the project review to 4:00 PM and change the location to Meeting Room B.

Add an all-day event called “Company holiday” on October 1.

Delete the project review event.

For ambiguous requests, include the calendar, date, time, and time zone when possible.

Behavior

  • All-day event end dates are exclusive. A one-day event on August 18 uses 2026-08-18 to 2026-08-19.
  • Create, update, and delete operations accept a request_id for safe retries.
  • Concurrent changes are detected with ETags.
  • Whole recurring series can be updated or deleted. Unsupported occurrence-level changes return an error instead of modifying the series.

See tool contracts for complete inputs, outputs, and error codes.

HTTP

stdio is the default transport. Streamable HTTP is optional:

ICLOUD_MCP_TRANSPORT=http \
ICLOUD_MCP_HTTP_TOKEN='replace-with-a-long-random-token' \
ICLOUD_MCP_HTTP_PORT=3000 \
npx -y icloud-calendar-mcp

HTTP mode requires a bearer token and listens on loopback by default. See security before exposing it through a proxy.

Development

pnpm install
pnpm check

See architecture, contributing, and releasing.

License

MIT

Frequently asked questions

What is io.github.IceyWu/icloud-calendar?

Manage Apple iCloud Calendar through a reliable CalDAV MCP server.

How do I install io.github.IceyWu/icloud-calendar?

It runs on your machine. In Claude Code: claude mcp add icloud-calendar -e 'ICLOUD_USERNAME=<ICLOUD_USERNAME>' -e 'ICLOUD_APP_PASSWORD=<your icloud_app_password>' -- npx -y icloud-calendar-mcp@0.1.3. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.IceyWu/icloud-calendar need an API key?

Yes. It expects ICLOUD_USERNAME, ICLOUD_APP_PASSWORD, which you set in its configuration.

Is io.github.IceyWu/icloud-calendar open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains io.github.IceyWu/icloud-calendar?

It is published by IceyWu. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.