Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Outlook connector

OAuth 2.0 CommunicationCalendar

Connect to Microsoft Outlook. Manage emails, calendar events, contacts, and tasks

Outlook connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Register your Outlook credentials with Scalekit so it handles the token lifecycle. You do this once per environment.

    Dashboard setup steps

    Register your Scalekit environment with the Outlook connector so Scalekit handles the authentication flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. Then complete the configuration in your application as follows:

    1. Create the Outlook connection in Scalekit

      • In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Search for Outlook and click Create.

        Search for Outlook and create a new connection

      • In the Configure Outlook Connection dialog, copy the Redirect URI. You will need this when registering your app in Azure.

        Copy the redirect URI from the Configure Outlook Connection dialog

    2. Register an application in Azure

      • Sign into portal.azure.com and go to Microsoft Entra IDApp registrations.

        App registrations page in Azure portal

      • Click New registration. Enter a name for your app (for example, “Scalekit Outlook Connector”).

      • Under Supported account types, select Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant) and personal Microsoft accounts.

      • Under Redirect URI, select Web and paste the redirect URI you copied from the Scalekit dashboard. Click Register.

        Paste the Scalekit redirect URI in Azure

    3. Get your client credentials

      • From the app’s Overview page, copy the Application (client) ID.

        Copy the Application (client) ID from the Azure app overview

      • Go to Certificates & secrets in the left sidebar, then click + New client secret.

        Certificates and secrets page in Azure portal

      • Enter a description (for example, “Secret for Scalekit Agent Actions”), set an expiry period, and click Add. Copy the secret Value immediately — it is only shown once.

        Add a client secret in Azure portal

    4. Add credentials in Scalekit

      • In Scalekit dashboard, go to AgentKit > Connections and open the Outlook connection you created.

      • Enter your credentials:

        • Client ID — the Application (client) ID from the Azure app overview
        • Client Secret — the secret value from Certificates & secrets
        • Scopes — select the permissions your app needs (for example, Calendars.Read, Calendars.ReadWrite, Mail.Read, Mail.ReadWrite, Mail.Send, Contacts.Read, Contacts.ReadWrite, User.Read, offline_access). See Microsoft Graph permissions reference for the full list.
      • Click Save.

  4. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'outlook'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Outlook:', link)
    process.stdout.write('Press Enter after authorizing...')
    await new Promise(r => process.stdin.once('data', r))
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'outlook_list_calendar_events',
    toolInput: {},
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Event accept, decline, forward — Accept a calendar event invitation
  • Messages batch move — Move up to 20 Outlook messages to a destination folder in a single Microsoft Graph batch request
  • Update batch, mailbox settings, todo checklist items — Update properties on up to 20 Outlook messages in a single Microsoft Graph batch request
  • Create calendar event, calendar group, calendar permission — Create a new calendar event in the user’s Outlook calendar
  • Delete calendar event, calendar group, calendar permission — Delete a calendar event by ID
  • Times find meeting — Find available meeting time slots for a set of attendees using Microsoft Graph’s findMeetingTimes API
  • Shared/delegated calendar write — Create or update events on another user’s calendar (create_shared_calendar_event, update_shared_calendar_event)
  • Shared mailbox read — Get a single message from a shared mailbox by ID (get_shared_mailbox_message)
  • Colleague contacts — List or get contacts from another user’s contacts folder (list_shared_contacts, get_shared_contact)
  • Colleague tasks — List another user’s To Do task lists and tasks (list_shared_todo_lists, list_shared_todo_tasks)
Proxy API call
const result = await actions.request({
connectionName: 'outlook',
identifier: 'user_123',
path: '/v1.0/me/messages',
method: 'GET',
});
console.log(result);
Execute a tool
const result = await actions.executeTool({
connector: 'outlook',
identifier: 'user_123',
toolName: 'outlook_create_calendar_event',
toolInput: {},
});
console.log(result);

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

outlook_accept_event # Accept a calendar event invitation. 5 params

Accept a calendar event invitation.

Name Type Required Description
event_id string required Event ID.
comment string optional Response comment.
schema_version string optional Schema version
send_response boolean optional Send response.
tool_version string optional Tool version
outlook_batch_move_messages # Move up to 20 Outlook messages to a destination folder in a single Microsoft Graph batch request. Builds a $batch envelope where each subrequest POSTs to /me/messages/{id}/move. Returns a 200 response with per-subrequest status codes inside the responses array. 2 params

Move up to 20 Outlook messages to a destination folder in a single Microsoft Graph batch request. Builds a $batch envelope where each subrequest POSTs to /me/messages/{id}/move. Returns a 200 response with per-subrequest status codes inside the responses array.

Name Type Required Description
destination_folder_id string required The ID or well-known name of the destination folder (e.g., 'inbox', 'deleteditems', 'drafts', or a specific folder ID like 'AAMkAGI2...').
message_ids array required Array of message IDs to move (max 20). Each ID is an Outlook message ID string.
outlook_batch_update_messages # Update properties on up to 20 Outlook messages in a single Microsoft Graph batch request. Builds a $batch envelope where each subrequest PATCHes /me/messages/{id} with the provided updates object. Common use: mark messages as read by passing {"isRead": true}. Returns a 200 response with per-subrequest status codes inside the responses array. 2 params

Update properties on up to 20 Outlook messages in a single Microsoft Graph batch request. Builds a $batch envelope where each subrequest PATCHes /me/messages/{id} with the provided updates object. Common use: mark messages as read by passing {"isRead": true}. Returns a 200 response with per-subrequest status codes inside the responses array.

Name Type Required Description
message_ids array required Array of message IDs to update (max 20). Each ID is an Outlook message ID string.
updates object required Free-form object of message properties to update on all specified messages. Example: {"isRead": true} to mark as read, or {"isRead": false, "flag": {"flagStatus": "flagged"}} for multiple changes.
outlook_create_calendar_event # Create a new calendar event in the user's Outlook calendar. Supports attendees, recurrence, reminders, online meetings, multiple locations, and event properties. 28 params

Create a new calendar event in the user's Outlook calendar. Supports attendees, recurrence, reminders, online meetings, multiple locations, and event properties.

Name Type Required Description
end_datetime string required No description.
end_timezone string required No description.
start_datetime string required No description.
start_timezone string required No description.
subject string required No description.
attendees_optional string optional Array of email addresses for optional attendees
attendees_required string optional Array of email addresses for required attendees
attendees_resource string optional Array of email addresses for resources (meeting rooms, equipment)
body_content string optional No description.
body_contentType string optional No description.
hideAttendees boolean optional When true, each attendee only sees themselves
importance string optional Event importance level
isAllDay boolean optional Mark as all-day event
isOnlineMeeting boolean optional Create an online meeting (Teams/Skype)
isReminderOn boolean optional Enable or disable reminder
location string optional No description.
locations string optional JSON array of location objects with displayName, address, coordinates
onlineMeetingProvider string optional Online meeting provider
recurrence_days_of_week string optional Days of week for weekly recurrence (comma-separated)
recurrence_end_date string optional End date for recurrence (YYYY-MM-DD), required if range_type is endDate
recurrence_interval integer optional How often the event recurs (e.g., every 2 weeks = 2)
recurrence_occurrences integer optional Number of occurrences, required if range_type is numbered
recurrence_range_type string optional How the recurrence ends
recurrence_start_date string optional Start date for recurrence (YYYY-MM-DD)
recurrence_type string optional Recurrence pattern type
reminderMinutesBeforeStart integer optional Minutes before event start to show reminder
sensitivity string optional Event sensitivity/privacy level
showAs string optional Free/busy status
outlook_create_calendar_group # Create a new calendar group in the signed-in user's mailbox. Calendar groups organize multiple calendars together in Outlook. 1 param

