accept-calendar-event

accept-calendar-event

Accept the specified event in a user calendar.

💡 TIP: Accepts a meeting invitation. Optional body: { sendResponse: true, comment: 'I will attend.' }. Set sendResponse to false to accept silently without notifying the organizer.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Value for the 'eventId' path segment. Pass it under the name 'eventId', not as 'id'. Use the 'id' field of the event object as returned by Microsoft Graph.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

accept-calendar-event

add-excel-table-rows

add-excel-table-rows

Add Excel table rows.

💡 TIP: Adds rows to a table. Body: { values: [['col1val', 'col2val', 'col3val'], ['row2col1', 'row2col2', 'row2col3']] }. Each inner array is one row. Values must match the number of columns in the table.

The unique identifier for an entity. Read-only.

The index of the row within the rows collection of the table. Zero-based. Read-only.

The raw values of the specified range. The data returned could be of type string, number, or a Boolean. Any cell that contain an error will return the error string.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

Value for the 'workbookTableId' path segment. Pass it under the name 'workbookTableId', not as 'id'. Use the 'id' field of the workbook table object as returned by Microsoft Graph.

body driveId driveItemId workbookTableId

add-excel-table-rows

add-mail-attachment

add-mail-attachment

Use this API to create a new Attachment. An attachment can be one of the following types: All these types of attachment resources are derived from the attachment
resource.

💡 TIP: The only path for attachments under 3MB. contentBytes must carry the complete base64 verbatim; a truncated argument fails with 400 UnableToDeserializePostBody. At 3MB and above use create-mail-attachment-upload-session, which rejects anything smaller. Body requires @odata.type: {"@odata.type": "#microsoft.graph.fileAttachment", "name": "file.pdf", "contentBytes": "<base64>"}.

The MIME type.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

Value for the 'messageId' path segment. Pass it under the name 'messageId', not as 'id'. Use the 'id' field of the message object as returned by Microsoft Graph.

add-mail-attachment

cancel-calendar-event

cancel-calendar-event

This action allows the organizer of a meeting to send a cancellation message and cancel the event.  The action moves the event to the Deleted Items folder. The organizer can also cancel an occurrence of a recurring meeting
by providing the occurrence event ID. An attendee calling this action gets an error (HTTP 400 Bad Request), with the following
error message: 'Your request can't be completed. You need to be an organizer to cancel a meeting.' This action differs from Delete in that Cancel is available to only the organizer, and lets
the organizer send a custom message to the attendees about the cancellation.

💡 TIP: Cancels a meeting (organizer only) and sends a cancellation message to all attendees. Body: { Comment (optional string, custom message) }. Use this instead of delete-calendar-event when you want attendees to see 'Canceled' in their calendar. Attendees calling this get HTTP 400 — they should use decline-calendar-event instead.

cancel-calendar-event

clear-excel-range

clear-excel-range

Clear an Excel range.

💡 TIP: Clear cell contents and/or formatting on the given range. Body: { applyTo: 'All' | 'Formats' | 'Contents' }. 'Contents' wipes values but keeps formatting; 'Formats' resets styling but keeps values; 'All' wipes both. Use this to reset a worksheet section before a fresh write rather than overwriting cell-by-cell.

Value for the 'address' path segment.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Value for the 'workbookWorksheetId' path segment. Pass it under the name 'workbookWorksheetId', not as 'id'. Use the 'id' field of the workbook worksheet object as returned by Microsoft Graph.

body driveId driveItemId workbookWorksheetId address

clear-excel-range

copy-drive-item

copy-drive-item

Copy a drive item.

💡 TIP: Asynchronously copy a file or folder to a new location and/or name. Body: { parentReference: { driveId: '...', id: '...' }, name?: 'New Name.xlsx' }. Returns 202 Accepted with a Location header pointing at a monitor URL for the async job. Ideal for duplicating templates (e.g. clone an Armhr Census Template per prospect), bulk file provisioning, or preserving an immutable snapshot of a working file.

Unique identifier of the drive instance that contains the driveItem. Only returned if the item is located in a drive. Read-only.

Identifies the type of drive. Only returned if the item is located in a drive. See drive resource for values.

Unique identifier of the driveItem in the drive or a listItem in a list. Read-only.

The name of the item being referenced. Read-only.

Percent-encoded path that can be used to navigate to the item. Read-only.

A unique identifier for a shared resource that can be accessed via the Shares API.

The unique identifier (guid) for the item's list in SharePoint.

An integer identifier for the item within the containing list.

The unique identifier (guid) for the item within OneDrive for Business or a SharePoint site.

The unique identifier (guid) for the item's site collection (SPSite).

The SharePoint URL for the site that contains the item.

The unique identifier (guid) for the tenancy.

The unique identifier (guid) for the item's site (SPWeb).

For OneDrive for Business and SharePoint, this property represents the ID of the site that contains the parent document library of the driveItem resource or the parent list of the listItem resource. The value is the same as the id property of that site resource. It is an opaque string that consists of three identifiers of the site. For OneDrive, this property is not populated.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

copy-drive-item

copy-mail-message

copy-mail-message

Copy a message to a folder within the user's mailbox.

💡 TIP: Copies a message to another mail folder. Body: { DestinationId: '<mailFolder-id or well-known name like inbox, archive, junkemail>' }. Returns the newly created message (with a new id) in the destination folder. For moving instead of copying, use move-mail-message.

Value for the 'messageId' path segment. Pass it under the name 'messageId', not as 'id'. Use the 'id' field of the message object as returned by Microsoft Graph.

copy-mail-message

create-calendar

create-calendar

Create a new calendar for a user.

💡 TIP: Creates a new personal calendar. Body: { name: 'My Calendar', color: 'auto' }. Available colors: auto, lightBlue, lightGreen, lightOrange, lightGray, lightYellow, lightTeal, lightPink, lightBrown, lightRed, maxColor.

Represent the online meeting service providers that can be used to create online meetings in this calendar. The possible values are: unknown, skypeForBusiness, skypeForConsumer, teamsForBusiness.

unknown skypeForBusiness skypeForConsumer teamsForBusiness

The permissions of the users with whom the calendar is shared.

List of allowed sharing or delegating permission levels for the calendar. The possible values are: none, freeBusyRead, limitedRead, read, write, delegateWithoutPrivateEventAccess, delegateWithPrivateEventAccess, custom.

none freeBusyRead limitedRead read write delegateWithoutPrivateEventAccess delegateWithPrivateEventAccess custom

The email address of the person or entity.

The display name of the person or entity.

The unique identifier for an entity. Read-only.

True if the user in context (recipient or delegate) is inside the same organization as the calendar owner.

True if the user can be removed from the list of recipients or delegates for the specified calendar, false otherwise. The 'My organization' user determines the permissions other people within your organization have to the given calendar. You can't remove 'My organization' as a share recipient to a calendar.

The calendar view for the calendar. Navigation property. Read-only.

true if the meeting organizer allows invitees to propose a new time when responding; otherwise, false. Optional. The default is true.

The collection of FileAttachment, ItemAttachment, and referenceAttachment attachments for the event. Navigation property. Read-only. Nullable.

The MIME type.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The collection of attendees for the event.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

none organizer tentativelyAccepted accepted declined notResponded

The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The content of the item.

The categories associated with the item

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

Set to true if the event lasts all day. If true, regardless of whether it's a single-day or multi-day event, start, and endtime must be set to midnight and be in the same time zone.

True if this event has online meeting information (that is, onlineMeeting points to an onlineMeetingInfo resource), false otherwise. Default is false (onlineMeeting is null). Optional.  After you set isOnlineMeeting to true, Microsoft Graph initializes onlineMeeting. Subsequently, Outlook ignores any further changes to isOnlineMeeting, and the meeting remains available online.

Set to true if an alert is set to remind the user of the event.

The city.

The country or region. It's a free-format string value, for example, 'United States'.

The postal code.

The state.

The street.

The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters. [Simplified from 3 options]

The altitude of the location. [Simplified from 3 options]

The accuracy of the altitude. [Simplified from 3 options]

The latitude of the location. [Simplified from 3 options]

The longitude of the location. [Simplified from 3 options]

The name associated with the location.

Optional email address of the location.

default conferenceRoom homeAddress businessAddress geoCoordinates streetAddress hotel restaurant localBusiness postalAddress

Optional URI representing the location.

For internal use only.

unknown locationStore directory private bing

The collection of multi-value extended properties defined for the event. Read-only. Nullable.

The unique identifier for an entity. Read-only.

A collection of property values.

The day of the month on which the event occurs. Required if type is absoluteMonthly or absoluteYearly.

A collection of the days of the week on which the event occurs. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. If type is relativeMonthly or relativeYearly, and daysOfWeek specifies more than one day, the event falls on the first day that satisfies the pattern.  Required if type is weekly, relativeMonthly, or relativeYearly.

sunday monday tuesday wednesday thursday friday saturday

The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required.

The month in which the event occurs.  This is a number from 1 to 12.

daily weekly absoluteMonthly relativeMonthly absoluteYearly relativeYearly

The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence of the meeting may not be this date. Required if type is endDate.

The number of times to repeat the event. Required and must be positive if type is numbered.

Time zone for the startDate and endDate properties. Optional. If not specified, the time zone of the event is used.

The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later, depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event. Required.

The number of minutes before the event start time that the reminder alert occurs.

Default is true, which represents the organizer would like an invitee to send a response to the event.

unknown free tentative busy oof workingElsewhere

The collection of single-value extended properties defined for the event. Read-only. Nullable.

A property value.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

The text of the event's subject line.

singleInstance occurrence exception seriesMaster

true if the user can write to the calendar, false otherwise. This property is true for the user who created the calendar. This property is also true for a user who shared a calendar and granted write access.

true if the user has permission to share the calendar, false otherwise. Only the user who created the calendar can share it.

If true, the user can read calendar items that have been marked private, false otherwise.

Identifies the version of the calendar object. Every time the calendar is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

auto lightBlue lightGreen lightOrange lightGray lightYellow lightTeal lightPink lightBrown lightRed maxColor

The events in the calendar. Navigation property. Read-only.

true if the meeting organizer allows invitees to propose a new time when responding; otherwise, false. Optional. The default is true.

The collection of FileAttachment, ItemAttachment, and referenceAttachment attachments for the event. Navigation property. Read-only. Nullable.

The MIME type.

The unique identifier for an entity. Read-only.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The collection of attendees for the event.

The email address of the person or entity.

The display name of the person or entity.

none organizer tentativelyAccepted accepted declined notResponded

The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The content of the item.

The categories associated with the item

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

Set to true if the event lasts all day. If true, regardless of whether it's a single-day or multi-day event, start, and endtime must be set to midnight and be in the same time zone.

True if this event has online meeting information (that is, onlineMeeting points to an onlineMeetingInfo resource), false otherwise. Default is false (onlineMeeting is null). Optional.  After you set isOnlineMeeting to true, Microsoft Graph initializes onlineMeeting. Subsequently, Outlook ignores any further changes to isOnlineMeeting, and the meeting remains available online.

Set to true if an alert is set to remind the user of the event.

The city.

The country or region. It's a free-format string value, for example, 'United States'.

The postal code.

The state.

The street.

The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters. [Simplified from 3 options]

The altitude of the location. [Simplified from 3 options]

The accuracy of the altitude. [Simplified from 3 options]

The latitude of the location. [Simplified from 3 options]

The longitude of the location. [Simplified from 3 options]

The name associated with the location.

Optional email address of the location.

Optional URI representing the location.

For internal use only.

The collection of multi-value extended properties defined for the event. Read-only. Nullable.

The unique identifier for an entity. Read-only.

A collection of property values.

The day of the month on which the event occurs. Required if type is absoluteMonthly or absoluteYearly.

A collection of the days of the week on which the event occurs. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. If type is relativeMonthly or relativeYearly, and daysOfWeek specifies more than one day, the event falls on the first day that satisfies the pattern.  Required if type is weekly, relativeMonthly, or relativeYearly.

The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required.

The month in which the event occurs.  This is a number from 1 to 12.

The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence of the meeting may not be this date. Required if type is endDate.

The number of times to repeat the event. Required and must be positive if type is numbered.

Time zone for the startDate and endDate properties. Optional. If not specified, the time zone of the event is used.

The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later, depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event. Required.

The number of minutes before the event start time that the reminder alert occurs.

Default is true, which represents the organizer would like an invitee to send a response to the event.

The collection of single-value extended properties defined for the event. Read-only. Nullable.

A property value.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

The text of the event's subject line.

The calendar color, expressed in a hex color code of three hexadecimal values, each ranging from 00 to FF and representing the red, green, or blue components of the color in the RGB color space. If the user has never explicitly set a color for the calendar, this property is empty. Read-only.

true if this is the default calendar where new events are created by default, false otherwise.

Indicates whether this user calendar can be deleted from the user mailbox.

Indicates whether this user calendar supports tracking of meeting responses. Only meeting invites sent from users' primary calendars support tracking of meeting responses.

The collection of multi-value extended properties defined for the calendar. Read-only. Nullable.

The unique identifier for an entity. Read-only.

A collection of property values.

The calendar name.

The email address of the person or entity.

The display name of the person or entity.

The collection of single-value extended properties defined for the calendar. Read-only. Nullable.

A property value.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

create-calendar

create-calendar-event

create-calendar-event

Create (schedule) a new calendar event — a meeting or appointment — on the user's calendar. Set subject, start/end times, time zone, location, body, and attendees; supports online meetings and recurrence.

💡 TIP: CRITICAL: Do not try to guess the email address of the recipients. Use the list-users tool to find the email address of the recipients.

true if the meeting organizer allows invitees to propose a new time when responding; otherwise, false. Optional. The default is true.

The collection of FileAttachment, ItemAttachment, and referenceAttachment attachments for the event. Navigation property. Read-only. Nullable.

The MIME type.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The collection of attendees for the event.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

none organizer tentativelyAccepted accepted declined notResponded

The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The content of the item.

The categories associated with the item

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

Set to true if the event lasts all day. If true, regardless of whether it's a single-day or multi-day event, start, and endtime must be set to midnight and be in the same time zone.

True if this event has online meeting information (that is, onlineMeeting points to an onlineMeetingInfo resource), false otherwise. Default is false (onlineMeeting is null). Optional.  After you set isOnlineMeeting to true, Microsoft Graph initializes onlineMeeting. Subsequently, Outlook ignores any further changes to isOnlineMeeting, and the meeting remains available online.

Set to true if an alert is set to remind the user of the event.

The city.

The country or region. It's a free-format string value, for example, 'United States'.

The postal code.

The state.

The street.

The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters. [Simplified from 3 options]

The altitude of the location. [Simplified from 3 options]

The accuracy of the altitude. [Simplified from 3 options]

The latitude of the location. [Simplified from 3 options]

The longitude of the location. [Simplified from 3 options]

The name associated with the location.

Optional email address of the location.

Optional URI representing the location.

For internal use only.

The collection of multi-value extended properties defined for the event. Read-only. Nullable.

The unique identifier for an entity. Read-only.

A collection of property values.

The day of the month on which the event occurs. Required if type is absoluteMonthly or absoluteYearly.

A collection of the days of the week on which the event occurs. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. If type is relativeMonthly or relativeYearly, and daysOfWeek specifies more than one day, the event falls on the first day that satisfies the pattern.  Required if type is weekly, relativeMonthly, or relativeYearly.

The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required.

The month in which the event occurs.  This is a number from 1 to 12.

The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence of the meeting may not be this date. Required if type is endDate.

The number of times to repeat the event. Required and must be positive if type is numbered.

Time zone for the startDate and endDate properties. Optional. If not specified, the time zone of the event is used.

The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later, depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event. Required.

The number of minutes before the event start time that the reminder alert occurs.

Default is true, which represents the organizer would like an invitee to send a response to the event.

The collection of single-value extended properties defined for the event. Read-only. Nullable.

A property value.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

The text of the event's subject line.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

create-calendar-event

create-contact-child-folder

create-contact-child-folder

Create a new contactFolder as a child of a specified folder.  You can also create a new contactFolder under the user's default contact folder.

💡 TIP: Creates a sub-folder under an existing contact folder. Body: { displayName: 'Sub-folder name' }. Use list-contact-folders to discover the parent id. The returned contactFolder has its own id usable with update-contact-folder, delete-contact-folder, list-contact-folder-contacts, and create-contact-in-folder — contactFolder ids are mailbox-unique regardless of nesting depth.

The collection of child folders in the folder. Navigation property. Read-only. Nullable.

The contacts in the folder. Navigation property. Read-only. Nullable.

The folder's display name.

The unique identifier for an entity. Read-only.

The collection of multi-value extended properties defined for the contactFolder. Read-only. Nullable.

The ID of the folder's parent folder.

The collection of single-value extended properties defined for the contactFolder. Read-only. Nullable.

The name of the contact's assistant.

The contact's birthday. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The business home page of the contact.

The contact's business phone numbers.

The categories associated with the item

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The names of the contact's children.

The name of the contact's company.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The contact's department.

The contact's display name. You can specify the display name in a create or update operation. Note that later updates to other properties may cause an automatically generated value to overwrite the displayName value you have specified. To preserve a pre-existing value, always include it as displayName in an update operation.

The contact's email addresses.

The email address of the person or entity.

The display name of the person or entity.

The name the contact is filed under.

The contact's suffix.

The contact's given name.

The contact's home phone numbers.

The contact's instant messaging (IM) addresses.

The contact's initials.

The collection of multi-value extended properties defined for the contact. Read-only. Nullable.

The collection of single-value extended properties defined for the contact. Read-only. Nullable.

The contact's title.

The city.

The country or region. It's a free-format string value, for example, 'United States'.

The postal code.

The state.

The street.

A collection of property values.

A property value.

The folder's display name.

The ID of the folder's parent folder.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Value for the 'contactFolderId' path segment. Pass it under the name 'contactFolderId', not as 'id'. Use the 'id' field of the contact folder object as returned by Microsoft Graph.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

create-contact-child-folder

create-contact-folder

create-contact-folder

Create a new contactFolder under the user's default contacts folder. You can also create a new contactfolder as a child of any specified contact folder.

💡 TIP: Creates a new contact folder under the user's mailbox root. Body: { displayName: 'Family' }. Returns the created contactFolder with its id. To create a sub-folder under an existing folder, use create-contact-child-folder.

The collection of child folders in the folder. Navigation property. Read-only. Nullable.

The contacts in the folder. Navigation property. Read-only. Nullable.

The folder's display name.

The unique identifier for an entity. Read-only.

The collection of multi-value extended properties defined for the contactFolder. Read-only. Nullable.

The ID of the folder's parent folder.

The collection of single-value extended properties defined for the contactFolder. Read-only. Nullable.

The name of the contact's assistant.

The contact's birthday. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The business home page of the contact.

The contact's business phone numbers.

The categories associated with the item

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The names of the contact's children.

The name of the contact's company.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The contact's department.

The contact's display name. You can specify the display name in a create or update operation. Note that later updates to other properties may cause an automatically generated value to overwrite the displayName value you have specified. To preserve a pre-existing value, always include it as displayName in an update operation.

The contact's email addresses.

The email address of the person or entity.

The display name of the person or entity.

The name the contact is filed under.

The contact's suffix.

The contact's given name.

The contact's home phone numbers.

The contact's instant messaging (IM) addresses.

The contact's initials.

The collection of multi-value extended properties defined for the contact. Read-only. Nullable.

The collection of single-value extended properties defined for the contact. Read-only. Nullable.

The contact's title.

The city.

The country or region. It's a free-format string value, for example, 'United States'.

The postal code.

The state.

The street.

A collection of property values.

A property value.

The folder's display name.

The ID of the folder's parent folder.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

create-contact-folder

create-contact-in-folder

create-contact-in-folder

Add a contact to the root Contacts folder or to the contacts endpoint of another contact folder.

💡 TIP: Creates a contact inside a specific folder (instead of the default Contacts folder). Body is a contact resource: { givenName, surname, displayName, emailAddresses: [{ address, name }], businessPhones: [], mobilePhone, jobTitle, companyName, ... }. The existing create-outlook-contact (POST /me/contacts) writes to the default folder only; use this when organizing contacts into named folders. Get the folder id via list-contact-folders.

The name of the contact's assistant.

The city.

The postal code.

The state.

The street.

The business home page of the contact.

The contact's business phone numbers.

The categories associated with the item

The names of the contact's children.

The name of the contact's company.

The contact's department.

The contact's email addresses.

The name the contact is filed under.

The contact's suffix.

The contact's given name.

The city.

The postal code.

The state.

The street.

The contact's home phone numbers.

The unique identifier for an entity. Read-only.

The contact's initials.

A collection of property values.

A property value.

The contact's title.

Value for the 'contactFolderId' path segment. Pass it under the name 'contactFolderId', not as 'id'. Use the 'id' field of the contact folder object as returned by Microsoft Graph.

create-contact-in-folder

create-draft-email

create-draft-email

Create a draft Outlook email message in the signed-in user's Drafts folder. Set subject, body, toRecipients, ccRecipients, and importance. The draft is saved, not sent — use send-mail to send a message directly, or send the draft afterwards.

The fileAttachment and itemAttachment attachments for the message.

The MIME type.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The Bcc: recipients for the message.

The content of the item.

The first 255 characters of the message body. It is in text format.

The categories associated with the item

The Cc: recipients for the message.

The email address of the person or entity.

The display name of the person or entity.

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The ID of the conversation the email belongs to.

Indicates the position of the message within the conversation.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>.

A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Requires $select to retrieve. Read-only.

Represents the key in a key-value pair.

The value in a key-value pair.

The message ID in the format specified by RFC2822.

Indicates whether a read receipt is requested for the message.

Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet.

The collection of multi-value extended properties defined for the message. Nullable.

The unique identifier for an entity. Read-only.

A collection of property values.

The collection of single-value extended properties defined for the message. Nullable.

A property value.

The subject of the message.

The To: recipients for the message.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

create-draft-email

create-drive-item-preview

create-drive-item-preview

Create a drive item preview.

💡 TIP: Generate a short-lived embeddable preview URL for a file (Office docs, PDFs, images). Body: { page?: number | string, zoom?: number, viewer?: 'onedrive' | 'office' }. Returns getUrl (interactive) and postUrl (form-post). Useful for surfacing inline previews in summary emails or chat messages without needing the recipient to open the file.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

create-drive-item-preview

create-drive-item-share-link

create-drive-item-share-link

Create a link to share a driveItem driveItem. The createLink action creates a new sharing link if the specified link type doesn't already exist for the calling application.
If a sharing link of the specified type already exists for the app, the existing sharing link is returned. DriveItem resources inherit sharing permissions from their ancestors.

💡 TIP: Create a shareable link for a file or folder WITHOUT sending an email invitation. Body: { type: 'view' | 'edit' | 'embed', scope: 'anonymous' | 'organization' | 'users', password?: string, expirationDateTime?: ISO-8601, retainInheritedPermissions?: boolean }. Returns a permission with link.webUrl. Pair with share-drive-item when you want to grant explicit access; use this when you only need a URL to paste into a doc/email/chat without triggering OneDrive notifications.

The alias of the domain object, for cases where an email address is unavailable (for example, security groups).

The email address for the recipient, if the recipient has an associated email address.

The unique identifier for the recipient in the directory.

create-drive-item-share-link

create-excel-chart

create-excel-chart

Creates a new chart.

Value for the 'workbookWorksheetId' path segment. Pass it under the name 'workbookWorksheetId', not as 'id'. Use the 'id' field of the workbook worksheet object as returned by Microsoft Graph.

body driveId driveItemId workbookWorksheetId

create-excel-chart

create-excel-table

create-excel-table

Create a new table. The range source address determines the worksheet under which the table will be added. If the table can't be added (for example, because the address is invalid, or the table would overlap with another table), an error is generated.

💡 TIP: Convert a worksheet range into a formal Excel table. Body: { address: 'A1:H171', hasHeaders: true }. Required before using add-excel-table-rows / update-excel-table-row / delete-excel-table-row on a plain-cells sheet.

create-excel-table

create-focused-inbox-override

create-focused-inbox-override

Create an override for a sender identified by an SMTP address. Future messages from that SMTP address will be consistently classified
as specified in the override. Note

💡 TIP: Creates a Focused Inbox override for a sender. Body: { classifyAs: 'focused', senderEmailAddress: { name: 'Display Name', address: 'sender@example.com' } }. classifyAs must be 'focused' or 'other'. If an override already exists for that SMTP address, POST updates the existing override's name and classifyAs (use this to rename a sender). Resolve the sender's address with list-users or by reading a recent mail header — do not invent SMTP addresses.

The email address of the person or entity.

The display name of the person or entity.

create-focused-inbox-override

create-forward-draft

create-forward-draft

Create a forward draft.

💡 TIP: Create a forward draft (does not send). Useful when user wants to review before sending.

The fileAttachment and itemAttachment attachments for the message.

The MIME type.

The unique identifier for an entity. Read-only.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The Bcc: recipients for the message.

The content of the item.

The first 255 characters of the message body. It is in text format.

The categories associated with the item

The Cc: recipients for the message.

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The ID of the conversation the email belongs to.

Indicates the position of the message within the conversation.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>.

A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Requires $select to retrieve. Read-only.

Represents the key in a key-value pair.

The value in a key-value pair.

The message ID in the format specified by RFC2822.

Indicates whether a read receipt is requested for the message.

Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet.

The collection of multi-value extended properties defined for the message. Nullable.

A collection of property values.

The collection of single-value extended properties defined for the message. Nullable.

A property value.

The subject of the message.

The To: recipients for the message.

The email address of the person or entity.

The display name of the person or entity.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'messageId' path segment. Pass it under the name 'messageId', not as 'id'. Use the 'id' field of the message object as returned by Microsoft Graph.

create-forward-draft

create-mail-attachment-upload-session

create-mail-attachment-upload-session

Create an upload session that allows an app to iteratively upload ranges of a file, so as to attach the file to the specified Outlook item. The item can be a message or event. Use this approach to attach a file if the file size is between 3 MB and 150 MB. To attach a file that's smaller than 3 MB, do a POST operation on the attachments navigation property of the Outlook item; see how to do this for a message or for an event. As part of the response, this action returns an upload URL that you can use in subsequent sequential PUT queries. Request headers for each PUT operation let you specify the exact range of bytes to be uploaded. This allows transfer to be resumed, in case the network connection is dropped during upload. The following are the steps to attach a file to an Outlook item using an upload session: See attach large files to Outlook messages or events for an example.

💡 TIP: For attachments 3MB to 150MB. Graph rejects smaller files with ErrorAttachmentSizeShouldNotBeLessThanMinimumSize, so under 3MB use add-mail-attachment instead. Body: { AttachmentItem: { attachmentType: 'file', name: 'report.pdf', size: 5000000 } }. Returns a pre-authenticated uploadUrl; the caller PUTs the bytes there itself in ranges up to 4MB. This server does not perform the PUT.

The CID or Content-Id of the attachment for referencing for the in-line attachments using the <img src='cid:contentId'> tag in HTML messages. Optional.

The nature of the data in the attachment. Optional.

true if the attachment is an inline attachment; otherwise, false. Optional.

The display name of the attachment. This can be a descriptive string and doesn't have to be the actual file name. Required.

The length of the attachment in bytes. Required.

create-mail-attachment-upload-session

create-mail-child-folder

create-mail-child-folder

Use this API to create a new child mailFolder. If you intend a new folder to be hidden, you must set the isHidden property to true on creation.

💡 TIP: Creates a subfolder inside an existing mail folder. Use list-mail-folders or list-mail-child-folders to find the parent folder ID.

The number of immediate child mailFolders in the current mailFolder.

The collection of child folders in the mailFolder.

The mailFolder's display name.

The unique identifier for an entity. Read-only.

Indicates whether the mailFolder is hidden. This property can be set only when creating the folder. Find more information in Hidden mail folders.

The collection of rules that apply to the user's Inbox folder.

The collection of messages in the mailFolder.

The collection of multi-value extended properties defined for the mailFolder. Read-only. Nullable.

The unique identifier for the mailFolder's parent mailFolder.

The collection of single-value extended properties defined for the mailFolder. Read-only. Nullable.

The number of items in the mailFolder.

The number of items in the mailFolder.

The number of items in the mailFolder marked as unread.

A list of categories to be assigned to a message.

The ID of a folder that a message is to be copied to.

Indicates whether a message should be moved to the Deleted Items folder.

