Skip to content
Elaichi Elaichi

scheduling

Apple Calendar

Connect Apple Calendar to Elaichi and hand every teammate a governed MCP endpoint — 13 tools ready to call from Claude, Cursor, or any MCP client, clamped by roles, restrictions, and an audit log.

Apple Calendar

AI tools

Apple Calendar tools for your AI agents

13 tools are ready to mint as an MCP endpoint the moment you connect Apple Calendar — governed by the same roles, restrictions, and audit log as everything else in Elaichi.

get_single_apple_calendar_principal_by_id

Discover the current-user-principal for the authenticated Apple Calendar user via CalDAV PROPFIND on the root resource. Returns a CalDAV 207 Multi-Status XML document containing the user's principal path (e.g., /200385701/principal/). Use the principal path with calendar_home.get to discover the partition host and calendar home URL.

get_single_apple_calendar_calendar_home_by_id

Discover the calendar-home-set URL for a principal via CalDAV PROPFIND. Returns a CalDAV 207 Multi-Status XML document containing the calendar home URL on the account's partition host (e.g., https://p34-caldav.icloud.com:443/200385701/calendars/). All subsequent calendar and event requests must use that partition host as base_url. Required: principal_path (from principals.get). Send XML body: .

list_all_apple_calendar_calendars

List all Apple Calendar calendars for a user via CalDAV PROPFIND. Returns: displayname, calendar_color, resourcetype, supported_calendar_component_set, current_user_privilege_set, getctag, sync_token. Required: user_id.

get_single_apple_calendar_calendar_by_id

Get a single Apple Calendar calendar by id via CalDAV PROPFIND. Returns: displayname, calendar_color, resourcetype, supported_calendar_component_set, current_user_privilege_set, getctag, sync_token. Required: user_id, id.

create_a_apple_calendar_calendar

Create a new Apple Calendar calendar via CalDAV MKCALENDAR. The calendar_id should be a newly generated UUID. Returns an empty 201 response on success. Required: user_id, calendar_id.

update_a_apple_calendar_calendar_by_id

Update Apple Calendar calendar properties such as displayname, calendar_color, description, or timezone via CalDAV PROPPATCH. Returns: displayname, calendar_color, resourcetype, supported_calendar_component_set, current_user_privilege_set, getctag, sync_token. Required: user_id, id.

delete_a_apple_calendar_calendar_by_id

Delete an Apple Calendar calendar and all its events. Returns an empty 204 response on success. Required: user_id, id. This operation is irreversible.

apple_calendar_calendars_search

Run a CalDAV REPORT against a calendar collection on Apple Calendar / iCloud. The XML request body selects the report type: calendar-query (RFC 4791) to filter/list VEVENTs, calendar-multiget to fetch specific event hrefs, sync-collection (RFC 6578) for incremental sync (iCloud has no webhooks — poll this report), or free-busy-query (RFC 6638) for VFREEBUSY data. All report types use HTTP REPORT on the same calendar collection URL; only the XML body differs. Returns 207 Multi-Status XML. Required: user_id, id (calendar collection id).

create_a_apple_calendar_event

Create a new Apple Calendar event by uploading a full iCalendar VCALENDAR via HTTP PUT. event_id must be a new UUID without the .ics suffix (the .ics extension is appended to the URL automatically). Request body is raw text/calendar content. If-None-Match: * is sent automatically. Required: user_id, calendar_id, event_id.

get_single_apple_calendar_event_by_id

Fetch a single Apple Calendar event as an iCalendar (.ics) resource via HTTP GET. The id is the event resource filename including the .ics suffix (e.g., 603275E4-6A47-4EFA-BAEF-CCD33A314C30.ics). Returns text/calendar with an ETag header for conditional updates. Required: user_id, calendar_id, id.

update_a_apple_calendar_event_by_id

Update an existing Apple Calendar event by replacing the entire iCalendar VCALENDAR via HTTP PUT. iCloud does not support PATCH — GET the event first, modify VEVENT properties, then PUT the complete VCALENDAR back as raw text/calendar. Use If-Match with the event ETag for safe conditional updates. Required: user_id, calendar_id, id (filename including .ics suffix).

delete_a_apple_calendar_event_by_id

Delete an Apple Calendar event via HTTP DELETE on its .ics resource URL. Use If-Match with the event ETag for safe conditional deletion. Required: user_id, calendar_id, id (filename including .ics suffix).

get_single_apple_calendar_server_by_id

Probe Apple Calendar (iCloud) CalDAV server capabilities via HTTP OPTIONS on the root URL. Returns response headers such as DAV, Allow, and supported feature classes (calendar-access, calendar-schedule, sync-collection). Use during discovery before PROPFIND; does not return user or calendar data.

How it works

From Apple Calendar account to governed MCP endpoint

Connect

Link a Apple Calendar account through Elaichi's hosted connect flow. Credentials are vaulted — nobody, including the AI, ever sees them.

Compose

The connection becomes a toolbox instantly. Curate which Apple Calendar tools are exposed, rename them, or freeze arguments.

Mint

Mint a personal MCP endpoint on that toolbox and paste it into Claude, Cursor, or any MCP client — governed by roles, restrictions, and audit logs.

Give every teammate a governed MCP server

Start a 14-day Gold trial — connect a product, curate a toolbox, and paste an endpoint into Claude or Cursor in minutes.