Create a new calendar group in the signed-in user's mailbox. Calendar groups organize multiple calendars together in Outlook.

Name Type Required Description
name string required The name of the new calendar group (e.g., 'Work Calendars'). Must be unique among calendar groups for the user.
outlook_create_calendar_permission # Grant a user access to a specific Outlook calendar by creating a calendar permission entry. Specify the user's email address and the role level (e.g., freeBusyRead, read, write, delegate). 4 params

Grant a user access to a specific Outlook calendar by creating a calendar permission entry. Specify the user's email address and the role level (e.g., freeBusyRead, read, write, delegate).

Name Type Required Description
calendar_id string required The unique identifier of the calendar to share. Use a specific calendar ID from the list calendars endpoint.
email_address string required The email address of the user to grant calendar access to. Example: colleague@example.com
role string required The permission role to grant. Valid values: freeBusyRead (see free/busy only), limitedRead (see title and location), read (see all event details), write (create/edit/delete events), delegateWithoutPrivateEventAccess (delegate, no private events), delegateWithPrivateEventAccess (delegate including private events), custom (custom role).
name string optional Display name of the user to grant access to. Optional; the Graph API will resolve it from the email if omitted.
outlook_create_category # Create a new Outlook master category for the signed-in user. Categories have a display name and a color preset (none or preset0–preset24). Once created, categories can be applied to messages, events, and contacts. 2 params

Create a new Outlook master category for the signed-in user. Categories have a display name and a color preset (none or preset0–preset24). Once created, categories can be applied to messages, events, and contacts.

Name Type Required Description
display_name string required The display name of the new category. Must be unique among the user's categories.
color string optional The color assigned to the category. Use 'none' for no color, or 'preset0' through 'preset24' for a specific color slot. Defaults to preset0.
outlook_create_contact # Create a new contact in the user's mailbox with name, email addresses, and phone numbers. 7 params

Create a new contact in the user's mailbox with name, email addresses, and phone numbers.

Name Type Required Description
givenName string required First name of the contact
surname string required Last name of the contact
businessPhones array optional Array of business phone numbers
companyName string optional Company name
emailAddresses array optional Array of email address objects with 'address' and optional 'name' fields
jobTitle string optional Job title
mobilePhone string optional Mobile phone number
outlook_create_contact_folder # Create a new contact folder in the signed-in user's mailbox. Optionally nest it under an existing parent folder by providing a parent folder ID. 2 params

Create a new contact folder in the signed-in user's mailbox. Optionally nest it under an existing parent folder by providing a parent folder ID.

Name Type Required Description
display_name string required The display name for the new contact folder (e.g., 'Work Contacts').
parent_folder_id string optional Optional ID of the parent contact folder under which to create this folder. If omitted, the folder is created at the top level.
outlook_create_draft_message # Create a new email draft in the mailbox. 9 params

Create a new email draft in the mailbox.

Name Type Required Description
bcc_recipients string optional BCC recipients.
body string optional Email body content.
body_type string optional Body content type.
cc_recipients string optional CC recipients.
importance string optional Importance.
schema_version string optional Schema version
subject string optional Email subject.
to_recipients string optional To recipients.
tool_version string optional Tool version
outlook_create_focused_inbox_override # Create a Focused Inbox override that classifies all messages from a specific sender into either the Focused or Other inbox. This overrides the automatic machine learning classification for that sender. 3 params

Create a Focused Inbox override that classifies all messages from a specific sender into either the Focused or Other inbox. This overrides the automatic machine learning classification for that sender.

Name Type Required Description
classify_as string required How to classify messages from this sender: 'focused' to route to Focused inbox, 'other' to route to Other inbox.
sender_email string required The email address of the sender to create an override for (e.g., 'newsletter@example.com').
sender_name string optional Optional display name for the sender (e.g., 'Weekly Newsletter'). Used for display purposes only.
outlook_create_forward_draft # Create a forward draft for a specific message. 5 params

Create a forward draft for a specific message.

Name Type Required Description
message_id string required Message ID.
comment string optional Forward comment.
schema_version string optional Schema version
to_recipients string optional To recipients.
tool_version string optional Tool version
outlook_create_mail_folder # Create a new mail folder in the mailbox. 4 params

Create a new mail folder in the mailbox.

Name Type Required Description
display_name string required Folder name.
is_hidden boolean optional Hidden folder.
schema_version string optional Schema version
tool_version string optional Tool version
outlook_create_message_rule # Create a new inbox message rule. 8 params

Create a new inbox message rule.

Name Type Required Description
display_name string required Rule name.
actions object optional Rule actions.
conditions object optional Rule conditions.
exceptions object optional Exception conditions for the rule.
is_enabled boolean optional Enable rule.
schema_version string optional Schema version
sequence integer optional Rule sequence.
tool_version string optional Tool version
outlook_create_reply_all_draft # Create a reply-all draft for a specific message. 4 params

Create a reply-all draft for a specific message.

Name Type Required Description
message_id string required Message ID.
comment string optional Reply comment.
schema_version string optional Schema version
tool_version string optional Tool version
outlook_create_reply_draft # Create a reply draft for a specific message. 4 params

Create a reply draft for a specific message.

Name Type Required Description
message_id string required Message ID.
comment string optional Reply comment.
schema_version string optional Schema version
tool_version string optional Tool version
outlook_create_upload_session # Create an upload session for attaching a large file to an Outlook message using Microsoft Graph. Returns an uploadUrl and expiration time. Use the uploadUrl to upload file content in chunks via PUT requests. Required for attachments larger than 3 MB. 3 params

Create an upload session for attaching a large file to an Outlook message using Microsoft Graph. Returns an uploadUrl and expiration time. Use the uploadUrl to upload file content in chunks via PUT requests. Required for attachments larger than 3 MB.

Name Type Required Description
attachment_name string required The filename of the attachment (e.g., 'report.pdf'). Must include the file extension.
attachment_size integer required The total size of the attachment in bytes. Must be the exact file size before uploading.
message_id string required The ID of the draft Outlook message to attach the file to.
outlook_decline_event # Decline a calendar event invitation. 6 params

Decline a calendar event invitation.

Name Type Required Description
event_id string required Event ID.
comment string optional Response comment.
proposed_new_time object optional Proposed new meeting time.
schema_version string optional Schema version
send_response boolean optional Send response.
tool_version string optional Tool version
outlook_delete_calendar_event # Delete a calendar event by ID. 1 param

Delete a calendar event by ID.

Name Type Required Description
event_id string required No description.
outlook_delete_calendar_group # Permanently delete a calendar group from the signed-in user's mailbox. Note: you cannot delete the default calendar group. All calendars within the group will also be deleted. 1 param

Permanently delete a calendar group from the signed-in user's mailbox. Note: you cannot delete the default calendar group. All calendars within the group will also be deleted.

Name Type Required Description
group_id string required The unique ID of the calendar group to delete (e.g., 'AAMkAGI2...'). Obtain from List Calendar Groups. Cannot be the default calendar group.
outlook_delete_calendar_permission # Revoke a user's access to a specific Outlook calendar by deleting the calendar permission entry. This action is permanent and immediately removes the user's access. 2 params

Revoke a user's access to a specific Outlook calendar by deleting the calendar permission entry. This action is permanent and immediately removes the user's access.

Name Type Required Description
calendar_id string required The unique identifier of the calendar from which to remove the permission.
permission_id string required The unique identifier of the calendar permission entry to delete. Retrieve from the list calendar permissions endpoint.
outlook_delete_category # Delete an Outlook master category for the signed-in user. This permanently removes the category definition. Any messages or items tagged with this category will retain the tag label but the category color will no longer appear. 1 param

Delete an Outlook master category for the signed-in user. This permanently removes the category definition. Any messages or items tagged with this category will retain the tag label but the category color will no longer appear.

Name Type Required Description
category_id string required The unique ID of the Outlook category to delete. Retrieve it from the list_categories tool.
outlook_delete_contact # Permanently delete a contact. 3 params

Permanently delete a contact.

Name Type Required Description
contact_id string required Contact ID.
schema_version string optional Schema version
tool_version string optional Tool version
outlook_delete_contact_folder # Permanently delete a contact folder and all its contents from the signed-in user's mailbox. This action cannot be undone. 1 param

Permanently delete a contact folder and all its contents from the signed-in user's mailbox. This action cannot be undone.

Name Type Required Description
folder_id string required The unique ID of the contact folder to delete (e.g., 'AAMkAGI2...'). Obtain from List Contact Folders. Warning: deletes all contacts within the folder.
outlook_delete_focused_inbox_override # Delete a Focused Inbox override rule for the signed-in user. Once deleted, messages from that sender will revert to automatic machine learning classification. 1 param

Delete a Focused Inbox override rule for the signed-in user. Once deleted, messages from that sender will revert to automatic machine learning classification.

Name Type Required Description
override_id string required The unique ID of the Focused Inbox override rule to delete (e.g., 'AAMkAGI2...'). Obtain this from the List Focused Inbox Overrides tool.
outlook_delete_mail_folder # Permanently delete a mail folder and its contents. 3 params

Permanently delete a mail folder and its contents.

Name Type Required Description
folder_id string required Folder ID.
schema_version string optional Schema version
tool_version string optional Tool version
outlook_delete_message # Permanently delete an email message. 3 params

Permanently delete an email message.

Name Type Required Description
message_id string required Message ID.
schema_version string optional Schema version
tool_version string optional Tool version
outlook_delete_message_rule # Delete an inbox message rule. 3 params

Delete an inbox message rule.

Name Type Required Description
rule_id string required Rule ID.
schema_version string optional Schema version
tool_version string optional Tool version
outlook_find_meeting_times # Find available meeting time slots for a set of attendees using Microsoft Graph's findMeetingTimes API. Returns a list of suggested meeting times when all required attendees are available within the given time window. 7 params

Find available meeting time slots for a set of attendees using Microsoft Graph's findMeetingTimes API. Returns a list of suggested meeting times when all required attendees are available within the given time window.

Name Type Required Description
attendee_emails array required Array of attendee email addresses to check availability for. Example: ["alice@example.com", "bob@example.com"]
end_date_time string required End of the time window to search for meeting times, in ISO 8601 format (e.g., 2025-01-15T18:00:00). The API will not suggest slots after this time.
meeting_duration string required Duration of the desired meeting in ISO 8601 duration format (e.g., PT30M for 30 minutes, PT1H for 1 hour, PT1H30M for 1.5 hours).
start_date_time string required Start of the time window to search for meeting times, in ISO 8601 format (e.g., 2025-01-15T08:00:00). The API will look for available slots at or after this time.
is_organizer_optional boolean optional Whether the meeting organizer's presence is optional. When true, the organizer's calendar is not checked for availability. Defaults to false.
max_candidates integer optional Maximum number of meeting time suggestions to return. Defaults to 20. Acceptable range: 1-40.
time_zone string optional IANA time zone identifier for interpreting start_date_time and end_date_time (e.g., "UTC", "America/New_York", "Europe/London"). Defaults to UTC.
outlook_forward_event # Forward a calendar event to other people. 5 params

Forward a calendar event to other people.

Name Type Required Description
comment string required Forward comment.
event_id string required Event ID.
to_recipients string required To recipients.
schema_version string optional Schema version
tool_version string optional Tool version
outlook_get_attachment # Download a specific attachment from an Outlook email message by attachment ID. Returns the full attachment including base64-encoded file content in the contentBytes field. Use List Attachments to get the attachment ID first. 2 params

Download a specific attachment from an Outlook email message by attachment ID. Returns the full attachment including base64-encoded file content in the contentBytes field. Use List Attachments to get the attachment ID first.

Name Type Required Description
attachment_id string required The ID of the attachment to download.
message_id string required The ID of the message containing the attachment.
outlook_get_calendar_event # Retrieve an existing calendar event by ID from the user's Outlook calendar. 1 param

Retrieve an existing calendar event by ID from the user's Outlook calendar.

Name Type Required Description
event_id string required No description.
outlook_get_calendar_view # Retrieve a collection of calendar events within a specific time range from the user's primary Outlook calendar. Returns all occurrences, exceptions, and single instances of events whose start/end times fall within the specified window. 6 params

Retrieve a collection of calendar events within a specific time range from the user's primary Outlook calendar. Returns all occurrences, exceptions, and single instances of events whose start/end times fall within the specified window.

Name Type Required Description
endDateTime string required End of the time range in ISO 8601 format (e.g., 2025-01-31T23:59:59). The calendar view returns events that end or overlap with this time.
startDateTime string required Start of the time range in ISO 8601 format (e.g., 2025-01-01T00:00:00). The calendar view returns events that start or overlap with this time.
$filter string optional OData filter expression to further narrow results (e.g., "subject eq 'Team Sync'").
$orderby string optional OData orderby expression to sort results (e.g., "start/dateTime asc").
$select string optional Comma-separated list of properties to include in the response (e.g., "subject,start,end,location"). Reduces payload size.
$top integer optional Maximum number of events to return (1-1000). Defaults to 10 if omitted.
outlook_get_contact # Retrieve a specific contact by ID. 5 params

Retrieve a specific contact by ID.

Name Type Required Description
contact_id string required Contact ID.
expand string optional Expand relationships.
schema_version string optional Schema version
select string optional Select properties.
tool_version string optional Tool version
outlook_get_contact_photo # Retrieve the profile photo of a specific contact in the signed-in user's mailbox. Returns binary image data (JPEG). A 404 response indicates no photo is set for this contact. 1 param

Retrieve the profile photo of a specific contact in the signed-in user's mailbox. Returns binary image data (JPEG). A 404 response indicates no photo is set for this contact.

Name Type Required Description
contact_id string required The unique ID of the contact whose photo to retrieve (e.g., 'AAMkAGI2...'). Obtain from List Contacts or Get Contact.
outlook_get_free_busy_schedule # Retrieve the free/busy availability schedule for one or more users, rooms, or resources within a specific time window. Returns availability view, schedule items, and working hours for each requested address. 5 params

Retrieve the free/busy availability schedule for one or more users, rooms, or resources within a specific time window. Returns availability view, schedule items, and working hours for each requested address.

Name Type Required Description
end_date_time string required End of the time window to retrieve schedule availability, in ISO 8601 format (e.g., 2025-01-15T18:00:00).
schedules array required Array of SMTP email addresses of users, distribution lists, or resources to get free/busy information for. Example: ["alice@example.com", "room@example.com"]
start_date_time string required Start of the time window to retrieve schedule availability, in ISO 8601 format (e.g., 2025-01-15T08:00:00).
availability_view_interval integer optional Duration in minutes of each time slot in the availability view string. Valid values: 5, 6, 10, 15, 20, 30, 60 (default), 120, 240, 480, or 1440.
time_zone string optional IANA time zone identifier for interpreting start and end times (e.g., "UTC", "America/New_York", "Europe/London"). Defaults to UTC.
outlook_get_mail_tips # Get mail tips for a list of recipients before sending an email. 4 params

Get mail tips for a list of recipients before sending an email.

Name Type Required Description
email_addresses array required Recipient email addresses.
mail_tips_options string required Mail tip types.
schema_version string optional Schema version
tool_version string optional Tool version
outlook_get_message # Retrieve a specific email message by ID from the user's Outlook mailbox, including full body content, sender, recipients, attachments info, and metadata. 1 param

Retrieve a specific email message by ID from the user's Outlook mailbox, including full body content, sender, recipients, attachments info, and metadata.

Name Type Required Description
message_id string required The ID of the message to retrieve.
outlook_get_user_presence # Get the presence status of a specific user. 3 params

Get the presence status of a specific user.

Name Type Required Description
user_id string required User ID or email.
schema_version string optional Schema version
tool_version string optional Tool version
outlook_list_attachments # List all attachments on a specific Outlook email message. Returns attachment metadata including ID, name, size, and content type. Use the attachment ID with Get Attachment to download the file content. 1 param

List all attachments on a specific Outlook email message. Returns attachment metadata including ID, name, size, and content type. Use the attachment ID with Get Attachment to download the file content.

Name Type Required Description
message_id string required The ID of the message to list attachments for.
outlook_list_calendar_events # List calendar events from the user's Outlook calendar with filtering, sorting, pagination, and field selection. 5 params

List calendar events from the user's Outlook calendar with filtering, sorting, pagination, and field selection.

Name Type Required Description
filter string optional OData filter expression to filter events (e.g., startsWith(subject,'All'))
orderby string optional OData orderby expression to sort events (e.g., start/dateTime desc)
select string optional Comma-separated list of properties to include in the response
skip number optional Number of events to skip for pagination
top number optional Maximum number of events to return
outlook_list_calendar_groups # List all calendar groups in the signed-in user's mailbox. Calendar groups are containers that organize multiple calendars together in Outlook. 2 params

List all calendar groups in the signed-in user's mailbox. Calendar groups are containers that organize multiple calendars together in Outlook.

Name Type Required Description
$select string optional Comma-separated list of properties to return (e.g., 'name,classId'). Reduces response size.
$top integer optional Maximum number of calendar groups to return (1–200, default: 10).
outlook_list_calendar_permissions # List all sharing permissions for a specific Outlook calendar. Returns the set of users and their assigned roles (e.g., freeBusyRead, read, write, delegate) for the given calendar. 2 params

List all sharing permissions for a specific Outlook calendar. Returns the set of users and their assigned roles (e.g., freeBusyRead, read, write, delegate) for the given calendar.

Name Type Required Description
calendar_id string required The unique identifier of the calendar whose permissions to list. Use 'primary' for the default calendar or a specific calendar ID from the list calendars endpoint.
$top integer optional Maximum number of permission entries to return (1-1000). Defaults to all entries if omitted.
outlook_list_calendars # Retrieve all calendars in the user mailbox. 4 params

Retrieve all calendars in the user mailbox.

Name Type Required Description
schema_version string optional Schema version
skip integer optional Skip count.
tool_version string optional Tool version
top integer optional Page size.
outlook_list_categories # List all Outlook master categories defined for the signed-in user. Categories can be applied to messages, events, and contacts for color-coded organization. 2 params

List all Outlook master categories defined for the signed-in user. Categories can be applied to messages, events, and contacts for color-coded organization.

Name Type Required Description
$select string optional Comma-separated list of category properties to return (e.g., 'displayName,color').
$top integer optional Maximum number of categories to return (1–200).
outlook_list_contact_folders # List all contact folders in the signed-in user's mailbox. Supports OData query parameters for filtering, field selection, and pagination. 3 params

List all contact folders in the signed-in user's mailbox. Supports OData query parameters for filtering, field selection, and pagination.

Name Type Required Description
$filter string optional OData filter expression to narrow results (e.g., "displayName eq 'Favorites'").
$select string optional Comma-separated list of properties to return (e.g., 'displayName,parentFolderId'). Reduces response size.
$top integer optional Maximum number of contact folders to return (1–200, default: 10).
outlook_list_contacts # List all contacts in the user's mailbox with support for filtering, pagination, and field selection. 5 params

List all contacts in the user's mailbox with support for filtering, pagination, and field selection.

Name Type Required Description
$filter string optional Filter expression to narrow results (e.g., "emailAddresses/any(a:a/address eq 'user@example.com')")
$orderby string optional Property to sort by (e.g., "displayName")
$select string optional Comma-separated list of properties to return (e.g., "displayName,emailAddresses,phoneNumbers")
$skip integer optional Number of contacts to skip for pagination
$top integer optional Number of contacts to return (default: 10)
outlook_list_event_instances # List all instances (occurrences) of a recurring calendar event within a specified date-time range. Requires the master recurring event ID and a start/end window in ISO 8601 format. 5 params

List all instances (occurrences) of a recurring calendar event within a specified date-time range. Requires the master recurring event ID and a start/end window in ISO 8601 format.

Name Type Required Description
end_date_time string required End of the time window to query for instances, in ISO 8601 format (e.g., '2024-12-31T23:59:59Z'). Required by Microsoft Graph.
event_id string required The unique ID of the master recurring event whose instances to list (e.g., 'AAMkAGI2...'). This must be the series master event ID, not an individual occurrence.
start_date_time string required Start of the time window to query for instances, in ISO 8601 format (e.g., '2024-01-01T00:00:00Z'). Required by Microsoft Graph.
$select string optional Comma-separated list of event properties to return (e.g., 'subject,start,end'). Reduces response size.
$top integer optional Maximum number of event instances to return (1–200, default: 10).
outlook_list_focused_inbox_overrides # List all Focused Inbox overrides for the signed-in user. Overrides define how messages from specific senders are classified — either into the Focused inbox or the Other inbox — overriding the automatic machine learning classification. 2 params

List all Focused Inbox overrides for the signed-in user. Overrides define how messages from specific senders are classified — either into the Focused inbox or the Other inbox — overriding the automatic machine learning classification.

Name Type Required Description
$select string optional Comma-separated list of properties to return (e.g., 'classifyAs,senderEmailAddress').
$top integer optional Maximum number of overrides to return per page.
outlook_list_folder_delta # Get incremental changes (delta sync) for mail folders in the user's mailbox using Microsoft Graph delta query. Returns new, updated, and deleted folders since the last sync. The response includes @odata.nextLink for pagination or @odata.deltaLink for the next delta call. 3 params

Get incremental changes (delta sync) for mail folders in the user's mailbox using Microsoft Graph delta query. Returns new, updated, and deleted folders since the last sync. The response includes @odata.nextLink for pagination or @odata.deltaLink for the next delta call.

Name Type Required Description
$deltatoken string optional Delta token from a previous @odata.deltaLink response to retrieve only folder changes since the last sync. Omit on first call to get a full initial sync.
$select string optional Comma-separated list of folder properties to return (e.g., 'displayName,parentFolderId,totalItemCount,unreadItemCount').
$top integer optional Maximum number of folders to return per page (1–250).
outlook_list_mail_folders # List all mail folders in the user mailbox. 5 params

List all mail folders in the user mailbox.

Name Type Required Description
include_hidden boolean optional Include hidden folders.
schema_version string optional Schema version
skip integer optional Skip count.
tool_version string optional Tool version
top integer optional Page size.
outlook_list_message_delta # Get incremental changes (delta sync) for messages in a specific mail folder using Microsoft Graph delta query. Returns new, updated, and deleted messages since the last sync. The response includes @odata.nextLink for pagination or @odata.deltaLink for the next delta call. Pass $deltatoken from a previous deltaLink to get only changes since then. 5 params

Get incremental changes (delta sync) for messages in a specific mail folder using Microsoft Graph delta query. Returns new, updated, and deleted messages since the last sync. The response includes @odata.nextLink for pagination or @odata.deltaLink for the next delta call. Pass $deltatoken from a previous deltaLink to get only changes since then.

Name Type Required Description
folder_id string required The mail folder ID or well-known name to sync (e.g., 'inbox', 'sentitems', 'drafts', or a specific folder ID).
$deltatoken string optional Delta token from a previous @odata.deltaLink response to retrieve only changes since the last sync. Omit on first call to get a full initial sync.
$select string optional Comma-separated list of properties to return (e.g., 'subject,from,receivedDateTime,isRead'). Reduces response size.
$skiptoken string optional Skip token from a previous @odata.nextLink response to continue paginating through a large delta result set.
$top integer optional Maximum number of messages to return per page (1–1000).
outlook_list_message_rules # List all inbox message rules for the user. 2 params

List all inbox message rules for the user.

Name Type Required Description
schema_version string optional Schema version
tool_version string optional Tool version
outlook_list_messages # List all messages in the user's mailbox with support for filtering, pagination, and field selection. Returns 10 messages by default. 5 params

List all messages in the user's mailbox with support for filtering, pagination, and field selection. Returns 10 messages by default.

Name Type Required Description
$filter string optional Filter expression to narrow results (e.g., "from/emailAddress/address eq 'user@example.com'")
$orderby string optional Property to sort by (e.g., "receivedDateTime desc")
$select string optional Comma-separated list of properties to return (e.g., "subject,from,receivedDateTime")
$skip integer optional Number of messages to skip for pagination
$top integer optional Number of messages to return (1-1000, default: 10)
outlook_list_shared_calendar_events # Retrieve calendar events from another user shared calendar. 6 params

Retrieve calendar events from another user shared calendar.

Name Type Required Description
end_date_time string required End date/time.
start_date_time string required Start date/time.
user_id string required User ID or email.
schema_version string optional Schema version
tool_version string optional Tool version
top integer optional Page size.
outlook_list_shared_mailbox_messages # List messages in a specific folder of a shared mailbox. Supports filtering, ordering, pagination, and field selection. Requires Mail.Read or Mail.ReadWrite permissions on the shared mailbox. 7 params

List messages in a specific folder of a shared mailbox. Supports filtering, ordering, pagination, and field selection. Requires Mail.Read or Mail.ReadWrite permissions on the shared mailbox.

Name Type Required Description
folder_id string required The ID or well-known name of the mail folder to list messages from. Well-known names include: inbox, sentitems, drafts, deleteditems, junkemail, outbox, archive.
shared_mailbox_id string required The email address or user ID of the shared mailbox to read messages from (e.g., support@company.com or a user object ID).
$filter string optional OData filter expression to narrow results (e.g., "isRead eq false" or "from/emailAddress/address eq 'sender@example.com'").
$orderby string optional OData orderby expression to sort messages (e.g., "receivedDateTime desc").
$select string optional Comma-separated list of message properties to return (e.g., "subject,from,receivedDateTime,isRead"). Reduces response payload size.
$skip integer optional Number of messages to skip for pagination (0-based offset). Use with $top for paging through results.
$top integer optional Maximum number of messages to return (1-1000). Defaults to 10 if omitted.
outlook_mailbox_settings_get # Retrieve the mailbox settings for the signed-in user. Returns automatic replies (out-of-office) configuration, language, timezone, working hours, date/time format, and delegate meeting message delivery preferences. 0 params

Retrieve the mailbox settings for the signed-in user. Returns automatic replies (out-of-office) configuration, language, timezone, working hours, date/time format, and delegate meeting message delivery preferences.

outlook_mailbox_settings_update # Update mailbox settings for the signed-in user. Supports configuring automatic replies (out-of-office), language, timezone, working hours, date/time format, and delegate meeting message delivery preferences. Only fields provided will be updated. 7 params

Update mailbox settings for the signed-in user. Supports configuring automatic replies (out-of-office), language, timezone, working hours, date/time format, and delegate meeting message delivery preferences. Only fields provided will be updated.

Name Type Required Description
automaticRepliesSetting object optional Configuration for automatic replies (out-of-office). Set status, internal/external reply messages, and optional scheduled time window.
dateFormat string optional Preferred date format string for the mailbox (e.g., 'MM/dd/yyyy', 'dd/MM/yyyy', 'yyyy-MM-dd').
delegateMeetingMessageDeliveryOptions string optional Controls how meeting messages are delivered when a delegate is configured.
language object optional Language and locale for the mailbox. Object with locale (e.g., 'en-US') and displayName.
timeFormat string optional Preferred time format string for the mailbox (e.g., 'hh:mm tt' for 12-hour, 'HH:mm' for 24-hour).
timeZone string optional Preferred time zone for the mailbox (e.g., 'UTC', 'Pacific Standard Time', 'Eastern Standard Time').
workingHours object optional Working hours configuration including days of week, start/end times, and time zone.
outlook_move_message # Move a message to a different mail folder. 4 params

Move a message to a different mail folder.

Name Type Required Description
destination_id string required Destination folder ID.
message_id string required Message ID.
schema_version string optional Schema version
tool_version string optional Tool version
outlook_move_shared_mailbox_message # Move a message in a shared mailbox to a different mail folder. Requires the caller to have read/write access to the shared mailbox. 3 params

Move a message in a shared mailbox to a different mail folder. Requires the caller to have read/write access to the shared mailbox.

Name Type Required Description
destination_folder_id string required The ID or well-known name of the destination mail folder to move the message into (e.g., inbox, drafts, sentitems, deleteditems, junkemail, or a folder ID).
message_id string required The unique identifier of the message to move within the shared mailbox.
shared_mailbox_id string required The email address or user object ID of the shared mailbox containing the message (e.g., support@company.com or a GUID). The caller must have read/write permissions on this mailbox.
outlook_reply_from_shared_mailbox # Reply to an existing email message on behalf of a shared mailbox. The reply is automatically sent to the original sender and saved in the shared mailbox's Sent Items folder. Requires send-as or send-on-behalf permissions on the shared mailbox. 3 params

Reply to an existing email message on behalf of a shared mailbox. The reply is automatically sent to the original sender and saved in the shared mailbox's Sent Items folder. Requires send-as or send-on-behalf permissions on the shared mailbox.

Name Type Required Description
comment string required The reply message text content. This will be included as the comment/body of the reply email sent from the shared mailbox.
message_id string required The unique identifier of the message in the shared mailbox to reply to. Retrieve from list or search shared mailbox messages.
shared_mailbox_id string required The email address or user ID of the shared mailbox to reply from (e.g., support@company.com or a user object ID). The caller must have send-as or send-on-behalf permissions.
outlook_reply_to_message # Reply to an existing email message. The reply is automatically sent to the original sender and saved in the Sent Items folder. 2 params

Reply to an existing email message. The reply is automatically sent to the original sender and saved in the Sent Items folder.

Name Type Required Description
comment string required Reply message content
messageId string required The unique identifier of the message to reply to
outlook_search_messages # Search messages by keywords across subject, body, sender, and other fields. Returns matching messages with support for pagination. 4 params

Search messages by keywords across subject, body, sender, and other fields. Returns matching messages with support for pagination.

Name Type Required Description
query string required Search query string (searches across subject, body, from, to)
$select string optional Comma-separated list of properties to return (e.g., "subject,from,receivedDateTime")
$skip integer optional Number of messages to skip for pagination
$top integer optional Number of messages to return (1-1000, default: 10)
outlook_search_people # Search for people relevant to the signed-in user by name or email. 8 params

Search for people relevant to the signed-in user by name or email.

Name Type Required Description
filter string optional OData filter.
order_by string optional Order by field.
schema_version string optional Schema version
search string optional Search query.
select string optional Select properties.
skip integer optional Skip count.
tool_version string optional Tool version
top integer optional Page size.
outlook_search_shared_mailbox_messages # Search messages across all folders in a shared mailbox by keyword. Searches across subject, body, sender, and recipients. Requires Mail.Read or Mail.ReadWrite permissions on the shared mailbox. 4 params

Search messages across all folders in a shared mailbox by keyword. Searches across subject, body, sender, and recipients. Requires Mail.Read or Mail.ReadWrite permissions on the shared mailbox.

Name Type Required Description
query string required Search query string. Searches across subject, body, sender, and recipient fields. Example: "invoice Q1" will find messages mentioning invoice in Q1 context.
shared_mailbox_id string required The email address or user ID of the shared mailbox to search (e.g., support@company.com or a user object ID).
$select string optional Comma-separated list of message properties to return (e.g., "subject,from,receivedDateTime"). Reduces response payload size.
$top integer optional Maximum number of messages to return (1-1000). Defaults to 10 if omitted.
outlook_send_message # Send an email message using Microsoft Graph API. The message is saved in the Sent Items folder by default. 7 params

Send an email message using Microsoft Graph API. The message is saved in the Sent Items folder by default.

Name Type Required Description
body string required Body content of the email
subject string required Subject line of the email
toRecipients array required Array of email addresses to send to
bccRecipients array optional Array of email addresses to BCC
bodyType string optional Content type of the body (Text or HTML)
ccRecipients array optional Array of email addresses to CC
saveToSentItems boolean optional Save the message in Sent Items folder (default: true)
outlook_send_message_from_shared_mailbox # Send an email message on behalf of a shared mailbox using Microsoft Graph API. The message is saved in the shared mailbox's Sent Items folder by default. Requires the caller to have send-as or send-on-behalf-of permissions on the shared mailbox. 8 params

Send an email message on behalf of a shared mailbox using Microsoft Graph API. The message is saved in the shared mailbox's Sent Items folder by default. Requires the caller to have send-as or send-on-behalf-of permissions on the shared mailbox.

Name Type Required Description
body string required Body content of the email. Provide plain text or HTML depending on the bodyType field.
shared_mailbox_id string required The email address or user ID of the shared mailbox to send from (e.g., support@company.com or a user object ID). The caller must have send-as or send-on-behalf permissions.
subject string required Subject line of the email to send from the shared mailbox.
toRecipients array required Array of email addresses to send the email to from the shared mailbox. Example: ["customer@example.com"]
bccRecipients array optional Array of email addresses to BCC on the outgoing message from the shared mailbox.
bodyType string optional Content type of the email body. Use 'Text' for plain text or 'HTML' for rich HTML content. Defaults to 'Text' if omitted.
ccRecipients array optional Array of email addresses to CC on the outgoing message from the shared mailbox.
saveToSentItems boolean optional Whether to save the sent message in the shared mailbox's Sent Items folder. Defaults to true.
outlook_tentatively_accept_event # Tentatively accept a calendar event invitation. 6 params

Tentatively accept a calendar event invitation.

Name Type Required Description
event_id string required Event ID.
comment string optional Response comment.
proposed_new_time object optional Proposed new meeting time.
schema_version string optional Schema version
send_response boolean optional Send response.
tool_version string optional Tool version
outlook_todo_checklist_items_create # Add a checklist item (subtask) to a specific task in a Microsoft To Do task list. 4 params

Add a checklist item (subtask) to a specific task in a Microsoft To Do task list.

Name Type Required Description
display_name string required The display name of the checklist item.
list_id string required The ID of the task list.
task_id string required The ID of the task to add the checklist item to.
is_checked boolean optional Whether the checklist item is already checked/completed.
outlook_todo_checklist_items_delete # Permanently delete a checklist item (subtask) from a task in a Microsoft To Do task list. 3 params

Permanently delete a checklist item (subtask) from a task in a Microsoft To Do task list.

Name Type Required Description
checklist_item_id string required The ID of the checklist item to delete.
list_id string required The ID of the task list.
task_id string required The ID of the task.
outlook_todo_checklist_items_get # Get a specific checklist item (subtask) from a task in a Microsoft To Do task list. 3 params

Get a specific checklist item (subtask) from a task in a Microsoft To Do task list.

Name Type Required Description
checklist_item_id string required The ID of the checklist item.
list_id string required The ID of the task list.
task_id string required The ID of the task.
outlook_todo_checklist_items_list # List all checklist items (subtasks) for a specific task in a Microsoft To Do task list. 2 params

List all checklist items (subtasks) for a specific task in a Microsoft To Do task list.

Name Type Required Description
list_id string required The ID of the task list.
task_id string required The ID of the task.
outlook_todo_checklist_items_update # Update a checklist item (subtask) in a Microsoft To Do task. Only provided fields are changed. 5 params

Update a checklist item (subtask) in a Microsoft To Do task. Only provided fields are changed.

Name Type Required Description
checklist_item_id string required The ID of the checklist item to update.
list_id string required The ID of the task list.
task_id string required The ID of the task.
display_name string optional New display name for the checklist item.
is_checked boolean optional Whether the checklist item is checked/completed.
outlook_todo_lists_create # Create a new Microsoft To Do task list. 1 param

Create a new Microsoft To Do task list.

Name Type Required Description
display_name string required The name of the task list.
outlook_todo_lists_delete # Permanently delete a Microsoft To Do task list and all its tasks. 1 param

Permanently delete a Microsoft To Do task list and all its tasks.

Name Type Required Description
list_id string required The ID of the task list to delete.
outlook_todo_lists_get # Get a specific Microsoft To Do task list by ID. 1 param

Get a specific Microsoft To Do task list by ID.

Name Type Required Description
list_id string required The ID of the task list.
outlook_todo_lists_list # List all Microsoft To Do task lists for the current user. 0 params

List all Microsoft To Do task lists for the current user.

outlook_todo_lists_update # Rename a Microsoft To Do task list. 2 params

Rename a Microsoft To Do task list.

Name Type Required Description
display_name string required The new name for the task list.
list_id string required The ID of the task list to update.
outlook_todo_tasks_create # Create a new task in a Microsoft To Do task list with optional body, due date, importance, and reminder. 10 params

Create a new task in a Microsoft To Do task list with optional body, due date, importance, and reminder.

Name Type Required Description
list_id string required The ID of the task list to add the task to.
title string required The title of the task.
body string optional The body/notes of the task (plain text).
categories array optional Array of category names to assign to the task.
due_date string optional Due date in YYYY-MM-DD format (e.g. "2026-04-15").
due_time_zone string optional Time zone for the due date (e.g. "UTC", "America/New_York"). Defaults to UTC.
importance string optional The importance of the task: low, normal, or high.
reminder_date_time string optional Reminder date and time in ISO 8601 format (e.g. "2026-04-15T09:00:00").
reminder_time_zone string optional Time zone for the reminder (e.g. "UTC"). Defaults to UTC.
status string optional The status of the task: notStarted, inProgress, completed, waitingOnOthers, or deferred.
outlook_todo_tasks_delete # Permanently delete a task from a Microsoft To Do task list. 2 params

Permanently delete a task from a Microsoft To Do task list.

Name Type Required Description
list_id string required The ID of the task list.
task_id string required The ID of the task to delete.
outlook_todo_tasks_get # Get a specific task from a Microsoft To Do task list. 2 params

Get a specific task from a Microsoft To Do task list.

Name Type Required Description
list_id string required The ID of the task list.
task_id string required The ID of the task.
outlook_todo_tasks_list # List all tasks in a Microsoft To Do task list with optional filtering and pagination. 5 params

List all tasks in a Microsoft To Do task list with optional filtering and pagination.

Name Type Required Description
list_id string required The ID of the task list.
$filter string optional OData filter expression (e.g. "status eq 'notStarted'").
$orderby string optional Property to sort by (e.g. "createdDateTime desc").
$skip integer optional Number of tasks to skip for pagination.
$top integer optional Number of tasks to return (default: 10).
outlook_todo_tasks_update # Update a task in a Microsoft To Do task list. Only provided fields are changed. 9 params

Update a task in a Microsoft To Do task list. Only provided fields are changed.

Name Type Required Description
list_id string required The ID of the task list.
task_id string required The ID of the task to update.
body string optional New body/notes for the task (plain text).
categories array optional Array of category names to assign to the task.
due_date string optional Due date in YYYY-MM-DD format.
due_time_zone string optional Time zone for the due date. Defaults to UTC.
importance string optional The importance: low, normal, or high.
status string optional The status: notStarted, inProgress, completed, waitingOnOthers, or deferred.
title string optional New title for the task.
outlook_update_calendar_event # Update an existing Outlook calendar event. Only provided fields will be updated. Supports time, attendees, location, reminders, online meetings, recurrence, and event properties. 30 params

Update an existing Outlook calendar event. Only provided fields will be updated. Supports time, attendees, location, reminders, online meetings, recurrence, and event properties.

Name Type Required Description
event_id string required The ID of the calendar event to update
attendees_optional string optional Comma-separated optional attendee emails
attendees_required string optional Comma-separated required attendee emails
attendees_resource string optional Comma-separated resource emails (meeting rooms, equipment)
body_content string optional Event description/body
body_contentType string optional Content type of body
categories string optional Comma-separated categories
end_datetime string optional Event end time in RFC3339 format
end_timezone string optional Timezone for end time
hideAttendees boolean optional When true, each attendee only sees themselves
importance string optional Event importance level
isAllDay boolean optional Mark as all-day event
isOnlineMeeting boolean optional Create an online meeting (Teams/Skype)
isReminderOn boolean optional Enable or disable reminder
location string optional Physical or virtual location
locations string optional JSON array of location objects with displayName, address, coordinates
onlineMeetingProvider string optional Online meeting provider
recurrence_days_of_week string optional Days of week for weekly recurrence (comma-separated)
recurrence_end_date string optional End date for recurrence (YYYY-MM-DD)
recurrence_interval integer optional How often the event recurs (e.g., every 2 weeks = 2)
recurrence_occurrences integer optional Number of occurrences
recurrence_range_type string optional How the recurrence ends
recurrence_start_date string optional Start date for recurrence (YYYY-MM-DD)
recurrence_type string optional Recurrence pattern type
reminderMinutesBeforeStart integer optional Minutes before event start to show reminder
sensitivity string optional Event sensitivity/privacy level
showAs string optional Free/busy status
start_datetime string optional Event start time in RFC3339 format
start_timezone string optional Timezone for start time
subject string optional Event title/summary
outlook_update_calendar_group # Update the name of an existing calendar group in the signed-in user's mailbox. 2 params

Update the name of an existing calendar group in the signed-in user's mailbox.

Name Type Required Description
group_id string required The unique ID of the calendar group to update (e.g., 'AAMkAGI2...'). Obtain from List Calendar Groups.
name string required The new name for the calendar group (e.g., 'Personal Calendars').
outlook_update_calendar_permission # Update the role of an existing calendar permission entry. Use this to change a user's access level (e.g., upgrade from read to write, or downgrade from delegate to read) on a specific calendar. 3 params

Update the role of an existing calendar permission entry. Use this to change a user's access level (e.g., upgrade from read to write, or downgrade from delegate to read) on a specific calendar.

Name Type Required Description
calendar_id string required The unique identifier of the calendar that contains the permission to update.
permission_id string required The unique identifier of the calendar permission entry to update. Retrieve from the list calendar permissions endpoint.
role string required The new permission role to assign. Valid values: freeBusyRead (see free/busy only), limitedRead (see title and location), read (see all event details), write (create/edit/delete events), delegateWithoutPrivateEventAccess (delegate, no private events), delegateWithPrivateEventAccess (delegate including private events), custom (custom role).
outlook_update_category # Update the display name or color of an existing Outlook master category. Provide the category ID and at least one of display_name or color to update. 3 params

Update the display name or color of an existing Outlook master category. Provide the category ID and at least one of display_name or color to update.

Name Type Required Description
category_id string required The unique ID of the Outlook category to update. Retrieve it from the list_categories tool.
color string optional New color for the category. Use 'none' for no color, or 'preset0' through 'preset24' for a specific color slot.
display_name string optional New display name for the category. Must be unique among the user's categories if provided.
outlook_update_contact # Update properties of an existing contact. 9 params

Update properties of an existing contact.

Name Type Required Description
contact_id string required Contact ID.
company_name string optional Company name.
email_addresses string optional Email addresses.
given_name string optional First name.
job_title string optional Job title.
mobile_phone string optional Mobile phone.
schema_version string optional Schema version
surname string optional Last name.
tool_version string optional Tool version
outlook_update_contact_folder # Update the display name of an existing contact folder in the signed-in user's mailbox. 2 params

Update the display name of an existing contact folder in the signed-in user's mailbox.

Name Type Required Description
display_name string required The new display name for the contact folder (e.g., 'Updated Contacts').
folder_id string required The unique ID of the contact folder to update (e.g., 'AAMkAGI2...'). Obtain from List Contact Folders.
outlook_update_focused_inbox_override # Update an existing Focused Inbox override to change how messages from a specific sender are classified. Use this to switch a sender between Focused and Other inbox routing. 2 params