The email addresses of the recipients to which a message should be forwarded as an attachment.

The email addresses of the recipients to which a message should be forwarded.

Indicates whether a message should be marked as read.

The ID of the folder that a message will be moved to.

Indicates whether a message should be permanently deleted and not saved to the Deleted Items folder.

The email addresses to which a message should be redirected.

Indicates whether subsequent rules should be evaluated.

[Note: Simplified from 30 properties to 25 most common ones]

The display name of the rule.

Indicates whether the rule is in an error condition. Read-only.

The unique identifier for an entity. Read-only.

Indicates whether the rule is enabled to be applied to messages.

Indicates if the rule is read-only and cannot be modified or deleted by the rules REST API.

Indicates the order in which the rule is executed, among other rules.

Indicates whether an incoming message must be an approval request in order for the condition or exception to apply.

Indicates whether an incoming message must be automatically forwarded in order for the condition or exception to apply.

Indicates whether an incoming message must be an auto reply in order for the condition or exception to apply.

Indicates whether an incoming message must be encrypted in order for the condition or exception to apply.

Indicates whether an incoming message must be a meeting request in order for the condition or exception to apply.

Indicates whether an incoming message must be a meeting response in order for the condition or exception to apply.

Indicates whether an incoming message must be a non-delivery report in order for the condition or exception to apply.

Indicates whether an incoming message must be permission controlled (RMS-protected) in order for the condition or exception to apply.

Indicates whether an incoming message must be a read receipt in order for the condition or exception to apply.

The email address of the person or entity.

The display name of the person or entity.

Indicates whether an incoming message must be S/MIME-signed in order for the condition or exception to apply.

Indicates whether an incoming message must be a voice mail in order for the condition or exception to apply.

any call doNotForward followUp fyi forward noResponseNecessary read reply replyToAll review

Indicates whether the owner of the mailbox must not be a recipient of an incoming message in order for the condition or exception to apply.

Represents the strings that appear in either the toRecipients or ccRecipients properties of an incoming message in order for the condition or exception to apply.

Represents the strings that appear in the from property of an incoming message in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must be in the ccRecipients property of an incoming message in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must be the only recipient in an incoming message in order for the condition or exception to apply.

The fileAttachment and itemAttachment attachments for the message.

The MIME type.

The unique identifier for an entity. Read-only.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The Bcc: recipients for the message.

The content of the item.

The first 255 characters of the message body. It is in text format.

The categories associated with the item

The Cc: recipients for the message.

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The ID of the conversation the email belongs to.

Indicates the position of the message within the conversation.

Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>.

A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Requires $select to retrieve. Read-only.

Represents the key in a key-value pair.

The value in a key-value pair.

The message ID in the format specified by RFC2822.

Indicates whether a read receipt is requested for the message.

Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet.

The collection of multi-value extended properties defined for the message. Nullable.

The collection of single-value extended properties defined for the message. Nullable.

The subject of the message.

The To: recipients for the message.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

A collection of property values.

A property value.

Represents the strings that should appear in the body of an incoming message in order for the condition or exception to apply.

Represents the strings that should appear in the body or subject of an incoming message in order for the condition or exception to apply.

Represents the categories that an incoming message should be labeled with in order for the condition or exception to apply.

Represents the specific sender email addresses of an incoming message in order for the condition or exception to apply.

Indicates whether an incoming message must have attachments in order for the condition or exception to apply.

Represents the strings that appear in the headers of an incoming message in order for the condition or exception to apply.

The number of immediate child mailFolders in the current mailFolder.

The collection of child folders in the mailFolder.

The mailFolder's display name.

The unique identifier for an entity. Read-only.

Indicates whether the mailFolder is hidden. This property can be set only when creating the folder. Find more information in Hidden mail folders.

The collection of rules that apply to the user's Inbox folder.

The collection of messages in the mailFolder.

The collection of multi-value extended properties defined for the mailFolder. Read-only. Nullable.

The unique identifier for the mailFolder's parent mailFolder.

The collection of single-value extended properties defined for the mailFolder. Read-only. Nullable.

The number of items in the mailFolder.

The number of items in the mailFolder.

The number of items in the mailFolder marked as unread.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'mailFolderId' path segment. Pass it under the name 'mailFolderId', not as 'id'. Use the 'id' field of the mail folder object as returned by Microsoft Graph.

create-mail-child-folder

create-mail-folder

create-mail-folder

Use this API to create a new mail folder in the root folder of the user's mailbox. If you intend a new folder to be hidden, you must set the isHidden property to true on creation.

💡 TIP: Creates a top-level mail folder. Use create-mail-child-folder to create a subfolder inside an existing folder. Use list-mail-folders to find existing folder IDs.

The mailFolder's display name.

The number of items in the mailFolder.

The number of items in the mailFolder.

A list of categories to be assigned to a message.

The ID of a folder that a message is to be copied to.

Indicates whether a message should be moved to the Deleted Items folder.

The email addresses of the recipients to which a message should be forwarded as an attachment.

The email addresses of the recipients to which a message should be forwarded.

Indicates whether a message should be marked as read.

The ID of the folder that a message will be moved to.

Indicates whether a message should be permanently deleted and not saved to the Deleted Items folder.

The email addresses to which a message should be redirected.

Indicates whether subsequent rules should be evaluated.

[Note: Simplified from 30 properties to 25 most common ones]

The display name of the rule.

Indicates whether the rule is in an error condition. Read-only.

The unique identifier for an entity. Read-only.

Indicates whether the rule is enabled to be applied to messages.

Indicates if the rule is read-only and cannot be modified or deleted by the rules REST API.

Indicates the order in which the rule is executed, among other rules.

Indicates whether an incoming message must be an approval request in order for the condition or exception to apply.

Indicates whether an incoming message must be automatically forwarded in order for the condition or exception to apply.

Indicates whether an incoming message must be an auto reply in order for the condition or exception to apply.

Indicates whether an incoming message must be encrypted in order for the condition or exception to apply.

Indicates whether an incoming message must be a meeting request in order for the condition or exception to apply.

Indicates whether an incoming message must be a meeting response in order for the condition or exception to apply.

Indicates whether an incoming message must be a non-delivery report in order for the condition or exception to apply.

Indicates whether an incoming message must be permission controlled (RMS-protected) in order for the condition or exception to apply.

Indicates whether an incoming message must be a read receipt in order for the condition or exception to apply.

The email address of the person or entity.

The display name of the person or entity.

Indicates whether an incoming message must be S/MIME-signed in order for the condition or exception to apply.

Indicates whether an incoming message must be a voice mail in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must not be a recipient of an incoming message in order for the condition or exception to apply.

Represents the strings that appear in either the toRecipients or ccRecipients properties of an incoming message in order for the condition or exception to apply.

Represents the strings that appear in the from property of an incoming message in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must be in the ccRecipients property of an incoming message in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must be the only recipient in an incoming message in order for the condition or exception to apply.

The fileAttachment and itemAttachment attachments for the message.

The MIME type.

The unique identifier for an entity. Read-only.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The Bcc: recipients for the message.

The content of the item.

The first 255 characters of the message body. It is in text format.

The categories associated with the item

The Cc: recipients for the message.

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The ID of the conversation the email belongs to.

Indicates the position of the message within the conversation.

Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>.

A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Requires $select to retrieve. Read-only.

Represents the key in a key-value pair.

The value in a key-value pair.

The message ID in the format specified by RFC2822.

Indicates whether a read receipt is requested for the message.

Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet.

The collection of multi-value extended properties defined for the message. Nullable.

The collection of single-value extended properties defined for the message. Nullable.

The subject of the message.

The To: recipients for the message.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

A collection of property values.

A property value.

Represents the strings that should appear in the body of an incoming message in order for the condition or exception to apply.

Represents the strings that should appear in the body or subject of an incoming message in order for the condition or exception to apply.

Represents the categories that an incoming message should be labeled with in order for the condition or exception to apply.

Represents the specific sender email addresses of an incoming message in order for the condition or exception to apply.

Indicates whether an incoming message must have attachments in order for the condition or exception to apply.

Represents the strings that appear in the headers of an incoming message in order for the condition or exception to apply.

The number of immediate child mailFolders in the current mailFolder.

The collection of child folders in the mailFolder.

The mailFolder's display name.

The unique identifier for an entity. Read-only.

Indicates whether the mailFolder is hidden. This property can be set only when creating the folder. Find more information in Hidden mail folders.

The collection of rules that apply to the user's Inbox folder.

The collection of messages in the mailFolder.

The collection of multi-value extended properties defined for the mailFolder. Read-only. Nullable.

The unique identifier for the mailFolder's parent mailFolder.

The collection of single-value extended properties defined for the mailFolder. Read-only. Nullable.

The number of items in the mailFolder.

The number of items in the mailFolder.

The number of items in the mailFolder marked as unread.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

create-mail-folder

create-mail-rule

create-mail-rule

Create a messageRule object by specifying a set of conditions and actions. Outlook carries out those actions if an incoming message in the user's Inbox meets the specified conditions.

💡 TIP: Creates a message rule for a mail folder. Use the Inbox folder ID (get it from list-mail-folders) for inbox rules. Body: { displayName: 'Rule name', sequence: 1, isEnabled: true, conditions: { fromAddresses: [{ emailAddress: { address: 'user@example.com' } }] }, actions: { moveToFolder: 'folder-id' } }. Actions: moveToFolder, copyToFolder, forwardTo, forwardAsAttachmentTo, delete, markAsRead, markImportance, stopProcessingRules.

A list of categories to be assigned to a message.

The ID of a folder that a message is to be copied to.

Indicates whether a message should be moved to the Deleted Items folder.

The email addresses of the recipients to which a message should be forwarded as an attachment.

The email address of the person or entity.

The display name of the person or entity.

The email addresses of the recipients to which a message should be forwarded.

Indicates whether a message should be marked as read.

The ID of the folder that a message will be moved to.

Indicates whether a message should be permanently deleted and not saved to the Deleted Items folder.

The email addresses to which a message should be redirected.

Indicates whether subsequent rules should be evaluated.

[Note: Simplified from 30 properties to 25 most common ones]

Represents the strings that should appear in the body of an incoming message in order for the condition or exception to apply.

Represents the strings that should appear in the body or subject of an incoming message in order for the condition or exception to apply.

Represents the categories that an incoming message should be labeled with in order for the condition or exception to apply.

Represents the specific sender email addresses of an incoming message in order for the condition or exception to apply.

Indicates whether an incoming message must have attachments in order for the condition or exception to apply.

Represents the strings that appear in the headers of an incoming message in order for the condition or exception to apply.

Indicates whether an incoming message must be an approval request in order for the condition or exception to apply.

Indicates whether an incoming message must be automatically forwarded in order for the condition or exception to apply.

Indicates whether an incoming message must be an auto reply in order for the condition or exception to apply.

Indicates whether an incoming message must be encrypted in order for the condition or exception to apply.

Indicates whether an incoming message must be a meeting request in order for the condition or exception to apply.

Indicates whether an incoming message must be a meeting response in order for the condition or exception to apply.

Indicates whether an incoming message must be a non-delivery report in order for the condition or exception to apply.

Indicates whether an incoming message must be permission controlled (RMS-protected) in order for the condition or exception to apply.

Indicates whether an incoming message must be a read receipt in order for the condition or exception to apply.

Indicates whether an incoming message must be S/MIME-signed in order for the condition or exception to apply.

Indicates whether an incoming message must be a voice mail in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must not be a recipient of an incoming message in order for the condition or exception to apply.

Represents the strings that appear in either the toRecipients or ccRecipients properties of an incoming message in order for the condition or exception to apply.

Represents the strings that appear in the from property of an incoming message in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must be in the ccRecipients property of an incoming message in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must be the only recipient in an incoming message in order for the condition or exception to apply.

The display name of the rule.

[Note: Simplified from 30 properties to 25 most common ones]

Represents the strings that should appear in the body of an incoming message in order for the condition or exception to apply.

Represents the strings that should appear in the body or subject of an incoming message in order for the condition or exception to apply.

Represents the categories that an incoming message should be labeled with in order for the condition or exception to apply.

Represents the specific sender email addresses of an incoming message in order for the condition or exception to apply.

The email address of the person or entity.

The display name of the person or entity.

Indicates whether an incoming message must have attachments in order for the condition or exception to apply.

Represents the strings that appear in the headers of an incoming message in order for the condition or exception to apply.

Indicates whether an incoming message must be an approval request in order for the condition or exception to apply.

Indicates whether an incoming message must be automatically forwarded in order for the condition or exception to apply.

Indicates whether an incoming message must be an auto reply in order for the condition or exception to apply.

Indicates whether an incoming message must be encrypted in order for the condition or exception to apply.

Indicates whether an incoming message must be a meeting request in order for the condition or exception to apply.

Indicates whether an incoming message must be a meeting response in order for the condition or exception to apply.

Indicates whether an incoming message must be a non-delivery report in order for the condition or exception to apply.

Indicates whether an incoming message must be permission controlled (RMS-protected) in order for the condition or exception to apply.

Indicates whether an incoming message must be a read receipt in order for the condition or exception to apply.

Indicates whether an incoming message must be S/MIME-signed in order for the condition or exception to apply.

Indicates whether an incoming message must be a voice mail in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must not be a recipient of an incoming message in order for the condition or exception to apply.

Represents the strings that appear in either the toRecipients or ccRecipients properties of an incoming message in order for the condition or exception to apply.

Represents the strings that appear in the from property of an incoming message in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must be in the ccRecipients property of an incoming message in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must be the only recipient in an incoming message in order for the condition or exception to apply.

Indicates whether the rule is in an error condition. Read-only.

The unique identifier for an entity. Read-only.

Indicates whether the rule is enabled to be applied to messages.

Indicates if the rule is read-only and cannot be modified or deleted by the rules REST API.

Indicates the order in which the rule is executed, among other rules.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'mailFolderId' path segment. Pass it under the name 'mailFolderId', not as 'id'. Use the 'id' field of the mail folder object as returned by Microsoft Graph.

create-mail-rule

create-my-calendar-permission

create-my-calendar-permission

Create a calendarPermission resource to specify the identity and role of the user with whom the specified calendar is being shared or delegated.

💡 TIP: Shares the user's primary calendar with another user (or sets up a delegate). Body: { emailAddress: { name: 'Adele Vance', address: 'adele@contoso.com' }, role: 'read' | 'write' | 'delegateWithoutPrivateEventAccess' | 'delegateWithPrivateEventAccess', isInsideOrganization: true, isRemovable: true }. Use list-users to resolve the recipient SMTP. Returns the created calendarPermission with its id (used by update-my-calendar-permission and delete-my-calendar-permission).

List of allowed sharing or delegating permission levels for the calendar. The possible values are: none, freeBusyRead, limitedRead, read, write, delegateWithoutPrivateEventAccess, delegateWithPrivateEventAccess, custom.

The email address of the person or entity.

The display name of the person or entity.

True if the user in context (recipient or delegate) is inside the same organization as the calendar owner.

True if the user can be removed from the list of recipients or delegates for the specified calendar, false otherwise. The 'My organization' user determines the permissions other people within your organization have to the given calendar. You can't remove 'My organization' as a share recipient to a calendar.

create-my-calendar-permission

create-onedrive-folder

create-onedrive-folder

Create a OneDrive folder.

💡 TIP: Creates a new folder inside the specified drive item. Body must include name (string) and folder ({}) fields. Use @microsoft.graph.conflictBehavior to control behavior on name conflict: 'rename' (default), 'replace', or 'fail'.

The title of the album for this audio file.

The artist named on the album for the audio file.

The performing artist for the audio file.

Bitrate expressed in kbps.

The name of the composer of the audio file.

Copyright information for the audio file.

The number of the disc this audio file came from.

The total number of discs in this album.

Duration of the audio file, expressed in milliseconds

The genre of this audio file.

Indicates if the file is protected with digital rights management.

Indicates if the file is encoded with a variable bitrate.

The title of the audio file.

The number of the track on the original disc for this audio file.

The total number of tracks on the original disc for this audio file.

The year the audio file was recorded.

The year the audio file was recorded.

Unique identifier of the driveItem that is the cover of the album.

Number of children contained immediately within this container.

An eTag for the content of the item. This eTag isn't changed if only the metadata is changed. Note This property isn't returned if the item is a folder. Read-only.

The content stream, if the item represents a file.

The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.

Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.

[Note: Simplified from 137 properties to 25 most common ones]

A freeform text entry field for the user to describe themselves. Requires $select to retrieve.

true if the account is enabled; otherwise, false. This property is required when a user is created. Requires $select to retrieve. Supports $filter (eq, ne, not, and in). This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it.

Sets the age group of the user. Allowed values: null, Minor, NotAdult, and Adult. For more information, see legal age group property definitions. Requires $select to retrieve. Supports $filter (eq, ne, not, and in).

The licenses that are assigned to the user, including inherited (group-based) licenses. This property doesn't differentiate between directly assigned and inherited licenses. Use the licenseAssignmentStates property to identify the directly assigned and inherited licenses. Not nullable. Requires $select to retrieve. Supports $filter (eq, not, /$count eq 0, /$count ne 0).

A collection of the unique identifiers for plans that have been disabled. IDs are available in servicePlans > servicePlanId in the tenant's subscribedSkus or serviceStatus > servicePlanId in the tenant's companySubscription.

The unique identifier for the SKU. Corresponds to the skuId from subscribedSkus or companySubscription.

The plans that are assigned to the user. Read-only. Not nullable. Requires $select to retrieve. Supports $filter (eq and not).

The date and time at which the plan was assigned. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.

Condition of the capability assignment. The possible values are Enabled, Warning, Suspended, Deleted, LockedOut. See a detailed description of each value.

The name of the service; for example, exchange.

A GUID that identifies the service plan. For a complete list of GUIDs and their equivalent friendly service names, see Product names and service plan identifiers for licensing.

The birthday of the user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014, is 2014-01-01T00:00:00Z. Requires $select to retrieve.

The telephone numbers for the user. NOTE: Although it's a string collection, only one number can be set for this property. Read-only for users synced from the on-premises directory. Returned by default. Supports $filter (eq, not, ge, le, startsWith). This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it.

The city where the user is located. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).

The name of the company that the user is associated with. This property can be useful for describing the company that a guest comes from. The maximum length is 64 characters.Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).

Sets whether consent was obtained for minors. Allowed values: null, Granted, Denied, and NotRequired. For more information, see legal age group property definitions. Requires $select to retrieve. Supports $filter (eq, ne, not, and in).

The country or region where the user is located; for example, US or UK. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).

The date and time the user was created, in ISO 8601 format and UTC. The value can't be modified and is automatically populated when the entity is created. Nullable. For on-premises users, the value represents when they were first created in Microsoft Entra ID. Property is null for some users created before June 2018 and on-premises users that were synced to Microsoft Entra ID before June 2018. Read-only. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in).

Indicates whether the user account was created through one of the following methods:  As a regular school or work account (null). As an external account (Invitation). As a local account for an Azure Active Directory B2C tenant (LocalAccount). Through self-service sign-up by an internal user using email verification (EmailVerified). Through self-service sign-up by a guest signing up through a link that is part of a user flow (SelfServiceSignUp). Read-only.Requires $select to retrieve. Supports $filter (eq, ne, not, in).

Date and time when this object was deleted. Always null when the object hasn't been deleted.

The name of the department in which the user works. Maximum length is 64 characters. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in, and eq on null values).

The limit on the maximum number of devices that the user is permitted to enroll. Allowed values are 5 or 1000.

The name displayed in the address book for the user. This value is usually the combination of the user's first name, middle initial, and family name. This property is required when a user is created and it can't be cleared during updates. Maximum length is 256 characters. Returned by default. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq on null values), $orderby, and $search.

The date and time when the user was hired or will start work in a future hire. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in).

The employee identifier assigned to the user by the organization. The maximum length is 16 characters. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq on null values).

The date and time when the user left or will leave the organization. To read this property, the calling app must be assigned the User-LifeCycleInfo.Read.All permission. To write this property, the calling app must be assigned the User.Read.All and User-LifeCycleInfo.ReadWrite.All permissions. To read this property in delegated scenarios, the admin needs at least one of the following Microsoft Entra roles: Lifecycle Workflows Administrator (least privilege), Global Reader. To write this property in delegated scenarios, the admin needs the Global Administrator role. Supports $filter (eq, ne, not , ge, le, in). For more information, see Configure the employeeLeaveDateTime property for a user.

The unique identifier for an entity. Read-only.

The state or province in the user's address. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).

The user principal name (UPN) of the user. The UPN is an Internet-style sign-in name for the user based on the Internet standard RFC 822. By convention, this value should map to the user's email name. The general format is alias@domain, where the domain must be present in the tenant's collection of verified domains. This property is required when a user is created. The verified domains for the tenant can be accessed from the verifiedDomains property of organization.NOTE: This property can't contain accent characters. Only the following characters are allowed A - Z, a - z, 0 - 9, ' . - _ ! # ^ ~. For the complete list of allowed characters, see username policies. Returned by default. Supports $filter (eq, ne, not, ge, le, in, startsWith, endsWith) and $orderby. This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it.

Date and time of item creation. Read-only.

Represents the state of the deleted item.

Provides a user-visible description of the item. Optional.

ETag for the item. Read-only.

The CRC32 value of the file (if available). Read-only.

A proprietary hash of the file that can be used to determine if the contents of the file change (if available). Read-only.

SHA1 hash for the contents of the file (if available). Read-only.

This property isn't supported. Don't use.

The MIME type for the file. This is determined by logic on the server and might not be the value provided when the file was uploaded. Read-only.

The UTC date and time the file was created on a client.

The UTC date and time the file was last accessed. Available for the recent file list only.

The UTC date and time the file was last modified on a client.

Number of children contained immediately within this container.

The method by which the folder should be sorted.

If true, indicates that items should be sorted in descending order. Otherwise, items should be sorted ascending.

The type of view that should be used to represent the folder.

The unique identifier for an entity. Read-only.

Optional. Height of the image, in pixels. Read-only.

Optional. Width of the image, in pixels. Read-only.

The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.

Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.

[Note: Simplified from 137 properties to 25 most common ones]

A freeform text entry field for the user to describe themselves. Requires $select to retrieve.

true if the account is enabled; otherwise, false. This property is required when a user is created. Requires $select to retrieve. Supports $filter (eq, ne, not, and in). This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it.

Sets the age group of the user. Allowed values: null, Minor, NotAdult, and Adult. For more information, see legal age group property definitions. Requires $select to retrieve. Supports $filter (eq, ne, not, and in).

The licenses that are assigned to the user, including inherited (group-based) licenses. This property doesn't differentiate between directly assigned and inherited licenses. Use the licenseAssignmentStates property to identify the directly assigned and inherited licenses. Not nullable. Requires $select to retrieve. Supports $filter (eq, not, /$count eq 0, /$count ne 0).

A collection of the unique identifiers for plans that have been disabled. IDs are available in servicePlans > servicePlanId in the tenant's subscribedSkus or serviceStatus > servicePlanId in the tenant's companySubscription.

The unique identifier for the SKU. Corresponds to the skuId from subscribedSkus or companySubscription.

The plans that are assigned to the user. Read-only. Not nullable. Requires $select to retrieve. Supports $filter (eq and not).

The date and time at which the plan was assigned. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.

Condition of the capability assignment. The possible values are Enabled, Warning, Suspended, Deleted, LockedOut. See a detailed description of each value.

The name of the service; for example, exchange.

A GUID that identifies the service plan. For a complete list of GUIDs and their equivalent friendly service names, see Product names and service plan identifiers for licensing.

The birthday of the user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014, is 2014-01-01T00:00:00Z. Requires $select to retrieve.

The telephone numbers for the user. NOTE: Although it's a string collection, only one number can be set for this property. Read-only for users synced from the on-premises directory. Returned by default. Supports $filter (eq, not, ge, le, startsWith). This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it.

The city where the user is located. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).

The name of the company that the user is associated with. This property can be useful for describing the company that a guest comes from. The maximum length is 64 characters.Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).

Sets whether consent was obtained for minors. Allowed values: null, Granted, Denied, and NotRequired. For more information, see legal age group property definitions. Requires $select to retrieve. Supports $filter (eq, ne, not, and in).

The country or region where the user is located; for example, US or UK. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).

The date and time the user was created, in ISO 8601 format and UTC. The value can't be modified and is automatically populated when the entity is created. Nullable. For on-premises users, the value represents when they were first created in Microsoft Entra ID. Property is null for some users created before June 2018 and on-premises users that were synced to Microsoft Entra ID before June 2018. Read-only. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in).

Indicates whether the user account was created through one of the following methods:  As a regular school or work account (null). As an external account (Invitation). As a local account for an Azure Active Directory B2C tenant (LocalAccount). Through self-service sign-up by an internal user using email verification (EmailVerified). Through self-service sign-up by a guest signing up through a link that is part of a user flow (SelfServiceSignUp). Read-only.Requires $select to retrieve. Supports $filter (eq, ne, not, in).

Date and time when this object was deleted. Always null when the object hasn't been deleted.

The name of the department in which the user works. Maximum length is 64 characters. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in, and eq on null values).

The limit on the maximum number of devices that the user is permitted to enroll. Allowed values are 5 or 1000.

The name displayed in the address book for the user. This value is usually the combination of the user's first name, middle initial, and family name. This property is required when a user is created and it can't be cleared during updates. Maximum length is 256 characters. Returned by default. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq on null values), $orderby, and $search.

The date and time when the user was hired or will start work in a future hire. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in).

The employee identifier assigned to the user by the organization. The maximum length is 16 characters. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq on null values).

The unique identifier for an entity. Read-only.

The state or province in the user's address. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).

Date and time the item was last modified. Read-only.

Optional. The altitude (height), in feet,  above sea level for the item. Read-only. [Simplified from 3 options]

Optional. The latitude, in decimal, for the item. Read-only. [Simplified from 3 options]

Optional. The longitude, in decimal, for the item. Read-only. [Simplified from 3 options]

Contains the virus details for the malware facet.

The name of the item. Read-write.

A string indicating the type of package. While oneNote is the only currently defined value, you should expect other package types to be returned and handle them accordingly.

Unique identifier of the drive instance that contains the driveItem. Only returned if the item is located in a drive. Read-only.

Identifies the type of drive. Only returned if the item is located in a drive. See drive resource for values.

Unique identifier of the driveItem in the drive or a listItem in a list. Read-only.

The name of the item being referenced. Read-only.

Percent-encoded path that can be used to navigate to the item. Read-only.

A unique identifier for a shared resource that can be accessed via the Shares API.

The unique identifier (guid) for the item's list in SharePoint.

An integer identifier for the item within the containing list.

The unique identifier (guid) for the item within OneDrive for Business or a SharePoint site.

The unique identifier (guid) for the item's site collection (SPSite).

The SharePoint URL for the site that contains the item.

The unique identifier (guid) for the tenancy.

The unique identifier (guid) for the item's site (SPWeb).

For OneDrive for Business and SharePoint, this property represents the ID of the site that contains the parent document library of the driveItem resource or the parent list of the listItem resource. The value is the same as the id property of that site resource. It is an opaque string that consists of three identifiers of the site. For OneDrive, this property is not populated.

Date and time the pending binary operation was queued in UTC time. Read-only.

URL that either displays the resource in the browser (for Office file formats), or is a direct link to the file (for other formats). Read-only.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

create-onedrive-folder

create-onenote-notebook

create-onenote-notebook

Create a new OneNote notebook.

💡 TIP: Creates a new OneNote notebook. Body: { displayName: 'Notebook Name' }. The name must be unique across the user's notebooks.

The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.

Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.

The URL of the link.

The date and time when the page was created. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.

The name of the notebook.

The unique identifier for an entity. Read-only.

The date and time when the notebook was last modified. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.

The section groups in the section. Read-only. Nullable.

The URL for the sectionGroups navigation property, which returns all the section groups in the section group. Read-only.

The sections in the section group. Read-only. Nullable.

The URL for the sections navigation property, which returns all the sections in the section group. Read-only.

The endpoint where you can get details about the page. Read-only.

The name of the notebook.

Indicates whether this is the user's default notebook. Read-only.

Indicates whether the notebook is shared. If true, the contents of the notebook can be seen by people other than the owner. Read-only.

The section groups in the notebook. Read-only. Nullable.

The URL for the sectionGroups navigation property, which returns all the section groups in the notebook. Read-only.

The sections in the notebook. Read-only. Nullable.

