Icloud Calendar

io.github.IceyWuPublished by GitHub account IceyWuv0.1.3Updated Oct 24, 2026

Manage Apple iCloud Calendar through a reliable CalDAV MCP server.

VerifiedSTDIODesktop onlyProductivity & Workflow

Overview

AI-generated overview

An MCP server that manages Apple iCloud Calendar over CalDAV, letting an assistant list, create, update and delete events.

What you can do
List calendars and query events in a time range or fetch a single event's details. Create, update and delete events with time zones, all-day dates, recurrence rules, alarms, locations, descriptions, URLs and attendees. Find overlapping events and return busy time ranges to help schedule meetings. Create, update and delete accept a request_id for safe retries, and concurrent changes are detected with ETags.
When to use it
For people who want an AI assistant to read and maintain their Apple iCloud Calendar directly, such as checking schedules, scheduling meetings, finding conflicts, or adjusting events. It runs locally and is desktop only.
Requirements
Runs locally with Node.js 22.13 or later, started via npx as icloud-calendar-mcp. Needs an Apple Account email (ICLOUD_USERNAME) and an Apple app-specific password (ICLOUD_APP_PASSWORD). stdio is the default transport; an optional HTTP mode requires a bearer token.
Before you install
Requires Apple Account credentials; use an app-specific password, never the Apple Account password, and keep ICLOUD_APP_PASSWORD safe. The server can create, update and delete calendar events, so mistakes can change or remove real appointments. Recurring events support whole-series changes only, not single-occurrence edits. If HTTP mode is enabled, set a long random token and review security before exposing it through a proxy.

Installation

In SourceWeft

  1. Open Icloud Calendar in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[iCloud Calendar MCP logo]

iCloud Calendar MCP

An MCP server for managing iCloud Calendar.

English · 简体中文

[npm version] [npm downloads] [CI status] [Node.js version] [MIT license]

Setup

Requirements:

Add the server to your MCP client:

json
{  "mcpServers": {    "icloud-calendar": {      "command": "npx",      "args": ["-y", "icloud-calendar-mcp"],      "env": {        "ICLOUD_USERNAME": "[email protected]",        "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:

bash
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

bash
pnpm installpnpm check

See architecture, contributing, and releasing.

License

MIT

Source: README.md at commit 06dc175

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.3LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts