Purple Calendar API Documentation
Machine-readable OpenAPI 3.0 specification: https://marketplace.moveworks.com/api/purple-suite/calendar/openapi.json
The consolidated all-apps document at https://marketplace.moveworks.com/api/purple-suite/openapi.json can be narrowed to this app with ?apps=calendar, or combined with other apps comma-separated (e.g. ?apps=calendar,itsm).
Overview
Endpoints
GET /api/purple-suite/calendar/events
List Purple Calendar events
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
$top | query | integer | no | Number of items to return |
$skip | query | integer | no | Number of items to skip |
limit | query | integer | no | Alias for $top — max items per page (default 50) |
Responses
200- Paginated list of events
application/jsonvaluearrayarray of:
EventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
@odata.nextLinkstring — OData next-page link, absent on the last page
POST /api/purple-suite/calendar/events
Schedule a calendar event
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes |
Request body
application/json — required
Event
idstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
Responses
201- Created
application/jsonEventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
GET /api/purple-suite/calendar/events/{id}
Get event
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Responses
200- Found
application/jsonEventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
404- Not found
DELETE /api/purple-suite/calendar/events/{id}
Delete a calendar event
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Responses
204- No content
404- Not found
PATCH /api/purple-suite/calendar/events/{id}
Update a calendar event
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Request body
application/json — required
Event
idstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
Responses
200- Updated
application/jsonEventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
404- Not found
POST /api/purple-suite/calendar/users/{email}/events/{id}/accept
Accept event invitation
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
id | path | string | yes |
Request body
application/json
commentstringsendResponseboolean
Responses
202- Accepted
404- Not found
POST /api/purple-suite/calendar/users/{email}/events/{id}/decline
Decline event invitation
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
id | path | string | yes |
Request body
application/json
commentstringsendResponsebooleanproposedNewTimeobject
Responses
202- Accepted
404- Not found
POST /api/purple-suite/calendar/users/{email}/events/{id}/tentativelyAccept
Tentatively accept event invitation
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
id | path | string | yes |
Request body
application/json
commentstringsendResponsebooleanproposedNewTimeobject
Responses
202- Accepted
404- Not found
POST /api/purple-suite/calendar/events/{id}/cancel
Cancel event (bare path alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Request body
application/json
commentstring — Cancellation message
Responses
202- Accepted
404- Not found
POST /api/purple-suite/calendar/users/{email}/events/{id}/cancel
Cancel event (user-scoped path)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
id | path | string | yes |
Request body
application/json
commentstring — Cancellation message
Responses
202- Accepted
404- Not found
GET /api/purple-suite/calendar/events/{id}/instances
List occurrences of an event series (bare path alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes | |
startDateTime | query | string | yes | |
endDateTime | query | string | yes |
Responses
200- Occurrences in range
application/jsonvaluearrayarray of:
EventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
400- startDateTime and endDateTime are required
404- Not found
GET /api/purple-suite/calendar/users/{email}/events/{id}/instances
List occurrences of an event series (user-scoped path)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
id | path | string | yes | |
startDateTime | query | string | yes | |
endDateTime | query | string | yes |
Responses
200- Occurrences in range
application/jsonvaluearrayarray of:
EventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
400- startDateTime and endDateTime are required
404- Not found
POST /api/purple-suite/calendar/findMeetingTimes
Find meeting time suggestions (bare path)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
Prefer | header | string | no | Optional response timezone override, e.g. `outlook.timezone="Pacific Standard Time"` |
Request body
application/json — required
attendeesarrayarray of:
emailAddressobjectEmailAddressnamestringaddressstring
typestring
timeConstraintobjectactivityDomainstringtimeSlotsarrayarray of:
startobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
meetingDurationstring — ISO 8601 duration, e.g. PT1H, PT30MmaxCandidatesintegerminimumAttendeePercentagenumberisOrganizerOptionalbooleanreturnSuggestionReasonsboolean
Responses
200- Meeting time suggestions
application/jsonemptySuggestionsReasonstringmeetingTimeSuggestionsarrayarray of:
confidencenumberorderintegerorganizerAvailabilitystringsuggestionReasonstringattendeeAvailabilityarrayarray of:
attendeeobjectavailabilitystring
locationsarrayarray of:
object
meetingTimeSlotobjectstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
POST /api/purple-suite/calendar/users/{email}/findMeetingTimes
Find meeting time suggestions (user-scoped path)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
Prefer | header | string | no | Optional response timezone override, e.g. `outlook.timezone="Pacific Standard Time"` |
Request body
application/json — required
attendeesarrayarray of:
emailAddressobjectEmailAddressnamestringaddressstring
typestring
timeConstraintobjectactivityDomainstringtimeSlotsarrayarray of:
startobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
meetingDurationstring — ISO 8601 duration, e.g. PT1H, PT30MmaxCandidatesintegerminimumAttendeePercentagenumberisOrganizerOptionalbooleanreturnSuggestionReasonsboolean
Responses
200- Meeting time suggestions
application/jsonemptySuggestionsReasonstringmeetingTimeSuggestionsarrayarray of:
confidencenumberorderintegerorganizerAvailabilitystringsuggestionReasonstringattendeeAvailabilityarrayarray of:
attendeeobjectavailabilitystring
locationsarrayarray of:
object
meetingTimeSlotobjectstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
GET /api/purple-suite/calendar/calendarView
Get calendar view — all events in time range
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
startDateTime | query | string | yes | |
endDateTime | query | string | yes | |
$top | query | integer | no | Number of items to return |
$skip | query | integer | no | Number of items to skip |
limit | query | integer | no | Alias for $top — max items per page (default 50) |
Responses
200- Events in range
application/jsonvaluearrayarray of:
EventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
@odata.nextLinkstring — OData next-page link, absent on the last page
400- startDateTime and endDateTime are required
GET /api/purple-suite/calendar/users/{email}/calendarView
Get calendar view for a specific user (events in time range)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
startDateTime | query | string | yes | |
endDateTime | query | string | yes |
Responses
200- User events in range
application/jsonvaluearrayarray of:
EventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
400- startDateTime and endDateTime are required
GET /api/purple-suite/calendar/users/{email}/events
List all events for a specific user
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
$top | query | integer | no | Number of items to return |
$skip | query | integer | no | Number of items to skip |
limit | query | integer | no | Alias for $top — max items per page (default 50) |
Responses
200- User events
application/jsonvaluearrayarray of:
EventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
@odata.nextLinkstring — OData next-page link, absent on the last page
POST /api/purple-suite/calendar/users/{email}/events
Create event (user-scoped path)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
Request body
application/json — required
Event
idstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
Responses
201- Created
application/jsonEventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
GET /api/purple-suite/calendar/users/{email}/events/{id}
Get event (user-scoped path)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
id | path | string | yes |
Responses
200- Found
application/jsonEventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
404- Not found
DELETE /api/purple-suite/calendar/users/{email}/events/{id}
Delete event (user-scoped path)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
id | path | string | yes |
Responses
204- No content
404- Not found
PATCH /api/purple-suite/calendar/users/{email}/events/{id}
Update event (user-scoped path)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
id | path | string | yes |
Request body
application/json — required
Event
idstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
Responses
200- Updated
application/jsonEventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
404- Not found
GET /api/purple-suite/calendar/users/{email}/calendars
List all calendars (user-scoped alias — returns all instance calendars)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
$top | query | integer | no | Number of items to return |
$skip | query | integer | no | Number of items to skip |
limit | query | integer | no | Alias for $top — max items per page (default 50) |
Responses
200- Collection of calendars
application/jsonvaluearrayarray of:
CalendaridstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
@odata.nextLinkstring — OData next-page link, absent on the last page
POST /api/purple-suite/calendar/users/{email}/calendars
Create calendar (user-scoped path)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
Request body
application/json — required
Calendar
idstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
Responses
201- Created
application/jsonCalendaridstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
GET /api/purple-suite/calendar/users/{email}/calendars/{id}
Get calendar (user-scoped path)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
id | path | string | yes |
Responses
200- Found
application/jsonCalendaridstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
404- Not found
DELETE /api/purple-suite/calendar/users/{email}/calendars/{id}
Delete calendar (user-scoped path)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
id | path | string | yes |
Responses
204- No content
404- Not found
PATCH /api/purple-suite/calendar/users/{email}/calendars/{id}
Update calendar (user-scoped path)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
id | path | string | yes |
Request body
application/json — required
Calendar
idstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
Responses
200- Updated
application/jsonCalendaridstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
404- Not found
GET /api/purple-suite/calendar/users/{email}/calendars/{id}/events
List events for a specific calendar (user-scoped path)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
id | path | string | yes | Calendar id |
startDateTime | query | string | no | |
endDateTime | query | string | no |
Responses
200- Events for the calendar
application/jsonvaluearrayarray of:
EventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
404- Calendar not found
POST /api/purple-suite/calendar/users/{email}/calendars/{id}/events
Create event in a specific calendar (user-scoped path)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
id | path | string | yes | Calendar id |
Request body
application/json — required
Event
idstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
Responses
201- Created event
application/jsonEventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
404- Calendar not found
GET /api/purple-suite/calendar/calendars
List Purple Calendar calendars
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
$top | query | integer | no | Number of items to return |
$skip | query | integer | no | Number of items to skip |
limit | query | integer | no | Alias for $top — max items per page (default 50) |
Responses
200- Paginated list of calendars
application/jsonvaluearrayarray of:
CalendaridstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
@odata.nextLinkstring — OData next-page link, absent on the last page
POST /api/purple-suite/calendar/calendars
Create calendar
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes |
Request body
application/json — required
Calendar
idstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
Responses
201- Created
application/jsonCalendaridstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
GET /api/purple-suite/calendar/calendars/{id}
Get calendar
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Responses
200- Found
application/jsonCalendaridstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
404- Not found
DELETE /api/purple-suite/calendar/calendars/{id}
Delete calendar
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Responses
204- No content
404- Not found
PATCH /api/purple-suite/calendar/calendars/{id}
Update calendar
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Request body
application/json — required
Calendar
idstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
Responses
200- Updated
application/jsonCalendaridstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
404- Not found
GET /api/purple-suite/calendar/calendars/{id}/events
List events for a specific calendar
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes | |
startDateTime | query | string | no | |
endDateTime | query | string | no |
Responses
200- Events for the calendar
application/jsonvaluearrayarray of:
EventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
404- Calendar not found
POST /api/purple-suite/calendar/calendars/{id}/events
Create event in a specific calendar
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Request body
application/json — required
Event
idstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
Responses
201- Created event
application/jsonEventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
404- Calendar not found
POST /api/purple-suite/calendar/calendar/getSchedule
Get free/busy schedule for users (bare path alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes |
Request body
application/json — required
schedulesarray required — SMTP addresses to querySMTP addresses to queryarray of:
string
startTimerequiredallOf:
DateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endTimerequiredallOf:
DateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
availabilityViewIntervalinteger — Minutes per availability slot
Responses
200- Schedule information
application/jsonvaluearrayarray of:
ScheduleInformationscheduleIdstringavailabilityViewstring — Encoded string: 0=free, 1=tentative, 2=busy, 3=oof, 4=workingElsewherescheduleItemsarrayarray of:
statusstringsubjectstringlocationstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
isPrivateboolean
workingHoursobjectdaysOfWeekarrayarray of:
string
startTimestringendTimestringtimeZoneobjectnamestring
400- schedules, startTime, and endTime are required
POST /api/purple-suite/calendar/users/{email}/calendar/getSchedule
Get free/busy schedule for users (user-scoped path)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
Request body
application/json — required
schedulesarray required — SMTP addresses to querySMTP addresses to queryarray of:
string
startTimerequiredallOf:
DateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endTimerequiredallOf:
DateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
availabilityViewIntervalinteger — Minutes per availability slot
Responses
200- Schedule information
application/jsonvaluearrayarray of:
ScheduleInformationscheduleIdstringavailabilityViewstring — Encoded string: 0=free, 1=tentative, 2=busy, 3=oof, 4=workingElsewherescheduleItemsarrayarray of:
statusstringsubjectstringlocationstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
isPrivateboolean
workingHoursobjectdaysOfWeekarrayarray of:
string
startTimestringendTimestringtimeZoneobjectnamestring
GET /api/purple-suite/calendar/places
List bookable meeting rooms
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
$top | query | integer | no | Number of items to return |
$skip | query | integer | no | Number of items to skip |
limit | query | integer | no | Alias for $top — max items per page (default 50) |
Responses
200- Paginated list of rooms
application/jsonvaluearrayarray of:
Room@odata.typestringidstringdisplayNamestringemailAddressstringcapacityintegerbuildingstringfloorNumberintegerfloorLabelstringnicknamestringlabelstringbookingTypestringisWheelChairAccessiblebooleanphonestringtagsarray — Equipment tags (e.g. whiteboard, tv, video_conferencing, phone)Equipment tags (e.g. whiteboard, tv, video_conferencing, phone)array of:
string
audioDeviceNamestringvideoDeviceNamestringdisplayDeviceNamestringaddressobjectstreetstringcitystringstatestringpostalCodestringcountryOrRegionstring
geoCoordinatesobjectcreatedDateTimestringlastModifiedDateTimestring
@odata.nextLinkstring — OData next-page link, absent on the last page
POST /api/purple-suite/calendar/places
Create room
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes |
Request body
application/json — required
Room
@odata.typestringidstringdisplayNamestringemailAddressstringcapacityintegerbuildingstringfloorNumberintegerfloorLabelstringnicknamestringlabelstringbookingTypestringisWheelChairAccessiblebooleanphonestringtagsarray — Equipment tags (e.g. whiteboard, tv, video_conferencing, phone)Equipment tags (e.g. whiteboard, tv, video_conferencing, phone)array of:
string
audioDeviceNamestringvideoDeviceNamestringdisplayDeviceNamestringaddressobjectstreetstringcitystringstatestringpostalCodestringcountryOrRegionstring
geoCoordinatesobjectcreatedDateTimestringlastModifiedDateTimestring
Responses
201- Created
application/jsonRoom@odata.typestringidstringdisplayNamestringemailAddressstringcapacityintegerbuildingstringfloorNumberintegerfloorLabelstringnicknamestringlabelstringbookingTypestringisWheelChairAccessiblebooleanphonestringtagsarray — Equipment tags (e.g. whiteboard, tv, video_conferencing, phone)Equipment tags (e.g. whiteboard, tv, video_conferencing, phone)array of:
string
audioDeviceNamestringvideoDeviceNamestringdisplayDeviceNamestringaddressobjectstreetstringcitystringstatestringpostalCodestringcountryOrRegionstring
geoCoordinatesobjectcreatedDateTimestringlastModifiedDateTimestring
GET /api/purple-suite/calendar/places/{id}
Get room
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Responses
200- Found
application/jsonRoom@odata.typestringidstringdisplayNamestringemailAddressstringcapacityintegerbuildingstringfloorNumberintegerfloorLabelstringnicknamestringlabelstringbookingTypestringisWheelChairAccessiblebooleanphonestringtagsarray — Equipment tags (e.g. whiteboard, tv, video_conferencing, phone)Equipment tags (e.g. whiteboard, tv, video_conferencing, phone)array of:
string
audioDeviceNamestringvideoDeviceNamestringdisplayDeviceNamestringaddressobjectstreetstringcitystringstatestringpostalCodestringcountryOrRegionstring
geoCoordinatesobjectcreatedDateTimestringlastModifiedDateTimestring
404- Not found
DELETE /api/purple-suite/calendar/places/{id}
Delete room
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Responses
204- No content
404- Not found
PATCH /api/purple-suite/calendar/places/{id}
Update room
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Request body
application/json — required
Room
@odata.typestringidstringdisplayNamestringemailAddressstringcapacityintegerbuildingstringfloorNumberintegerfloorLabelstringnicknamestringlabelstringbookingTypestringisWheelChairAccessiblebooleanphonestringtagsarray — Equipment tags (e.g. whiteboard, tv, video_conferencing, phone)Equipment tags (e.g. whiteboard, tv, video_conferencing, phone)array of:
string
audioDeviceNamestringvideoDeviceNamestringdisplayDeviceNamestringaddressobjectstreetstringcitystringstatestringpostalCodestringcountryOrRegionstring
geoCoordinatesobjectcreatedDateTimestringlastModifiedDateTimestring
Responses
200- Updated
application/jsonRoom@odata.typestringidstringdisplayNamestringemailAddressstringcapacityintegerbuildingstringfloorNumberintegerfloorLabelstringnicknamestringlabelstringbookingTypestringisWheelChairAccessiblebooleanphonestringtagsarray — Equipment tags (e.g. whiteboard, tv, video_conferencing, phone)Equipment tags (e.g. whiteboard, tv, video_conferencing, phone)array of:
string
audioDeviceNamestringvideoDeviceNamestringdisplayDeviceNamestringaddressobjectstreetstringcitystringstatestringpostalCodestringcountryOrRegionstring
geoCoordinatesobjectcreatedDateTimestringlastModifiedDateTimestring
404- Not found
GET /api/purple-suite/calendar/users/{email}/mailboxSettings
Get user mailbox settings
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
Responses
200- Mailbox settings
application/jsonMailboxSettingsGraph-compatible mailbox settings projection of UserSettings. GET/PATCH via /users/{email}/mailboxSettings.timeZonestringdateFormatstringtimeFormatstringlanguageobjectlocalestringdisplayNamestring
workingHoursobjectdaysOfWeekarrayarray of:
string
startTimestringendTimestringtimeZoneobjectnamestring
automaticRepliesSettingobjectstatusstringexternalAudiencestringinternalReplyMessagestringexternalReplyMessagestring
delegateMeetingMessageDeliveryOptionsstringuserPurposestring
PATCH /api/purple-suite/calendar/users/{email}/mailboxSettings
Update user mailbox settings
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
email | path | string | yes | User email — or the literal "me" to act as the current impersonated user (the X-PS-Impersonate-User header, or the instance's configured default MCP user). |
Request body
application/json — required
MailboxSettings
timeZonestringdateFormatstringtimeFormatstringlanguageobjectlocalestringdisplayNamestring
workingHoursobjectdaysOfWeekarrayarray of:
string
startTimestringendTimestringtimeZoneobjectnamestring
automaticRepliesSettingobjectstatusstringexternalAudiencestringinternalReplyMessagestringexternalReplyMessagestring
delegateMeetingMessageDeliveryOptionsstringuserPurposestring
Responses
200- Updated mailbox settings
application/jsonMailboxSettingsGraph-compatible mailbox settings projection of UserSettings. GET/PATCH via /users/{email}/mailboxSettings.timeZonestringdateFormatstringtimeFormatstringlanguageobjectlocalestringdisplayNamestring
workingHoursobjectdaysOfWeekarrayarray of:
string
startTimestringendTimestringtimeZoneobjectnamestring
automaticRepliesSettingobjectstatusstringexternalAudiencestringinternalReplyMessagestringexternalReplyMessagestring
delegateMeetingMessageDeliveryOptionsstringuserPurposestring
422- Invalid timeZone or workingHours
GET /api/purple-suite/calendar/distribution_lists
List email distribution lists
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
limit | query | integer | no | Max items per page (default 50) |
cursor | query | string | no | Pass the previous response's nextCursor to fetch the next page |
$filter | query | string | no | OData filter expression. Comparison operators: eq, ne, gt, ge, lt, le. Logical: and, or, not, with parentheses for grouping. String functions: contains(field,'x'), startswith(field,'x'), endswith(field,'x'). Membership: field in ('a','b'). Case-insensitive matching via tolower(field) / toupper(field). Nested fields use a slash, e.g. pto_balance/vacation_days. String literals use single quotes; dates are ISO-8601. Examples: "status eq 'active'"; "salary gt 50000 and department eq 'Engineering'"; "contains(tolower(name),'acme')"; "closeDate gt 2026-01-01". |
$select | query | string | no | Comma-separated list of fields to return, e.g. "id,firstName,email". Nested fields via slash ("pto_balance/vacation_days"). The id field is always included. |
$orderby | query | string | no | Sort clause(s), comma-separated, each "field [asc|desc]" (asc is the default). Example: "createdAt desc, lastName asc". Null values sort last. |
$search | query | string | no | Free-text, case-insensitive substring match across the resource's searchable fields. |
$top | query | integer | no | Maximum number of items to return (page size). |
$skip | query | integer | no | Number of matching items to skip before returning results (offset paging). Combine with $top. |
$count | query | boolean | no | When true, include @odata.count (total matches after $filter/$search, before paging) in the response. |
Responses
200- Paginated list of distribution lists
application/jsondataarrayarray of:
DistributionListidstringnamestringemailstringdescriptionstringtypestringmembersarray — Member email addressesMember email addressesarray of:
string
memberCountinteger — Maintained automatically when members are added/removedcreatedAtstringupdatedAtstring
nextCursorstring — Cursor for the next page, or null on the last pagetotalinteger — Total documents in the collection
POST /api/purple-suite/calendar/distribution_lists
Create distribution list
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes |
Request body
application/json — required
DistributionList
idstringnamestringemailstringdescriptionstringtypestringmembersarray — Member email addressesMember email addressesarray of:
string
memberCountinteger — Maintained automatically when members are added/removedcreatedAtstringupdatedAtstring
Responses
201- Created
application/jsonDistributionListidstringnamestringemailstringdescriptionstringtypestringmembersarray — Member email addressesMember email addressesarray of:
string
memberCountinteger — Maintained automatically when members are added/removedcreatedAtstringupdatedAtstring
GET /api/purple-suite/calendar/distribution_lists/{id}
Get distribution list
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Responses
200- Found
application/jsonDistributionListidstringnamestringemailstringdescriptionstringtypestringmembersarray — Member email addressesMember email addressesarray of:
string
memberCountinteger — Maintained automatically when members are added/removedcreatedAtstringupdatedAtstring
404- Not found
DELETE /api/purple-suite/calendar/distribution_lists/{id}
Delete distribution list
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Responses
200- Deleted
application/jsonsuccessboolean
404- Not found
PATCH /api/purple-suite/calendar/distribution_lists/{id}
Update distribution list
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Request body
application/json
DistributionList
idstringnamestringemailstringdescriptionstringtypestringmembersarray — Member email addressesMember email addressesarray of:
string
memberCountinteger — Maintained automatically when members are added/removedcreatedAtstringupdatedAtstring
Responses
200- Updated
application/jsonDistributionListidstringnamestringemailstringdescriptionstringtypestringmembersarray — Member email addressesMember email addressesarray of:
string
memberCountinteger — Maintained automatically when members are added/removedcreatedAtstringupdatedAtstring
404- Not found
POST /api/purple-suite/calendar/distribution_lists/{id}/members
Add members to a distribution list
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Request body
application/json — required
emailsarray requiredarray of:
string
Responses
200- Updated distribution list
application/jsonDistributionListidstringnamestringemailstringdescriptionstringtypestringmembersarray — Member email addressesMember email addressesarray of:
string
memberCountinteger — Maintained automatically when members are added/removedcreatedAtstringupdatedAtstring
404- Not found
422- emails array is required and must not be empty
DELETE /api/purple-suite/calendar/distribution_lists/{id}/members/{email}
Remove a member from a distribution list
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes | |
email | path | string | yes | Email address of the member to remove |
Responses
200- Updated distribution list
application/jsonDistributionListidstringnamestringemailstringdescriptionstringtypestringmembersarray — Member email addressesMember email addressesarray of:
string
memberCountinteger — Maintained automatically when members are added/removedcreatedAtstringupdatedAtstring
404- Not found (list or member)
GET /api/purple-suite/calendar/user_settings
List calendar user (mailbox) settings
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
limit | query | integer | no | Max items per page (default 50) |
cursor | query | string | no | Pass the previous response's nextCursor to fetch the next page |
$filter | query | string | no | OData filter expression. Comparison operators: eq, ne, gt, ge, lt, le. Logical: and, or, not, with parentheses for grouping. String functions: contains(field,'x'), startswith(field,'x'), endswith(field,'x'). Membership: field in ('a','b'). Case-insensitive matching via tolower(field) / toupper(field). Nested fields use a slash, e.g. pto_balance/vacation_days. String literals use single quotes; dates are ISO-8601. Examples: "status eq 'active'"; "salary gt 50000 and department eq 'Engineering'"; "contains(tolower(name),'acme')"; "closeDate gt 2026-01-01". |
$select | query | string | no | Comma-separated list of fields to return, e.g. "id,firstName,email". Nested fields via slash ("pto_balance/vacation_days"). The id field is always included. |
$orderby | query | string | no | Sort clause(s), comma-separated, each "field [asc|desc]" (asc is the default). Example: "createdAt desc, lastName asc". Null values sort last. |
$search | query | string | no | Free-text, case-insensitive substring match across the resource's searchable fields. |
$top | query | integer | no | Maximum number of items to return (page size). |
$skip | query | integer | no | Number of matching items to skip before returning results (offset paging). Combine with $top. |
$count | query | boolean | no | When true, include @odata.count (total matches after $filter/$search, before paging) in the response. |
Responses
200- Paginated list of user settings
application/jsondataarrayarray of:
UserSettingsidstringemailstringdisplayNamestringtitlestringavatarColorstring — Hex color used for the user avatar in the UItimeZonestring — IANA timezone stringdateFormatstringtimeFormatstringlanguageobjectlocalestringdisplayNamestring
workingHoursobjectdaysOfWeekarrayarray of:
string
startTimestring — HH:MM:SS.0000000 formatendTimestring — HH:MM:SS.0000000 formattimeZoneobjectnamestring
automaticRepliesSettingobjectstatusstringexternalAudiencestringinternalReplyMessagestringexternalReplyMessagestring
delegateMeetingMessageDeliveryOptionsstringuserPurposestringcreatedAtstringupdatedAtstring
nextCursorstring — Cursor for the next page, or null on the last pagetotalinteger — Total documents in the collection
POST /api/purple-suite/calendar/user_settings
Create user settings record
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes |
Request body
application/json — required
UserSettings
idstringemailstringdisplayNamestringtitlestringavatarColorstring — Hex color used for the user avatar in the UItimeZonestring — IANA timezone stringdateFormatstringtimeFormatstringlanguageobjectlocalestringdisplayNamestring
workingHoursobjectdaysOfWeekarrayarray of:
string
startTimestring — HH:MM:SS.0000000 formatendTimestring — HH:MM:SS.0000000 formattimeZoneobjectnamestring
automaticRepliesSettingobjectstatusstringexternalAudiencestringinternalReplyMessagestringexternalReplyMessagestring
delegateMeetingMessageDeliveryOptionsstringuserPurposestringcreatedAtstringupdatedAtstring
Responses
201- Created
application/jsonUserSettingsidstringemailstringdisplayNamestringtitlestringavatarColorstring — Hex color used for the user avatar in the UItimeZonestring — IANA timezone stringdateFormatstringtimeFormatstringlanguageobjectlocalestringdisplayNamestring
workingHoursobjectdaysOfWeekarrayarray of:
string
startTimestring — HH:MM:SS.0000000 formatendTimestring — HH:MM:SS.0000000 formattimeZoneobjectnamestring
automaticRepliesSettingobjectstatusstringexternalAudiencestringinternalReplyMessagestringexternalReplyMessagestring
delegateMeetingMessageDeliveryOptionsstringuserPurposestringcreatedAtstringupdatedAtstring
GET /api/purple-suite/calendar/user_settings/{id}
Get user settings record
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Responses
200- Found
application/jsonUserSettingsidstringemailstringdisplayNamestringtitlestringavatarColorstring — Hex color used for the user avatar in the UItimeZonestring — IANA timezone stringdateFormatstringtimeFormatstringlanguageobjectlocalestringdisplayNamestring
workingHoursobjectdaysOfWeekarrayarray of:
string
startTimestring — HH:MM:SS.0000000 formatendTimestring — HH:MM:SS.0000000 formattimeZoneobjectnamestring
automaticRepliesSettingobjectstatusstringexternalAudiencestringinternalReplyMessagestringexternalReplyMessagestring
delegateMeetingMessageDeliveryOptionsstringuserPurposestringcreatedAtstringupdatedAtstring
404- Not found
DELETE /api/purple-suite/calendar/user_settings/{id}
Delete user settings record
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Responses
200- Deleted
application/jsonsuccessboolean
404- Not found
PATCH /api/purple-suite/calendar/user_settings/{id}
Update a calendar user settings record
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Request body
application/json
UserSettings
idstringemailstringdisplayNamestringtitlestringavatarColorstring — Hex color used for the user avatar in the UItimeZonestring — IANA timezone stringdateFormatstringtimeFormatstringlanguageobjectlocalestringdisplayNamestring
workingHoursobjectdaysOfWeekarrayarray of:
string
startTimestring — HH:MM:SS.0000000 formatendTimestring — HH:MM:SS.0000000 formattimeZoneobjectnamestring
automaticRepliesSettingobjectstatusstringexternalAudiencestringinternalReplyMessagestringexternalReplyMessagestring
delegateMeetingMessageDeliveryOptionsstringuserPurposestringcreatedAtstringupdatedAtstring
Responses
200- Updated
application/jsonUserSettingsidstringemailstringdisplayNamestringtitlestringavatarColorstring — Hex color used for the user avatar in the UItimeZonestring — IANA timezone stringdateFormatstringtimeFormatstringlanguageobjectlocalestringdisplayNamestring
workingHoursobjectdaysOfWeekarrayarray of:
string
startTimestring — HH:MM:SS.0000000 formatendTimestring — HH:MM:SS.0000000 formattimeZoneobjectnamestring
automaticRepliesSettingobjectstatusstringexternalAudiencestringinternalReplyMessagestringexternalReplyMessagestring
delegateMeetingMessageDeliveryOptionsstringuserPurposestringcreatedAtstringupdatedAtstring
404- Not found
POST /api/purple-suite/calendar/me/events/{id}/accept
Accept event invitation (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Request body
application/json
commentstringsendResponseboolean
Responses
202- Accepted
404- Not found
POST /api/purple-suite/calendar/me/events/{id}/decline
Decline event invitation (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Request body
application/json
commentstringsendResponsebooleanproposedNewTimeobject
Responses
202- Accepted
404- Not found
POST /api/purple-suite/calendar/me/events/{id}/tentativelyAccept
Tentatively accept event invitation (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Request body
application/json
commentstringsendResponsebooleanproposedNewTimeobject
Responses
202- Accepted
404- Not found
POST /api/purple-suite/calendar/me/events/{id}/cancel
Cancel event (user-scoped path) (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Request body
application/json
commentstring — Cancellation message
Responses
202- Accepted
404- Not found
GET /api/purple-suite/calendar/me/events/{id}/instances
List occurrences of an event series (user-scoped path) (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes | |
startDateTime | query | string | yes | |
endDateTime | query | string | yes |
Responses
200- Occurrences in range
application/jsonvaluearrayarray of:
EventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
400- startDateTime and endDateTime are required
404- Not found
POST /api/purple-suite/calendar/me/findMeetingTimes
Find meeting time suggestions (user-scoped path) (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
Prefer | header | string | no | Optional response timezone override, e.g. `outlook.timezone="Pacific Standard Time"` |
Request body
application/json — required
attendeesarrayarray of:
emailAddressobjectEmailAddressnamestringaddressstring
typestring
timeConstraintobjectactivityDomainstringtimeSlotsarrayarray of:
startobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
meetingDurationstring — ISO 8601 duration, e.g. PT1H, PT30MmaxCandidatesintegerminimumAttendeePercentagenumberisOrganizerOptionalbooleanreturnSuggestionReasonsboolean
Responses
200- Meeting time suggestions
application/jsonemptySuggestionsReasonstringmeetingTimeSuggestionsarrayarray of:
confidencenumberorderintegerorganizerAvailabilitystringsuggestionReasonstringattendeeAvailabilityarrayarray of:
attendeeobjectavailabilitystring
locationsarrayarray of:
object
meetingTimeSlotobjectstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
GET /api/purple-suite/calendar/me/calendarView
Get calendar view for a specific user (events in time range) (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
startDateTime | query | string | yes | |
endDateTime | query | string | yes |
Responses
200- User events in range
application/jsonvaluearrayarray of:
EventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
400- startDateTime and endDateTime are required
GET /api/purple-suite/calendar/me/events
List all events for a specific user (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
$top | query | integer | no | Number of items to return |
$skip | query | integer | no | Number of items to skip |
limit | query | integer | no | Alias for $top — max items per page (default 50) |
Responses
200- User events
application/jsonvaluearrayarray of:
EventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
@odata.nextLinkstring — OData next-page link, absent on the last page
POST /api/purple-suite/calendar/me/events
Create event (user-scoped path) (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes |
Request body
application/json — required
Event
idstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
Responses
201- Created
application/jsonEventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
GET /api/purple-suite/calendar/me/events/{id}
Get event (user-scoped path) (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Responses
200- Found
application/jsonEventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
404- Not found
DELETE /api/purple-suite/calendar/me/events/{id}
Delete event (user-scoped path) (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Responses
204- No content
404- Not found
PATCH /api/purple-suite/calendar/me/events/{id}
Update event (user-scoped path) (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Request body
application/json — required
Event
idstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
Responses
200- Updated
application/jsonEventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
404- Not found
GET /api/purple-suite/calendar/me/calendars
List all calendars (user-scoped alias — returns all instance calendars) (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
$top | query | integer | no | Number of items to return |
$skip | query | integer | no | Number of items to skip |
limit | query | integer | no | Alias for $top — max items per page (default 50) |
Responses
200- Collection of calendars
application/jsonvaluearrayarray of:
CalendaridstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
@odata.nextLinkstring — OData next-page link, absent on the last page
POST /api/purple-suite/calendar/me/calendars
Create calendar (user-scoped path) (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes |
Request body
application/json — required
Calendar
idstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
Responses
201- Created
application/jsonCalendaridstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
GET /api/purple-suite/calendar/me/calendars/{id}
Get calendar (user-scoped path) (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Responses
200- Found
application/jsonCalendaridstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
404- Not found
DELETE /api/purple-suite/calendar/me/calendars/{id}
Delete calendar (user-scoped path) (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Responses
204- No content
404- Not found
PATCH /api/purple-suite/calendar/me/calendars/{id}
Update calendar (user-scoped path) (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes |
Request body
application/json — required
Calendar
idstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
Responses
200- Updated
application/jsonCalendaridstringnamestringcolorstringhexColorstringisDefaultCalendarbooleancanEditbooleancanSharebooleancanViewPrivateItemsbooleanallowedOnlineMeetingProvidersarrayarray of:
string
defaultOnlineMeetingProviderstringisRemovablebooleanisTallyingResponsesbooleanownerobjectEmailAddressnamestringaddressstring
changeKeystringcreatedDateTimestringlastModifiedDateTimestring
404- Not found
GET /api/purple-suite/calendar/me/calendars/{id}/events
List events for a specific calendar (user-scoped path) (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes | Calendar id |
startDateTime | query | string | no | |
endDateTime | query | string | no |
Responses
200- Events for the calendar
application/jsonvaluearrayarray of:
EventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
404- Calendar not found
POST /api/purple-suite/calendar/me/calendars/{id}/events
Create event in a specific calendar (user-scoped path) (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes | |
id | path | string | yes | Calendar id |
Request body
application/json — required
Event
idstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
Responses
201- Created event
application/jsonEventidstringsubjectstringbodyobjectItemBodycontentTypestringcontentstring
bodyPreviewstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
locationobjectLocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
locationsarrayarray of:
LocationdisplayNamestringlocationTypestringuniqueIdstringuniqueIdTypestring
attendeesarrayarray of:
AttendeeemailAddressobjectEmailAddressnamestringaddressstring
typestringstatusobjectresponsestringtimestring
organizerobjectemailAddressobjectEmailAddressnamestringaddressstring
isAllDaybooleanisCancelledbooleanisDraftbooleanisOnlineMeetingbooleanisOrganizerbooleanisReminderOnbooleanonlineMeetingobjectjoinUrlstringconferenceIdstringtollNumberstring
onlineMeetingProviderstringimportancestringsensitivitystringshowAsstringrecurrenceobjectPatternedRecurrencepatternobjecttypestringintervalintegerdaysOfWeekarrayarray of:
string
dayOfMonthintegermonthintegerfirstDayOfWeekstringindexstring
rangeobjecttypestringstartDatestringendDatestringnumberOfOccurrencesintegerrecurrenceTimeZonestring
categoriesarrayarray of:
string
allowNewTimeProposalsbooleanhideAttendeesbooleanreminderMinutesBeforeStartintegerresponseRequestedbooleanresponseStatusobjectresponsestringtimestring
typestringseriesMasterIdstring — For occurrences and exceptions, the id of the recurring series master; null otherwisecancellationCommentstring — Cancellation message sent to attendees (set by POST /events/{id}/cancel)iCalUIdstringwebLinkstringchangeKeystringhasAttachmentsbooleanroomIdstring — Purple Suite room id (ROOM-xxx); null if no room bookedcalendarIdstring — Calendar this event belongs tocreatedDateTimestringlastModifiedDateTimestring
404- Calendar not found
POST /api/purple-suite/calendar/me/calendar/getSchedule
Get free/busy schedule for users (user-scoped path) (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes |
Request body
application/json — required
schedulesarray required — SMTP addresses to querySMTP addresses to queryarray of:
string
startTimerequiredallOf:
DateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endTimerequiredallOf:
DateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
availabilityViewIntervalinteger — Minutes per availability slot
Responses
200- Schedule information
application/jsonvaluearrayarray of:
ScheduleInformationscheduleIdstringavailabilityViewstring — Encoded string: 0=free, 1=tentative, 2=busy, 3=oof, 4=workingElsewherescheduleItemsarrayarray of:
statusstringsubjectstringlocationstringstartobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
endobjectDateTimeTimeZonedateTimestring required — Naive ISO 8601 date-time (no Z suffix when a timeZone is supplied)timeZonestring required — IANA or Windows timezone name
isPrivateboolean
workingHoursobjectdaysOfWeekarrayarray of:
string
startTimestringendTimestringtimeZoneobjectnamestring
GET /api/purple-suite/calendar/me/mailboxSettings
Get user mailbox settings (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes |
Responses
200- Mailbox settings
application/jsonMailboxSettingsGraph-compatible mailbox settings projection of UserSettings. GET/PATCH via /users/{email}/mailboxSettings.timeZonestringdateFormatstringtimeFormatstringlanguageobjectlocalestringdisplayNamestring
workingHoursobjectdaysOfWeekarrayarray of:
string
startTimestringendTimestringtimeZoneobjectnamestring
automaticRepliesSettingobjectstatusstringexternalAudiencestringinternalReplyMessagestringexternalReplyMessagestring
delegateMeetingMessageDeliveryOptionsstringuserPurposestring
PATCH /api/purple-suite/calendar/me/mailboxSettings
Update user mailbox settings (/me alias)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Instance-ID | header | string | yes |
Request body
application/json — required
MailboxSettings
timeZonestringdateFormatstringtimeFormatstringlanguageobjectlocalestringdisplayNamestring
workingHoursobjectdaysOfWeekarrayarray of:
string
startTimestringendTimestringtimeZoneobjectnamestring
automaticRepliesSettingobjectstatusstringexternalAudiencestringinternalReplyMessagestringexternalReplyMessagestring
delegateMeetingMessageDeliveryOptionsstringuserPurposestring
Responses
200- Updated mailbox settings
application/jsonMailboxSettingsGraph-compatible mailbox settings projection of UserSettings. GET/PATCH via /users/{email}/mailboxSettings.timeZonestringdateFormatstringtimeFormatstringlanguageobjectlocalestringdisplayNamestring
workingHoursobjectdaysOfWeekarrayarray of:
string
startTimestringendTimestringtimeZoneobjectnamestring
automaticRepliesSettingobjectstatusstringexternalAudiencestringinternalReplyMessagestringexternalReplyMessagestring
delegateMeetingMessageDeliveryOptionsstringuserPurposestring
422- Invalid timeZone or workingHours