The URL for the sections navigation property, which returns all the sections in the notebook. Read-only.

The name of the notebook.

Indicates whether this is the user's default section. Read-only.

The collection of pages in the section.  Read-only. Nullable.

The page's HTML content.

The URL for the page's HTML content.  Read-only.

The unique identifier of the application that created the page. Read-only.

The date and time when the page was created. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.

The unique identifier for an entity. Read-only.

The date and time when the page was last modified. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.

The indentation level of the page. Read-only.

The order of the page within its parent section. Read-only.

The title of the page.

The pages endpoint where you can get details for all the pages in the section. Read-only.

The endpoint where you can get details about the page. Read-only.

The name of the notebook.

Indicates whether this is the user's default notebook. Read-only.

Indicates whether the notebook is shared. If true, the contents of the notebook can be seen by people other than the owner. Read-only.

The date and time when the notebook was last modified. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.

The section groups in the notebook. Read-only. Nullable.

The URL for the sectionGroups navigation property, which returns all the section groups in the notebook. Read-only.

The sections in the notebook. Read-only. Nullable.

The URL for the sections navigation property, which returns all the sections in the notebook. Read-only.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

create-onenote-notebook

create-onenote-page

create-onenote-page

Create a new OneNote page in the default section of the default notebook. To create a page in a different section in the default notebook, you can use the sectionName query parameter.  Example: ../onenote/pages?sectionName=My%20section The POST /onenote/pages operation is used only to create pages in the current user's default notebook. If you're targeting other notebooks, you can create pages in a specified section.

💡 TIP: Body must be a full HTML document (with <title>...</title>...). Partial HTML or plain text fails silently or creates malformed pages.

The URL of the link.

The date and time when the page was created. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.

The name of the notebook.

The unique identifier for an entity. Read-only.

The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.

Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.

The name of the notebook.

The section groups in the section. Read-only. Nullable.

The URL for the sectionGroups navigation property, which returns all the section groups in the section group. Read-only.

The sections in the section group. Read-only. Nullable.

The URL for the sections navigation property, which returns all the sections in the section group. Read-only.

The endpoint where you can get details about the page. Read-only.

The name of the notebook.

Indicates whether this is the user's default section. Read-only.

The date and time when the notebook was last modified. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.

The collection of pages in the section.  Read-only. Nullable.

The page's HTML content.

The URL for the page's HTML content.  Read-only.

The unique identifier of the application that created the page. Read-only.

The date and time when the page was last modified. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.

The indentation level of the page. Read-only.

The order of the page within its parent section. Read-only.

The title of the page.

The pages endpoint where you can get details for all the pages in the section. Read-only.

The page's HTML content.

The date and time when the page was created. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.

The unique identifier for an entity. Read-only.

The title of the page.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

create-onenote-page

create-onenote-section

create-onenote-section

Create a new onenoteSection in the specified notebook.

💡 TIP: Creates a new section in a notebook. Body: { displayName: 'Section Name' }.

The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.

Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.

The URL of the link.

The page's HTML content.

The endpoint where you can get details about the page. Read-only.

The title of the page.

The name of the notebook.

Indicates whether this is the user's default notebook. Read-only.

Indicates whether the notebook is shared. If true, the contents of the notebook can be seen by people other than the owner. Read-only.

The date and time when the notebook was last modified. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.

The section groups in the notebook. Read-only. Nullable.

The URL for the sectionGroups navigation property, which returns all the section groups in the notebook. Read-only.

The sections in the notebook. Read-only. Nullable.

The URL for the sections navigation property, which returns all the sections in the notebook. Read-only.

The name of the notebook.

The section groups in the section. Read-only. Nullable.

The URL for the sectionGroups navigation property, which returns all the section groups in the section group. Read-only.

The sections in the section group. Read-only. Nullable.

The URL for the sections navigation property, which returns all the sections in the section group. Read-only.

The date and time when the page was created. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.

The name of the notebook.

The unique identifier for an entity. Read-only.

Indicates whether this is the user's default section. Read-only.

The collection of pages in the section.  Read-only. Nullable.

The pages endpoint where you can get details for all the pages in the section. Read-only.

The endpoint where you can get details about the page. Read-only.

The name of the notebook.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'notebookId' path segment. Pass it under the name 'notebookId', not as 'id'. Use the 'id' field of the notebook object as returned by Microsoft Graph.

create-onenote-section

create-onenote-section-page

create-onenote-section-page

Create a new page in the specified section.

💡 TIP: Body must be a full HTML document (with <title>...</title>...). Partial HTML fails silently.

The URL of the link.

The name of the notebook.

Indicates whether this is the user's default notebook. Read-only.

Indicates whether the notebook is shared. If true, the contents of the notebook can be seen by people other than the owner. Read-only.

The date and time when the notebook was last modified. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.

The section groups in the notebook. Read-only. Nullable.

The URL for the sectionGroups navigation property, which returns all the section groups in the notebook. Read-only.

The sections in the notebook. Read-only. Nullable.

The URL for the sections navigation property, which returns all the sections in the notebook. Read-only.

The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.

Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.

The date and time when the page was created. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.

The name of the notebook.

The unique identifier for an entity. Read-only.

The section groups in the section. Read-only. Nullable.

The URL for the sectionGroups navigation property, which returns all the section groups in the section group. Read-only.

The sections in the section group. Read-only. Nullable.

The URL for the sections navigation property, which returns all the sections in the section group. Read-only.

The endpoint where you can get details about the page. Read-only.

The name of the notebook.

Indicates whether this is the user's default section. Read-only.

The collection of pages in the section.  Read-only. Nullable.

The page's HTML content.

The URL for the page's HTML content.  Read-only.

The unique identifier of the application that created the page. Read-only.

The date and time when the page was last modified. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.

The indentation level of the page. Read-only.

The order of the page within its parent section. Read-only.

The title of the page.

The pages endpoint where you can get details for all the pages in the section. Read-only.

The page's HTML content.

The title of the page.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'onenoteSectionId' path segment. Pass it under the name 'onenoteSectionId', not as 'id'. Use the 'id' field of the onenote section object as returned by Microsoft Graph.

create-onenote-section-page

create-outlook-category

create-outlook-category

Create an outlookCategory object in the user's master list of categories.

💡 TIP: Creates a new Outlook category. Body: { displayName (unique), color (one of: none, preset0 … preset24 — maps to red, orange, yellow, green, teal, olive, blue, purple, cranberry, steel, dark-steel, gray, dark-gray, black, dark-red, dark-orange, dark-yellow, dark-green, dark-teal, dark-olive, dark-blue, dark-purple, dark-cranberry) }. Category names are case-sensitive when applied to messages/events.

A unique name that identifies a category in the user's mailbox. After a category is created, the name cannot be changed. Read-only.

The unique identifier for an entity. Read-only.

create-outlook-category

create-outlook-contact

create-outlook-contact

Add a contact to the root Contacts folder or to the contacts endpoint of another contact folder.

The name of the contact's assistant.

The contact's birthday. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The city.

The country or region. It's a free-format string value, for example, 'United States'.

The postal code.

The state.

The street.

The business home page of the contact.

The contact's business phone numbers.

The categories associated with the item

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The names of the contact's children.

The name of the contact's company.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The contact's department.

The contact's display name. You can specify the display name in a create or update operation. Note that later updates to other properties may cause an automatically generated value to overwrite the displayName value you have specified. To preserve a pre-existing value, always include it as displayName in an update operation.

The contact's email addresses.

The email address of the person or entity.

The display name of the person or entity.

The name the contact is filed under.

The contact's suffix.

The contact's given name.

The city.

The postal code.

The state.

The street.

The contact's home phone numbers.

The contact's instant messaging (IM) addresses.

The contact's initials.

The collection of multi-value extended properties defined for the contact. Read-only. Nullable.

A collection of property values.

The collection of single-value extended properties defined for the contact. Read-only. Nullable.

A property value.

The contact's title.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

create-outlook-contact

create-planner-bucket

create-planner-bucket

Create a new plannerBucket object.

Name of the bucket.

Hint used to order items of this type in a list view. For details about the supported format, see Using order hints in Planner.

Plan ID to which the bucket belongs.

Read-only. Nullable. The collection of tasks in the bucket.

Number of checklist items with value set to false, representing incomplete items.

The unique identifier for an entity. Read-only.

Hint value used to order the task on the AssignedTo view of the Task Board when the task isn't assigned to anyone, or if the orderHintsByAssignee dictionary doesn't provide an order hint for the user the task is assigned to. The format is defined as outlined here.

Hint used to order items of this type in a list view. The format is defined as outlined here.

Bucket ID to which the task belongs. The bucket needs to be in the plan that the task is in. It's 28 characters long and case-sensitive. Format validation is done on the service.

Hint used to order tasks in the bucket view of the task board. For details about the supported format, see Using order hints in Planner.

Number of checklist items that are present on the task.

The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.

Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.

Read-only. Date and time at which the 'percentComplete' of the task is set to '100'. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

Thread ID of the conversation on the task. This is the ID of the conversation thread object created in the group.

Read-only. Date and time at which the task is created. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

Description of the task.

automatic noPreview checklist description reference

Date and time at which the task is due. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

Read-only. Value is true if the details object of the task has a nonempty description and false otherwise.

Percentage of task completion. When set to 100, the task is considered completed.

Plan ID to which the task belongs.

Priority of the task. The valid range of values is between 0 and 10, with the increasing value being lower priority (0 has the highest priority and 10 has the lowest priority).  Currently, Planner interprets values 0 and 1 as 'urgent', 2, 3 and 4 as 'important', 5, 6, and 7 as 'medium', and 8, 9, and 10 as 'low'.  Additionally, Planner sets the value 1 for 'urgent', 3 for 'important', 5 for 'medium', and 9 for 'low'.

Number of external references that exist on the task.

Date and time at which the task starts. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

Title of the task.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

create-planner-bucket

create-planner-task

create-planner-task

Create a new plannerTask.

Number of checklist items with value set to false, representing incomplete items.

The unique identifier for an entity. Read-only.

Hint value used to order the task on the AssignedTo view of the Task Board when the task isn't assigned to anyone, or if the orderHintsByAssignee dictionary doesn't provide an order hint for the user the task is assigned to. The format is defined as outlined here.

Hint used to order items of this type in a list view. The format is defined as outlined here.

Bucket ID to which the task belongs. The bucket needs to be in the plan that the task is in. It's 28 characters long and case-sensitive. Format validation is done on the service.

Hint used to order tasks in the bucket view of the task board. For details about the supported format, see Using order hints in Planner.

Number of checklist items that are present on the task.

The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.

Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.

Read-only. Date and time at which the 'percentComplete' of the task is set to '100'. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

Thread ID of the conversation on the task. This is the ID of the conversation thread object created in the group.

Read-only. Date and time at which the task is created. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

Description of the task.

Date and time at which the task is due. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

Read-only. Value is true if the details object of the task has a nonempty description and false otherwise.

Percentage of task completion. When set to 100, the task is considered completed.

Plan ID to which the task belongs.

Priority of the task. The valid range of values is between 0 and 10, with the increasing value being lower priority (0 has the highest priority and 10 has the lowest priority).  Currently, Planner interprets values 0 and 1 as 'urgent', 2, 3 and 4 as 'important', 5, 6, and 7 as 'medium', and 8, 9, and 10 as 'low'.  Additionally, Planner sets the value 1 for 'urgent', 3 for 'important', 5 for 'medium', and 9 for 'low'.

Number of external references that exist on the task.

Date and time at which the task starts. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

Title of the task.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

create-planner-task

create-planner-task-message

create-planner-task-message

[beta] Create a new plannerTaskChatMessage on a plannerTask.

💡 TIP: Posts a message to a Planner task's chat (the modern 'task chat', not the legacy conversationThreadId comment). Microsoft is retiring the classic task comments experience and hiding it from the task (Planner 2026 update), so task chat is the current supported way to post per-task updates teammates will see, with @mentions. Body: { content: 'plain text or sanitized HTML', mentions?: [{ mentioned: 'user-id', position: 0, mentionType: 'user' }] } (mentions optional). No ETag/If-Match required. BETA Graph API: subject to change; delegated work/school accounts only — no application permissions, no personal Microsoft accounts, global cloud only (not GCC/DoD/21Vianet).

The content of the chat message. Supports plain text and sanitized HTML.

The display name of the identity. For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.

The date and time when the message was created. The timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.

The unique identifier for an entity. Read-only.

The list of mentions in the message.

The ID of the mentioned user.

The zero-based position of the mention in the message content.

The ID of the parent plannerTask that this message belongs to.

The reactions on the message.

Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.

The date and time when the reaction was added. The timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.

The type of reaction, such as like, heart, or emoji characters.

Value for the 'plannerTaskId' path segment. Pass it under the name 'plannerTaskId', not as 'id'. Use the 'id' field of the planner task object as returned by Microsoft Graph.

create-planner-task-message

create-reply-all-draft

create-reply-all-draft

Create a draft to reply to the sender and all recipients of a message in either JSON or MIME format. When using JSON format:
- Specify either a comment or the body property of the message parameter. Specifying both will return an HTTP 400 Bad Request error.
- If the original message specifies a recipient in the replyTo property, per Internet Message Format (RFC 2822), you should send the reply to the recipients in the replyTo and toRecipients properties, and not the recipients in the from and toRecipients properties.
- You can update the draft later to add reply content to the body or change other message properties. When using MIME format:
- Provide the applicable Internet message headers and the MIME content, all encoded in base64 format in the request body.
- Add any attachments and S/MIME properties to the MIME content. Send the draft message in a subsequent operation. Alternatively, reply-all to a message in a single action.

💡 TIP: For HTML replies pass Message.body.contentType: 'html' with Message.body.content as HTML. Note: supplying Message.body replaces the whole draft body, so the original quoted history is not included. Specifying both 'comment' and Message.body returns 400. Signatures are added by the Outlook client only, not via Graph.

The fileAttachment and itemAttachment attachments for the message.

The MIME type.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The Bcc: recipients for the message.

The email address of the person or entity.

The display name of the person or entity.

The content of the item.

The first 255 characters of the message body. It is in text format.

The categories associated with the item

The Cc: recipients for the message.

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The ID of the conversation the email belongs to.

Indicates the position of the message within the conversation.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>.

The unique identifier for an entity. Read-only.

A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Requires $select to retrieve. Read-only.

Represents the key in a key-value pair.

The value in a key-value pair.

The message ID in the format specified by RFC2822.

Indicates whether a read receipt is requested for the message.

Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet.

The collection of multi-value extended properties defined for the message. Nullable.

A collection of property values.

The collection of single-value extended properties defined for the message. Nullable.

A property value.

The subject of the message.

The To: recipients for the message.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'messageId' path segment. Pass it under the name 'messageId', not as 'id'. Use the 'id' field of the message object as returned by Microsoft Graph.

create-reply-all-draft

create-reply-draft

create-reply-draft

Create a draft to reply to the sender of a message in either JSON or MIME format. When using JSON format:
- Specify either a comment or the body property of the message parameter. Specifying both will return an HTTP 400 Bad Request error.
- If replyTo is specified in the original message, per Internet Message Format (RFC 2822), you should send the reply to the recipients in replyTo, and not the recipients in from.
- You can update the draft later to add reply content to the body or change other message properties. When using MIME format:
- Provide the applicable Internet message headers and the MIME content, all encoded in base64 format in the request body.
- Add any attachments and S/MIME properties to the MIME content. Send the draft message in a subsequent operation. Alternatively, reply to a message in a single operation.

💡 TIP: For HTML replies pass Message.body.contentType: 'html' with Message.body.content as HTML. Note: supplying Message.body replaces the whole draft body, so the original quoted history is not included. Specifying both 'comment' and Message.body returns 400. Signatures are added by the Outlook client only, not via Graph.

The fileAttachment and itemAttachment attachments for the message.

The MIME type.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The Bcc: recipients for the message.

The email address of the person or entity.

The display name of the person or entity.

The content of the item.

The first 255 characters of the message body. It is in text format.

The categories associated with the item

The Cc: recipients for the message.

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The ID of the conversation the email belongs to.

Indicates the position of the message within the conversation.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>.

The unique identifier for an entity. Read-only.

A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Requires $select to retrieve. Read-only.

Represents the key in a key-value pair.

The value in a key-value pair.

The message ID in the format specified by RFC2822.

Indicates whether a read receipt is requested for the message.

Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet.

The collection of multi-value extended properties defined for the message. Nullable.

A collection of property values.

The collection of single-value extended properties defined for the message. Nullable.

A property value.

The subject of the message.

The To: recipients for the message.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'messageId' path segment. Pass it under the name 'messageId', not as 'id'. Use the 'id' field of the message object as returned by Microsoft Graph.

create-reply-draft

create-specific-calendar-event

create-specific-calendar-event

Use this API to create a new event in a calendar. The calendar can be one for a user, or the default calendar of a Microsoft 365 group.

💡 TIP: CRITICAL: Do not try to guess the email address of the recipients. Use the list-users tool to find the email address of the recipients.

true if the meeting organizer allows invitees to propose a new time when responding; otherwise, false. Optional. The default is true.

The collection of FileAttachment, ItemAttachment, and referenceAttachment attachments for the event. Navigation property. Read-only. Nullable.

The MIME type.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The collection of attendees for the event.

The email address of the person or entity.

The display name of the person or entity.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

none organizer tentativelyAccepted accepted declined notResponded

The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The content of the item.

The categories associated with the item

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The unique identifier for an entity. Read-only.

Set to true if the event lasts all day. If true, regardless of whether it's a single-day or multi-day event, start, and endtime must be set to midnight and be in the same time zone.

True if this event has online meeting information (that is, onlineMeeting points to an onlineMeetingInfo resource), false otherwise. Default is false (onlineMeeting is null). Optional.  After you set isOnlineMeeting to true, Microsoft Graph initializes onlineMeeting. Subsequently, Outlook ignores any further changes to isOnlineMeeting, and the meeting remains available online.

Set to true if an alert is set to remind the user of the event.

The city.

The country or region. It's a free-format string value, for example, 'United States'.

The postal code.

The state.

The street.

The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters. [Simplified from 3 options]

The altitude of the location. [Simplified from 3 options]

The accuracy of the altitude. [Simplified from 3 options]

The latitude of the location. [Simplified from 3 options]

The longitude of the location. [Simplified from 3 options]

The name associated with the location.

Optional email address of the location.

Optional URI representing the location.

For internal use only.

The collection of multi-value extended properties defined for the event. Read-only. Nullable.

A collection of property values.

The day of the month on which the event occurs. Required if type is absoluteMonthly or absoluteYearly.

A collection of the days of the week on which the event occurs. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. If type is relativeMonthly or relativeYearly, and daysOfWeek specifies more than one day, the event falls on the first day that satisfies the pattern.  Required if type is weekly, relativeMonthly, or relativeYearly.

The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required.

The month in which the event occurs.  This is a number from 1 to 12.

The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence of the meeting may not be this date. Required if type is endDate.

The number of times to repeat the event. Required and must be positive if type is numbered.

Time zone for the startDate and endDate properties. Optional. If not specified, the time zone of the event is used.

The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later, depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event. Required.

The number of minutes before the event start time that the reminder alert occurs.

Default is true, which represents the organizer would like an invitee to send a response to the event.

The collection of single-value extended properties defined for the event. Read-only. Nullable.

The unique identifier for an entity. Read-only.

A property value.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

The text of the event's subject line.

Value for the 'calendarId' path segment. Pass it under the name 'calendarId', not as 'id'. Use the 'id' field of the calendar object as returned by Microsoft Graph.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

create-specific-calendar-event

create-subscription

create-subscription

Subscribes a listener application to receive change notifications when the requested type of changes occur to the specified resource in Microsoft Graph. To identify the resources for which you can create subscriptions and the limitations on subscriptions, see Set up notifications for changes in resource data: Supported resources. Some resources support rich notifications, that is, notifications that include resource data. For more information about these resources, see Set up change notifications that include resource data: Supported resources.

💡 TIP: Creates a webhook subscription for change notifications. Required body: { changeType (comma-separated: 'created,updated,deleted'), notificationUrl (HTTPS, must validate with token echo), resource (e.g. '/me/mailFolders/inbox/messages', '/users/{id}/events', '/teams/{id}/channels/{id}/messages'), expirationDateTime (ISO 8601, max varies by resource type — 1 hour for calls, 24h for messages, 3 days for mail), clientState (opaque string returned in notifications, for validation) }. Optional: includeResourceData (true enables rich notifications, requires encryptionCertificate + encryptionCertificateId). No dedicated scope — caller must have a read permission for the target resource (e.g. Mail.Read, Calendars.Read, ChannelMessage.Read.All, Files.Read.All).

Optional. Identifier of the application used to create the subscription. Read-only.

Required. Indicates the type of change in the subscribed resource that raises a change notification. The supported values are: created, updated, deleted. Multiple values can be combined using a comma-separated list. Note:  Drive root item and list change notifications support only the updated changeType. User and group change notifications support updated and deleted changeType. Use updated to receive notifications when user or group is created, updated, or soft deleted. Use deleted to receive notifications when user or group is permanently deleted.

Optional. Specifies the value of the clientState property sent by the service in each change notification. The maximum length is 128 characters. The client can check that the change notification came from the service by comparing the value of the clientState property sent with the subscription with the value of the clientState property received with each change notification.

Optional. Identifier of the user or service principal that created the subscription. If the app used delegated permissions to create the subscription, this field contains the ID of the signed-in user the app called on behalf of. If the app used application permissions, this field contains the ID of the service principal corresponding to the app. Read-only.

Optional. A base64-encoded representation of a certificate with a public key used to encrypt resource data in change notifications. Optional but required when includeResourceData is true.

Optional. A custom app-provided identifier to help identify the certificate needed to decrypt resource data.

Required. Specifies the date and time when the webhook subscription expires. The time is in UTC, and can be an amount of time from subscription creation that varies for the resource subscribed to. Any value under 45 minutes after the time of the request is automatically set to 45 minutes after the request time. For the maximum supported subscription length of time, see Subscription lifetime.

Optional. When set to true, change notifications include resource data (such as content of a chat message).

Optional. Specifies the latest version of Transport Layer Security (TLS) that the notification endpoint, specified by notificationUrl, supports. The possible values are: v10, v11, v12, v13. For subscribers whose notification endpoint supports a version lower than the currently recommended version (TLS 1.2), specifying this property by a set timeline allows them to temporarily use their deprecated version of TLS before completing their upgrade to TLS 1.2. For these subscribers, not setting this property per the timeline would result in subscription operations failing. For subscribers whose notification endpoint already supports TLS 1.2, setting this property is optional. In such cases, Microsoft Graph defaults the property to v1_2.

Required for Teams resources if  the expirationDateTime value is more than 1 hour from now; optional otherwise. The URL of the endpoint that receives lifecycle notifications, including subscriptionRemoved, reauthorizationRequired, and missed notifications. This URL must make use of the HTTPS protocol. For more information, see Reduce missing subscriptions and change notifications.

Optional. OData query options for specifying value for the targeting resource. Clients receive notifications when resource reaches the state matching the query options provided here. With this new property in the subscription creation payload along with all existing properties, Webhooks deliver notifications whenever a resource reaches the desired state mentioned in the notificationQueryOptions property. For example, when the print job is completed or when a print job resource isFetchable property value becomes true etc.  Supported only for Universal Print Service. For more information, see Subscribe to change notifications from cloud printing APIs using Microsoft Graph.

Required. The URL of the endpoint that receives the change notifications. This URL must make use of the HTTPS protocol. Any query string parameter included in the notificationUrl property is included in the HTTP POST request when Microsoft Graph sends the change notifications.

Optional. The app ID that the subscription service can use to generate the validation token. The value allows the client to validate the authenticity of the notification received.

Required. Specifies the resource that is monitored for changes. Don't include the base URL (https://graph.microsoft.com/v1.0/). See the possible resource path values for each supported resource.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

create-subscription

create-todo-linked-resource

create-todo-linked-resource

Create a linkedResource object to associate a specified task with an item in a partner application. For example, you can associate a task with an email item in Outlook that spurred the task, and you can create a linkedResource object to track its association. You can also create a linkedResource object while creating a task.

💡 TIP: Links a resource to a To Do task. Body: { webUrl: 'https://...', applicationName: 'Mail', displayName: 'Related email', externalId: 'optional-id' }. Use to link tasks to emails, files, or web pages for context.

The app name of the source that sends the linkedResource.

The title of the linkedResource.

ID of the object that is associated with this task on the third-party/partner system.

The unique identifier for an entity. Read-only.

Deep link to the linkedResource.

Value for the 'todoTaskId' path segment. Pass it under the name 'todoTaskId', not as 'id'. Use the 'id' field of the todo task object as returned by Microsoft Graph.

Value for the 'todoTaskListId' path segment. Pass it under the name 'todoTaskListId', not as 'id'. Use the 'id' field of the todo task list object as returned by Microsoft Graph.

create-todo-linked-resource

create-todo-task

create-todo-task

Create a new task object in a specified todoTaskList.

💡 TIP: Creates a new task in a Microsoft To Do list. Body: { title: "..." }; optional dueDateTime, reminderDateTime, importance, body (notes), recurrence, categories. Requires todoTaskListId from list-todo-task-lists.

The content streams that are uploaded.

The date and time in UTC when the upload session will expire. The complete file must be uploaded before this expiration time is reached.

Indicates a single value {start} that represents the location in the file where the next upload should begin.

A collection of file attachments for the task.

The MIME type.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.

The display name of the attachment. This doesn't need to be the actual file name.

The length of the attachment in bytes.

The content of the item.

The date and time when the task body was last modified. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2020 would look like this: '2020-01-01T00:00:00Z'.

The categories associated with the task. Each category corresponds to the displayName property of an outlookCategory that the user has defined.

A collection of checklistItems linked to a task.

The date and time when the checklistItem was finished.

The date and time when the checklistItem was created.

Indicates the title of the checklistItem.

State that indicates whether the item is checked off or not.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

The date and time when the task was created. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format. For example, midnight UTC on Jan 1, 2020 would look like this: '2020-01-01T00:00:00Z'.

The collection of open extensions defined for the task. Nullable.

The unique identifier for an entity. Read-only.

Indicates whether the task has attachments.

Set to true if an alert is set to remind the user of the task.

The date and time when the task was last modified. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2020 would look like this: '2020-01-01T00:00:00Z'.

A collection of resources linked to the task.

The app name of the source that sends the linkedResource.

The title of the linkedResource.

ID of the object that is associated with this task on the third-party/partner system.

Deep link to the linkedResource.

The day of the month on which the event occurs. Required if type is absoluteMonthly or absoluteYearly.

A collection of the days of the week on which the event occurs. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. If type is relativeMonthly or relativeYearly, and daysOfWeek specifies more than one day, the event falls on the first day that satisfies the pattern.  Required if type is weekly, relativeMonthly, or relativeYearly.

The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required.

The month in which the event occurs.  This is a number from 1 to 12.

The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence of the meeting may not be this date. Required if type is endDate.

The number of times to repeat the event. Required and must be positive if type is numbered.

Time zone for the startDate and endDate properties. Optional. If not specified, the time zone of the event is used.

The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later, depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event. Required.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

notStarted inProgress completed waitingOnOthers deferred

A brief description of the task.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'todoTaskListId' path segment. Pass it under the name 'todoTaskListId', not as 'id'. Use the 'id' field of the todo task list object as returned by Microsoft Graph.

create-todo-task

create-todo-task-list

create-todo-task-list

Create a new lists object.

💡 TIP: Creates a new Microsoft To Do task list (the named buckets shown in the To Do app sidebar). Body: { displayName: 'My new list' }. Returns the created todoTaskList with its id, displayName, isOwner, isShared, and wellknownListName ('none' for user-created lists). The built-in lists ('Tasks', 'Flagged emails') already exist and cannot be re-created. Pair with create-todo-task to populate it.

The name of the task list.

The collection of open extensions defined for the task list. Nullable.

The unique identifier for an entity. Read-only.

True if the user is owner of the given task list.

True if the task list is shared with other users

The tasks in this task list. Read-only. Nullable.

The content streams that are uploaded.

The date and time in UTC when the upload session will expire. The complete file must be uploaded before this expiration time is reached.

Indicates a single value {start} that represents the location in the file where the next upload should begin.

A collection of file attachments for the task.

The MIME type.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.

The display name of the attachment. This doesn't need to be the actual file name.

The length of the attachment in bytes.

The content of the item.

The date and time when the task body was last modified. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2020 would look like this: '2020-01-01T00:00:00Z'.

The categories associated with the task. Each category corresponds to the displayName property of an outlookCategory that the user has defined.

A collection of checklistItems linked to a task.

The date and time when the checklistItem was finished.

The date and time when the checklistItem was created.

Indicates the title of the checklistItem.

State that indicates whether the item is checked off or not.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

The date and time when the task was created. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format. For example, midnight UTC on Jan 1, 2020 would look like this: '2020-01-01T00:00:00Z'.

The collection of open extensions defined for the task. Nullable.

The unique identifier for an entity. Read-only.

Indicates whether the task has attachments.

Set to true if an alert is set to remind the user of the task.

The date and time when the task was last modified. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2020 would look like this: '2020-01-01T00:00:00Z'.

A collection of resources linked to the task.

The app name of the source that sends the linkedResource.

The title of the linkedResource.

ID of the object that is associated with this task on the third-party/partner system.

Deep link to the linkedResource.

The day of the month on which the event occurs. Required if type is absoluteMonthly or absoluteYearly.

A collection of the days of the week on which the event occurs. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. If type is relativeMonthly or relativeYearly, and daysOfWeek specifies more than one day, the event falls on the first day that satisfies the pattern.  Required if type is weekly, relativeMonthly, or relativeYearly.

The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required.

The month in which the event occurs.  This is a number from 1 to 12.

The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence of the meeting may not be this date. Required if type is endDate.

The number of times to repeat the event. Required and must be positive if type is numbered.

Time zone for the startDate and endDate properties. Optional. If not specified, the time zone of the event is used.

The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later, depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event. Required.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

A brief description of the task.

none defaultList flaggedEmails unknownFutureValue

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

create-todo-task-list

create-upload-session

create-upload-session

Create an upload session.

💡 TIP: For large file uploads (no size limit, and no minimum unlike the Outlook attachment session). Returns a pre-authenticated uploadUrl; the caller PUTs the bytes there itself. This server does not perform the PUT. For new files use path: /items/{parentId}:/{fileName}:/createUploadSession. Body (optional): { item: { '@microsoft.graph.conflictBehavior': 'rename' } }.

Provides a user-visible description of the item. Read-write. Only on OneDrive Personal.

teams yammer sharePoint oneDrive stream powerPoint office loki loop other unknownFutureValue

The external identifier for the drive item from the source.

Provides an expected file size to perform a quota check before uploading. Only on OneDrive Personal.

The UTC date and time the file was created on a client.

The UTC date and time the file was last accessed. Available for the recent file list only.

The UTC date and time the file was last modified on a client.

meeting liveStream presentation screenRecording story profile chat note comment unknownFutureValue

The name of the item (filename and extension). Read-write.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

create-upload-session

decline-calendar-event

decline-calendar-event

Decline invitation to the specified event in a user calendar. If the event allows proposals for new times, on declining the event, an invitee can choose to suggest an alternative time by including the proposedNewTime parameter. For more information on how to propose a time, and how to receive and accept a new time proposal, see Propose new meeting times.

💡 TIP: Declines a meeting invitation. Optional body: { sendResponse: true, comment: 'Cannot attend, conflict.' }. The event remains in the calendar as declined unless the user deletes it.

Value for the 'eventId' path segment. Pass it under the name 'eventId', not as 'id'. Use the 'id' field of the event object as returned by Microsoft Graph.

decline-calendar-event

delete-calendar

delete-calendar

Delete a calendar other than the default calendar.

💡 TIP: Deletes a calendar and all its events. The default calendar cannot be deleted. This action cannot be undone.

ETag

Value for the 'calendarId' path segment. Pass it under the name 'calendarId', not as 'id'. Use the 'id' field of the calendar object as returned by Microsoft Graph.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

delete-calendar

delete-calendar-event

delete-calendar-event

Removes the specified event from the containing calendar.  If the event is a meeting, deleting the event on the organizer's calendar sends a cancellation message to the meeting attendees.

💡 TIP: Deleting a seriesMaster deletes ALL occurrences of the recurring event. To cancel a single occurrence, delete that specific instance ID from list-calendar-event-instances.

ETag

delete-calendar-event

delete-contact-folder

delete-contact-folder

Delete contactFolder other than the default contactFolder.

💡 TIP: Deletes a contact folder. The default 'Contacts' folder cannot be deleted — Graph returns an error. The folder (and its contents) typically lands in Deleted Items rather than being permanently removed. Get the folder id via list-contact-folders.

ETag

Value for the 'contactFolderId' path segment. Pass it under the name 'contactFolderId', not as 'id'. Use the 'id' field of the contact folder object as returned by Microsoft Graph.

delete-contact-folder

delete-drive-item-permission

delete-drive-item-permission

Delete a drive item permission.

💡 TIP: Removes a specific permission from a file or folder. Only permissions that are not inherited can be deleted. Use list-drive-item-permissions first to find the permission ID.

ETag

Value for the 'permissionId' path segment. Pass it under the name 'permissionId', not as 'id'. Use the 'id' field of the permission object as returned by Microsoft Graph.

delete-drive-item-permission

delete-excel-range

delete-excel-range

Delete an Excel range.

💡 TIP: Delete cells at the given range, shifting remaining content. Body: { shift: 'Up' } or { shift: 'Left' }. Use 'Up' to delete entire rows.

Value for the 'address' path segment.

Value for the 'workbookWorksheetId' path segment. Pass it under the name 'workbookWorksheetId', not as 'id'. Use the 'id' field of the workbook worksheet object as returned by Microsoft Graph.

delete-excel-range

delete-excel-table-row

delete-excel-table-row

Delete an Excel table row.

💡 TIP: Delete a single row from a formal Excel table by zero-based row index.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

Value for the 'index' path segment.

Value for the 'workbookTableId' path segment. Pass it under the name 'workbookTableId', not as 'id'. Use the 'id' field of the workbook table object as returned by Microsoft Graph.

driveId driveItemId workbookTableId index

delete-excel-table-row

delete-focused-inbox-override

delete-focused-inbox-override

Delete an override specified by its ID.

💡 TIP: Deletes a Focused Inbox override. Future messages from that sender revert to the Outlook ML classifier's default behavior. Use list-focused-inbox-overrides to find the ID first.

ETag

Value for the 'inferenceClassificationOverrideId' path segment. Pass it under the name 'inferenceClassificationOverrideId', not as 'id'. Use the 'id' field of the inference classification override object as returned by Microsoft Graph.

delete-focused-inbox-override

delete-mail-attachment

delete-mail-attachment

Delete a mail attachment.

ETag

Value for the 'attachmentId' path segment. Pass it under the name 'attachmentId', not as 'id'. Use the 'id' field of the attachment object as returned by Microsoft Graph.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'messageId' path segment. Pass it under the name 'messageId', not as 'id'. Use the 'id' field of the message object as returned by Microsoft Graph.

delete-mail-attachment

delete-mail-folder

delete-mail-folder

Delete the specified mailFolder. The folder can be a mailSearchFolder. You can specify a mail folder by its folder ID, or by its well-known folder name, if one exists.

💡 TIP: Deletes a mail folder and all its contents. This action is irreversible. Use list-mail-folders to find the folder ID.

ETag

Value for the 'mailFolderId' path segment. Pass it under the name 'mailFolderId', not as 'id'. Use the 'id' field of the mail folder object as returned by Microsoft Graph.

delete-mail-folder

delete-mail-message

delete-mail-message

Delete an Outlook email message by its message ID. This is a soft delete that moves the message to Deleted Items.

💡 TIP: Soft delete — moves to Deleted Items. To permanently delete, delete again from Deleted Items.

ETag

delete-mail-message

delete-mail-rule

delete-mail-rule

Delete the specified messageRule object.

💡 TIP: Deletes a message rule permanently. Use the Inbox folder ID (get it from list-mail-folders) for inbox rules.

ETag

Value for the 'messageRuleId' path segment. Pass it under the name 'messageRuleId', not as 'id'. Use the 'id' field of the message rule object as returned by Microsoft Graph.

delete-mail-rule

delete-my-calendar-permission

delete-my-calendar-permission

Delete my calendar permission.

💡 TIP: Revokes a calendar share or delegate access. Get the permission id via list-my-calendar-permissions. Permissions where isRemovable=false (e.g. the implicit 'My Organization' default) cannot be deleted — Graph returns an error.

ETag

Value for the 'calendarPermissionId' path segment. Pass it under the name 'calendarPermissionId', not as 'id'. Use the 'id' field of the calendar permission object as returned by Microsoft Graph.

delete-my-calendar-permission

delete-onedrive-file

delete-onedrive-file

Delete a OneDrive file.

ETag

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

delete-onedrive-file

delete-onenote-page

delete-onenote-page

Delete a OneNote page.

💡 TIP: Deletes a OneNote page permanently. This cannot be undone.

ETag

Value for the 'onenotePageId' path segment. Pass it under the name 'onenotePageId', not as 'id'. Use the 'id' field of the onenote page object as returned by Microsoft Graph.

delete-onenote-page

delete-outlook-contact

delete-outlook-contact

Delete a contact.

ETag

Value for the 'contactId' path segment. Pass it under the name 'contactId', not as 'id'. Use the 'id' field of the contact object as returned by Microsoft Graph.

delete-outlook-contact

delete-planner-bucket

delete-planner-bucket

Delete plannerBucket.

💡 TIP: CRITICAL: Requires If-Match header with ETag from get-planner-bucket (use includeHeaders=true).

ETag

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'plannerBucketId' path segment. Pass it under the name 'plannerBucketId', not as 'id'. Use the 'id' field of the planner bucket object as returned by Microsoft Graph.

delete-planner-bucket

delete-planner-task-message

delete-planner-task-message

[beta] Delete a plannerTaskChatMessage object.

💡 TIP: Deletes a message from a Planner task's chat. No request body; If-Match is optional if you want conditional deletion; returns 204. BETA Graph API: subject to change; delegated work/school accounts only — no application permissions, no personal Microsoft accounts, global cloud only (not GCC/DoD/21Vianet).

ETag

Value for the 'plannerTaskChatMessageId' path segment. Pass it under the name 'plannerTaskChatMessageId', not as 'id'. Use the 'id' field of the planner task chat message object as returned by Microsoft Graph.

Value for the 'plannerTaskId' path segment. Pass it under the name 'plannerTaskId', not as 'id'. Use the 'id' field of the planner task object as returned by Microsoft Graph.

delete-planner-task-message

delete-specific-calendar-event

delete-specific-calendar-event

Delete a specific calendar event.

💡 TIP: Deleting a seriesMaster deletes ALL occurrences. To cancel a single occurrence, use the specific instance ID.

ETag

Value for the 'calendarId' path segment. Pass it under the name 'calendarId', not as 'id'. Use the 'id' field of the calendar object as returned by Microsoft Graph.

Value for the 'eventId' path segment. Pass it under the name 'eventId', not as 'id'. Use the 'id' field of the event object as returned by Microsoft Graph.

delete-specific-calendar-event

delete-subscription

delete-subscription

Delete a subscription. For the list of resources that support subscribing to change notifications, see the table in the Permissions section.

💡 TIP: Deletes a webhook subscription. No further change notifications will be sent. Use this to clean up stale subscriptions or stop receiving notifications. Use list-subscriptions to find the id.

ETag

Value for the 'subscriptionId' path segment. Pass it under the name 'subscriptionId', not as 'id'. Use the 'id' field of the subscription object as returned by Microsoft Graph.

delete-subscription

delete-todo-linked-resource

delete-todo-linked-resource

Delete a linkedResource object.

💡 TIP: Removes a linked resource from a To Do task.

ETag

Value for the 'linkedResourceId' path segment. Pass it under the name 'linkedResourceId', not as 'id'. Use the 'id' field of the linked resource object as returned by Microsoft Graph.

Value for the 'todoTaskId' path segment. Pass it under the name 'todoTaskId', not as 'id'. Use the 'id' field of the todo task object as returned by Microsoft Graph.

Value for the 'todoTaskListId' path segment. Pass it under the name 'todoTaskListId', not as 'id'. Use the 'id' field of the todo task list object as returned by Microsoft Graph.

delete-todo-linked-resource

delete-todo-task

delete-todo-task

Delete a todoTask object.

ETag

delete-todo-task

delete-todo-task-list

delete-todo-task-list

Deletes a todoTaskList object.

💡 TIP: Deletes a Microsoft To Do task list. Built-in lists (Flagged emails, the default Tasks list) cannot be deleted — the API returns an error for those. Get list ids via list-todo-task-lists.

ETag

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

delete-todo-task-list

dismiss-calendar-event-reminder

dismiss-calendar-event-reminder

Dismiss a reminder that has been triggered for an event in a user calendar.

💡 TIP: Dismisses a triggered event reminder so it won't re-fire. No request body required. Pair with list-calendar-events or get-schedule to find active reminders.

dismiss-calendar-event-reminder

download-bytes

download-bytes

Download binary content from Microsoft Graph and return it as base64. Single tool for any binary read: drive file content, mail attachment, profile photo, Teams hosted content, meeting recording. Returns { contentType, encoding: "base64", contentLength, contentBytes }. For large drive/SharePoint file content, prefer get-download-url, which returns a pre-authenticated URL to stream bytes out-of-band instead of base64 through the agent context.

Relative Microsoft Graph path starting with "/". Common paths: /drives/{drive-id}/items/{driveItem-id}/content (drive file content); /me/messages/{message-id}/attachments/{attachment-id}/$value (mail attachment, list-mail-attachments returns the IDs); /me/photo/$value or /users/{user-id}/photo/$value (profile photo); /chats/{chat-id}/messages/{chatMessage-id}/hostedContents/{chatMessageHostedContent-id}/$value (Teams chat hosted content, list-chat-message-hosted-contents returns the IDs); /teams/{team-id}/channels/{channel-id}/messages/{chatMessage-id}/hostedContents/{chatMessageHostedContent-id}/$value (Teams channel hosted content). For meeting recordings, use get-meeting-recording-content where available; Microsoft Graph returns authenticated recording bytes, not a pre-authenticated download URL.

download-bytes-to-file

download-bytes-to-file

Write authenticated Microsoft Graph byte content to a local file on the server, returning { path, contentType, bytesWritten } instead of base64. The only out-of-band way to save mail attachments and meeting recordings, whose bytes are exposed solely through authenticated endpoints. Also handles profile photos and Teams hosted content. Writes to an absolute outputPath and never overwrites an existing file. stdio mode only: not available over HTTP. For OneDrive or SharePoint file content, get-download-url is preferred — it returns a pre-authenticated URL for fully out-of-band download without the server fetching the bytes.

Absolute path on the server's filesystem where the bytes are written, e.g. /Users/me/downloads/invoice.pdf. Must be absolute; relative paths are rejected. The parent directory must already exist, and an existing file is never overwritten (the call errors if outputPath already exists).

format-excel-range

format-excel-range

Format an Excel range.

💡 TIP: Apply rangeFormat properties to a specific range. Required path param 'address' (e.g. 'A1:E5' or 'Sheet1!A1:E5'). Body: { horizontalAlignment, verticalAlignment, wrapText, columnWidth, rowHeight }. Font, fill, and borders are NOT set here; use format-excel-range-font, format-excel-range-fill, and format-excel-range-border for those.

Value for the 'address' path segment.

Collection of border objects that apply to the overall range selected Read-only.

The HTML color code that represents the color of the border line. Can either be of the form #RRGGBB, for example 'FFA500', or a named HTML color, for example 'orange'.

The unique identifier for an entity. Read-only.

Indicates the specific side of the border. The possible values are: EdgeTop, EdgeBottom, EdgeLeft, EdgeRight, InsideVertical, InsideHorizontal, DiagonalDown, DiagonalUp. Read-only.

Indicates the line style for the border. The possible values are: None, Continuous, Dash, DashDot, DashDotDot, Dot, Double, SlantDashDot.

The weight of the border around a range. The possible values are: Hairline, Thin, Medium, Thick.

The width of all columns within the range. If the column widths aren't uniform, null will be returned. [Simplified from 3 options]

HTML color code representing the color of the border line. Can either be of the form #RRGGBB, for example 'FFA500', or be a named HTML color, for example 'orange'.

Inidicates whether the font is bold.

The HTML color code representation of the text color. For example, #FF0000 represents the color red.

Inidicates whether the font is italic.

The font name. For example, 'Calibri'.

The font size. [Simplified from 3 options]

The type of underlining applied to the font. The possible values are: None, Single, Double, SingleAccountant, DoubleAccountant.

The horizontal alignment for the specified object. The possible values are: General, Left, Center, Right, Fill, Justify, CenterAcrossSelection, Distributed.

Indicates whether Excel hides the formula for the cells in the range. A null value indicates that the entire range doesn't have uniform formula hidden setting.

Indicates whether Excel locks the cells in the object. A null value indicates that the entire range doesn't have uniform lock setting.

The height of all rows in the range. If the row heights aren't uniform null will be returned. [Simplified from 3 options]

The vertical alignment for the specified object. The possible values are: Top, Center, Bottom, Justify, Distributed.

Indicates whether Excel wraps the text in the object. A null value indicates that the entire range doesn't have a uniform wrap setting.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'workbookWorksheetId' path segment. Pass it under the name 'workbookWorksheetId', not as 'id'. Use the 'id' field of the workbook worksheet object as returned by Microsoft Graph.

format-excel-range

format-excel-range-border

format-excel-range-border

Format an Excel range border.

💡 TIP: Sets one border side. The {sideIndex} path param selects which side: EdgeTop, EdgeBottom, EdgeLeft, EdgeRight, InsideVertical, InsideHorizontal, DiagonalDown, or DiagonalUp. To outline all four edges, call once per side.

Value for the 'address' path segment.

HTML color code for the line, e.g. #000000 or a named color like 'black'.

None Continuous Dash DashDot DashDotDot Dot Double SlantDashDot

Value for the 'sideIndex' path segment.

body driveId driveItemId workbookWorksheetId address sideIndex

format-excel-range-border

format-excel-range-fill

format-excel-range-fill

Format an Excel range fill.

💡 TIP: Set the background fill color of a range's cells.

Value for the 'address' path segment.

HTML color code for the background, e.g. #FFFF00 or a named color like 'yellow'.

format-excel-range-fill

format-excel-range-font

format-excel-range-font

Format an Excel range font.

💡 TIP: Set font formatting on a range: bold, italic, underline, size, color, and font name.

Value for the 'address' path segment.

HTML color code for the text, e.g. #FF0000 or a named color like 'red'.

Font name, e.g. 'Calibri'.

Font size in points.

None Single Double SingleAccountant DoubleAccountant

format-excel-range-font

forward-calendar-event

forward-calendar-event

This action allows the organizer or attendee of a meeting event to forward the
meeting request to a new recipient. If the meeting event is forwarded from an attendee's Microsoft 365 mailbox to another recipient, this action
also sends a message to notify the organizer of the forwarding, and adds the recipient to the organizer's
copy of the meeting event. This convenience is not available when forwarding from an Outlook.com account.

💡 TIP: Forwards a meeting invitation to additional recipients. Body: { ToRecipients: [{ emailAddress: { address, name } }], Comment (optional) }. If the forwarder is an attendee (not organizer), the organizer is also notified and the new recipient is added to the organizer's attendee list.

The email address of the person or entity.

The display name of the person or entity.

Value for the 'eventId' path segment. Pass it under the name 'eventId', not as 'id'. Use the 'id' field of the event object as returned by Microsoft Graph.

forward-calendar-event

forward-mail-message

forward-mail-message

Forward a message using either JSON or MIME format. When using JSON format, you can:
- Specify either a comment or the body property of the message parameter. Specifying both will return an HTTP 400 Bad Request error.
- Specify either the toRecipients parameter or the toRecipients property of the message parameter. Specifying both or specifying neither will return an HTTP 400 Bad Request error. When using MIME format:
- Provide the applicable Internet message headers and the MIME content, all encoded in base64 format in the request body.
- Add any attachments and S/MIME properties to the MIME content. This method saves the message in the Sent Items folder. Alternatively, create a draft to forward a message, and send it later.

💡 TIP: Forward an email preserving full HTML formatting and attachments. The 'comment' field adds text above the forwarded content. toRecipients is required. Do NOT reconstruct the email manually - this endpoint handles everything server-side.

The fileAttachment and itemAttachment attachments for the message.

The MIME type.

The unique identifier for an entity. Read-only.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The Bcc: recipients for the message.

The content of the item.

The first 255 characters of the message body. It is in text format.

The categories associated with the item

The Cc: recipients for the message.

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The ID of the conversation the email belongs to.

Indicates the position of the message within the conversation.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>.

A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Requires $select to retrieve. Read-only.

Represents the key in a key-value pair.

The value in a key-value pair.

The message ID in the format specified by RFC2822.

Indicates whether a read receipt is requested for the message.

Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet.

The collection of multi-value extended properties defined for the message. Nullable.

A collection of property values.

The collection of single-value extended properties defined for the message. Nullable.

A property value.

The subject of the message.

The To: recipients for the message.

The email address of the person or entity.

The display name of the person or entity.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'messageId' path segment. Pass it under the name 'messageId', not as 'id'. Use the 'id' field of the message object as returned by Microsoft Graph.

forward-mail-message

get-calendar-event

get-calendar-event

Get the properties and relationships of the specified event object. Currently, this operation returns event bodies in only HTML format. There are two scenarios where an app can get an event in another user's calendar: Since the event resource supports extensions, you can also use the GET operation to get custom properties and extension data in an event instance.

Value for the 'eventId' path segment. Pass it under the name 'eventId', not as 'id'. Use the 'id' field of the event object as returned by Microsoft Graph.

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

When true, expands singleValueExtendedProperties on each event. Use this to retrieve custom extended properties (e.g., sync metadata) stored on calendar events.

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

IANA timezone name (e.g., "America/New_York", "Europe/London", "Asia/Tokyo") for calendar event times. If not specified, times are returned in UTC.

get-calendar-event

get-calendar-view

get-calendar-view

Get the occurrences, exceptions, and single instances of events in a calendar view defined by a time range, from the user's default calendar,
or from some other calendar of the user.

💡 TIP: Returns expanded recurring event instances (not just seriesMaster) within a date range for the default calendar. Requires startDateTime and endDateTime query parameters in ISO 8601 format (e.g., 2024-01-01T00:00:00Z). Use get-specific-calendar-view if you need a non-default calendar. To find Teams meetings, use $filter=isOnlineMeeting eq true. To search by subject, use $filter=contains(subject,'keyword'). Teams meetings expose their join link as onlineMeeting/joinUrl (select it with $select=onlineMeeting); the event resource has no joinWebUrl property. Pass that joinUrl to list-online-meetings as $filter=JoinWebUrl eq '{url}' to reach transcripts.

Set true to enable advanced query mode (ConsistencyLevel: eventual). Required for complex $filter on flag/flagStatus or contains().

The end date and time of the time range, represented in ISO 8601 format. For example, 2019-11-08T20:00:00-08:00

OData filter expression. Add $count=true for advanced filters (flag/flagStatus, contains()). Cannot combine with $search.

Sort expression, e.g. receivedDateTime desc

KQL search query — wrap value in double quotes. Cannot combine with $filter.

Items to skip for pagination. Not supported with $search.

The start date and time of the time range, represented in ISO 8601 format. For example, 2019-11-08T19:00:00-08:00

Page size (Graph $top). Start small (e.g. 5–15) so responses fit the model context; raise only if needed. Use $select to return fewer fields per item. For more rows, use @odata.nextLink from the response instead of a very large $top.

get-calendar-view

get-current-user

get-current-user

Retrieve the properties and relationships of user object. This operation returns by default only a subset of the more commonly used properties for each user. These default properties are noted in the Properties section. To get properties that are not returned by default, do a GET operation for the user and specify the properties in a $select OData query option. Because the user resource supports extensions, you can also use the GET operation to get custom properties and extension data in a user instance. Customers through Microsoft Entra ID for customers can also use this API operation to retrieve their details.

Indicates the requested consistency level. Documentation URL: https://docs.microsoft.com/graph/aad-advanced-queries

Exclude the full response body and only return success or failure indication

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

Include response headers (including ETag) in the response metadata

get-current-user

get-download-url

get-download-url

Resolve a short-lived, pre-authenticated download URL for Microsoft Graph binary content that exposes one (drive/SharePoint file content). The returned URL streams the bytes with NO Authorization header, so the client can fetch it straight to disk (e.g. curl) without round-tripping base64 through the agent context. Prefer this over download-bytes for any file above a few KB or any bulk download. Returns { downloadUrl, name?, size?, contentType? }. NOTE: mail file attachments (/messages/{id}/attachments/{id}/$value) and meeting recordings do NOT expose a pre-authenticated URL — Graph offers no such link for them; use download-bytes for small ones.

Relative Microsoft Graph path starting with "/". Either a driveItem content path or the item path itself, e.g. /drives/{drive-id}/items/{driveItem-id}/content, /me/drive/items/{driveItem-id}/content, or /sites/{site-id}/drive/items/{driveItem-id}. A trailing /content is optional and is stripped automatically for drive items. Mail attachment $value paths and meeting recordings are not supported (Graph exposes no pre-authenticated URL for them).

get-drive-delta

get-drive-delta

Track changes in a driveItem and its children over time. Your app begins by calling delta without any parameters.
The service starts enumerating the drive's hierarchy, returning pages of items and either an @odata.nextLink or an @odata.deltaLink, as described below.
Your app should continue calling with the @odata.nextLink until you no longer see an @odata.nextLink returned, or you see a response with an empty set of changes. After you have finished receiving all the changes, you may apply them to your local state.
To check for changes in the future, call delta again with the @odata.deltaLink from the previous response. Deleted items are returned with the deleted facet.
Items with this property set should be removed from your local state.

💡 TIP: Tracks changes to a driveItem and its children over time. Returns a collection of driveItems that have been created, modified, or deleted. Use get-drive-root-item first to get the root driveItem-id, then pass it here. Supports $select and delta tokens for incremental sync via @odata.deltaLink.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

OData filter expression. Add $count=true for advanced filters (flag/flagStatus, contains()). Cannot combine with $search.

Sort expression, e.g. receivedDateTime desc

KQL search query — wrap value in double quotes. Cannot combine with $filter.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

Items to skip for pagination. Not supported with $search.

Page size (Graph $top). Start small (e.g. 5–15) so responses fit the model context; raise only if needed. Use $select to return fewer fields per item. For more rows, use @odata.nextLink from the response instead of a very large $top.

get-drive-delta

get-drive-item

get-drive-item

All items contained in the drive. Read-only. Nullable.

💡 TIP: Gets metadata for a file or folder: name, size, lastModifiedDateTime, createdBy, webUrl, file (mimeType, hashes), folder (childCount), parentReference, and @microsoft.graph.downloadUrl. For large drive/SharePoint files, call get-download-url with target=/drives/{drive-id}/items/{driveItem-id}/content to fetch out-of-band with no Authorization header. For small files where base64 in the tool response is acceptable, call download-bytes with the same /content target.

get-drive-item

get-drive-root-item

get-drive-root-item

The root folder of the drive. Read-only.

Exclude the full response body and only return success or failure indication

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

Include response headers (including ETag) in the response metadata

get-drive-root-item

get-excel-range

get-excel-range

Get an Excel range.

Value for the 'address' path segment.

Value for the 'workbookWorksheetId' path segment. Pass it under the name 'workbookWorksheetId', not as 'id'. Use the 'id' field of the workbook worksheet object as returned by Microsoft Graph.

driveId driveItemId workbookWorksheetId address

get-excel-range

get-excel-range-format

get-excel-range-format

Returns a format object, encapsulating the range's font, fill, borders, alignment, and other properties. Read-only.

💡 TIP: Reads a range's format: alignment, wrapText, columnWidth, rowHeight. Font, fill, and borders are nested and omitted by default; add font, fill, and borders to the $expand parameter to include them in one call. Cell styling often encodes meaning (a fill or font color flagging status such as tentative or reconciled), so expand these to interpret what the cells mean.

Value for the 'address' path segment.

get-excel-range-format

get-excel-table

get-excel-table

Represents a collection of tables associated with the workbook. Read-only.

💡 TIP: Gets a specific table by name or ID. Returns table properties including columns, showHeaders, showTotals, and style.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

Value for the 'workbookTableId' path segment. Pass it under the name 'workbookTableId', not as 'id'. Use the 'id' field of the workbook table object as returned by Microsoft Graph.

get-excel-table

get-excel-used-range

get-excel-used-range

Get an Excel used range.

💡 TIP: Get the smallest range that encompasses any cells with values or formatting on the worksheet. Returns address, values, formulas, numberFormat, rowCount, columnCount. Use this to discover the populated bounds of a sheet before reading or appending — avoids guessing how far data extends. Optional $select to trim the response.

get-excel-used-range

get-mail-message

get-mail-message

Get a single Outlook email message by its message ID, including full subject, sender, recipients, body, and attachment flags. Use list-mail-messages first to obtain the message ID.

Value for the 'messageId' path segment. Pass it under the name 'messageId', not as 'id'. Use the 'id' field of the message object as returned by Microsoft Graph.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

get-mail-message

get-mail-message-mime

get-mail-message-mime

Download the raw MIME source (RFC 822 .eml content) of an Outlook email message by its message ID. Returns the complete original message including headers and encoded attachments.

💡 TIP: Download an email message as raw RFC 5322 MIME content (.eml format). Use this when archiving an email to disk preserving all original headers, body, and inline-encoded attachments. Returns the MIME stream as text. Find the message id with list-mail-messages first.

Accept header for the response representation. Defaults to "text/plain". Only set this when Graph asks for a different format — e.g. a 403 SpeakerAttributionNotAllowed on transcript content names the media type to retry with.

Include Hidden Messages

get-mail-message-mime

get-mail-tips

get-mail-tips

Get the MailTips of one or more recipients as available to the signed-in user. Note that by making a POST call to the getMailTips action, you can request specific types of MailTips to
be returned for more than one recipient at one time. The requested MailTips are returned in a mailTips collection.

💡 TIP: Looks up MailTips for one or more recipients before sending an email — answers 'is this person on auto-reply / OOF?', 'will my email exceed their mailbox quota?', 'are they an external recipient?', 'is this a mailbox or distribution list?'. Body: { EmailAddresses: ['user@contoso.com', ...], MailTipsOptions: 'automaticReplies, mailboxFullStatus, customMailTip, externalMemberCount, totalMemberCount, maxMessageSize, deliveryRestriction, moderationStatus, recipientScope, recipientSuggestions' (comma-separated subset) }. Returns mailTips per recipient with the requested fields populated. Use this to short-circuit urgent emails when a recipient is OOF, or to warn before fanning out to a large DL.

automaticReplies mailboxFullStatus customMailTip externalMemberCount totalMemberCount maxMessageSize deliveryRestriction moderationStatus recipientScope recipientSuggestions

Exclude the full response body and only return success or failure indication

get-mail-tips

get-mailbox-settings

get-mailbox-settings

Get the user's mailboxSettings. You can view all mailbox settings, or get specific settings. Users can set the following settings for their mailboxes through an Outlook client: Users can set their preferred date and time formats using Outlook on the web. Users can choose one of the supported short date or short time formats. This GET operation returns the format the user has chosen. Users can set the time zone they prefer on any Outlook client, by choosing from the supported time zones that their administrator has set up for their mailbox server. The administrator can set up time zones in the Windows time zone format or  Internet Assigned Numbers Authority (IANA) time zone (also known as Olson time zone) format. The Windows format is the default. This GET operation returns the user's preferred time zone in the format that the administrator has set up. If you want that time zone to be in a specific format (Windows or IANA), you can first update the preferred time zone in that format as a mailbox setting. Subsequently you will be able to get the time zone in that format. Alternatively, you can manage the format conversion separately in your app.

💡 TIP: Gets the current user's mailbox settings including automaticRepliesSetting (out-of-office status, message, scheduledStartDateTime/EndDateTime, externalAudience), language, timeZone, dateFormat, timeFormat, delegateMeetingMessageDeliveryOptions, and userPurpose.

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

Include response headers (including ETag) in the response metadata

get-mailbox-settings

get-my-profile

get-my-profile

[beta] Retrieve the properties and relationships of a profile object for a given user. The profile resource exposes various rich properties that are descriptive of the user as relationships, for example, anniversaries and education activities. To get one of these navigation properties, use the corresponding GET method on that property. See the methods exposed by profile.

💡 TIP: Retrieves the signed-in user's rich profile - a richer object than get-current-user, exposing relationships like skills, projects, languages, education and work positions. Use $expand to pull related collections (e.g. $expand=skills,projects).

get-my-profile

get-onenote-page-content

get-onenote-page-content

The page's HTML content.

Value for the 'onenotePageId' path segment. Pass it under the name 'onenotePageId', not as 'id'. Use the 'id' field of the onenote page object as returned by Microsoft Graph.

get-onenote-page-content

get-outlook-contact

get-outlook-contact

Retrieve the properties and relationships of a contact object. There are two scenarios where an app can get a contact in another user's contact folder:

Value for the 'contactId' path segment. Pass it under the name 'contactId', not as 'id'. Use the 'id' field of the contact object as returned by Microsoft Graph.

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

get-outlook-contact

get-planner-bucket

get-planner-bucket

Retrieve the properties and relationships of a plannerBucket object.

💡 TIP: Response includes @odata.etag — required as If-Match for update-planner-bucket and delete-planner-bucket. Use includeHeaders=true.

Value for the 'plannerBucketId' path segment. Pass it under the name 'plannerBucketId', not as 'id'. Use the 'id' field of the planner bucket object as returned by Microsoft Graph.

get-planner-bucket

get-planner-plan

get-planner-plan

Retrieve the properties and relationships of a plannerplan object.

Value for the 'plannerPlanId' path segment. Pass it under the name 'plannerPlanId', not as 'id'. Use the 'id' field of the planner plan object as returned by Microsoft Graph.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

get-planner-plan

get-planner-task

get-planner-task

Retrieve the properties and relationships of plannerTask object.

💡 TIP: Response includes @odata.etag — save it, required as If-Match header for update-planner-task. Use includeHeaders=true to capture it.

Value for the 'plannerTaskId' path segment. Pass it under the name 'plannerTaskId', not as 'id'. Use the 'id' field of the planner task object as returned by Microsoft Graph.

get-planner-task

get-planner-task-details

get-planner-task-details

Retrieve the properties and relationships of a plannerTaskDetails object.

💡 TIP: Response includes @odata.etag — required for update-planner-task-details. Use includeHeaders=true.

Exclude the full response body and only return success or failure indication

get-planner-task-details

get-specific-calendar-event

get-specific-calendar-event

Get a single event from one of the signed-in user's calendars, addressed by calendar ID and event ID. Any calendar can be addressed this way, including the default one.

Value for the 'calendarId' path segment. Pass it under the name 'calendarId', not as 'id'. Use the 'id' field of the calendar object as returned by Microsoft Graph.

Value for the 'eventId' path segment. Pass it under the name 'eventId', not as 'id'. Use the 'id' field of the event object as returned by Microsoft Graph.

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

When true, expands singleValueExtendedProperties on each event. Use this to retrieve custom extended properties (e.g., sync metadata) stored on calendar events.

Include response headers (including ETag) in the response metadata

IANA timezone name (e.g., "America/New_York", "Europe/London", "Asia/Tokyo") for calendar event times. If not specified, times are returned in UTC.

get-specific-calendar-event

get-specific-calendar-view

get-specific-calendar-view

List the occurrences, exceptions, and single instances of events over a time range, from one of the signed-in user's calendars addressed by calendar ID.

💡 TIP: Returns expanded recurring event instances (not just seriesMaster) within a date range for a specific calendar. Requires startDateTime and endDateTime query parameters in ISO 8601 format (e.g., 2024-01-01T00:00:00Z). Each instance includes seriesMasterId and type (occurrence/exception) fields for recurring event linkage. Use fetchAllPages=true to retrieve all results when there are many events. To find Teams meetings, use $filter=isOnlineMeeting eq true. Teams meetings expose their join link as onlineMeeting/joinUrl (select it with $select=onlineMeeting); the event resource has no joinWebUrl property. Pass that joinUrl to list-online-meetings as $filter=JoinWebUrl eq '{url}' to reach transcripts.

Set true to enable advanced query mode (ConsistencyLevel: eventual). Required for complex $filter on flag/flagStatus or contains().

The end date and time of the time range, represented in ISO 8601 format. For example, 2019-11-08T20:00:00-08:00

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

OData filter expression. Add $count=true for advanced filters (flag/flagStatus, contains()). Cannot combine with $search.

Sort expression, e.g. receivedDateTime desc

KQL search query — wrap value in double quotes. Cannot combine with $filter.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

Items to skip for pagination. Not supported with $search.

The start date and time of the time range, represented in ISO 8601 format. For example, 2019-11-08T19:00:00-08:00

Page size (Graph $top). Start small (e.g. 5–15) so responses fit the model context; raise only if needed. Use $select to return fewer fields per item. For more rows, use @odata.nextLink from the response instead of a very large $top.

get-specific-calendar-view

get-subscription

get-subscription

Retrieve the properties and relationships of a subscription. See the table in the Permissions section for the list of resources that support subscribing to change notifications.

💡 TIP: Gets a specific webhook subscription by id. Use list-subscriptions to find the id. Returns full subscription details including resource, changeType, notificationUrl, expirationDateTime, applicationId.

Exclude the full response body and only return success or failure indication

Value for the 'subscriptionId' path segment. Pass it under the name 'subscriptionId', not as 'id'. Use the 'id' field of the subscription object as returned by Microsoft Graph.

get-subscription

get-todo-task

get-todo-task

Read the properties and relationships of a todoTask object.

💡 TIP: Returns a single To Do task. NOTE: $select is NOT supported — do not pass select parameter, Graph returns RequestBroker--ParseUri (400). Use $expand=linkedResources to include linked email/resource. Returns body content (HTML format), checklist items, and linked resources.

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

Include response headers (including ETag) in the response metadata

Value for the 'todoTaskId' path segment. Pass it under the name 'todoTaskId', not as 'id'. Use the 'id' field of the todo task object as returned by Microsoft Graph.

Value for the 'todoTaskListId' path segment. Pass it under the name 'todoTaskListId', not as 'id'. Use the 'id' field of the todo task list object as returned by Microsoft Graph.

get-todo-task

graph-batch

graph-batch

