Skip Navigation Links

Calendar Events

Get eventsexperimental

Requires authentication via bearer.

Returns a paginated summary list of events for the authenticated user's calendar.

The user must be a participant of the returned events (either as organizer or invitee). Results can be filtered by time range and RSVP status, and are ordered by start date.

Time Range Filtering:

  • start_after and start_before filter by the event's start time: event.start >= start_after AND event.start <= start_before
  • end_after and end_before filter by the event's end time
  • All four parameters can be combined independently

Default Behavior:

  • If no filters are provided, all events for the user are returned
  • Default sort order is START_DATE_ASC

Query Params

start_after string

Filters events whose start time is at or after this value (inclusive).

start_before string

Filters events whose start time is at or before this value (inclusive). Can be combined with start_after to define a start-time window.

end_after string

Filters events whose end time is after this value.

end_before string

Filters events whose end time is before this value.

rsvp_status string[]

The participant's RSVP response to an event invitation:

  • ACCEPTED: The participant has accepted the invitation.
  • DECLINED: The participant has declined the invitation.
  • TENTATIVE: The participant has tentatively accepted but is not yet confirmed.
  • NEEDS_ACTION: The participant has not yet responded to the invitation.
order_by string

Sort options for the event list. Each option has ascending (_ASC) and descending (_DESC) variants:

  • START_DATE: Sort by the event's start date and time chronologically.
page_cursor string

A cursor pointing to the first item to be contained in the response array. Refer to our general "pagination" concept for more information.

page_limit integer

The maximum number of items to be contained in the response array. Refer to our general "pagination" concept for more information.

Response Body

200 OK

Create eventexperimental

Requires authentication via bearer.

Creates a new event, adds it to the current user's calendar, and sends invitations to other participants.

Organizer: The authenticated user is automatically added as a participant with ACCEPTED RSVP status. All other participants receive NEEDS_ACTION RSVP status and are sent invitation notifications.

Channel Participants: When a channel is specified in participants, all members of that channel are resolved and added as individual participants. Channels the actor does not have permission to assign to a calendar are silently skipped — no error is returned, but their members are not added.

Idempotency: The optional id field in the request body is a client-provided idempotency key. If an event with that ID already exists and the caller is the organizer, the existing event is returned without creating a duplicate. If the caller is not the organizer of the existing event, a 403 error is returned.

Language Detection: If a body is provided, the event's source language is detected asynchronously and stored on the event.

Request Body

id string

Optional client-provided idempotency key. If an event with this ID already exists and the caller is the organizer, the existing event is returned without creating a duplicate. If omitted, a new ID is generated automatically.

title stringrequired

The title of the event. Maximum 200 characters.

time_slot objectrequired

The time slot defining when the event starts and ends.

location string

Optional physical or virtual location for the event. Maximum 1000 characters.

body object

Optional rich-text body content for the event description.

participants object[]

Event participants. Max number of users allowed is 500 and max number of channels allowed is 10.

attachments object[]

a single attachment which shall be attached to an entity

show_participant_list boolean

If disabled, only the organizer will be able to see the list of users invited to an event.

Response Body

201 Created

Error Codes

  • INVALID_TIME_RANGE
  • PARTICIPANTS_USER_LIMIT_EXCEEDED
  • PARTICIPANTS_CHANNEL_LIMIT_EXCEEDED

Get events overviewexperimental

Requires authentication via bearer.

Returns counts of upcoming events for the authenticated user, grouped by time period.

Only events with an RSVP status other than DECLINED are counted (i.e. ACCEPTED, TENTATIVE, and NEEDS_ACTION). Events that have already ended are excluded.

The time_zone parameter is used to determine local day boundaries for "today" and "tomorrow".

Query Params

time_zone stringrequired

IANA time zone identifier used to determine local day boundaries for grouping events into "today" and "tomorrow" periods (e.g. Europe/Berlin, America/New_York).

Response Body

200 OK

Get single eventexperimental

Requires authentication via bearer.

Retrieves full details of a single calendar event by its ID.

The authenticated user must be a participant of the event (either as organizer or invitee).

Path Params

event_id stringrequired

Query Params

body_format string[]

restricts the returned formatted content to the specified formats

  • PLAIN: the plain content is returned.
  • DELTA: the content is returned in delta format
  • HTML: the content is returned in html format

Response Body

200 OK

Update eventexperimental

Requires authentication via bearer.

Partially updates a calendar event using JSON Merge Patch semantics (RFC 7396).

Only the event organizer can update the event. At least one field must be present in the request body.

Participant Notifications (participants_notification): Controls whether and how participants are notified after the update. Defaults to UPDATE_NOTIFICATION.

  • NO_NOTIFICATION: Saves changes silently — no notifications are sent and no real-time updates are dispatched.
  • UPDATE_NOTIFICATION: Sends an update notification to all participants.
  • RESET_NOTIFICATION: Resets all participants' RSVP status to NEEDS_ACTION (except the organizer's) and sends a re-invite notification, prompting them to respond again.

Cancellation: Setting status to CANCELLED triggers cancellation notifications to all participants. This is equivalent to deleting the event from participants' calendars.

Path Params

event_id stringrequired

Request Body

title string

The updated title of the event. Maximum 100 characters.

time_slot object

The updated time slot for the event.

location string

The updated location. Set to null to remove the location.

status string

The updated status of the event. Setting to CANCELLED sends cancellation notifications to all participants.

body object

The updated rich-text body content. Set to null to remove the body.

attachments object[]

a single attachment which shall be attached to an entity

show_participant_list boolean

Controls whether participants other than the organizer can see the participant list.

participants_notification string

Controls whether and how participants are notified about the update. Defaults to UPDATE_NOTIFICATION.

Response Body

200 OK