API

Calendar

Calendars, events, invitations and iCalendar import and export for the mailboxes you belong to.

These routes act only on mailboxes the signed-in person is a member of; keys get no mailboxes. Times in requests are wall-clock times in the event's timeZone; times in responses are UTC milliseconds, with the event's own wall-clock times alongside. See Calendar.

Every route below, with its parameters, request and response, errors and samples, is in the API reference.

RouteWhat it does
GET /v1/orgs/:orgId/mail/mailboxes/:mailboxId/availabilityFree/busy of other mailboxes in the organization (times and busy status only, no titles), for scheduling. Addresses outside the organization come back as unknown.
POST /v1/orgs/:orgId/mail/mailboxes/:mailboxId/threads/:threadId/messages/:messageId/invitation/:actionActs on the event a message carries: add puts a published or forwarded event in a calendar, refresh sends a guest who asked the latest version, counter accepts or declines a guest's proposed new time (the organizer only).
GET /v1/orgs/:orgId/mail/calendar/mineThe caller's own events across the mailboxes they're a member of (at most 62 days), read-only: what other apps show next to their own dates (the Tasks calendar's "My calendar"). Cancelled events and free time are left out.
GET /v1/orgs/:orgId/mail/mailboxes/:mailboxId/calendarsThe mailbox's calendars, default first. The default calendar is created on first use.
POST /v1/orgs/:orgId/mail/mailboxes/:mailboxId/calendarsCreates a calendar (at most 50 per mailbox).
PATCH /v1/orgs/:orgId/mail/mailboxes/:mailboxId/calendars/:calendarIdRenames a calendar or changes its color or description.
DELETE /v1/orgs/:orgId/mail/mailboxes/:mailboxId/calendars/:calendarIdDeletes a calendar and its events. The default calendar can't be deleted.
GET /v1/orgs/:orgId/mail/mailboxes/:mailboxId/eventsOccurrences between from and to (UTC milliseconds, at most 400 days apart) across the mailbox's calendars, or those in calendarId (comma-separated), with recurring events expanded in their own time zone.
GET /v1/orgs/:orgId/mail/mailboxes/:mailboxId/events/searchOccurrences whose title or location has every word of q (case and accents ignored), from a year back to two years ahead: upcoming first (soonest first), then earlier ones (latest first), one per event series, at most 50.
POST /v1/orgs/:orgId/mail/mailboxes/:mailboxId/calendars/:calendarId/eventsCreates an event. Times are wall-clock times in timeZone; all-day events take dates with an exclusive end. With attendees, the mailbox is the organizer and, unless notify is false, attendees are emailed an invitation.
GET /v1/orgs/:orgId/mail/mailboxes/:mailboxId/calendars/:calendarId/events/:eventIdAn event with its recurrence, attendees, answers and changed occurrences.
PUT /v1/orgs/:orgId/mail/mailboxes/:mailboxId/calendars/:calendarId/events/:eventIdUpdates an event, or with recurrenceId one occurrence of it. Changing a series' time or repeat rule drops its changed occurrences and asks attendees again. Attendees get the update; removed attendees get a cancellation. moveTo moves the event to another calendar.
DELETE /v1/orgs/:orgId/mail/mailboxes/:mailboxId/calendars/:calendarId/events/:eventIdDeletes an event, or with recurrenceId one occurrence. Attendees of an event the mailbox organizes get a cancellation unless notify=false.
POST /v1/orgs/:orgId/mail/mailboxes/:mailboxId/calendars/:calendarId/events/:eventId/respondAccepts, tentatively accepts or declines an invitation (or one occurrence) and, unless notify is false, emails the answer to the organizer.
POST /v1/orgs/:orgId/mail/mailboxes/:mailboxId/calendars/:calendarId/events/:eventId/delegateHands this mailbox's invitation to someone else (they're invited, the organizer is told).
POST /v1/orgs/:orgId/mail/mailboxes/:mailboxId/calendars/:calendarId/events/:eventId/proposeProposes a new time to the organizer (COUNTER); nothing changes until they answer.
POST /v1/orgs/:orgId/mail/mailboxes/:mailboxId/calendars/:calendarId/importAdds the events in an iCalendar file; events whose UID is already in the calendar are replaced. Floating times are read in timeZone.
GET /v1/orgs/:orgId/mail/mailboxes/:mailboxId/calendars/:calendarId/exportThe calendar as an iCalendar file.