Combine up to 20 Graph requests into a single HTTP call. Body: { requests: [{ id: '1', method: 'GET'|'POST'|'PATCH'|'DELETE', url: '/me/messages?$top=5', headers?: {...}, body?: {...}, dependsOn?: ['1'] }, ...] }. Returns { responses: [{ id, status, body, headers }] } in arbitrary order — match by id. Use cases: (1) parallelize many small reads (e.g. fetch 15 mail messages by id in one round-trip); (2) sequence dependent writes via dependsOn; (3) batch many Excel range writes into one call to dramatically reduce latency on large workbook builds. Note: each sub-request URL is relative to the Graph version root (/me/..., /drives/..., NOT https://graph.microsoft.com/v1.0/...).

💡 TIP: Combine up to 20 Graph requests into a single HTTP call. Body: { requests: [{ id: '1', method: 'GET'|'POST'|'PATCH'|'DELETE', url: '/me/messages?$top=5', headers?: {...}, body?: {...}, dependsOn?: ['1'] }, ...] }. Returns { responses: [{ id, status, body, headers }] } in arbitrary order — match by id. Use cases: (1) parallelize many small reads (e.g. fetch 15 mail messages by id in one round-trip); (2) sequence dependent writes via dependsOn; (3) batch many Excel range writes into one call to dramatically reduce latency on large workbook builds. Note: each sub-request URL is relative to the Graph version root (/me/..., /drives/..., NOT https://graph.microsoft.com/v1.0/...).

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

graph-batch

insert-excel-range

insert-excel-range

Insert an Excel range.

💡 TIP: Insert blank cells at the given range, shifting existing content. Body: { shift: 'Down' } or { shift: 'Right' }. Use 'Down' to insert blank rows above existing data.

Value for the 'address' path segment.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

Value for the 'workbookWorksheetId' path segment. Pass it under the name 'workbookWorksheetId', not as 'id'. Use the 'id' field of the workbook worksheet object as returned by Microsoft Graph.

insert-excel-range

list-accounts

list-accounts

List all Microsoft accounts configured in this server. Use this to discover available account emails before making tool calls. Reflects accounts added mid-session via --login.

list-all-onenote-sections

list-all-onenote-sections

Retrieve a list of onenoteSection objects.

💡 TIP: Lists all sections across all notebooks. Use list-onenote-notebook-sections to list sections within a specific notebook instead.

Set true to enable advanced query mode (ConsistencyLevel: eventual). Required for complex $filter on flag/flagStatus or contains().

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

OData filter expression. Add $count=true for advanced filters (flag/flagStatus, contains()). Cannot combine with $search.

Sort expression, e.g. receivedDateTime desc

KQL search query — wrap value in double quotes. Cannot combine with $filter.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

Items to skip for pagination. Not supported with $search.

Page size (Graph $top). Start small (e.g. 5–15) so responses fit the model context; raise only if needed. Use $select to return fewer fields per item. For more rows, use @odata.nextLink from the response instead of a very large $top.

list-all-onenote-sections

list-calendar-event-instances

list-calendar-event-instances

The occurrences of a recurring series, if the event is a series master. This property includes occurrences that are part of the recurrence pattern, and exceptions modified, but doesn't include occurrences canceled from the series. Navigation property. Read-only. Nullable.

💡 TIP: Expand a recurring event into individual instances within a date range. Requires startDateTime and endDateTime query parameters in ISO 8601 format (e.g., 2024-01-01T00:00:00Z). Use this to see all occurrences of a recurring event.

Value for the 'calendarId' path segment. Pass it under the name 'calendarId', not as 'id'. Use the 'id' field of the calendar object as returned by Microsoft Graph.

The end date and time of the time range, represented in ISO 8601 format. For example, 2019-11-08T20:00:00-08:00

Value for the 'eventId' path segment. Pass it under the name 'eventId', not as 'id'. Use the 'id' field of the event object as returned by Microsoft Graph.

Exclude the full response body and only return success or failure indication

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

When true, expands singleValueExtendedProperties on each event. Use this to retrieve custom extended properties (e.g., sync metadata) stored on calendar events.

Include response headers (including ETag) in the response metadata

The start date and time of the time range, represented in ISO 8601 format. For example, 2019-11-08T19:00:00-08:00

IANA timezone name (e.g., "America/New_York", "Europe/London", "Asia/Tokyo") for calendar event times. If not specified, times are returned in UTC.

startDateTime endDateTime calendarId eventId

list-calendar-event-instances

list-calendar-events

list-calendar-events

Get a list of event objects in the user's mailbox. The list contains single
instance meetings and series masters. To get expanded event instances, you can get the calendar view, or
get the instances of an event. Currently, this operation returns event bodies in only HTML format. There are two scenarios where an app can get events in another user's calendar:

💡 TIP: WARNING: Does NOT expand recurring events — only returns seriesMaster. Use get-calendar-view instead to see individual occurrences within a date range.

Set true to enable advanced query mode (ConsistencyLevel: eventual). Required for complex $filter on flag/flagStatus or contains().

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

OData filter expression. Add $count=true for advanced filters (flag/flagStatus, contains()). Cannot combine with $search.

Sort expression, e.g. receivedDateTime desc

KQL search query — wrap value in double quotes. Cannot combine with $filter.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

Items to skip for pagination. Not supported with $search.

Page size (Graph $top). Start small (e.g. 5–15) so responses fit the model context; raise only if needed. Use $select to return fewer fields per item. For more rows, use @odata.nextLink from the response instead of a very large $top.

list-calendar-events

list-calendar-events-delta

list-calendar-events-delta

Get a set of event resources that have been added, deleted, or updated in a calendarView (a range of events defined by start and end dates) of the user's primary calendar. Typically, synchronizing events in a calendarView in a local store entails a round of multiple delta function calls. The initial call is a full synchronization, and every subsequent delta call in the same round gets the incremental changes (additions, deletions, or updates). This allows you to maintain and synchronize a local store of events in the specified calendarView, without having to fetch all the events of that calendar from the server every time.

💡 TIP: Incremental sync of events across the default calendar. First call returns all events plus @odata.deltaLink. Subsequent calls with that link return only additions/updates/removals. Use $select to limit fields. Deltas expire after ~30 days — start over if the server returns 410 Gone. For a time-bounded view with delta semantics, use list-calendar-view-delta instead.

The end date and time of the time range in the function, represented in ISO 8601 format. For example, 2019-11-08T20:00:00-08:00

Exclude the full response body and only return success or failure indication

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

The start date and time of the time range in the function, represented in ISO 8601 format. For example, 2019-11-08T20:00:00-08:00

list-calendar-events-delta

list-calendar-view-delta

list-calendar-view-delta

Get a set of event resources that have been added, deleted, or updated in a calendarView (a range of events defined by start and end dates) of the user's primary calendar. Typically, synchronizing events in a calendarView in a local store entails a round of multiple delta function calls. The initial call is a full synchronization, and every subsequent delta call in the same round gets the incremental changes (additions, deletions, or updates). This allows you to maintain and synchronize a local store of events in the specified calendarView, without having to fetch all the events of that calendar from the server every time.

💡 TIP: Incremental sync of events within a time window. Required query params on first call: startDateTime, endDateTime (ISO 8601). Returns events in the window plus @odata.deltaLink; subsequent calls with that link return only changes. Expands recurring events to individual occurrences (unlike list-calendar-events-delta which returns the series master). Use this for calendar UIs showing a week/month view.

Include response headers (including ETag) in the response metadata

list-calendar-view-delta

list-calendars

list-calendars

Get all the user's calendars (/calendars navigation property), get the calendars from the default calendar group or from a specific calendar group.

list-calendars

list-contact-folder-child-folders

list-contact-folder-child-folders

Get a collection of child folders under the specified contact folder.

💡 TIP: Lists immediate sub-folders under a given contact folder. Returns id, displayName, parentFolderId. Use list-contact-folders to discover top-level folders, then this tool to traverse one level deeper. Supports $filter, $top, $orderby. Note: contact folders are typically a flat list in Outlook clients, but Graph allows nesting via this endpoint.

Value for the 'contactFolderId' path segment. Pass it under the name 'contactFolderId', not as 'id'. Use the 'id' field of the contact folder object as returned by Microsoft Graph.

Set true to enable advanced query mode (ConsistencyLevel: eventual). Required for complex $filter on flag/flagStatus or contains().

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

OData filter expression. Add $count=true for advanced filters (flag/flagStatus, contains()). Cannot combine with $search.

Sort expression, e.g. receivedDateTime desc

KQL search query — wrap value in double quotes. Cannot combine with $filter.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

Items to skip for pagination. Not supported with $search.

Page size (Graph $top). Start small (e.g. 5–15) so responses fit the model context; raise only if needed. Use $select to return fewer fields per item. For more rows, use @odata.nextLink from the response instead of a very large $top.

list-contact-folder-child-folders

list-contact-folder-contacts

list-contact-folder-contacts

Get a contact collection from the default Contacts folder of the signed-in user (.../me/contacts), or from the specified contact folder.

💡 TIP: Lists contacts inside a specific folder. Pair with list-contact-folders to discover the folder id. Note: the existing list-outlook-contacts (GET /me/contacts) only returns contacts from the default folder — use this tool to read contacts from any folder. Supports $filter, $search='query', $orderby, $top, $select.

Exclude the full response body and only return success or failure indication

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

list-contact-folder-contacts

list-contact-folders

list-contact-folders

Get the contact folder collection in the default Contacts folder of the signed-in user.

💡 TIP: Lists the user's Outlook contact folders (the named buckets that organize contacts). Always includes the built-in 'Contacts' folder; user-created folders also appear. Returns id, displayName, and parentFolderId. To identify the default folder, match displayName === 'Contacts'. Use this before list-contact-folder-contacts or create-contact-in-folder to discover folder ids. Supports OData query parameters.

list-contact-folders

list-drive-item-permissions

list-drive-item-permissions

The set of permissions for the item. Read-only. Nullable.

💡 TIP: Lists all permissions (sharing links, direct access, inherited) on a file or folder. Each permission has roles, grantedTo (user), link (sharing URL), and inheritedFrom.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

Include response headers (including ETag) in the response metadata

list-drive-item-permissions

list-drive-item-thumbnails

list-drive-item-thumbnails

Collection of thumbnailSet objects associated with the item. For more information, see getting thumbnails. Read-only. Nullable.

💡 TIP: Lists thumbnail sets for a file. Each set contains small (96px), medium (176px), large (800px) thumbnails with url and dimensions. Returns empty for unsupported types (text docs). Use $select=small,medium,large or $expand=small($select=url) to fetch specific sizes. The returned URLs are short-lived — fetch the bytes immediately.

Set true to enable advanced query mode (ConsistencyLevel: eventual). Required for complex $filter on flag/flagStatus or contains().

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

OData filter expression. Add $count=true for advanced filters (flag/flagStatus, contains()). Cannot combine with $search.

Sort expression, e.g. receivedDateTime desc

KQL search query — wrap value in double quotes. Cannot combine with $filter.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

Items to skip for pagination. Not supported with $search.

Page size (Graph $top). Start small (e.g. 5–15) so responses fit the model context; raise only if needed. Use $select to return fewer fields per item. For more rows, use @odata.nextLink from the response instead of a very large $top.

list-drive-item-thumbnails

list-drive-item-versions

list-drive-item-versions

The list of previous versions of the item. For more info, see getting previous versions. Read-only. Nullable.

💡 TIP: Lists version history of a file. Each version has id, lastModifiedDateTime, lastModifiedBy, and size. Use the version id with /versions/{id}/content to download a specific version.

Exclude the full response body and only return success or failure indication

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

list-drive-item-versions

list-drives

list-drives

Retrieve the list of Drive resources available for a target User, Group, or Site.

list-drives

list-excel-table-rows

list-excel-table-rows

The list of all the rows in the table. Read-only.

💡 TIP: Lists all rows in a table. Each row has index and values (array of cell values). Use $top and $skip for pagination on large tables.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

Include response headers (including ETag) in the response metadata

Value for the 'workbookTableId' path segment. Pass it under the name 'workbookTableId', not as 'id'. Use the 'id' field of the workbook table object as returned by Microsoft Graph.

list-excel-table-rows

list-excel-tables

list-excel-tables

Represents a collection of tables associated with the workbook. Read-only.

💡 TIP: Lists all named tables in a workbook. Each table has id, name, showHeaders, showTotals, columns, and style. Use the table name or id with other table endpoints.

Set true to enable advanced query mode (ConsistencyLevel: eventual). Required for complex $filter on flag/flagStatus or contains().

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

OData filter expression. Add $count=true for advanced filters (flag/flagStatus, contains()). Cannot combine with $search.

Sort expression, e.g. receivedDateTime desc

KQL search query — wrap value in double quotes. Cannot combine with $filter.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

Items to skip for pagination. Not supported with $search.

Page size (Graph $top). Start small (e.g. 5–15) so responses fit the model context; raise only if needed. Use $select to return fewer fields per item. For more rows, use @odata.nextLink from the response instead of a very large $top.

list-excel-tables

list-excel-worksheets

list-excel-worksheets

Represents a collection of worksheets associated with the workbook. Read-only.

Exclude the full response body and only return success or failure indication

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

list-excel-worksheets

list-focused-inbox-overrides

list-focused-inbox-overrides

Get the overrides that a user has set up to always classify messages from certain senders in specific ways. Each override corresponds to an SMTP address of a sender. Initially, a user doesn't have any overrides.

💡 TIP: Lists Focused Inbox classification overrides — explicit rules that force messages from a given sender (by SMTP address) into either the Focused or Other tab, regardless of what the Outlook ML classifier would predict. Each override has id, classifyAs ('focused' or 'other'), and senderEmailAddress {name, address}. Returns an empty collection if the user has never set an override.

list-focused-inbox-overrides

list-folder-files

list-folder-files

Return a collection of DriveItems in the children relationship of a DriveItem. DriveItems with a non-null folder or package facet can have one or more child DriveItems.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

Include response headers (including ETag) in the response metadata

list-folder-files

list-mail-attachments

list-mail-attachments

Retrieve a list of attachment objects.

💡 TIP: Lists attachments on a message: id, name, contentType, size, isInline. To download the bytes, call download-bytes with target=/me/messages/{message-id}/attachments/{attachment-id}/$value (the /$value suffix returns raw bytes; the bare attachment URL embeds contentBytes in JSON which can truncate large files).

Set true to enable advanced query mode (ConsistencyLevel: eventual). Required for complex $filter on flag/flagStatus or contains().

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

OData filter expression. Add $count=true for advanced filters (flag/flagStatus, contains()). Cannot combine with $search.

Value for the 'messageId' path segment. Pass it under the name 'messageId', not as 'id'. Use the 'id' field of the message object as returned by Microsoft Graph.

Sort expression, e.g. receivedDateTime desc

KQL search query — wrap value in double quotes. Cannot combine with $filter.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

Items to skip for pagination. Not supported with $search.

Page size (Graph $top). Start small (e.g. 5–15) so responses fit the model context; raise only if needed. Use $select to return fewer fields per item. For more rows, use @odata.nextLink from the response instead of a very large $top.

list-mail-attachments

list-mail-child-folders

list-mail-child-folders

Get the folder collection under the specified folder. You can use the .../me/mailFolders shortcut to get the top-level
folder collection and navigate to another folder. By default, this operation doesn't return hidden folders. Use a query parameter includeHiddenFolders to include them in the response.

Exclude the full response body and only return success or failure indication

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

Include Hidden Folders

Value for the 'mailFolderId' path segment. Pass it under the name 'mailFolderId', not as 'id'. Use the 'id' field of the mail folder object as returned by Microsoft Graph.

list-mail-child-folders

list-mail-folder-messages

list-mail-folder-messages

Get all the messages in the specified user's mailbox, or those messages in a specified folder in the mailbox.

💡 TIP: List read search Outlook emails within a specific mail folder. CRITICAL: When searching emails, the $search parameter value MUST be wrapped in double quotes. Format: $search="your search query here". Use KQL (Keyword Query Language) syntax to search specific properties: 'from:', 'subject:', 'body:', 'to:', 'cc:', 'bcc:', 'attachment:', 'hasAttachments:', 'importance:', 'received:', 'sent:'. Examples: $search="from:john@example.com" | $search="subject:meeting AND hasAttachments:true" | $search="body:urgent AND received>=2024-01-01" | $search="from:alice AND importance:high". Remember: ALWAYS wrap the entire search expression in double quotes! Reference: https://learn.microsoft.com/en-us/graph/search-query-parameter IMPORTANT: Always use $select to limit returned fields and reduce response size. Recommended default: $select=id,subject,from,toRecipients,receivedDateTime,bodyPreview,isRead,hasAttachments. Use bodyPreview instead of body for listings. To read the full email body, use get-mail-message with the specific message id.

list-mail-folder-messages

list-mail-folder-messages-delta

list-mail-folder-messages-delta

Get a set of messages added, deleted, or updated in a specified folder. A delta function call for messages in a folder is similar to a GET request, except that by appropriately
applying state tokens in one or more of these calls, you can [query for incremental changes in the messages in
that folder](/graph/delta-query-messages). It allows you to maintain and synchronize a local store of a user's messages without
having to fetch the entire set of messages from the server every time.

💡 TIP: Incremental sync of messages within a mail folder. Graph only supports delta scoped to a folder — use mailFolder-id = 'inbox' for the well-known inbox, or another folder id from list-mail-folders. First call returns all messages plus @odata.deltaLink; subsequent calls with that link return only changes (created/updated/deleted). @odata.nextLink paginates within a single delta window. Deltas expire after ~30 days of inactivity — start over if the server returns 410. Prefer this over full re-list for polling.

A custom query option to filter the delta response based on the type of change. Supported values are created, updated or deleted.

Include response headers (including ETag) in the response metadata

list-mail-folder-messages-delta

list-mail-folders

list-mail-folders

Get the mail folder collection directly under the root folder of the signed-in user. The returned collection includes any mail search folders directly under the root. By default, this operation doesn't return hidden folders. Use a query parameter includeHiddenFolders to include them in the response. This operation doesn't return all mail folders in a mailbox, only the child folders of the root folder. To return all mail folders in a mailbox, each child folder must be traversed separately.

Set true to enable advanced query mode (ConsistencyLevel: eventual). Required for complex $filter on flag/flagStatus or contains().

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

OData filter expression. Add $count=true for advanced filters (flag/flagStatus, contains()). Cannot combine with $search.

Include Hidden Folders

Sort expression, e.g. receivedDateTime desc

KQL search query — wrap value in double quotes. Cannot combine with $filter.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

Items to skip for pagination. Not supported with $search.

Page size (Graph $top). Start small (e.g. 5–15) so responses fit the model context; raise only if needed. Use $select to return fewer fields per item. For more rows, use @odata.nextLink from the response instead of a very large $top.

list-mail-folders

list-mail-messages

list-mail-messages

List, search, and filter Outlook email messages in the signed-in user's mailbox across all folders. Returns message metadata (subject, from, receivedDateTime, isRead, hasAttachments) plus a body preview. Use $search for keyword queries, $filter to narrow by sender/read state/date, $top to limit page size, and $select to trim fields.

💡 TIP: List read search my Outlook emails across folders. CRITICAL: When searching emails, the $search parameter value MUST be wrapped in double quotes. Format: $search="your search query here". Use KQL (Keyword Query Language) syntax to search specific properties: 'from:', 'subject:', 'body:', 'to:', 'cc:', 'bcc:', 'attachment:', 'hasAttachments:', 'importance:', 'received:', 'sent:'. Examples: $search="from:john@example.com" | $search="subject:meeting AND hasAttachments:true" | $search="body:urgent AND received>=2024-01-01" | $search="from:john AND importance:high". Remember: ALWAYS wrap the entire search expression in double quotes! Reference: https://learn.microsoft.com/en-us/graph/search-query-parameter IMPORTANT: Always use $select to limit returned fields and reduce response size. Recommended default: $select=id,subject,from,toRecipients,receivedDateTime,bodyPreview,isRead,hasAttachments. Use bodyPreview instead of body for listings. To read the full email body, use get-mail-message with the specific message id.

Exclude the full response body and only return success or failure indication

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

Include Hidden Messages

list-mail-messages

list-mail-rules

list-mail-rules

Get all the messageRule objects defined for the user's inbox.

💡 TIP: Lists all message rules for a mail folder. Use the Inbox folder ID (get it from list-mail-folders) for inbox rules. Each rule has displayName, sequence, isEnabled, conditions (fromAddresses, subjectContains, etc.), actions (moveToFolder, forwardTo, delete, etc.), and exceptions.

Value for the 'mailFolderId' path segment. Pass it under the name 'mailFolderId', not as 'id'. Use the 'id' field of the mail folder object as returned by Microsoft Graph.

list-mail-rules

list-my-calendar-permissions

list-my-calendar-permissions

The permissions of the users with whom the calendar is shared.

💡 TIP: Lists share recipients and delegates on the user's primary calendar. Returns calendarPermission objects with id, role ('none' | 'freeBusyRead' | 'limitedRead' | 'read' | 'write' | 'delegateWithoutPrivateEventAccess' | 'delegateWithPrivateEventAccess' | 'custom'), emailAddress { name, address }, isInsideOrganization, isRemovable, allowedRoles. Returns an empty collection when called by a delegate or share recipient (only the calendar owner sees the full list). For a non-primary calendar, use /me/calendars/{calendar-id}/calendarPermissions — not currently exposed.

list-my-calendar-permissions

list-onenote-notebook-sections

list-onenote-notebook-sections

Retrieve a list of onenoteSection objects from the specified notebook.

Include response headers (including ETag) in the response metadata

Value for the 'notebookId' path segment. Pass it under the name 'notebookId', not as 'id'. Use the 'id' field of the notebook object as returned by Microsoft Graph.

list-onenote-notebook-sections

list-onenote-notebooks

list-onenote-notebooks

Retrieve a list of notebook objects.

Set true to enable advanced query mode (ConsistencyLevel: eventual). Required for complex $filter on flag/flagStatus or contains().

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

OData filter expression. Add $count=true for advanced filters (flag/flagStatus, contains()). Cannot combine with $search.

Sort expression, e.g. receivedDateTime desc

KQL search query — wrap value in double quotes. Cannot combine with $filter.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

Items to skip for pagination. Not supported with $search.

Page size (Graph $top). Start small (e.g. 5–15) so responses fit the model context; raise only if needed. Use $select to return fewer fields per item. For more rows, use @odata.nextLink from the response instead of a very large $top.

list-onenote-notebooks

list-onenote-pages

list-onenote-pages

Retrieve a list of page objects.

💡 TIP: Lists all OneNote pages across every notebook and section the user has access to — transverse alternative to walking notebooks → sections → pages. Default returns top 20 ordered by lastModifiedTime desc. Supports $filter (e.g. lastModifiedTime gt 2026-01-01, or contains(tolower(title), 'topic') for title search), $top (max 100), $select, and $expand=parentNotebook,parentSection. Use this instead of bouncing through list-onenote-notebooks / list-all-onenote-sections / list-onenote-section-pages when you have a topic in mind.

Exclude the full response body and only return success or failure indication

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

list-onenote-pages

list-onenote-section-groups

list-onenote-section-groups

Retrieve a list of sectionGroup objects.

💡 TIP: Lists all OneNote section groups (subfolders inside notebooks that contain their own sections and nested section groups) for the user. A section group is a folder-like container — many notebooks use them to organize sections by theme. Default sort is name asc. Supports $expand=sections,sectionGroups,parentNotebook,parentSectionGroup to traverse the full hierarchy. Pair with list-onenote-notebooks for a complete picture of the user's notebook structure.

list-onenote-section-groups

list-onenote-section-pages

list-onenote-section-pages

Retrieve a list of page objects from the specified section.

Value for the 'onenoteSectionId' path segment. Pass it under the name 'onenoteSectionId', not as 'id'. Use the 'id' field of the onenote section object as returned by Microsoft Graph.

list-onenote-section-pages

list-outlook-categories

list-outlook-categories

Get all the categories that have been defined for a user.

💡 TIP: Lists the user's Outlook categories (colored labels) used to tag messages, events, contacts, and tasks. Each category has displayName and color (preset0 through preset24, or 'none'). Use this to show available tags before applying via update-mail-message or update-calendar-event with body { categories: ['Category Name'] }.

Include response headers (including ETag) in the response metadata

list-outlook-categories

list-outlook-contacts

list-outlook-contacts

Get a contact collection from the default contacts folder of the signed-in user. There are two scenarios where an app can get contacts in another user's contact folder:

💡 TIP: $filter only supports startswith() — contains() and eq on emailAddresses do not work. Use $search as alternative for broader matching.

Set true to enable advanced query mode (ConsistencyLevel: eventual). Required for complex $filter on flag/flagStatus or contains().

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

OData filter expression. Add $count=true for advanced filters (flag/flagStatus, contains()). Cannot combine with $search.

Sort expression, e.g. receivedDateTime desc

KQL search query — wrap value in double quotes. Cannot combine with $filter.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

Items to skip for pagination. Not supported with $search.

Page size (Graph $top). Start small (e.g. 5–15) so responses fit the model context; raise only if needed. Use $select to return fewer fields per item. For more rows, use @odata.nextLink from the response instead of a very large $top.

list-outlook-contacts

list-plan-buckets

list-plan-buckets

Retrieve a list of plannerBucket objects contained by a plannerPlan object.

Exclude the full response body and only return success or failure indication

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

Value for the 'plannerPlanId' path segment. Pass it under the name 'plannerPlanId', not as 'id'. Use the 'id' field of the planner plan object as returned by Microsoft Graph.

list-plan-buckets

list-plan-tasks

list-plan-tasks

Retrieve a list of plannerTask objects associated with a plannerPlan object.

💡 TIP: Priority values: 0=Urgent, 1=Important, 3=Medium, 5=Low, 9=unset.

list-plan-tasks

list-planner-task-messages

list-planner-task-messages

[beta] Retrieve a list of plannerTaskChatMessage objects associated with a plannerTask.

💡 TIP: Lists messages in a Planner task's chat — the modern Planner 'task chat', distinct from the legacy conversationThreadId comments (which live in the M365 group conversation thread). Each message has id, content (HTML), createdBy, createdDateTime, mentions, reactions. BETA Graph API: subject to change; delegated work/school accounts only — no application permissions, no personal Microsoft accounts, global cloud only (not GCC/DoD/21Vianet).

Value for the 'plannerTaskId' path segment. Pass it under the name 'plannerTaskId', not as 'id'. Use the 'id' field of the planner task object as returned by Microsoft Graph.

list-planner-task-messages

list-planner-tasks

list-planner-tasks

Retrieve a list of plannertask objects assigned to a User.

💡 TIP: Priority values: 0=Urgent, 1=Important, 3=Medium, 5=Low, 9=unset.

Include response headers (including ETag) in the response metadata

list-planner-tasks

list-specific-calendar-events

list-specific-calendar-events

List events from one of the signed-in user's calendars, addressed by calendar ID.

💡 TIP: WARNING: Does NOT expand recurring events — only returns seriesMaster. Use get-specific-calendar-view instead.

Value for the 'calendarId' path segment. Pass it under the name 'calendarId', not as 'id'. Use the 'id' field of the calendar object as returned by Microsoft Graph.

Set true to enable advanced query mode (ConsistencyLevel: eventual). Required for complex $filter on flag/flagStatus or contains().

When true, expands singleValueExtendedProperties on each event. Use this to retrieve custom extended properties (e.g., sync metadata) stored on calendar events.

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

OData filter expression. Add $count=true for advanced filters (flag/flagStatus, contains()). Cannot combine with $search.

Sort expression, e.g. receivedDateTime desc

KQL search query — wrap value in double quotes. Cannot combine with $filter.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

Items to skip for pagination. Not supported with $search.

IANA timezone name (e.g., "America/New_York", "Europe/London", "Asia/Tokyo") for calendar event times. If not specified, times are returned in UTC.

Page size (Graph $top). Start small (e.g. 5–15) so responses fit the model context; raise only if needed. Use $select to return fewer fields per item. For more rows, use @odata.nextLink from the response instead of a very large $top.

list-specific-calendar-events

list-subscriptions

list-subscriptions

Retrieve the properties and relationships of webhook subscriptions, based on the app ID, the user, and the user's role with a tenant. The content of the response depends on the context in which the app is calling; for details, see the scenarios in the Permissions section.

💡 TIP: Lists webhook subscriptions owned by the current app/user. Returns id, resource, changeType, notificationUrl, expirationDateTime, clientState. Use $filter=resource eq '/me/messages' to find subscriptions for a specific resource. No dedicated 'Subscription.*' scope exists — the caller must already have a read permission for the subscribed resource (e.g. Mail.Read for /me/messages), which is supplied by the tool that reads that resource.

Exclude the full response body and only return success or failure indication

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

list-subscriptions

list-supported-languages

list-supported-languages

Get the list of locales and languages that are supported for the user, as configured on the user's mailbox server. When setting up an Outlook client, the user selects the preferred language from this supported list. You can subsequently get the preferred language by
getting the user's mailbox settings.

💡 TIP: Lists locales and languages the user's mailbox server supports for the Outlook UI and message rendering. Returns localeInfo objects with locale (e.g. 'en-US') and displayName ('English (United States)'). Use this to validate the locale value before calling update-mailbox-settings to change the user's preferred language.

Include response headers (including ETag) in the response metadata

list-supported-languages

list-supported-time-zones

list-supported-time-zones

Get the list of time zones that are supported for the user, as configured on the user's mailbox server. You can explicitly specify to have time zones returned in the Windows time zone format or  Internet Assigned Numbers Authority (IANA) time zone (also known as Olson time zone) format. The Windows format is the default. When setting up an Outlook client, the user selects the preferred time zone from this supported list. You can subsequently get the preferred time zone by
getting the user's mailbox settings.

💡 TIP: Lists time zones the user's mailbox server supports. TimeZoneStandard path parameter must be one of: Windows (default — Windows time zone names like 'Pacific Standard Time'), or Iana (IANA / Olson names like 'America/Los_Angeles'). Note the PascalCase — the values are case-sensitive enums, not lowercase strings. Returns timeZoneInformation objects with alias and displayName. Use the result to validate or look up the value before calling update-mailbox-settings to change the user's preferred timeZone — the format must match what the server expects.

Value for the 'TimeZoneStandard' path segment.

Set true to enable advanced query mode (ConsistencyLevel: eventual). Required for complex $filter on flag/flagStatus or contains().

list-supported-time-zones

list-todo-linked-resources

list-todo-linked-resources

Get information of one or more items in a partner application, based on which a specified task was created. The information is represented in a linkedResource object for each item. It includes an external ID for the item in the partner application, and if applicable, a deep link to that item in the application.

💡 TIP: Lists resources linked to a To Do task (emails, URLs, etc.). Each linked resource has displayName, webUrl, applicationName, and externalId.

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

OData filter expression. Add $count=true for advanced filters (flag/flagStatus, contains()). Cannot combine with $search.

Sort expression, e.g. receivedDateTime desc

KQL search query — wrap value in double quotes. Cannot combine with $filter.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

Items to skip for pagination. Not supported with $search.

Value for the 'todoTaskId' path segment. Pass it under the name 'todoTaskId', not as 'id'. Use the 'id' field of the todo task object as returned by Microsoft Graph.

Value for the 'todoTaskListId' path segment. Pass it under the name 'todoTaskListId', not as 'id'. Use the 'id' field of the todo task list object as returned by Microsoft Graph.

Page size (Graph $top). Start small (e.g. 5–15) so responses fit the model context; raise only if needed. Use $select to return fewer fields per item. For more rows, use @odata.nextLink from the response instead of a very large $top.

list-todo-linked-resources

list-todo-task-lists

list-todo-task-lists

Get a list of the todoTaskList objects and their properties.

💡 TIP: Lists all To Do task lists. Returns todoTaskList-id needed for all task operations. The default list is typically called 'Tasks'. NOTE: $select is NOT supported by this endpoint — do not pass select parameter, Graph returns 400.

Exclude the full response body and only return success or failure indication

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

Include response headers (including ETag) in the response metadata

list-todo-task-lists

list-todo-tasks

list-todo-tasks

Get the todoTask resources from the tasks navigation property of a specified todoTaskList.

💡 TIP: Lists tasks in a To Do list. Requires todoTaskList-id — use list-todo-task-lists to find it. NOTE: $select is NOT supported — do not pass select, Graph returns 400. Use $filter=status eq 'notStarted' or $filter=status eq 'completed' to filter by status. Use $top to limit results. Status values: 'notStarted', 'inProgress', 'completed', 'waitingOnOthers', 'deferred'.

list-todo-tasks

login

Authenticate with Microsoft account

Force a new login even if already logged in

logout

Log out from Microsoft account

merge-excel-range

merge-excel-range

Merge an Excel range.

💡 TIP: Merge the cells in the given range into a single cell. Body: { across: false } merges the entire range into one cell; { across: true } merges each row separately. Useful for building styled headers, banner rows, and report layouts.

Value for the 'address' path segment.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

Value for the 'workbookWorksheetId' path segment. Pass it under the name 'workbookWorksheetId', not as 'id'. Use the 'id' field of the workbook worksheet object as returned by Microsoft Graph.

merge-excel-range

move-mail-message

move-mail-message

Move a message to another folder within the specified user's mailbox. This creates a new copy of the message in the destination folder and removes the original message.

💡 TIP: destinationId accepts folder ID or well-known name (inbox, drafts, sentitems, deleteditems, junkemail, archive).

Value for the 'messageId' path segment. Pass it under the name 'messageId', not as 'id'. Use the 'id' field of the message object as returned by Microsoft Graph.

move-mail-message

move-rename-onedrive-item

move-rename-onedrive-item

Move or rename a OneDrive item.

💡 TIP: Move and/or rename a file or folder. To move, provide parentReference with the target folder's id. To rename, provide a new name. Both can be done in a single request.

The title of the album for this audio file.

The artist named on the album for the audio file.

The performing artist for the audio file.

Bitrate expressed in kbps.

The name of the composer of the audio file.

Copyright information for the audio file.

The number of the disc this audio file came from.

The total number of discs in this album.

Duration of the audio file, expressed in milliseconds

The genre of this audio file.

Indicates if the file is protected with digital rights management.

Indicates if the file is encoded with a variable bitrate.

The title of the audio file.

The number of the track on the original disc for this audio file.

The total number of tracks on the original disc for this audio file.

The year the audio file was recorded.

The year the audio file was recorded.

Unique identifier of the driveItem that is the cover of the album.

Number of children contained immediately within this container.

An eTag for the content of the item. This eTag isn't changed if only the metadata is changed. Note This property isn't returned if the item is a folder. Read-only.

The content stream, if the item represents a file.

The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.

Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.

[Note: Simplified from 137 properties to 25 most common ones]

A freeform text entry field for the user to describe themselves. Requires $select to retrieve.

true if the account is enabled; otherwise, false. This property is required when a user is created. Requires $select to retrieve. Supports $filter (eq, ne, not, and in). This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it.

Sets the age group of the user. Allowed values: null, Minor, NotAdult, and Adult. For more information, see legal age group property definitions. Requires $select to retrieve. Supports $filter (eq, ne, not, and in).

The licenses that are assigned to the user, including inherited (group-based) licenses. This property doesn't differentiate between directly assigned and inherited licenses. Use the licenseAssignmentStates property to identify the directly assigned and inherited licenses. Not nullable. Requires $select to retrieve. Supports $filter (eq, not, /$count eq 0, /$count ne 0).

A collection of the unique identifiers for plans that have been disabled. IDs are available in servicePlans > servicePlanId in the tenant's subscribedSkus or serviceStatus > servicePlanId in the tenant's companySubscription.

The unique identifier for the SKU. Corresponds to the skuId from subscribedSkus or companySubscription.

The plans that are assigned to the user. Read-only. Not nullable. Requires $select to retrieve. Supports $filter (eq and not).

The date and time at which the plan was assigned. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.

Condition of the capability assignment. The possible values are Enabled, Warning, Suspended, Deleted, LockedOut. See a detailed description of each value.

The name of the service; for example, exchange.

A GUID that identifies the service plan. For a complete list of GUIDs and their equivalent friendly service names, see Product names and service plan identifiers for licensing.

The birthday of the user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014, is 2014-01-01T00:00:00Z. Requires $select to retrieve.

The telephone numbers for the user. NOTE: Although it's a string collection, only one number can be set for this property. Read-only for users synced from the on-premises directory. Returned by default. Supports $filter (eq, not, ge, le, startsWith). This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it.

The city where the user is located. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).

The name of the company that the user is associated with. This property can be useful for describing the company that a guest comes from. The maximum length is 64 characters.Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).

Sets whether consent was obtained for minors. Allowed values: null, Granted, Denied, and NotRequired. For more information, see legal age group property definitions. Requires $select to retrieve. Supports $filter (eq, ne, not, and in).

The country or region where the user is located; for example, US or UK. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).

The date and time the user was created, in ISO 8601 format and UTC. The value can't be modified and is automatically populated when the entity is created. Nullable. For on-premises users, the value represents when they were first created in Microsoft Entra ID. Property is null for some users created before June 2018 and on-premises users that were synced to Microsoft Entra ID before June 2018. Read-only. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in).

Indicates whether the user account was created through one of the following methods:  As a regular school or work account (null). As an external account (Invitation). As a local account for an Azure Active Directory B2C tenant (LocalAccount). Through self-service sign-up by an internal user using email verification (EmailVerified). Through self-service sign-up by a guest signing up through a link that is part of a user flow (SelfServiceSignUp). Read-only.Requires $select to retrieve. Supports $filter (eq, ne, not, in).

Date and time when this object was deleted. Always null when the object hasn't been deleted.

The name of the department in which the user works. Maximum length is 64 characters. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in, and eq on null values).

The limit on the maximum number of devices that the user is permitted to enroll. Allowed values are 5 or 1000.

The name displayed in the address book for the user. This value is usually the combination of the user's first name, middle initial, and family name. This property is required when a user is created and it can't be cleared during updates. Maximum length is 256 characters. Returned by default. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq on null values), $orderby, and $search.

The date and time when the user was hired or will start work in a future hire. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in).

The employee identifier assigned to the user by the organization. The maximum length is 16 characters. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq on null values).

The unique identifier for an entity. Read-only.

The state or province in the user's address. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).

Date and time of item creation. Read-only.

Represents the state of the deleted item.

Provides a user-visible description of the item. Optional.

ETag for the item. Read-only.

The CRC32 value of the file (if available). Read-only.

A proprietary hash of the file that can be used to determine if the contents of the file change (if available). Read-only.

SHA1 hash for the contents of the file (if available). Read-only.

This property isn't supported. Don't use.

The MIME type for the file. This is determined by logic on the server and might not be the value provided when the file was uploaded. Read-only.

The UTC date and time the file was created on a client.

The UTC date and time the file was last accessed. Available for the recent file list only.

The UTC date and time the file was last modified on a client.

Number of children contained immediately within this container.

The method by which the folder should be sorted.

If true, indicates that items should be sorted in descending order. Otherwise, items should be sorted ascending.

The type of view that should be used to represent the folder.

The unique identifier for an entity. Read-only.

Optional. Height of the image, in pixels. Read-only.

Optional. Width of the image, in pixels. Read-only.

The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.

Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.

[Note: Simplified from 137 properties to 25 most common ones]

A freeform text entry field for the user to describe themselves. Requires $select to retrieve.

true if the account is enabled; otherwise, false. This property is required when a user is created. Requires $select to retrieve. Supports $filter (eq, ne, not, and in). This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it.

Sets the age group of the user. Allowed values: null, Minor, NotAdult, and Adult. For more information, see legal age group property definitions. Requires $select to retrieve. Supports $filter (eq, ne, not, and in).

The licenses that are assigned to the user, including inherited (group-based) licenses. This property doesn't differentiate between directly assigned and inherited licenses. Use the licenseAssignmentStates property to identify the directly assigned and inherited licenses. Not nullable. Requires $select to retrieve. Supports $filter (eq, not, /$count eq 0, /$count ne 0).

A collection of the unique identifiers for plans that have been disabled. IDs are available in servicePlans > servicePlanId in the tenant's subscribedSkus or serviceStatus > servicePlanId in the tenant's companySubscription.

The unique identifier for the SKU. Corresponds to the skuId from subscribedSkus or companySubscription.

The plans that are assigned to the user. Read-only. Not nullable. Requires $select to retrieve. Supports $filter (eq and not).

The date and time at which the plan was assigned. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.

Condition of the capability assignment. The possible values are Enabled, Warning, Suspended, Deleted, LockedOut. See a detailed description of each value.

The name of the service; for example, exchange.

A GUID that identifies the service plan. For a complete list of GUIDs and their equivalent friendly service names, see Product names and service plan identifiers for licensing.

The birthday of the user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014, is 2014-01-01T00:00:00Z. Requires $select to retrieve.

The telephone numbers for the user. NOTE: Although it's a string collection, only one number can be set for this property. Read-only for users synced from the on-premises directory. Returned by default. Supports $filter (eq, not, ge, le, startsWith). This property is subject to sensitive action restrictions; only specific privileged administrator roles can update it.

The city where the user is located. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).

The name of the company that the user is associated with. This property can be useful for describing the company that a guest comes from. The maximum length is 64 characters.Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).

Sets whether consent was obtained for minors. Allowed values: null, Granted, Denied, and NotRequired. For more information, see legal age group property definitions. Requires $select to retrieve. Supports $filter (eq, ne, not, and in).

The country or region where the user is located; for example, US or UK. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).

The date and time the user was created, in ISO 8601 format and UTC. The value can't be modified and is automatically populated when the entity is created. Nullable. For on-premises users, the value represents when they were first created in Microsoft Entra ID. Property is null for some users created before June 2018 and on-premises users that were synced to Microsoft Entra ID before June 2018. Read-only. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in).

Indicates whether the user account was created through one of the following methods:  As a regular school or work account (null). As an external account (Invitation). As a local account for an Azure Active Directory B2C tenant (LocalAccount). Through self-service sign-up by an internal user using email verification (EmailVerified). Through self-service sign-up by a guest signing up through a link that is part of a user flow (SelfServiceSignUp). Read-only.Requires $select to retrieve. Supports $filter (eq, ne, not, in).

Date and time when this object was deleted. Always null when the object hasn't been deleted.

The name of the department in which the user works. Maximum length is 64 characters. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in, and eq on null values).

The limit on the maximum number of devices that the user is permitted to enroll. Allowed values are 5 or 1000.

The name displayed in the address book for the user. This value is usually the combination of the user's first name, middle initial, and family name. This property is required when a user is created and it can't be cleared during updates. Maximum length is 256 characters. Returned by default. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq on null values), $orderby, and $search.

The date and time when the user was hired or will start work in a future hire. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in).

The employee identifier assigned to the user by the organization. The maximum length is 16 characters. Requires $select to retrieve. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq on null values).

The unique identifier for an entity. Read-only.

The state or province in the user's address. Maximum length is 128 characters. Requires $select to retrieve. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).

Date and time the item was last modified. Read-only.

Optional. The altitude (height), in feet,  above sea level for the item. Read-only. [Simplified from 3 options]

Optional. The latitude, in decimal, for the item. Read-only. [Simplified from 3 options]

Optional. The longitude, in decimal, for the item. Read-only. [Simplified from 3 options]

Contains the virus details for the malware facet.

The name of the item. Read-write.

A string indicating the type of package. While oneNote is the only currently defined value, you should expect other package types to be returned and handle them accordingly.

Unique identifier of the drive instance that contains the driveItem. Only returned if the item is located in a drive. Read-only.

Identifies the type of drive. Only returned if the item is located in a drive. See drive resource for values.

Unique identifier of the driveItem in the drive or a listItem in a list. Read-only.

The name of the item being referenced. Read-only.

Percent-encoded path that can be used to navigate to the item. Read-only.

A unique identifier for a shared resource that can be accessed via the Shares API.

The unique identifier (guid) for the item's list in SharePoint.

An integer identifier for the item within the containing list.

The unique identifier (guid) for the item within OneDrive for Business or a SharePoint site.

The unique identifier (guid) for the item's site collection (SPSite).

The SharePoint URL for the site that contains the item.

The unique identifier (guid) for the tenancy.

The unique identifier (guid) for the item's site (SPWeb).

For OneDrive for Business and SharePoint, this property represents the ID of the site that contains the parent document library of the driveItem resource or the parent list of the listItem resource. The value is the same as the id property of that site resource. It is an opaque string that consists of three identifiers of the site. For OneDrive, this property is not populated.

Date and time the pending binary operation was queued in UTC time. Read-only.

URL that either displays the resource in the browser (for Office file formats), or is a direct link to the file (for other formats). Read-only.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

move-rename-onedrive-item

parse-teams-url

parse-teams-url

Converts any Teams meeting URL format (short /meet/, full /meetup-join/, or recap ?threadId=) into a standard joinWebUrl. Use this before list-online-meetings when the user provides a recap or short URL.

Teams meeting URL in any format

reauthorize-subscription

reauthorize-subscription

Reauthorize a subscription when you receive a reauthorizationRequired challenge.

💡 TIP: Reauthorizes a subscription after receiving a 'reauthorizationRequired' lifecycle notification from Microsoft Graph. No body required. Must be called within the reauthorizationRequiredDateTime window (typically 48h) to avoid subscription expiry.

Value for the 'subscriptionId' path segment. Pass it under the name 'subscriptionId', not as 'id'. Use the 'id' field of the subscription object as returned by Microsoft Graph.

reauthorize-subscription

remove-account

Remove a Microsoft account from the cache. Accepts email address (e.g. user@outlook.com) or account ID. Use list-accounts to discover available accounts.

Email address or account ID of the account to remove

reply-all-mail-message

reply-all-mail-message

Reply to all recipients of a message using either JSON or MIME format. When using JSON format:
- Specify either a comment or the body property of the message parameter. Specifying both will return an HTTP 400 Bad Request error.
- If the original message specifies a recipient in the replyTo property, per Internet Message Format (RFC 2822), send the reply to the recipients in replyTo and not the recipient in the from property. When using MIME format:
- Provide the applicable Internet message headers and the MIME content, all encoded in base64 format in the request body.
- Add any attachments and S/MIME properties to the MIME content. This method saves the message in the Sent Items folder. Alternatively, create a draft to reply-all to a message and send it later.

💡 TIP: Reply-all preserving full HTML formatting. The 'comment' field is your reply text.

The fileAttachment and itemAttachment attachments for the message.

The MIME type.

