Skip to main content
Creates an event with the authenticated user as organizer. When attendees are given, standard iMIP invitations go out to each of them; omit the field (or pass an empty array) to create a personal event — a block of your own time such as a focus block or a travel buffer — with no invitations sent. Pass recurrence to create a repeating series in the same call.

Parameters

string
required
Event title. 1–200 characters.
string
required
Start datetime, ISO 8601 with offset, e.g. 2026-07-14T10:00:00+02:00. For a series, the first occurrence.
string
required
End datetime, ISO 8601 with offset. Must be after start.
string[]
Up to 50 attendee email addresses. Each receives an invitation. Omit — or pass [] — for a personal event with no invitations.
string
default:"all"
all (default) sends invitations to the attendees; none writes the event without inviting anyone — useful when an invitation has already been sent out of band. Irrelevant without attendees.
string
A CalDAV URL from list_calendars. Defaults to the user’s default calendar.
string
Event description, up to 5,000 characters.
string
Event location, up to 500 characters.
string | object
Turns the event into a repeating series; omit for a one-off event. Two forms:Structured object:Raw RRULE string: a single-line iCalendar RRULE starting with FREQ=, up to 1,000 characters, e.g. FREQ=WEEKLY;BYDAY=TH or FREQ=DAILY;COUNT=10. Express UNTIL as a UTC date-time (UNTIL=20261231T000000Z). Raw rules are only lightly validated — malformed rules surface as server errors.

Example

Call
Result
A personal event needs nothing but a title and a time:
Call
Result
Keep the returned uid — it identifies the event for updates, deletion, and RSVPs. To invite people to an event created without attendees, pass addedAttendees to update_calendar_event later.

Errors

  • Event end must be after its start.
  • No calendar available to create the event in. — the user has no calendar and none was specified.
  • Calendar not found: <url> — the calendarUrl didn’t resolve.
  • Provide at most one of `until` or `count`, not both. — conflicting series bounds.