Update an existing Focused Inbox override to change how messages from a specific sender are classified. Use this to switch a sender between Focused and Other inbox routing.

Name Type Required Description
classify_as string required Updated classification for the sender: 'focused' to route to Focused inbox, 'other' to route to Other inbox.
override_id string required The unique ID of the Focused Inbox override to update. Retrieve it from the list_focused_inbox_overrides tool.
outlook_update_mail_folder # Rename or update a mail folder. 4 params

Rename or update a mail folder.

Name Type Required Description
display_name string required New folder name.
folder_id string required Folder ID.
schema_version string optional Schema version
tool_version string optional Tool version
outlook_update_message # Update properties of an email message (e.g. mark as read, set importance). 12 params

Update properties of an email message (e.g. mark as read, set importance).

Name Type Required Description
message_id string required Message ID.
body string optional Message body content.
body_content_type string optional Body content type.
categories array optional Categories.
importance string optional Importance.
inference_classification string optional Inference classification.
is_delivery_receipt_requested boolean optional Delivery receipt requested.
is_read boolean optional Mark as read.
is_read_receipt_requested boolean optional Read receipt requested.
schema_version string optional Schema version
subject string optional Updated subject.
tool_version string optional Tool version
outlook_update_message_rule # Update an existing inbox message rule. 10 params

Update an existing inbox message rule.

Name Type Required Description
rule_id string required Rule ID.
actions object optional Rule actions.
conditions object optional Rule conditions.
display_name string optional Rule name.
exceptions object optional Exception conditions for the rule.
is_enabled boolean optional Enable rule.
is_read_only boolean optional Mark rule as read-only.
schema_version string optional Schema version
sequence integer optional Rule sequence.
tool_version string optional Tool version
outlook_create_shared_calendar_event # Create a calendar event on another user's calendar (shared or delegated access). Targets POST /users/{id}/events. Requires Calendars.ReadWrite application permission or delegated access granted by the target user. 13 params

Create a calendar event on another user's calendar (shared or delegated access). Targets POST /users/{id}/events. Requires Calendars.ReadWrite application permission or delegated access granted by the target user.

Name Type Required Description
user_id string required User ID or userPrincipalName (email) of the target user whose calendar to write to (e.g., colleague@company.com).
subject string required Event subject / title.
start_datetime string required Start date and time in ISO 8601 format (e.g., 2024-09-15T10:00:00).
start_timezone string required IANA timezone for the start time (e.g., America/New_York).
end_datetime string required End date and time in ISO 8601 format.
end_timezone string required IANA timezone for the end time.
body_content string optional Event body/description text.
body_contentType string optional Body content type: "text" or "html".
attendees_required array optional Required attendee email addresses.
attendees_optional array optional Optional attendee email addresses.
location string optional Event location display name.
isOnlineMeeting boolean optional Whether to create a Teams online meeting.
isAllDay boolean optional Whether this is an all-day event.
outlook_update_shared_calendar_event # Update an existing event on another user's calendar (shared or delegated access). Targets PATCH /users/{id}/events/{event_id}. Requires Calendars.ReadWrite application permission or delegated access granted by the target user. 10 params

Update an existing event on another user's calendar (shared or delegated access). Targets PATCH /users/{id}/events/{event_id}. Requires Calendars.ReadWrite application permission or delegated access granted by the target user.

Name Type Required Description
user_id string required User ID or userPrincipalName (email) of the target user whose calendar to update (e.g., colleague@company.com).
event_id string required ID of the calendar event to update.
subject string optional Updated event subject / title.
start_datetime string optional Updated start date and time in ISO 8601 format.
start_timezone string optional IANA timezone for the updated start time.
end_datetime string optional Updated end date and time in ISO 8601 format.
end_timezone string optional IANA timezone for the updated end time.
body_content string optional Updated event body/description text.
body_contentType string optional Body content type: "text" or "html".
location string optional Updated event location display name.
outlook_get_shared_mailbox_message # Get a single message from a shared mailbox by message ID. Targets GET /users/{id}/messages/{message_id}. Requires Mail.Read or Mail.ReadWrite permission on the shared mailbox. 3 params

Get a single message from a shared mailbox by message ID. Targets GET /users/{id}/messages/{message_id}. Requires Mail.Read or Mail.ReadWrite permission on the shared mailbox.

Name Type Required Description
shared_mailbox_id string required Email address or user ID of the shared mailbox (e.g., support@company.com).
message_id string required The ID of the message to retrieve.
$select string optional Comma-separated list of message properties to return (e.g., subject,from,receivedDateTime,body).
outlook_list_shared_contacts # List contacts from another user's default contacts folder (a colleague's contacts). Targets GET /users/{id}/contacts. Requires Contacts.Read application permission or delegated access granted by the target user. 6 params

List contacts from another user's default contacts folder (a colleague's contacts). Targets GET /users/{id}/contacts. Requires Contacts.Read application permission or delegated access granted by the target user.

Name Type Required Description
user_id string required User ID or userPrincipalName (email) of the target user whose contacts to list (e.g., colleague@company.com).
$filter string optional OData filter expression (e.g., "displayName eq 'John Doe'").
$orderby string optional OData orderby expression (e.g., "displayName asc").
$select string optional Comma-separated contact properties to return (e.g., displayName,emailAddresses,mobilePhone).
$top integer optional Maximum number of contacts to return (1–1000).
$skip integer optional Number of contacts to skip for pagination.
outlook_get_shared_contact # Get a single contact from another user's contacts by contact ID. Targets GET /users/{id}/contacts/{contact_id}. Requires Contacts.Read application permission or delegated access granted by the target user. 3 params

Get a single contact from another user's contacts by contact ID. Targets GET /users/{id}/contacts/{contact_id}. Requires Contacts.Read application permission or delegated access granted by the target user.

Name Type Required Description
user_id string required User ID or userPrincipalName (email) of the target user whose contact to retrieve (e.g., colleague@company.com).
contact_id string required The ID of the contact to retrieve.
select string optional Comma-separated contact properties to return.
outlook_list_shared_todo_lists # List Microsoft To Do task lists belonging to another user (a colleague). Targets GET /users/{id}/todo/lists. Requires Tasks.Read application permission or delegated access granted by the target user. 1 param

List Microsoft To Do task lists belonging to another user (a colleague). Targets GET /users/{id}/todo/lists. Requires Tasks.Read application permission or delegated access granted by the target user.

Name Type Required Description
user_id string required User ID or userPrincipalName (email) of the target user whose To Do lists to retrieve (e.g., colleague@company.com).
outlook_list_shared_todo_tasks # List tasks in a Microsoft To Do list belonging to another user (a colleague). Targets GET /users/{id}/todo/lists/{list_id}/tasks. Requires Tasks.Read application permission or delegated access granted by the target user. 6 params

List tasks in a Microsoft To Do list belonging to another user (a colleague). Targets GET /users/{id}/todo/lists/{list_id}/tasks. Requires Tasks.Read application permission or delegated access granted by the target user.

Name Type Required Description
user_id string required User ID or userPrincipalName (email) of the target user whose tasks to list (e.g., colleague@company.com).
list_id string required The ID of the To Do task list to retrieve tasks from.
$filter string optional OData filter expression to narrow results.
$orderby string optional OData orderby expression (e.g., "dueDateTime/dateTime asc").
$top integer optional Maximum number of tasks to return.
$skip integer optional Number of tasks to skip for pagination.