The unique identifier for an entity. Read-only.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The Bcc: recipients for the message.

The email address of the person or entity.

The display name of the person or entity.

The content of the item.

The first 255 characters of the message body. It is in text format.

The categories associated with the item

The Cc: recipients for the message.

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The ID of the conversation the email belongs to.

Indicates the position of the message within the conversation.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>.

A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Requires $select to retrieve. Read-only.

Represents the key in a key-value pair.

The value in a key-value pair.

The message ID in the format specified by RFC2822.

Indicates whether a read receipt is requested for the message.

Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet.

The collection of multi-value extended properties defined for the message. Nullable.

The unique identifier for an entity. Read-only.

A collection of property values.

The collection of single-value extended properties defined for the message. Nullable.

A property value.

The subject of the message.

The To: recipients for the message.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'messageId' path segment. Pass it under the name 'messageId', not as 'id'. Use the 'id' field of the message object as returned by Microsoft Graph.

reply-all-mail-message

reply-mail-message

reply-mail-message

Reply to the sender of a message using either JSON or MIME format. When using JSON format:
* Specify either a comment or the body property of the message parameter. Specifying both will return an HTTP 400 Bad Request error.
* If the original message specifies a recipient in the replyTo property, per Internet Message Format (RFC 2822), send the reply to the recipients in replyTo and not the recipient in the from property. When using MIME format:
- Provide the applicable Internet message headers and the MIME content, all encoded in base64 format in the request body.
- Add any attachments and S/MIME properties to the MIME content. This method saves the message in the Sent Items folder. Alternatively, create a draft to reply to an existing message and send it later.

💡 TIP: Reply to an email preserving full HTML formatting. The 'comment' field is your reply text. Do NOT reconstruct the email manually.

The fileAttachment and itemAttachment attachments for the message.

The MIME type.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The Bcc: recipients for the message.

The email address of the person or entity.

The display name of the person or entity.

The content of the item.

The first 255 characters of the message body. It is in text format.

The categories associated with the item

The Cc: recipients for the message.

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The ID of the conversation the email belongs to.

Indicates the position of the message within the conversation.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>.

The unique identifier for an entity. Read-only.

A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Requires $select to retrieve. Read-only.

Represents the key in a key-value pair.

The value in a key-value pair.

The message ID in the format specified by RFC2822.

Indicates whether a read receipt is requested for the message.

Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet.

The collection of multi-value extended properties defined for the message. Nullable.

A collection of property values.

The collection of single-value extended properties defined for the message. Nullable.

A property value.

The subject of the message.

The To: recipients for the message.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'messageId' path segment. Pass it under the name 'messageId', not as 'id'. Use the 'id' field of the message object as returned by Microsoft Graph.

reply-mail-message

search-onedrive-files

search-onedrive-files

Search the hierarchy of items for items matching a query.
You can search within a folder hierarchy, a whole drive, or files shared with the current user.

💡 TIP: Searches for files in a drive by name or content. The q parameter searches file names, metadata, and file content. Returns matching driveItems with id, name, webUrl, size, lastModifiedDateTime. Use list-drives first to get the drive-id.

Set true to enable advanced query mode (ConsistencyLevel: eventual). Required for complex $filter on flag/flagStatus or contains().

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Navigation properties to inline, e.g. attachments on a message or event. Only navigation properties can be expanded: expanding a non-navigation property such as a message body fails with "Parsing OData Select and Expand failed", and an unsupported value may be ignored rather than reported. Request ordinary fields with $select instead.

Follow @odata.nextLink and merge up to 100 pages into one response. Can return enormous payloads—only when the user explicitly needs a full export. Prefer a small $top first, then paginate or narrow with $filter/$search.

OData filter expression. Add $count=true for advanced filters (flag/flagStatus, contains()). Cannot combine with $search.

Sort expression, e.g. receivedDateTime desc

Value for the 'q' path segment.

KQL search query — wrap value in double quotes. Cannot combine with $filter.

Comma-separated fields to return, e.g. id,subject,from,receivedDateTime

Items to skip for pagination. Not supported with $search.

Page size (Graph $top). Start small (e.g. 5–15) so responses fit the model context; raise only if needed. Use $select to return fewer fields per item. For more rows, use @odata.nextLink from the response instead of a very large $top.

search-onedrive-files

select-account

Select a Microsoft account as the default. Accepts email address (e.g. user@outlook.com) or account ID. Use list-accounts to discover available accounts.

Email address or account ID of the account to select

send-draft-message

send-draft-message

Send an existing draft message. The draft message can be a new message draft, reply draft, reply-all draft, or a forward draft. This method saves the message in the Sent Items folder. Alternatively, send a new message in a single operation.

💡 TIP: No request body needed — just call with the message ID. Draft must exist in Drafts folder.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'messageId' path segment. Pass it under the name 'messageId', not as 'id'. Use the 'id' field of the message object as returned by Microsoft Graph.

send-draft-message

send-mail

send-mail

Send the message specified in the request body using either JSON or MIME format. When using JSON format, you can include a file attachment in the same sendMail action call. When using MIME format: This method saves the message in the Sent Items folder. Alternatively, create a draft message to send later. To learn more about the steps involved in the backend before a mail is delivered to recipients, see here.

💡 TIP: CRITICAL: Do not try to guess the email address of the recipients. Use the list-users tool to find the email address of the recipients.

[Note: Simplified from 35 properties to 25 most common ones]

The fileAttachment and itemAttachment attachments for the message.

The MIME type.

The unique identifier for an entity. Read-only.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The Bcc: recipients for the message.

The email address of the person or entity.

The display name of the person or entity.

The content of the item.

The first 255 characters of the message body. It is in text format.

The categories associated with the item

The Cc: recipients for the message.

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The ID of the conversation the email belongs to.

Indicates the position of the message within the conversation.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>.

A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Requires $select to retrieve. Read-only.

Represents the key in a key-value pair.

The value in a key-value pair.

The message ID in the format specified by RFC2822.

Indicates whether a read receipt is requested for the message.

Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet.

The collection of multi-value extended properties defined for the message. Nullable.

The unique identifier for an entity. Read-only.

A collection of property values.

The collection of single-value extended properties defined for the message. Nullable.

A property value.

The subject of the message.

The To: recipients for the message.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

send-mail

share-drive-item

share-drive-item

Send a sharing invitation for a driveItem. A sharing invitation provides permissions to the recipients and, optionally, sends them an email to notify them that the item was shared.

💡 TIP: Shares a file or folder with specific users. Body: { recipients: [{ email: 'user@example.com' }], roles: ['read'], sendInvitation: true, message: 'Please review this file.' }. Roles: 'read', 'write', 'owner'. Set requireSignIn to true to require authentication.

The alias of the domain object, for cases where an email address is unavailable (for example, security groups).

The email address for the recipient, if the recipient has an associated email address.

The unique identifier for the recipient in the directory.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

share-drive-item

snooze-calendar-event-reminder

snooze-calendar-event-reminder

Postpone a reminder for an event in a user calendar until a new time.

💡 TIP: Postpones a triggered event reminder. Body: { NewReminderTime: { dateTime (ISO 8601), timeZone (IANA or Windows, e.g. 'Pacific Standard Time') } }. The reminder will re-fire at the new time.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

Value for the 'eventId' path segment. Pass it under the name 'eventId', not as 'id'. Use the 'id' field of the event object as returned by Microsoft Graph.

snooze-calendar-event-reminder

sort-excel-range

sort-excel-range

Sort an Excel range.

Value for the 'workbookWorksheetId' path segment. Pass it under the name 'workbookWorksheetId', not as 'id'. Use the 'id' field of the workbook worksheet object as returned by Microsoft Graph.

sort-excel-range

tentatively-accept-calendar-event

tentatively-accept-calendar-event

Tentatively accept the specified event in a user calendar. If the event allows proposals for new times, on responding tentative to the event, an invitee can choose to suggest an alternative time by including the proposedNewTime parameter. For more information on how to propose a time, and how to receive and accept a new time proposal, see Propose new meeting times.

💡 TIP: Tentatively accepts a meeting invitation. Optional body: { sendResponse: true, comment: 'I might be able to attend.' }. Use proposedNewTime to suggest an alternative: { proposedNewTime: { start: { dateTime, timeZone }, end: { dateTime, timeZone } } }.

tentatively-accept-calendar-event

unmerge-excel-range

unmerge-excel-range

Unmerge an Excel range.

💡 TIP: Unmerge any merged cells within the given range back into individual cells. No request body. Inverse of merge-excel-range.

Value for the 'address' path segment.

unmerge-excel-range

update-calendar

update-calendar

Update a calendar.

💡 TIP: Updates a calendar's properties. Body: { name: 'New Name', color: 'lightBlue' }. Cannot update the default calendar's name.

Represent the online meeting service providers that can be used to create online meetings in this calendar. The possible values are: unknown, skypeForBusiness, skypeForConsumer, teamsForBusiness.

unknown skypeForBusiness skypeForConsumer teamsForBusiness

The permissions of the users with whom the calendar is shared.

List of allowed sharing or delegating permission levels for the calendar. The possible values are: none, freeBusyRead, limitedRead, read, write, delegateWithoutPrivateEventAccess, delegateWithPrivateEventAccess, custom.

none freeBusyRead limitedRead read write delegateWithoutPrivateEventAccess delegateWithPrivateEventAccess custom

The email address of the person or entity.

The display name of the person or entity.

The unique identifier for an entity. Read-only.

True if the user in context (recipient or delegate) is inside the same organization as the calendar owner.

True if the user can be removed from the list of recipients or delegates for the specified calendar, false otherwise. The 'My organization' user determines the permissions other people within your organization have to the given calendar. You can't remove 'My organization' as a share recipient to a calendar.

The calendar view for the calendar. Navigation property. Read-only.

true if the meeting organizer allows invitees to propose a new time when responding; otherwise, false. Optional. The default is true.

The collection of FileAttachment, ItemAttachment, and referenceAttachment attachments for the event. Navigation property. Read-only. Nullable.

The MIME type.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The collection of attendees for the event.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

none organizer tentativelyAccepted accepted declined notResponded

The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The content of the item.

The categories associated with the item

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

Set to true if the event lasts all day. If true, regardless of whether it's a single-day or multi-day event, start, and endtime must be set to midnight and be in the same time zone.

True if this event has online meeting information (that is, onlineMeeting points to an onlineMeetingInfo resource), false otherwise. Default is false (onlineMeeting is null). Optional.  After you set isOnlineMeeting to true, Microsoft Graph initializes onlineMeeting. Subsequently, Outlook ignores any further changes to isOnlineMeeting, and the meeting remains available online.

Set to true if an alert is set to remind the user of the event.

The city.

The country or region. It's a free-format string value, for example, 'United States'.

The postal code.

The state.

The street.

The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters. [Simplified from 3 options]

The altitude of the location. [Simplified from 3 options]

The accuracy of the altitude. [Simplified from 3 options]

The latitude of the location. [Simplified from 3 options]

The longitude of the location. [Simplified from 3 options]

The name associated with the location.

Optional email address of the location.

default conferenceRoom homeAddress businessAddress geoCoordinates streetAddress hotel restaurant localBusiness postalAddress

Optional URI representing the location.

For internal use only.

unknown locationStore directory private bing

The collection of multi-value extended properties defined for the event. Read-only. Nullable.

The unique identifier for an entity. Read-only.

A collection of property values.

The day of the month on which the event occurs. Required if type is absoluteMonthly or absoluteYearly.

A collection of the days of the week on which the event occurs. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. If type is relativeMonthly or relativeYearly, and daysOfWeek specifies more than one day, the event falls on the first day that satisfies the pattern.  Required if type is weekly, relativeMonthly, or relativeYearly.

sunday monday tuesday wednesday thursday friday saturday

The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required.

The month in which the event occurs.  This is a number from 1 to 12.

daily weekly absoluteMonthly relativeMonthly absoluteYearly relativeYearly

The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence of the meeting may not be this date. Required if type is endDate.

The number of times to repeat the event. Required and must be positive if type is numbered.

Time zone for the startDate and endDate properties. Optional. If not specified, the time zone of the event is used.

The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later, depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event. Required.

The number of minutes before the event start time that the reminder alert occurs.

Default is true, which represents the organizer would like an invitee to send a response to the event.

unknown free tentative busy oof workingElsewhere

The collection of single-value extended properties defined for the event. Read-only. Nullable.

A property value.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

The text of the event's subject line.

singleInstance occurrence exception seriesMaster

true if the user can write to the calendar, false otherwise. This property is true for the user who created the calendar. This property is also true for a user who shared a calendar and granted write access.

true if the user has permission to share the calendar, false otherwise. Only the user who created the calendar can share it.

If true, the user can read calendar items that have been marked private, false otherwise.

Identifies the version of the calendar object. Every time the calendar is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

auto lightBlue lightGreen lightOrange lightGray lightYellow lightTeal lightPink lightBrown lightRed maxColor

The events in the calendar. Navigation property. Read-only.

true if the meeting organizer allows invitees to propose a new time when responding; otherwise, false. Optional. The default is true.

The collection of FileAttachment, ItemAttachment, and referenceAttachment attachments for the event. Navigation property. Read-only. Nullable.

The MIME type.

The unique identifier for an entity. Read-only.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The collection of attendees for the event.

The email address of the person or entity.

The display name of the person or entity.

none organizer tentativelyAccepted accepted declined notResponded

The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The content of the item.

The categories associated with the item

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

Set to true if the event lasts all day. If true, regardless of whether it's a single-day or multi-day event, start, and endtime must be set to midnight and be in the same time zone.

True if this event has online meeting information (that is, onlineMeeting points to an onlineMeetingInfo resource), false otherwise. Default is false (onlineMeeting is null). Optional.  After you set isOnlineMeeting to true, Microsoft Graph initializes onlineMeeting. Subsequently, Outlook ignores any further changes to isOnlineMeeting, and the meeting remains available online.

Set to true if an alert is set to remind the user of the event.

The city.

The country or region. It's a free-format string value, for example, 'United States'.

The postal code.

The state.

The street.

The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters. [Simplified from 3 options]

The altitude of the location. [Simplified from 3 options]

The accuracy of the altitude. [Simplified from 3 options]

The latitude of the location. [Simplified from 3 options]

The longitude of the location. [Simplified from 3 options]

The name associated with the location.

Optional email address of the location.

Optional URI representing the location.

For internal use only.

The collection of multi-value extended properties defined for the event. Read-only. Nullable.

The unique identifier for an entity. Read-only.

A collection of property values.

The day of the month on which the event occurs. Required if type is absoluteMonthly or absoluteYearly.

A collection of the days of the week on which the event occurs. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. If type is relativeMonthly or relativeYearly, and daysOfWeek specifies more than one day, the event falls on the first day that satisfies the pattern.  Required if type is weekly, relativeMonthly, or relativeYearly.

The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required.

The month in which the event occurs.  This is a number from 1 to 12.

The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence of the meeting may not be this date. Required if type is endDate.

The number of times to repeat the event. Required and must be positive if type is numbered.

Time zone for the startDate and endDate properties. Optional. If not specified, the time zone of the event is used.

The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later, depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event. Required.

The number of minutes before the event start time that the reminder alert occurs.

Default is true, which represents the organizer would like an invitee to send a response to the event.

The collection of single-value extended properties defined for the event. Read-only. Nullable.

A property value.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

The text of the event's subject line.

The calendar color, expressed in a hex color code of three hexadecimal values, each ranging from 00 to FF and representing the red, green, or blue components of the color in the RGB color space. If the user has never explicitly set a color for the calendar, this property is empty. Read-only.

true if this is the default calendar where new events are created by default, false otherwise.

Indicates whether this user calendar can be deleted from the user mailbox.

Indicates whether this user calendar supports tracking of meeting responses. Only meeting invites sent from users' primary calendars support tracking of meeting responses.

The collection of multi-value extended properties defined for the calendar. Read-only. Nullable.

The unique identifier for an entity. Read-only.

A collection of property values.

The calendar name.

The email address of the person or entity.

The display name of the person or entity.

The collection of single-value extended properties defined for the calendar. Read-only. Nullable.

A property value.

Value for the 'calendarId' path segment. Pass it under the name 'calendarId', not as 'id'. Use the 'id' field of the calendar object as returned by Microsoft Graph.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

update-calendar

update-calendar-event

update-calendar-event

Update the properties of the event object.

💡 TIP: CRITICAL: Do not try to guess the email address of the recipients. Use the list-users tool to find the email address of the recipients. WARNING: Setting attendees replaces the entire attendee list — include all attendees, not just new ones.

true if the meeting organizer allows invitees to propose a new time when responding; otherwise, false. Optional. The default is true.

The collection of FileAttachment, ItemAttachment, and referenceAttachment attachments for the event. Navigation property. Read-only. Nullable.

The MIME type.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The collection of attendees for the event.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

none organizer tentativelyAccepted accepted declined notResponded

The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The content of the item.

The categories associated with the item

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The unique identifier for an entity. Read-only.

Set to true if the event lasts all day. If true, regardless of whether it's a single-day or multi-day event, start, and endtime must be set to midnight and be in the same time zone.

True if this event has online meeting information (that is, onlineMeeting points to an onlineMeetingInfo resource), false otherwise. Default is false (onlineMeeting is null). Optional.  After you set isOnlineMeeting to true, Microsoft Graph initializes onlineMeeting. Subsequently, Outlook ignores any further changes to isOnlineMeeting, and the meeting remains available online.

Set to true if an alert is set to remind the user of the event.

The city.

The country or region. It's a free-format string value, for example, 'United States'.

The postal code.

The state.

The street.

The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters. [Simplified from 3 options]

The altitude of the location. [Simplified from 3 options]

The accuracy of the altitude. [Simplified from 3 options]

The latitude of the location. [Simplified from 3 options]

The longitude of the location. [Simplified from 3 options]

The name associated with the location.

Optional email address of the location.

Optional URI representing the location.

For internal use only.

The collection of multi-value extended properties defined for the event. Read-only. Nullable.

A collection of property values.

The day of the month on which the event occurs. Required if type is absoluteMonthly or absoluteYearly.

A collection of the days of the week on which the event occurs. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. If type is relativeMonthly or relativeYearly, and daysOfWeek specifies more than one day, the event falls on the first day that satisfies the pattern.  Required if type is weekly, relativeMonthly, or relativeYearly.

The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required.

The month in which the event occurs.  This is a number from 1 to 12.

The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence of the meeting may not be this date. Required if type is endDate.

The number of times to repeat the event. Required and must be positive if type is numbered.

Time zone for the startDate and endDate properties. Optional. If not specified, the time zone of the event is used.

The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later, depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event. Required.

The number of minutes before the event start time that the reminder alert occurs.

Default is true, which represents the organizer would like an invitee to send a response to the event.

The collection of single-value extended properties defined for the event. Read-only. Nullable.

The unique identifier for an entity. Read-only.

A property value.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

The text of the event's subject line.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Value for the 'eventId' path segment. Pass it under the name 'eventId', not as 'id'. Use the 'id' field of the event object as returned by Microsoft Graph.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

update-calendar-event

update-contact-folder

update-contact-folder

Update the properties of contactfolder object.

💡 TIP: Updates a contact folder. Body: { displayName?: 'New name', parentFolderId?: '<id>' } — both displayName (rename) and parentFolderId (move) are writable. The default 'Contacts' folder may not be renameable. Get the folder id via list-contact-folders.

The collection of child folders in the folder. Navigation property. Read-only. Nullable.

The contacts in the folder. Navigation property. Read-only. Nullable.

The folder's display name.

The collection of multi-value extended properties defined for the contactFolder. Read-only. Nullable.

The ID of the folder's parent folder.

The collection of single-value extended properties defined for the contactFolder. Read-only. Nullable.

The name of the contact's assistant.

The contact's birthday. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The business home page of the contact.

The contact's business phone numbers.

The categories associated with the item

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The names of the contact's children.

The name of the contact's company.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The contact's department.

The contact's display name. You can specify the display name in a create or update operation. Note that later updates to other properties may cause an automatically generated value to overwrite the displayName value you have specified. To preserve a pre-existing value, always include it as displayName in an update operation.

The contact's email addresses.

The email address of the person or entity.

The display name of the person or entity.

The name the contact is filed under.

The contact's suffix.

The contact's given name.

The contact's home phone numbers.

The unique identifier for an entity. Read-only.

The contact's instant messaging (IM) addresses.

The contact's initials.

The collection of multi-value extended properties defined for the contact. Read-only. Nullable.

The collection of single-value extended properties defined for the contact. Read-only. Nullable.

The contact's title.

The city.

The country or region. It's a free-format string value, for example, 'United States'.

The postal code.

The state.

The street.

A collection of property values.

A property value.

The folder's display name.

The ID of the folder's parent folder.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Value for the 'contactFolderId' path segment. Pass it under the name 'contactFolderId', not as 'id'. Use the 'id' field of the contact folder object as returned by Microsoft Graph.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

update-contact-folder

update-excel-range

update-excel-range

Update an Excel range.

