Skip to navigation

Get Event

Beta

Gets an event by its UUID, or one date of a recurring event by its dated ID (<uuid>_<slot>). A dated ID returns the date as it currently stands, including any edit to it, with kind: instance.

The response’s etag (also the ETag header) is the value to send in If-Match to make an update, delete or response to this event or date conditional. Treat it as opaque.

Reads can trail a change made moments earlier by a few seconds; pass consistency=primary to read the latest state of an event or a date. A date that has already started or ended reads back as it ran, even if a later change to the series no longer produces it. Requires the calendar_event_read permission.

Calendar is in private beta in US production (api.agentmail.to). It is unavailable in EU production (api.agentmail.eu). Organizations without access receive a 403.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Path parameters

inbox_idstringRequired
The ID of the inbox.
event_idstringRequired

ID of a calendar event. A one-off or recurring event is addressed by its UUID. One date of a recurring event is addressed by a dated ID, <uuid>_<slot>: <uuid>_t20261015T090000 for a timed date (the original wall-clock start in the event's time zone) or <uuid>_d20261015 for an all-day date. Dated IDs are stable: moving a date keeps its original ID.

Query parameters

consistencyenumOptional

Read consistency. eventual (default) reads from the region that serves your request and may lag a write made moments earlier by up to a few seconds. primary reads from the primary region and always reflects every completed write.

Allowed values:

Response

This endpoint returns an object.
event_idstring

ID of a calendar event. A one-off or recurring event is addressed by its UUID. One date of a recurring event is addressed by a dated ID, <uuid>_<slot>: <uuid>_t20261015T090000 for a timed date (the original wall-clock start in the event's time zone) or <uuid>_d20261015 for an all-day date. Dated IDs are stable: moving a date keeps its original ID.

kindenum

What the event object represents.

  • single: a one-off event, addressed by its UUID.
  • series: the definition of a recurring event, addressed by its UUID. It carries recurrence; start and end describe its first date.
  • instance: one date of a recurring event, addressed by its dated ID. It carries series_id, original_start and is_exception.
Allowed values:
titlestring
Title of the event.
statusenum

Status of the event. A cancelled event or date stays readable but sends no calendar.event.starting or calendar.event.ending webhooks (cancelling a date that is already running still sends its calendar.event.ending). A date cancelled by deleting its dated ID is removed from the series instead, so reading it can return 404 or 410.

Allowed values:
all_dayboolean

Whether this is an all-day event.

startstring

Local start time in timezone. For all-day events, the first day.

endstring

Local end time in timezone. For all-day events, the last day (inclusive).

timezonestring

Canonical IANA time zone name, for example America/New_York, Europe/London or UTC. Abbreviations such as PST, Windows names such as Pacific Standard Time, and spellings that differ from the canonical name are rejected.

duration_modeenum

How the event's length is kept when a date crosses a daylight-saving change.

  • exact: the event lasts the same elapsed time. Default for one-off timed events.
  • nominal: the event keeps its wall-clock end time (a 09:00 to 10:00 meeting stays 09:00 to 10:00 local time). Default for recurring timed events.

All-day events are always nominal.

Allowed values:
duration_valueinteger

Length of the event, in milliseconds for timed events and in days for all-day events.

start_atdatetime

Start as a UTC instant. This is when calendar.event.starting is due.

end_atdatetime

End as a UTC instant. This is when calendar.event.ending is due.

attendee_countinteger
Number of attendees.
uidstring
iCalendar UID of the event. Invitations about this event carry the same UID.
sequenceinteger

iCalendar SEQUENCE number. It increases when a change to a one-off or series event affects what attendees see (time, status, title, description, location, recurrence or attendees). A change to a dated event increases it only when the change is sent with send_invites.

sourceenum

Where the event came from. api events were created through this API and the inbox is their organizer. email events were created from a calendar invitation (iMIP) received by the inbox; their organizer is the sender of the invitation.

Allowed values:
created_atdatetime

Time at which the event (or, for a date, the definition governing it) was created.

updated_atdatetime

Time at which the event (or, for a date, the definition governing it) was last updated.

series_idstringOptional

For instance events, the UUID of the series this date belongs to.

original_startstringOptional

For instance events, the date's start as the series rule generated it, before any edit.

original_start_atdatetimeOptional

For instance events, original_start as a UTC instant.

is_exceptionbooleanOptional

For instance events, true when this date was edited or moved, individually or by a mode=future change.

descriptionstringOptional
Description of the event. Omitted from agenda and instance list items.
locationstringOptional
Location of the event.
metadataanyOptional
Your own JSON value for the event, usually an object. Never sent to attendees. Omitted from agenda and instance list items.
recurrenceobjectOptional

For series events, the recurrence.

attendeeslist of objectsOptional

Attendees of the event. Omitted from agenda and instance list items; attendee_count is always present.

organizer_emailstringOptional

Email address of the organizer. For api events, the inbox.

origin_message_idstringOptional

For email events, the ID of the message whose invitation last created or updated the event.

resource_revisionintegerOptional

Present on single and series events, except agenda items and calendar.event.starting and calendar.event.ending payloads, which omit it.

etagstringOptional

The event's or date's current version, also sent as the ETag response header. Send it in If-Match to make an update, delete or response conditional. Present on Get, Create, Update, Delete and Respond responses; list items and webhooks omit it. Treat it as opaque: a dated event's etag ("occ-...") is not derived from resource_revision.

Errors

400
Validation Error
403
Forbidden Error
404
Not Found Error
410
Event Expired Error