# Outlook

Outlook is Microsoft's email and calendaring platform integrating contacts and scheduling, enabling users to manage communications and events in a unified workspace

- **Category:** email
- **Auth:** OAUTH2
- **Tools:** 64
- **Triggers:** 5
- **Slug:** `OUTLOOK`
- **Version:** 20260217_00

## Frequently Asked Questions

### How do I set up custom OAuth credentials for Microsoft (Outlook)?

For a step-by-step guide on creating and configuring your own Microsoft (Outlook) OAuth credentials with Devcaster, see [How to create OAuth credentials for Microsoft (Outlook)](https://devcaster.dev/auth/outlook).

### Why does the Outlook new message trigger only return a message ID?

Outlook's webhooks send only the message ID on trigger events. To get the full message (subject, body, headers), call the `OUTLOOK_GET_MESSAGE` tool with that message ID.

### Why doesn't `OUTLOOK_SEND_EMAIL` return message details?

Microsoft Graph's send endpoint returns an HTTP 202 with no message details. To get the message ID and conversation ID, create a draft first with `OUTLOOK_CREATE_DRAFT`, then send it with `OUTLOOK_SEND_DRAFT`. See [Microsoft Graph docs](https://learn.microsoft.com/en-us/graph/api/user-sendmail?view=graph-rest-1.0&tabs=http).

### What's the @odata.context / @odata URL?

The `@odata.context` URL provides metadata about the response (entity set, service version, and schema info) to help clients interpret the payload structure. It's primarily used for pagination and data parsing — not as a direct URL to the resource itself.

---

## Tools

### Add event attachment

**Slug:** `OUTLOOK_ADD_EVENT_ATTACHMENT`

Adds an attachment to a specific Outlook calendar event. Use when you need to attach a file or nested item to an existing event.

### Add mail attachment

**Slug:** `OUTLOOK_ADD_MAIL_ATTACHMENT`

Tool to add an attachment to an email message. Use when you have a message ID and need to attach a small (<3 MB) file or reference.

### Batch move messages

**Slug:** `OUTLOOK_BATCH_MOVE_MESSAGES`

Batch-move up to 20 Outlook messages to a destination folder in a single Microsoft Graph $batch call. Use when moving multiple messages to avoid per-message move API calls.

### Batch update messages

**Slug:** `OUTLOOK_BATCH_UPDATE_MESSAGES`

Batch-update up to 20 Outlook messages per call using Microsoft Graph JSON batching. Use when marking multiple messages read/unread or updating other properties to avoid per-message PATCH calls.

### Create Calendar Event

**Slug:** `OUTLOOK_CALENDAR_CREATE_EVENT`

Creates a new Outlook calendar event, ensuring `start_datetime` is chronologically before `end_datetime`.

### Create attachment upload session

**Slug:** `OUTLOOK_CREATE_ATTACHMENT_UPLOAD_SESSION`

Tool to create an upload session for large (>3 MB) message attachments. Use when you need to upload attachments in chunks.

### Create calendar

**Slug:** `OUTLOOK_CREATE_CALENDAR`

Tool to create a new calendar in the signed-in user's mailbox. Use when organizing events into a separate calendar.

### Create contact

**Slug:** `OUTLOOK_CREATE_CONTACT`

Creates a new contact in a Microsoft Outlook user's contacts folder.

### Create contact folder

**Slug:** `OUTLOOK_CREATE_CONTACT_FOLDER`

Tool to create a new contact folder in the user's mailbox. Use when needing to organize contacts into custom folders.

### Create email draft

**Slug:** `OUTLOOK_CREATE_DRAFT`

Creates a new Outlook email draft with subject, body, recipients, and an optional attachment. This action creates a standalone draft for new conversations. To create a draft reply to an existing conversation/message, use the OUTLOOK_CREATE_DRAFT_REPLY action instead.

### Create a draft reply

**Slug:** `OUTLOOK_CREATE_DRAFT_REPLY`

Creates a draft reply in the specified user's Outlook mailbox to an existing message (identified by a valid `message_id`), optionally including a `comment` and CC/BCC recipients.

### Create Email Rule

**Slug:** `OUTLOOK_CREATE_EMAIL_RULE`

Create email rule filter with conditions and actions

### Create mail folder

**Slug:** `OUTLOOK_CREATE_MAIL_FOLDER`

Tool to create a new mail folder. Use when you need to organize email into a new folder.

### Create master category

**Slug:** `OUTLOOK_CREATE_MASTER_CATEGORY`

Tool to create a new category in the user's master category list. Use after selecting a unique display name.

### Decline calendar event

**Slug:** `OUTLOOK_DECLINE_EVENT`

Tool to decline an invitation to a calendar event. Use when the user wants to decline a meeting or event invitation. The API returns 202 Accepted with no content on success.

### Delete Contact

**Slug:** `OUTLOOK_DELETE_CONTACT`

Permanently deletes an existing contact, using its `contact_id` (obtainable via 'List User Contacts' or 'Get Contact'), from the Outlook contacts of the user specified by `user_id`.

### Delete Email Rule

**Slug:** `OUTLOOK_DELETE_EMAIL_RULE`

Delete an email rule

### Delete Calendar Event

**Slug:** `OUTLOOK_DELETE_EVENT`

Deletes an existing calendar event, identified by its unique `event_id`, from a specified user's Microsoft Outlook calendar. For meetings, the API automatically sends cancellation notifications to attendees (use the cancel endpoint if you need to include a custom message).

### Delete mail folder

**Slug:** `OUTLOOK_DELETE_MAIL_FOLDER`

Delete a mail folder from the user's mailbox. Use when you need to remove an existing mail folder.

### Delete master category

**Slug:** `OUTLOOK_DELETE_MASTER_CATEGORY`

Tool to delete a category from the user's master category list. Use when removing unused or obsolete categories from the mailbox.

### Delete Message

**Slug:** `OUTLOOK_DELETE_MESSAGE`

Tool to permanently delete an Outlook email message by its message_id. Use when removing unwanted messages, cleaning up drafts, or performing mailbox maintenance.

### Download Outlook attachment

**Slug:** `OUTLOOK_DOWNLOAD_OUTLOOK_ATTACHMENT`

Downloads a specific file attachment from an email message in a Microsoft Outlook mailbox; the attachment must contain 'contentBytes' (binary data) and not be a link or embedded item.

### Find Meeting Times

**Slug:** `OUTLOOK_FIND_MEETING_TIMES`

Suggests meeting times based on organizer and attendee availability, time constraints, and duration requirements. Use when you need to find optimal meeting slots across multiple participants' schedules.

### Forward message

**Slug:** `OUTLOOK_FORWARD_MESSAGE`

Tool to forward a message. Use when you need to send an existing email to new recipients.

### Get Calendar View

**Slug:** `OUTLOOK_GET_CALENDAR_VIEW`

Get events ACTIVE during a time window (includes multi-day events). Use for "what's on my calendar today/this week" or availability checks. Returns events overlapping the time range. For keyword search or filters by category, use OUTLOOK_LIST_EVENTS instead.

### Get contact

**Slug:** `OUTLOOK_GET_CONTACT`

Retrieves a specific Outlook contact by its `contact_id` from the contacts of a specified `user_id` (defaults to 'me' for the authenticated user).

### Get contact folders

**Slug:** `OUTLOOK_GET_CONTACT_FOLDERS`

Tool to retrieve a list of contact folders in the signed-in user's mailbox. Use after authentication when you need to browse or select among contact folders.

### Get calendar event

**Slug:** `OUTLOOK_GET_EVENT`

Retrieves the full details of a specific calendar event by its ID from a user's Outlook calendar, provided the event exists.

### Get mailbox settings

**Slug:** `OUTLOOK_GET_MAILBOX_SETTINGS`

Tool to retrieve mailbox settings. Use when you need to view settings such as automatic replies, time zone, and working hours for the signed-in or specified user.

### Get mail delta

**Slug:** `OUTLOOK_GET_MAIL_DELTA`

Retrieve incremental changes (delta) of messages in a mailbox. FIRST RUN: Returns ALL messages in folder (use top=50 to limit). Response has @odata.deltaLink. SUBSEQUENT: Pass stored deltaLink to get only NEW/UPDATED/DELETED messages since last sync. Properties available: id, subject, from, receivedDateTime, isRead, etc. NOT available: internetMessageHeaders, full body, attachment content (response size limits).

### Get mail tips

**Slug:** `OUTLOOK_GET_MAIL_TIPS`

Tool to retrieve mail tips such as automatic replies and mailbox full status. Use when you need to check recipient status before sending mail.

### Get master categories

**Slug:** `OUTLOOK_GET_MASTER_CATEGORIES`

Tool to retrieve the user's master category list. Use when you need to get all categories defined for the user.

### Get email message

**Slug:** `OUTLOOK_GET_MESSAGE`

Retrieves a specific email message by its ID from the specified user's Outlook mailbox. Use the 'select' parameter to include specific fields like 'internetMessageHeaders' for filtering automated emails.

### Get Outlook profile

**Slug:** `OUTLOOK_GET_PROFILE`

Retrieves the Microsoft Outlook profile for a specified user.

### Get schedule

**Slug:** `OUTLOOK_GET_SCHEDULE`

Retrieves free/busy schedule information for specified email addresses within a defined time window.

### Get supported languages

**Slug:** `OUTLOOK_GET_SUPPORTED_LANGUAGES`

Tool to retrieve supported languages in the user's mailbox. Use when you need to display or select from available mailbox languages.

### Get supported time zones

**Slug:** `OUTLOOK_GET_SUPPORTED_TIME_ZONES`

Tool to retrieve supported time zones in the user's mailbox. Use when you need a list of time zones to display or choose from for event scheduling.

### List Outlook calendars

**Slug:** `OUTLOOK_LIST_CALENDARS`

Tool to list calendars in the signed-in user's mailbox. Use when you need to retrieve calendars with optional OData queries.

### List chat messages

**Slug:** `OUTLOOK_LIST_CHAT_MESSAGES`

Tool to list messages in a Teams chat. Use when you need message IDs to select a specific message for further actions.

### List Teams chats

**Slug:** `OUTLOOK_LIST_CHATS`

Tool to list Teams chats. Use when you need chat IDs and topics to select a chat for further actions.

### List child mail folders

**Slug:** `OUTLOOK_LIST_CHILD_MAIL_FOLDERS`

Tool to list subfolders (childFolders) under a specified Outlook mail folder. Use when navigating nested folder hierarchies or checking if a folder has subfolders.

### List Outlook contacts

**Slug:** `OUTLOOK_LIST_CONTACTS`

Retrieves a user's Microsoft Outlook contacts, from the default or a specified contact folder.

### List Email Rules

**Slug:** `OUTLOOK_LIST_EMAIL_RULES`

List all email rules from inbox

### List event attachments

**Slug:** `OUTLOOK_LIST_EVENT_ATTACHMENTS`

Tool to list attachments for a specific Outlook calendar event. Use when you have an event ID and need to view its attachments.

### List events

**Slug:** `OUTLOOK_LIST_EVENTS`

Retrieves events from a user's Outlook calendar via Microsoft Graph API. Supports primary/secondary/shared calendars, pagination, filtering, property selection, sorting, and timezone specification. Use calendar_id to access non-primary calendars.

### List mail folder messages

**Slug:** `OUTLOOK_LIST_MAIL_FOLDER_MESSAGES`

Tool to list messages from a specific mail folder including subfolders. Use when you need to retrieve messages from a particular folder or subfolder by its ID or well-known name.

### List mail folders

**Slug:** `OUTLOOK_LIST_MAIL_FOLDERS`

Tool to list a user's top-level mail folders. Use when you need folders like Inbox, Drafts, Sent Items; set include_hidden_folders=True to include hidden folders.

### List Messages

**Slug:** `OUTLOOK_LIST_MESSAGES`

Retrieves a list of email messages from a specified mail folder in an Outlook mailbox, with options for filtering (including by conversationId to get all messages in a thread), pagination, and sorting; ensure 'user_id' and 'folder' are valid, and all date/time strings are in ISO 8601 format.

### List Outlook attachments

**Slug:** `OUTLOOK_LIST_OUTLOOK_ATTACHMENTS`

Lists metadata (like name, size, and type, but not `contentBytes`) for all attachments of a specified Outlook email message.

### List event reminders

**Slug:** `OUTLOOK_LIST_REMINDERS`

Tool to retrieve reminders for events occurring within a specified time range. Use when you need to see upcoming reminders between two datetimes.

### List users

**Slug:** `OUTLOOK_LIST_USERS`

Tool to list users in Microsoft Entra ID. Use when you need to retrieve a paginated list of users, optionally filtering or selecting specific properties.

### Move message to folder

**Slug:** `OUTLOOK_MOVE_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.

### Permanently Delete Message

**Slug:** `OUTLOOK_PERMANENT_DELETE_MESSAGE`

Permanently deletes an Outlook message by moving it to the Purges folder in the dumpster. Unlike standard DELETE, this action makes the message unrecoverable by the user. IMPORTANT: This is NOT the same as DELETE - permanentDelete is irreversible and availability differs by national cloud deployments (not available in US Government L4, L5 (DOD), or China (21Vianet)).

### Pin message

**Slug:** `OUTLOOK_PIN_MESSAGE`

Tool to pin a message in an Outlook chat. Use when you want to mark an important message for quick access.

### Query Emails

**Slug:** `OUTLOOK_QUERY_EMAILS`

Query Outlook emails within a SINGLE folder using OData filters. Build precise server-side filters for dates, read status, importance, subjects, attachments, and conversations. Best for structured queries on message metadata within a specific folder. Returns up to 100 messages per request with pagination support. • Searches SINGLE folder only (inbox, sentitems, etc.) - NOT across all folders • For cross-folder/mailbox-wide search: Use OUTLOOK_SEARCH_MESSAGES • Server-side filters: dates, importance, isRead, hasAttachments, subjects, conversationId • CRITICAL: Always check response['@odata.nextLink'] for pagination • Limitations: Recipient/body filtering requires OUTLOOK_SEARCH_MESSAGES

### Reply to Email

**Slug:** `OUTLOOK_REPLY_EMAIL`

Sends a plain text reply to an Outlook email message, identified by `message_id`, allowing optional CC and BCC recipients.

### Search Outlook messages

**Slug:** `OUTLOOK_SEARCH_MESSAGES`

Search Outlook messages using powerful KQL syntax. Supports sender (from:), recipient (to:, cc:), subject, date filters (received:, sent:), attachments, and boolean logic. Only works with Microsoft 365/Enterprise accounts (no @hotmail.com/@outlook.com). Examples: 'from:user@example.com AND received>=2025-10-01', 'to:info@jcdn.nl AND subject:invoice', 'received>today-30 AND hasattachment:yes'

### Send draft

**Slug:** `OUTLOOK_SEND_DRAFT`

Tool to send an existing draft message. Use after creating a draft when you want to deliver it to recipients immediately. Example: Send a draft message with ID 'AAMkAG…'.

### Send email

**Slug:** `OUTLOOK_SEND_EMAIL`

Sends an email with subject, body, recipients, and an optional attachment via Microsoft Graph API. Supports comma-separated email addresses in the to_email field for multiple recipients. Attachments require a non-empty file with valid name and mimetype.

### Update calendar event

**Slug:** `OUTLOOK_UPDATE_CALENDAR_EVENT`

Updates specified fields of an existing Outlook calendar event. Implementation note: To avoid unintentionally clearing properties, the action first fetches the existing event, merges only the provided fields, and then PATCHes the merged updates. Unspecified fields remain unchanged.

### Update Contact

**Slug:** `OUTLOOK_UPDATE_CONTACT`

Updates an existing Outlook contact, identified by `contact_id` for the specified `user_id`, requiring at least one other field to be modified.

### Update email message

**Slug:** `OUTLOOK_UPDATE_EMAIL`

Updates specified properties of an existing email message; `message_id` must identify a valid message within the specified `user_id`'s mailbox.

### Update Email Rule

**Slug:** `OUTLOOK_UPDATE_EMAIL_RULE`

Update an existing email rule

### Update mailbox settings

**Slug:** `OUTLOOK_UPDATE_MAILBOX_SETTINGS`

Tool to update mailbox settings for the signed-in user. Use when you need to configure automatic replies, default time zone, language, or working hours. Example: schedule automatic replies for vacation.


## Triggers

### New Contact Added

**Slug:** `OUTLOOK_CONTACT_TRIGGER`

Triggered when a new contact is added in the Outlook contacts.

### Calendar Event Changes

**Slug:** `OUTLOOK_EVENT_CHANGE_TRIGGER`

Triggered when a new calendar event occurs (created, updated, or deleted) in the Outlook calendar.

### New Calendar Event

**Slug:** `OUTLOOK_EVENT_TRIGGER`

Triggered when a new calendar event is created in the Outlook calendar.

### New Outlook Message

**Slug:** `OUTLOOK_MESSAGE_TRIGGER`

Triggered when a new message is received in the Outlook mailbox.

### New Sent Message

**Slug:** `OUTLOOK_SENT_MESSAGE_TRIGGER`

Triggered when a new message is sent from the Outlook mailbox.