💡 TIP: Set cell values, formulas, or number format on any range — does NOT require the worksheet to be a formal Excel table. Body: { values: [['v1','v2','v3']] } for a single row, or [['a','b'],['c','d']] for multi-row. Use this for append (target the next empty row's address, e.g. 'A172:H172'), update (target a single cell like 'H42'), or prepend-style edits (read existing, concatenate, write back). Number of inner-array values must match the column count of the address.

Value for the 'address' path segment.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

Value for the 'workbookWorksheetId' path segment. Pass it under the name 'workbookWorksheetId', not as 'id'. Use the 'id' field of the workbook worksheet object as returned by Microsoft Graph.

update-excel-range

update-excel-table-row

update-excel-table-row

Update an Excel table row.

💡 TIP: Update a single row in a formal Excel table by zero-based row index. Body: { values: [[...]] } with one inner array matching the column count.

Value for the 'index' path segment.

Value for the 'workbookTableId' path segment. Pass it under the name 'workbookTableId', not as 'id'. Use the 'id' field of the workbook table object as returned by Microsoft Graph.

body driveId driveItemId workbookTableId index

update-excel-table-row

update-focused-inbox-override

update-focused-inbox-override

Change the classifyAs field of an override as specified. You cannot use PATCH to change any other fields in an inferenceClassificationOverride instance. If an override exists for a sender and the sender changes his/her display name, you can use POST to force an update to the name field in the existing override. If an override exists for a sender and the sender changes his/her SMTP address, deleting the existing override and creating a new one with
the new SMTP address is the only way to 'update' the override for this sender.

💡 TIP: Updates the classifyAs field of an existing override. Body: { classifyAs: 'focused' } or { classifyAs: 'other' }. Per Graph API, PATCH cannot change senderEmailAddress — to change the SMTP address, delete and recreate the override. To rename the display name only, POST a new override with the same SMTP address (it will overwrite the name).

The email address of the person or entity.

The display name of the person or entity.

Value for the 'inferenceClassificationOverrideId' path segment. Pass it under the name 'inferenceClassificationOverrideId', not as 'id'. Use the 'id' field of the inference classification override object as returned by Microsoft Graph.

update-focused-inbox-override

update-mail-folder

update-mail-folder

Update the properties of mailfolder object.

💡 TIP: Renames a mail folder by updating its displayName. Use list-mail-folders to find the folder ID.

The number of immediate child mailFolders in the current mailFolder.

The collection of child folders in the mailFolder.

The mailFolder's display name.

The unique identifier for an entity. Read-only.

Indicates whether the mailFolder is hidden. This property can be set only when creating the folder. Find more information in Hidden mail folders.

The collection of rules that apply to the user's Inbox folder.

The collection of messages in the mailFolder.

The collection of multi-value extended properties defined for the mailFolder. Read-only. Nullable.

The unique identifier for the mailFolder's parent mailFolder.

The collection of single-value extended properties defined for the mailFolder. Read-only. Nullable.

The number of items in the mailFolder.

The number of items in the mailFolder.

The number of items in the mailFolder marked as unread.

A list of categories to be assigned to a message.

The ID of a folder that a message is to be copied to.

Indicates whether a message should be moved to the Deleted Items folder.

The email addresses of the recipients to which a message should be forwarded as an attachment.

The email addresses of the recipients to which a message should be forwarded.

Indicates whether a message should be marked as read.

The ID of the folder that a message will be moved to.

Indicates whether a message should be permanently deleted and not saved to the Deleted Items folder.

The email addresses to which a message should be redirected.

Indicates whether subsequent rules should be evaluated.

[Note: Simplified from 30 properties to 25 most common ones]

The display name of the rule.

Indicates whether the rule is in an error condition. Read-only.

The unique identifier for an entity. Read-only.

Indicates whether the rule is enabled to be applied to messages.

Indicates if the rule is read-only and cannot be modified or deleted by the rules REST API.

Indicates the order in which the rule is executed, among other rules.

Indicates whether an incoming message must be an approval request in order for the condition or exception to apply.

Indicates whether an incoming message must be automatically forwarded in order for the condition or exception to apply.

Indicates whether an incoming message must be an auto reply in order for the condition or exception to apply.

Indicates whether an incoming message must be encrypted in order for the condition or exception to apply.

Indicates whether an incoming message must be a meeting request in order for the condition or exception to apply.

Indicates whether an incoming message must be a meeting response in order for the condition or exception to apply.

Indicates whether an incoming message must be a non-delivery report in order for the condition or exception to apply.

Indicates whether an incoming message must be permission controlled (RMS-protected) in order for the condition or exception to apply.

Indicates whether an incoming message must be a read receipt in order for the condition or exception to apply.

The email address of the person or entity.

The display name of the person or entity.

Indicates whether an incoming message must be S/MIME-signed in order for the condition or exception to apply.

Indicates whether an incoming message must be a voice mail in order for the condition or exception to apply.

any call doNotForward followUp fyi forward noResponseNecessary read reply replyToAll review

Indicates whether the owner of the mailbox must not be a recipient of an incoming message in order for the condition or exception to apply.

Represents the strings that appear in either the toRecipients or ccRecipients properties of an incoming message in order for the condition or exception to apply.

Represents the strings that appear in the from property of an incoming message in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must be in the ccRecipients property of an incoming message in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must be the only recipient in an incoming message in order for the condition or exception to apply.

The fileAttachment and itemAttachment attachments for the message.

The MIME type.

The unique identifier for an entity. Read-only.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The Bcc: recipients for the message.

The content of the item.

The first 255 characters of the message body. It is in text format.

The categories associated with the item

The Cc: recipients for the message.

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The ID of the conversation the email belongs to.

Indicates the position of the message within the conversation.

Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>.

A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Requires $select to retrieve. Read-only.

Represents the key in a key-value pair.

The value in a key-value pair.

The message ID in the format specified by RFC2822.

Indicates whether a read receipt is requested for the message.

Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet.

The collection of multi-value extended properties defined for the message. Nullable.

The collection of single-value extended properties defined for the message. Nullable.

The subject of the message.

The To: recipients for the message.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

A collection of property values.

A property value.

Represents the strings that should appear in the body of an incoming message in order for the condition or exception to apply.

Represents the strings that should appear in the body or subject of an incoming message in order for the condition or exception to apply.

Represents the categories that an incoming message should be labeled with in order for the condition or exception to apply.

Represents the specific sender email addresses of an incoming message in order for the condition or exception to apply.

Indicates whether an incoming message must have attachments in order for the condition or exception to apply.

Represents the strings that appear in the headers of an incoming message in order for the condition or exception to apply.

The number of immediate child mailFolders in the current mailFolder.

The collection of child folders in the mailFolder.

The mailFolder's display name.

The unique identifier for an entity. Read-only.

Indicates whether the mailFolder is hidden. This property can be set only when creating the folder. Find more information in Hidden mail folders.

The collection of rules that apply to the user's Inbox folder.

The collection of messages in the mailFolder.

The collection of multi-value extended properties defined for the mailFolder. Read-only. Nullable.

The unique identifier for the mailFolder's parent mailFolder.

The collection of single-value extended properties defined for the mailFolder. Read-only. Nullable.

The number of items in the mailFolder.

The number of items in the mailFolder.

The number of items in the mailFolder marked as unread.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'mailFolderId' path segment. Pass it under the name 'mailFolderId', not as 'id'. Use the 'id' field of the mail folder object as returned by Microsoft Graph.

update-mail-folder

update-mail-message

update-mail-message

Update an existing Outlook email message by its message ID — for example mark it read or unread (isRead), flag it (flag), change its categories, importance, or edit a draft's subject, body, or recipients.

The fileAttachment and itemAttachment attachments for the message.

The MIME type.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The Bcc: recipients for the message.

The email address of the person or entity.

The display name of the person or entity.

The content of the item.

The first 255 characters of the message body. It is in text format.

The categories associated with the item

The Cc: recipients for the message.

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The ID of the conversation the email belongs to.

Indicates the position of the message within the conversation.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>.

The unique identifier for an entity. Read-only.

A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Requires $select to retrieve. Read-only.

Represents the key in a key-value pair.

The value in a key-value pair.

The message ID in the format specified by RFC2822.

Indicates whether a read receipt is requested for the message.

Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet.

The collection of multi-value extended properties defined for the message. Nullable.

A collection of property values.

The collection of single-value extended properties defined for the message. Nullable.

A property value.

The subject of the message.

The To: recipients for the message.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'messageId' path segment. Pass it under the name 'messageId', not as 'id'. Use the 'id' field of the message object as returned by Microsoft Graph.

update-mail-message

update-mail-rule

update-mail-rule

Change writable properties on a messageRule object and save the changes.

💡 TIP: Updates an existing message rule. Use the Inbox folder ID (get it from list-mail-folders) for inbox rules. Send only the properties to change. Common use: { isEnabled: false } to disable a rule, or update conditions/actions.

A list of categories to be assigned to a message.

The ID of a folder that a message is to be copied to.

Indicates whether a message should be moved to the Deleted Items folder.

The email addresses of the recipients to which a message should be forwarded as an attachment.

The email address of the person or entity.

The display name of the person or entity.

The email addresses of the recipients to which a message should be forwarded.

Indicates whether a message should be marked as read.

The ID of the folder that a message will be moved to.

Indicates whether a message should be permanently deleted and not saved to the Deleted Items folder.

The email addresses to which a message should be redirected.

Indicates whether subsequent rules should be evaluated.

[Note: Simplified from 30 properties to 25 most common ones]

Represents the strings that should appear in the body of an incoming message in order for the condition or exception to apply.

Represents the strings that should appear in the body or subject of an incoming message in order for the condition or exception to apply.

Represents the categories that an incoming message should be labeled with in order for the condition or exception to apply.

Represents the specific sender email addresses of an incoming message in order for the condition or exception to apply.

Indicates whether an incoming message must have attachments in order for the condition or exception to apply.

Represents the strings that appear in the headers of an incoming message in order for the condition or exception to apply.

Indicates whether an incoming message must be an approval request in order for the condition or exception to apply.

Indicates whether an incoming message must be automatically forwarded in order for the condition or exception to apply.

Indicates whether an incoming message must be an auto reply in order for the condition or exception to apply.

Indicates whether an incoming message must be encrypted in order for the condition or exception to apply.

Indicates whether an incoming message must be a meeting request in order for the condition or exception to apply.

Indicates whether an incoming message must be a meeting response in order for the condition or exception to apply.

Indicates whether an incoming message must be a non-delivery report in order for the condition or exception to apply.

Indicates whether an incoming message must be permission controlled (RMS-protected) in order for the condition or exception to apply.

Indicates whether an incoming message must be a read receipt in order for the condition or exception to apply.

Indicates whether an incoming message must be S/MIME-signed in order for the condition or exception to apply.

Indicates whether an incoming message must be a voice mail in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must not be a recipient of an incoming message in order for the condition or exception to apply.

Represents the strings that appear in either the toRecipients or ccRecipients properties of an incoming message in order for the condition or exception to apply.

Represents the strings that appear in the from property of an incoming message in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must be in the ccRecipients property of an incoming message in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must be the only recipient in an incoming message in order for the condition or exception to apply.

The display name of the rule.

[Note: Simplified from 30 properties to 25 most common ones]

Represents the strings that should appear in the body of an incoming message in order for the condition or exception to apply.

Represents the strings that should appear in the body or subject of an incoming message in order for the condition or exception to apply.

Represents the categories that an incoming message should be labeled with in order for the condition or exception to apply.

Represents the specific sender email addresses of an incoming message in order for the condition or exception to apply.

The email address of the person or entity.

The display name of the person or entity.

Indicates whether an incoming message must have attachments in order for the condition or exception to apply.

Represents the strings that appear in the headers of an incoming message in order for the condition or exception to apply.

Indicates whether an incoming message must be an approval request in order for the condition or exception to apply.

Indicates whether an incoming message must be automatically forwarded in order for the condition or exception to apply.

Indicates whether an incoming message must be an auto reply in order for the condition or exception to apply.

Indicates whether an incoming message must be encrypted in order for the condition or exception to apply.

Indicates whether an incoming message must be a meeting request in order for the condition or exception to apply.

Indicates whether an incoming message must be a meeting response in order for the condition or exception to apply.

Indicates whether an incoming message must be a non-delivery report in order for the condition or exception to apply.

Indicates whether an incoming message must be permission controlled (RMS-protected) in order for the condition or exception to apply.

Indicates whether an incoming message must be a read receipt in order for the condition or exception to apply.

Indicates whether an incoming message must be S/MIME-signed in order for the condition or exception to apply.

Indicates whether an incoming message must be a voice mail in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must not be a recipient of an incoming message in order for the condition or exception to apply.

Represents the strings that appear in either the toRecipients or ccRecipients properties of an incoming message in order for the condition or exception to apply.

Represents the strings that appear in the from property of an incoming message in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must be in the ccRecipients property of an incoming message in order for the condition or exception to apply.

Indicates whether the owner of the mailbox must be the only recipient in an incoming message in order for the condition or exception to apply.

Indicates whether the rule is in an error condition. Read-only.

The unique identifier for an entity. Read-only.

Indicates whether the rule is enabled to be applied to messages.

Indicates if the rule is read-only and cannot be modified or deleted by the rules REST API.

Indicates the order in which the rule is executed, among other rules.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'mailFolderId' path segment. Pass it under the name 'mailFolderId', not as 'id'. Use the 'id' field of the mail folder object as returned by Microsoft Graph.

Value for the 'messageRuleId' path segment. Pass it under the name 'messageRuleId', not as 'id'. Use the 'id' field of the message rule object as returned by Microsoft Graph.

update-mail-rule

update-mailbox-settings

update-mailbox-settings

Enable, configure, or disable one or more of the following settings as part of a user's mailboxSettings: When updating the preferred date or time format for a user, specify it in respectively, the short date or short time format. When updating the preferred time zone for a user, specify it in the Windows or Internet Assigned Numbers Authority (IANA) time zone (also known as Olson time zone) format. You can also further customize the time zone as shown in example 2 below.

💡 TIP: Updates mailbox settings. Common use: configure Out-of-Office (automatic replies). Body example: { automaticRepliesSetting: { status: 'scheduled', scheduledStartDateTime: { dateTime: '2026-03-28T17:00:00', timeZone: 'Eastern Standard Time' }, scheduledEndDateTime: { dateTime: '2026-04-01T08:00:00', timeZone: 'Eastern Standard Time' }, internalReplyMessage: 'I am OOO.', externalReplyMessage: 'I am out of office.' } }. Status values: disabled, alwaysEnabled, scheduled.

Folder ID of an archive folder for the user.

The automatic reply to send to the specified external audience, if Status is AlwaysEnabled or Scheduled.

The automatic reply to send to the audience internal to the signed-in user's organization, if Status is AlwaysEnabled or Scheduled.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

The date format for the user's mailbox.

A name representing the user's locale in natural language, for example, 'English (United States)'.

A locale representation for the user, which includes the user's preferred language and country/region. For example, 'en-us'. The language component follows 2-letter codes as defined in ISO 639-1, and the country component follows 2-letter codes as defined in ISO 3166-1 alpha-2.

The time format for the user's mailbox.

The default time zone for the user's mailbox.

user linked shared room equipment others unknownFutureValue

The days of the week on which the user works.

The time of the day that the user stops working.

The time of the day that the user starts working.

The name of a time zone. It can be a standard time zone name such as 'Hawaii-Aleutian Standard Time', or 'Customized Time Zone' for a custom time zone.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

update-mailbox-settings

update-my-calendar-permission

update-my-calendar-permission

Update my calendar permission.

💡 TIP: Changes the role (permission level) granted to an existing share recipient or delegate. Body: { role: 'read' | 'write' | 'delegateWithoutPrivateEventAccess' | 'delegateWithPrivateEventAccess' }. Only the role property is writable — to change the recipient's email or other properties, delete and recreate via delete-my-calendar-permission + create-my-calendar-permission. Get the permission id via list-my-calendar-permissions.

List of allowed sharing or delegating permission levels for the calendar. The possible values are: none, freeBusyRead, limitedRead, read, write, delegateWithoutPrivateEventAccess, delegateWithPrivateEventAccess, custom.

The email address of the person or entity.

The display name of the person or entity.

The unique identifier for an entity. Read-only.

True if the user in context (recipient or delegate) is inside the same organization as the calendar owner.

True if the user can be removed from the list of recipients or delegates for the specified calendar, false otherwise. The 'My organization' user determines the permissions other people within your organization have to the given calendar. You can't remove 'My organization' as a share recipient to a calendar.

Value for the 'calendarPermissionId' path segment. Pass it under the name 'calendarPermissionId', not as 'id'. Use the 'id' field of the calendar permission object as returned by Microsoft Graph.

update-my-calendar-permission

update-outlook-contact

update-outlook-contact

Update the properties of a contact object.

💡 TIP: emailAddresses array is replaced entirely — include all addresses, not just new ones.

The name of the contact's assistant.

The contact's birthday. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The city.

The country or region. It's a free-format string value, for example, 'United States'.

The postal code.

The state.

The street.

The business home page of the contact.

The contact's business phone numbers.

The categories associated with the item

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

The names of the contact's children.

The name of the contact's company.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The contact's department.

The contact's display name. You can specify the display name in a create or update operation. Note that later updates to other properties may cause an automatically generated value to overwrite the displayName value you have specified. To preserve a pre-existing value, always include it as displayName in an update operation.

The contact's email addresses.

The name the contact is filed under.

The contact's suffix.

The contact's given name.

The city.

The postal code.

The state.

The street.

The contact's home phone numbers.

The contact's instant messaging (IM) addresses.

The contact's initials.

The collection of multi-value extended properties defined for the contact. Read-only. Nullable.

A collection of property values.

The collection of single-value extended properties defined for the contact. Read-only. Nullable.

A property value.

The contact's title.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Value for the 'contactId' path segment. Pass it under the name 'contactId', not as 'id'. Use the 'id' field of the contact object as returned by Microsoft Graph.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

update-outlook-contact

update-planner-bucket

update-planner-bucket

Update the properties of plannerbucket object.

💡 TIP: CRITICAL: Requires If-Match header with ETag from get-planner-bucket (use includeHeaders=true).

ETag value.

The unique identifier for an entity. Read-only.

Name of the bucket.

Hint used to order items of this type in a list view. For details about the supported format, see Using order hints in Planner.

Plan ID to which the bucket belongs.

Read-only. Nullable. The collection of tasks in the bucket.

Number of checklist items with value set to false, representing incomplete items.

Hint value used to order the task on the AssignedTo view of the Task Board when the task isn't assigned to anyone, or if the orderHintsByAssignee dictionary doesn't provide an order hint for the user the task is assigned to. The format is defined as outlined here.

Hint used to order items of this type in a list view. The format is defined as outlined here.

Bucket ID to which the task belongs. The bucket needs to be in the plan that the task is in. It's 28 characters long and case-sensitive. Format validation is done on the service.

Hint used to order tasks in the bucket view of the task board. For details about the supported format, see Using order hints in Planner.

Number of checklist items that are present on the task.

The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.

Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.

Read-only. Date and time at which the 'percentComplete' of the task is set to '100'. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

Thread ID of the conversation on the task. This is the ID of the conversation thread object created in the group.

Read-only. Date and time at which the task is created. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

Description of the task.

automatic noPreview checklist description reference

Date and time at which the task is due. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

Read-only. Value is true if the details object of the task has a nonempty description and false otherwise.

Percentage of task completion. When set to 100, the task is considered completed.

Plan ID to which the task belongs.

Priority of the task. The valid range of values is between 0 and 10, with the increasing value being lower priority (0 has the highest priority and 10 has the lowest priority).  Currently, Planner interprets values 0 and 1 as 'urgent', 2, 3 and 4 as 'important', 5, 6, and 7 as 'medium', and 8, 9, and 10 as 'low'.  Additionally, Planner sets the value 1 for 'urgent', 3 for 'important', 5 for 'medium', and 9 for 'low'.

Number of external references that exist on the task.

Date and time at which the task starts. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

Title of the task.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'plannerBucketId' path segment. Pass it under the name 'plannerBucketId', not as 'id'. Use the 'id' field of the planner bucket object as returned by Microsoft Graph.

update-planner-bucket

update-planner-task

update-planner-task

Update the properties of plannerTask object.

💡 TIP: CRITICAL: Requires If-Match header with the task's @odata.etag value, otherwise returns 412 Precondition Failed. Get the ETag from get-planner-task with includeHeaders=true. Priority values: 0=Urgent, 1=Important, 3=Medium, 5=Low, 9=unset.

ETag value.

Number of checklist items with value set to false, representing incomplete items.

The unique identifier for an entity. Read-only.

Hint value used to order the task on the AssignedTo view of the Task Board when the task isn't assigned to anyone, or if the orderHintsByAssignee dictionary doesn't provide an order hint for the user the task is assigned to. The format is defined as outlined here.

Hint used to order items of this type in a list view. The format is defined as outlined here.

Bucket ID to which the task belongs. The bucket needs to be in the plan that the task is in. It's 28 characters long and case-sensitive. Format validation is done on the service.

Hint used to order tasks in the bucket view of the task board. For details about the supported format, see Using order hints in Planner.

Number of checklist items that are present on the task.

The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta.

Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review.

Read-only. Date and time at which the 'percentComplete' of the task is set to '100'. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

Thread ID of the conversation on the task. This is the ID of the conversation thread object created in the group.

Read-only. Date and time at which the task is created. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

Description of the task.

Date and time at which the task is due. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

Read-only. Value is true if the details object of the task has a nonempty description and false otherwise.

Percentage of task completion. When set to 100, the task is considered completed.

Plan ID to which the task belongs.

Priority of the task. The valid range of values is between 0 and 10, with the increasing value being lower priority (0 has the highest priority and 10 has the lowest priority).  Currently, Planner interprets values 0 and 1 as 'urgent', 2, 3 and 4 as 'important', 5, 6, and 7 as 'medium', and 8, 9, and 10 as 'low'.  Additionally, Planner sets the value 1 for 'urgent', 3 for 'important', 5 for 'medium', and 9 for 'low'.

Number of external references that exist on the task.

Date and time at which the task starts. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

Title of the task.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'plannerTaskId' path segment. Pass it under the name 'plannerTaskId', not as 'id'. Use the 'id' field of the planner task object as returned by Microsoft Graph.

update-planner-task

update-planner-task-details

update-planner-task-details

Update the properties of plannerTaskDetails object.

💡 TIP: CRITICAL: Requires If-Match header with ETag from get-planner-task-details (use includeHeaders=true). Checklist items use GUID keys: {"checklist": {"<guid>": {"title": "...", "isChecked": false}}}.

ETag value.

Description of the task.

The unique identifier for an entity. Read-only.

update-planner-task-details

update-specific-calendar-event

update-specific-calendar-event

Update a specific calendar event.

💡 TIP: CRITICAL: Do not try to guess the email address of the recipients. Use the list-users tool to find the email address of the recipients. WARNING: Setting attendees replaces the entire attendee list — include all attendees, not just new ones.

true if the meeting organizer allows invitees to propose a new time when responding; otherwise, false. Optional. The default is true.

The collection of FileAttachment, ItemAttachment, and referenceAttachment attachments for the event. Navigation property. Read-only. Nullable.

The MIME type.

true if the attachment is an inline attachment; otherwise, false.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The attachment's file name.

The length of the attachment in bytes.

The collection of attendees for the event.

The email address of the person or entity.

The display name of the person or entity.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

none organizer tentativelyAccepted accepted declined notResponded

The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z

The content of the item.

The categories associated with the item

Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.

Set to true if the event lasts all day. If true, regardless of whether it's a single-day or multi-day event, start, and endtime must be set to midnight and be in the same time zone.

True if this event has online meeting information (that is, onlineMeeting points to an onlineMeetingInfo resource), false otherwise. Default is false (onlineMeeting is null). Optional.  After you set isOnlineMeeting to true, Microsoft Graph initializes onlineMeeting. Subsequently, Outlook ignores any further changes to isOnlineMeeting, and the meeting remains available online.

Set to true if an alert is set to remind the user of the event.

The city.

The country or region. It's a free-format string value, for example, 'United States'.

The postal code.

The state.

The street.

The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters. [Simplified from 3 options]

The altitude of the location. [Simplified from 3 options]

The accuracy of the altitude. [Simplified from 3 options]

The latitude of the location. [Simplified from 3 options]

The longitude of the location. [Simplified from 3 options]

The name associated with the location.

Optional email address of the location.

Optional URI representing the location.

For internal use only.

The collection of multi-value extended properties defined for the event. Read-only. Nullable.

The unique identifier for an entity. Read-only.

A collection of property values.

The day of the month on which the event occurs. Required if type is absoluteMonthly or absoluteYearly.

A collection of the days of the week on which the event occurs. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. If type is relativeMonthly or relativeYearly, and daysOfWeek specifies more than one day, the event falls on the first day that satisfies the pattern.  Required if type is weekly, relativeMonthly, or relativeYearly.

The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required.

The month in which the event occurs.  This is a number from 1 to 12.

The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence of the meeting may not be this date. Required if type is endDate.

The number of times to repeat the event. Required and must be positive if type is numbered.

Time zone for the startDate and endDate properties. Optional. If not specified, the time zone of the event is used.

The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later, depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event. Required.

The number of minutes before the event start time that the reminder alert occurs.

Default is true, which represents the organizer would like an invitee to send a response to the event.

The collection of single-value extended properties defined for the event. Read-only. Nullable.

A property value.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

The text of the event's subject line.

Value for the 'calendarId' path segment. Pass it under the name 'calendarId', not as 'id'. Use the 'id' field of the calendar object as returned by Microsoft Graph.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Value for the 'eventId' path segment. Pass it under the name 'eventId', not as 'id'. Use the 'id' field of the event object as returned by Microsoft Graph.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

update-specific-calendar-event

update-subscription

update-subscription

Renew a subscription by extending its expiry time. The table in the Permissions section lists the resources that support subscribing to change notifications. Subscriptions expire after a length of time that varies by resource type. In order to avoid missing change notifications, an app should renew its subscriptions well in advance of their expiry date. See subscription for maximum length of a subscription for each resource type.

💡 TIP: Renews a webhook subscription by extending its expiration. Body: { expirationDateTime (ISO 8601, new expiry) }. Call before the current expirationDateTime to avoid missing notifications. Max extension varies by resource type — check Microsoft Graph docs for subscription limits.

Optional. Identifier of the application used to create the subscription. Read-only.

Optional. Specifies the value of the clientState property sent by the service in each change notification. The maximum length is 128 characters. The client can check that the change notification came from the service by comparing the value of the clientState property sent with the subscription with the value of the clientState property received with each change notification.

Optional. Identifier of the user or service principal that created the subscription. If the app used delegated permissions to create the subscription, this field contains the ID of the signed-in user the app called on behalf of. If the app used application permissions, this field contains the ID of the service principal corresponding to the app. Read-only.

Optional. A base64-encoded representation of a certificate with a public key used to encrypt resource data in change notifications. Optional but required when includeResourceData is true.

Optional. A custom app-provided identifier to help identify the certificate needed to decrypt resource data.

Required. Specifies the date and time when the webhook subscription expires. The time is in UTC, and can be an amount of time from subscription creation that varies for the resource subscribed to. Any value under 45 minutes after the time of the request is automatically set to 45 minutes after the request time. For the maximum supported subscription length of time, see Subscription lifetime.

The unique identifier for an entity. Read-only.

Optional. When set to true, change notifications include resource data (such as content of a chat message).

Required for Teams resources if  the expirationDateTime value is more than 1 hour from now; optional otherwise. The URL of the endpoint that receives lifecycle notifications, including subscriptionRemoved, reauthorizationRequired, and missed notifications. This URL must make use of the HTTPS protocol. For more information, see Reduce missing subscriptions and change notifications.

Required. The URL of the endpoint that receives the change notifications. This URL must make use of the HTTPS protocol. Any query string parameter included in the notificationUrl property is included in the HTTP POST request when Microsoft Graph sends the change notifications.

Optional. The app ID that the subscription service can use to generate the validation token. The value allows the client to validate the authenticity of the notification received.

Required. Specifies the resource that is monitored for changes. Don't include the base URL (https://graph.microsoft.com/v1.0/). See the possible resource path values for each supported resource.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'subscriptionId' path segment. Pass it under the name 'subscriptionId', not as 'id'. Use the 'id' field of the subscription object as returned by Microsoft Graph.

update-subscription

update-todo-task

update-todo-task

Update the properties of a todoTask object.

💡 TIP: Updates a Microsoft To Do task. Use this to mark a to-do item complete or done (body: { status: "completed" }), reopen it (status: "notStarted"), rename it (title), or change its due date (dueDateTime), reminder (reminderDateTime), importance, or notes (body). Requires todoTaskListId from list-todo-task-lists and todoTaskId from list-todo-tasks.

The content streams that are uploaded.

The date and time in UTC when the upload session will expire. The complete file must be uploaded before this expiration time is reached.

Indicates a single value {start} that represents the location in the file where the next upload should begin.

A collection of file attachments for the task.

The MIME type.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.

The display name of the attachment. This doesn't need to be the actual file name.

The length of the attachment in bytes.

The content of the item.

The date and time when the task body was last modified. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2020 would look like this: '2020-01-01T00:00:00Z'.

The categories associated with the task. Each category corresponds to the displayName property of an outlookCategory that the user has defined.

A collection of checklistItems linked to a task.

The date and time when the checklistItem was finished.

The date and time when the checklistItem was created.

Indicates the title of the checklistItem.

The unique identifier for an entity. Read-only.

State that indicates whether the item is checked off or not.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

The date and time when the task was created. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format. For example, midnight UTC on Jan 1, 2020 would look like this: '2020-01-01T00:00:00Z'.

The collection of open extensions defined for the task. Nullable.

Indicates whether the task has attachments.

Set to true if an alert is set to remind the user of the task.

The date and time when the task was last modified. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2020 would look like this: '2020-01-01T00:00:00Z'.

A collection of resources linked to the task.

The app name of the source that sends the linkedResource.

The title of the linkedResource.

ID of the object that is associated with this task on the third-party/partner system.

Deep link to the linkedResource.

The day of the month on which the event occurs. Required if type is absoluteMonthly or absoluteYearly.

A collection of the days of the week on which the event occurs. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. If type is relativeMonthly or relativeYearly, and daysOfWeek specifies more than one day, the event falls on the first day that satisfies the pattern.  Required if type is weekly, relativeMonthly, or relativeYearly.

The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required.

The month in which the event occurs.  This is a number from 1 to 12.

The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence of the meeting may not be this date. Required if type is endDate.

The number of times to repeat the event. Required and must be positive if type is numbered.

Time zone for the startDate and endDate properties. Optional. If not specified, the time zone of the event is used.

The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later, depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event. Required.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

notStarted inProgress completed waitingOnOthers deferred

A brief description of the task.

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'todoTaskId' path segment. Pass it under the name 'todoTaskId', not as 'id'. Use the 'id' field of the todo task object as returned by Microsoft Graph.

Value for the 'todoTaskListId' path segment. Pass it under the name 'todoTaskListId', not as 'id'. Use the 'id' field of the todo task list object as returned by Microsoft Graph.

update-todo-task

update-todo-task-list

update-todo-task-list

Update the properties of a todoTaskList object.

💡 TIP: Renames a Microsoft To Do task list. Body: { displayName: 'New name' }. Only displayName is writable. Built-in lists (Flagged emails, the default Tasks list) cannot be renamed — the API returns an error. Get list ids via list-todo-task-lists.

The name of the task list.

The collection of open extensions defined for the task list. Nullable.

The unique identifier for an entity. Read-only.

True if the user is owner of the given task list.

True if the task list is shared with other users

The tasks in this task list. Read-only. Nullable.

The content streams that are uploaded.

The date and time in UTC when the upload session will expire. The complete file must be uploaded before this expiration time is reached.

Indicates a single value {start} that represents the location in the file where the next upload should begin.

A collection of file attachments for the task.

The MIME type.

The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.

The display name of the attachment. This doesn't need to be the actual file name.

The length of the attachment in bytes.

The content of the item.

The date and time when the task body was last modified. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2020 would look like this: '2020-01-01T00:00:00Z'.

The categories associated with the task. Each category corresponds to the displayName property of an outlookCategory that the user has defined.

A collection of checklistItems linked to a task.

The date and time when the checklistItem was finished.

The date and time when the checklistItem was created.

Indicates the title of the checklistItem.

State that indicates whether the item is checked off or not.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

The date and time when the task was created. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format. For example, midnight UTC on Jan 1, 2020 would look like this: '2020-01-01T00:00:00Z'.

The collection of open extensions defined for the task. Nullable.

The unique identifier for an entity. Read-only.

Indicates whether the task has attachments.

Set to true if an alert is set to remind the user of the task.

The date and time when the task was last modified. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2020 would look like this: '2020-01-01T00:00:00Z'.

A collection of resources linked to the task.

The app name of the source that sends the linkedResource.

The title of the linkedResource.

ID of the object that is associated with this task on the third-party/partner system.

Deep link to the linkedResource.

The day of the month on which the event occurs. Required if type is absoluteMonthly or absoluteYearly.

A collection of the days of the week on which the event occurs. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. If type is relativeMonthly or relativeYearly, and daysOfWeek specifies more than one day, the event falls on the first day that satisfies the pattern.  Required if type is weekly, relativeMonthly, or relativeYearly.

The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required.

The month in which the event occurs.  This is a number from 1 to 12.

The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence of the meeting may not be this date. Required if type is endDate.

The number of times to repeat the event. Required and must be positive if type is numbered.

Time zone for the startDate and endDate properties. Optional. If not specified, the time zone of the event is used.

The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later, depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event. Required.

A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).

Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.

A brief description of the task.

none defaultList flaggedEmails unknownFutureValue

For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.

Exclude the full response body and only return success or failure indication

Include response headers (including ETag) in the response metadata

Value for the 'todoTaskListId' path segment. Pass it under the name 'todoTaskListId', not as 'id'. Use the 'id' field of the todo task list object as returned by Microsoft Graph.

update-todo-task-list

upload-file-content

upload-file-content

The content stream, if the item represents a file.

💡 TIP: Body is a base64-encoded string of the file bytes; the server decodes it before PUT. Graph accepts up to 250MB here, but the whole string travels as a tool argument and a truncated one decodes to a truncated file with no error, so use create-upload-session rather than emitting a large base64 string. For new files use path format: /items/root:/path/to/file.txt:/content. Overwrites existing files without warning.

Base64-encoded file content. The server decodes it and PUTs the raw bytes to Microsoft Graph.

Value for the 'driveId' path segment. Pass it under the name 'driveId', not as 'id'. Use the 'id' field of the drive object as returned by Microsoft Graph.

Value for the 'driveItemId' path segment. Pass it under the name 'driveItemId', not as 'id'. Use the 'id' field of the drive item object as returned by Microsoft Graph.

upload-file-content

upload-my-profile-photo

upload-my-profile-photo

Update the photo for the specified contact, group, team, or user in a tenant. The size of the photo you can update to is limited to 4 MB. You can use either PATCH or PUT for this operation.

💡 TIP: Uploads a new profile photo for the signed-in user. Body is a base64-encoded string of the image bytes (the server decodes before PUT). Photo must be JPEG, max 4 MB; the base64 travels as a tool argument and a truncated one is written without error, so resize before encoding instead of emitting a large string. Microsoft 365 generates HD downsized variants automatically (48x48, 64x64, 96x96, 120x120, 240x240, 360x360, 432x432, 504x504, 648x648). For work or school accounts, ProfilePhoto.ReadWrite.All is the more granular alternative permission. Use download-bytes with target=/me/photo/$value to retrieve the current photo.

upload-my-profile-photo

verify-login

Check current Microsoft authentication status