Skip to main content
Glama
adamzaidi

icloud-mcp

by adamzaidi

create_event

Add new events to iCloud calendars with details like title, time, location, and recurrence rules. Supports both timed and all-day events across multiple calendars.

Instructions

Create a new event in an iCloud calendar. For all-day events use allDay:true and YYYY-MM-DD for start/end.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
calendarIdYesCalendar ID to add the event to
summaryYesEvent title
startYesStart date/time — ISO 8601 (e.g. 2026-03-15T10:00:00) or YYYY-MM-DD for all-day
endNoEnd date/time — ISO 8601 or YYYY-MM-DD. Defaults to 1 hour after start.
timezoneNoIANA timezone (e.g. America/New_York). Use "UTC" or omit for UTC.
allDayNoTrue for all-day event (uses DATE values, no time)
descriptionNoEvent description / notes
locationNoEvent location
recurrenceNoiCal RRULE string (e.g. FREQ=WEEKLY;BYDAY=MO,WE,FR)
statusNoEvent status: CONFIRMED, TENTATIVE, or CANCELLED
reminderNoAlert this many minutes before the event (default 30, set to 0 to disable)

Implementation Reference

  • The `createEvent` function sends a PUT request to the CalDAV server to create a new event. It uses `serializeVEvent` to format the calendar data.
    export async function createEvent(calendarId, fields) {
      const { dataHost, calendarsPath } = await discover();
      const { ical, uid } = serializeVEvent(fields);
      const eventId = uid;
      const url = `${dataHost}${calendarsPath}${calendarId}/${eventId}.ics`;
    
      const resp = await davRequest('PUT', url, {
        contentType: 'text/calendar; charset=utf-8',
        body: ical,
      });
    
      if (resp.status !== 201 && resp.status !== 204 && resp.status !== 200) {
        throw new Error(`CalDAV PUT failed: ${resp.status} — ${resp.body.slice(0, 200)}`);
      }
    
      return { created: true, eventId, calendarId, etag: resp.etag };
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/adamzaidi/icloud-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server