# Outlook (/integrations/outlook)





{/* MANUAL-CONTENT-START:intro */}

Use [Microsoft Outlook](https://outlook.office365.com) in Sim to send and draft emails, read and organize messages, manage attachments and folders, and create or update calendar events. Switch to trigger mode to start a workflow when a new email arrives.

{/* MANUAL-CONTENT-END */}

## OAuth scopes [#oauth-scopes]

Sim requests these scopes when someone connects an Outlook account. For a self-hosted deployment, register your own app with the provider using the settings below. See [Integrations and OAuth](/platform/self-hosting/integrations-oauth) for setup.

| Setting | Value |
| - | - |
| Redirect URI | `<NEXT_PUBLIC_APP_URL>/api/auth/oauth2/callback/outlook` |
| Environment variables | `MICROSOFT_CLIENT_ID`, `MICROSOFT_CLIENT_SECRET` |

| Scope | Description |
| - | - |
| `openid` | Standard authentication |
| `profile` | Access profile information |
| `email` | Access email address |
| `Mail.ReadWrite` | Read, create, update, and delete your email |
| `Mail.ReadBasic` | Read email properties, excluding body and attachments |
| `Mail.Read` | Read your email |
| `Mail.Send` | Send emails |
| `Calendars.ReadWrite` | Read and manage Outlook calendar events |
| `offline_access` | Access account when not using the application |

## Use the block [#usage-instructions]

Send, draft, read, search, reply, forward, move, copy, and delete email; manage mail folders and attachments; and set categories and flags on messages. Can also list, create, update, delete, and respond to calendar events. Can be used in trigger mode to trigger a workflow when a new email is received.

## Actions [#actions]

### Outlook Send [#outlook-send]

Send emails using Outlook

<ReferenceDetails>
  #### Input [#input]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `to` | string | Yes | Recipient email address (comma-separated for multiple recipients) |
  | `subject` | string | Yes | Email subject |
  | `body` | string | Yes | Email body content |
  | `contentType` | string | No | Content type for the email body (text or html) |
  | `replyToMessageId` | string | No | Message ID to reply to (for threading) |
  | `cc` | string | No | CC recipients (comma-separated) |
  | `bcc` | string | No | BCC recipients (comma-separated) |
  | `attachments` | file\[] | No | Files to attach to the email |

  #### Output [#output]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Email send success status |
  | `status` | string | Delivery status of the email |
  | `timestamp` | string | Timestamp when email was sent |
  | `message` | string | Success or error message |
</ReferenceDetails>

### Outlook Draft [#outlook-draft]

Draft emails using Outlook

<ReferenceDetails>
  #### Input [#input-1]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `to` | string | Yes | Recipient email address |
  | `subject` | string | Yes | Email subject |
  | `body` | string | Yes | Email body content |
  | `contentType` | string | No | Content type for the email body (text or html) |
  | `cc` | string | No | CC recipients (comma-separated) |
  | `bcc` | string | No | BCC recipients (comma-separated) |
  | `attachments` | file\[] | No | Files to attach to the email draft |

  #### Output [#output-1]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Email draft creation success status |
  | `messageId` | string | Unique identifier for the drafted email |
  | `status` | string | Draft status of the email |
  | `subject` | string | Subject of the drafted email |
  | `timestamp` | string | Timestamp when draft was created |
  | `message` | string | Success or error message |
</ReferenceDetails>

### Outlook Read [#outlook-read]

Read emails from Outlook

<ReferenceDetails>
  #### Input [#input-2]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `folder` | string | No | Folder ID to read emails from (e.g., "Inbox", "Drafts", or a folder ID) |
  | `maxResults` | number | No | Maximum number of emails to retrieve (default: 1, max: 10) |
  | `includeAttachments` | boolean | No | Whether to download and include email attachments |

  #### Output [#output-2]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success or status message |
  | `results` | array | Array of email message objects |
  | ↳ `id` | string | Unique message identifier |
  | ↳ `subject` | string | Email subject |
  | ↳ `bodyPreview` | string | Preview of the message body |
  | ↳ `body` | object | Message body |
  | ↳ `contentType` | string | Body content type (text or html) |
  | ↳ `content` | string | Body content |
  | ↳ `sender` | object | Sender information |
  | ↳ `name` | string | Display name of the person or entity |
  | ↳ `address` | string | Email address |
  | ↳ `from` | object | From address information |
  | ↳ `name` | string | Display name of the person or entity |
  | ↳ `address` | string | Email address |
  | ↳ `toRecipients` | array | To recipients |
  | ↳ `name` | string | Display name of the person or entity |
  | ↳ `address` | string | Email address |
  | ↳ `ccRecipients` | array | CC recipients |
  | ↳ `name` | string | Display name of the person or entity |
  | ↳ `address` | string | Email address |
  | ↳ `receivedDateTime` | string | When the message was received (ISO 8601) |
  | ↳ `sentDateTime` | string | When the message was sent (ISO 8601) |
  | ↳ `hasAttachments` | boolean | Whether the message has attachments |
  | ↳ `isRead` | boolean | Whether the message has been read |
  | ↳ `importance` | string | Message importance (low, normal, high) |
  | `attachments` | file\[] | All email attachments flattened from all emails |
</ReferenceDetails>

### Outlook Search [#outlook-search]

Search Outlook messages using a free-text query (Microsoft Graph $search)

<ReferenceDetails>
  #### Input [#input-3]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `query` | string | Yes | Search text matched against the subject, body, sender, and recipients of messages |
  | `maxResults` | number | No | Maximum number of messages to retrieve (default: 10, max: 25) |

  #### Output [#output-3]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success or status message |
  | `results` | array | Array of matching email message objects |
  | ↳ `id` | string | Unique message identifier |
  | ↳ `subject` | string | Email subject |
  | ↳ `bodyPreview` | string | Preview of the message body |
  | ↳ `body` | object | Message body |
  | ↳ `contentType` | string | Body content type (text or html) |
  | ↳ `content` | string | Body content |
  | ↳ `sender` | object | Sender information |
  | ↳ `name` | string | Display name of the person or entity |
  | ↳ `address` | string | Email address |
  | ↳ `from` | object | From address information |
  | ↳ `name` | string | Display name of the person or entity |
  | ↳ `address` | string | Email address |
  | ↳ `toRecipients` | array | To recipients |
  | ↳ `name` | string | Display name of the person or entity |
  | ↳ `address` | string | Email address |
  | ↳ `ccRecipients` | array | CC recipients |
  | ↳ `name` | string | Display name of the person or entity |
  | ↳ `address` | string | Email address |
  | ↳ `receivedDateTime` | string | When the message was received (ISO 8601) |
  | ↳ `sentDateTime` | string | When the message was sent (ISO 8601) |
  | ↳ `hasAttachments` | boolean | Whether the message has attachments |
  | ↳ `isRead` | boolean | Whether the message has been read |
  | ↳ `importance` | string | Message importance (low, normal, high) |
</ReferenceDetails>

### Outlook Reply [#outlook-reply]

Reply to the sender of an Outlook message with a comment

<ReferenceDetails>
  #### Input [#input-4]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `messageId` | string | Yes | The ID of the message to reply to |
  | `comment` | string | No | The reply text to include above the original message |

  #### Output [#output-4]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success or error message |
  | `results` | object | Reply result details |
  | ↳ `status` | string | Reply status |
  | ↳ `timestamp` | string | Timestamp when the reply was sent |
  | ↳ `httpStatus` | number | HTTP status code returned by the API |
  | ↳ `requestId` | string | Microsoft Graph request-id header for tracing |
</ReferenceDetails>

### Outlook Reply All [#outlook-reply-all]

Reply to all recipients of an Outlook message with a comment

<ReferenceDetails>
  #### Input [#input-5]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `messageId` | string | Yes | The ID of the message to reply to |
  | `comment` | string | No | The reply text to include above the original message |

  #### Output [#output-5]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success or error message |
  | `results` | object | Reply-all result details |
  | ↳ `status` | string | Reply status |
  | ↳ `timestamp` | string | Timestamp when the reply was sent |
  | ↳ `httpStatus` | number | HTTP status code returned by the API |
  | ↳ `requestId` | string | Microsoft Graph request-id header for tracing |
</ReferenceDetails>

### Outlook Forward [#outlook-forward]

Forward an existing Outlook message to specified recipients

<ReferenceDetails>
  #### Input [#input-6]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `messageId` | string | Yes | The ID of the message to forward |
  | `to` | string | Yes | Recipient email address(es), comma-separated |
  | `comment` | string | No | Optional comment to include with the forwarded message |

  #### Output [#output-6]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success or error message |
  | `results` | object | Delivery result details |
  | ↳ `status` | string | Delivery status of the email |
  | ↳ `timestamp` | string | Timestamp when email was forwarded |
  | ↳ `httpStatus` | number | HTTP status code returned by the API |
  | ↳ `requestId` | string | Microsoft Graph request-id header for tracing |
  | ↳ `messageId` | string | Forwarded message ID if provided by API |
  | ↳ `internetMessageId` | string | RFC 822 Message-ID if provided |
</ReferenceDetails>

### Outlook Move [#outlook-move]

Move emails between Outlook folders

<ReferenceDetails>
  #### Input [#input-7]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `messageId` | string | Yes | ID of the message to move |
  | `destinationId` | string | Yes | ID of the destination folder |

  #### Output [#output-7]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Email move success status |
  | `message` | string | Success or error message |
  | `messageId` | string | ID of the moved message |
  | `newFolderId` | string | ID of the destination folder |
</ReferenceDetails>

### Outlook Copy [#outlook-copy]

Copy an Outlook message to another folder

<ReferenceDetails>
  #### Input [#input-8]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `messageId` | string | Yes | ID of the message to copy |
  | `destinationId` | string | Yes | ID of the destination folder |

  #### Output [#output-8]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Email copy success status |
  | `message` | string | Success or error message |
  | `originalMessageId` | string | ID of the original message |
  | `copiedMessageId` | string | ID of the copied message |
  | `destinationFolderId` | string | ID of the destination folder |
</ReferenceDetails>

### Outlook Mark as Read [#outlook-mark-as-read]

Mark an Outlook message as read

<ReferenceDetails>
  #### Input [#input-9]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `messageId` | string | Yes | ID of the message to mark as read |

  #### Output [#output-9]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Operation success status |
  | `message` | string | Success or error message |
  | `messageId` | string | ID of the message |
  | `isRead` | boolean | Read status of the message |
</ReferenceDetails>

### Outlook Mark as Unread [#outlook-mark-as-unread]

Mark an Outlook message as unread

<ReferenceDetails>
  #### Input [#input-10]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `messageId` | string | Yes | ID of the message to mark as unread |

  #### Output [#output-10]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Operation success status |
  | `message` | string | Success or error message |
  | `messageId` | string | ID of the message |
  | `isRead` | boolean | Read status of the message |
</ReferenceDetails>

### Outlook Update Message [#outlook-update-message]

Set the categories, follow-up flag, and importance on an Outlook message

<ReferenceDetails>
  #### Input [#input-11]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `messageId` | string | Yes | The ID of the message to update |
  | `categories` | json | No | Array of category names to assign to the message (replaces existing categories; leave empty to keep them unchanged) |
  | `flagStatus` | string | No | Follow-up flag status: notFlagged, flagged, or complete |
  | `importance` | string | No | Message importance: low, normal, or high |

  #### Output [#output-11]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success or error message |
  | `results` | object | Updated message details |
  | ↳ `messageId` | string | ID of the updated message |
  | ↳ `subject` | string | Subject of the message |
  | ↳ `categories` | array | Categories assigned to the message |
  | ↳ `flagStatus` | string | Follow-up flag status of the message |
  | ↳ `importance` | string | Importance of the message |
  | ↳ `isRead` | boolean | Whether the message is read |
</ReferenceDetails>

### Outlook Delete [#outlook-delete]

Delete an Outlook message (move to Deleted Items)

<ReferenceDetails>
  #### Input [#input-12]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `messageId` | string | Yes | ID of the message to delete |

  #### Output [#output-12]

  | Parameter | Type | Description |
  | - | - | - |
  | `success` | boolean | Operation success status |
  | `message` | string | Success or error message |
  | `messageId` | string | ID of the deleted message |
  | `status` | string | Deletion status |
</ReferenceDetails>

### Outlook List Folders [#outlook-list-folders]

List mail folders in the root of the Outlook mailbox

<ReferenceDetails>
  #### Input [#input-13]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `maxResults` | number | No | Maximum number of folders to retrieve (default: 50, max: 100) |
  | `includeHiddenFolders` | boolean | No | Whether to include hidden folders in the results |

  #### Output [#output-13]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success or status message |
  | `results` | array | Array of mail folder objects |
  | ↳ `id` | string | Unique folder identifier |
  | ↳ `displayName` | string | Display name of the folder |
  | ↳ `parentFolderId` | string | Identifier of the parent folder |
  | ↳ `childFolderCount` | number | Number of immediate child folders |
  | ↳ `unreadItemCount` | number | Number of unread items in the folder |
  | ↳ `totalItemCount` | number | Total number of items in the folder |
  | ↳ `isHidden` | boolean | Whether the folder is hidden |
</ReferenceDetails>

### Outlook Create Folder [#outlook-create-folder]

Create a new mail folder in the root of the Outlook mailbox

<ReferenceDetails>
  #### Input [#input-14]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `displayName` | string | Yes | The display name of the new folder |
  | `isHidden` | boolean | No | Whether the new folder is hidden (cannot be changed after creation) |

  #### Output [#output-14]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success or status message |
  | `results` | object | The newly created mail folder |
  | ↳ `id` | string | Unique folder identifier |
  | ↳ `displayName` | string | Display name of the folder |
  | ↳ `parentFolderId` | string | Identifier of the parent folder |
  | ↳ `childFolderCount` | number | Number of immediate child folders |
  | ↳ `unreadItemCount` | number | Number of unread items in the folder |
  | ↳ `totalItemCount` | number | Total number of items in the folder |
  | ↳ `isHidden` | boolean | Whether the folder is hidden |
</ReferenceDetails>

### Outlook List Attachments [#outlook-list-attachments]

List the attachments on an Outlook message (metadata only, without contents)

<ReferenceDetails>
  #### Input [#input-15]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `messageId` | string | Yes | The ID of the message whose attachments to list |

  #### Output [#output-15]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success or status message |
  | `results` | array | Array of attachment metadata objects |
  | ↳ `id` | string | Unique attachment identifier |
  | ↳ `name` | string | Attachment filename |
  | ↳ `contentType` | string | MIME type of the attachment |
  | ↳ `size` | number | Attachment size in bytes |
  | ↳ `isInline` | boolean | Whether the attachment is rendered inline in the message body |
  | ↳ `attachmentType` | string | Microsoft Graph attachment type (e.g. #microsoft.graph.fileAttachment) |
  | ↳ `lastModifiedDateTime` | string | When the attachment was last modified (ISO 8601) |
</ReferenceDetails>

### Outlook Get Attachment [#outlook-get-attachment]

Get a single attachment on an Outlook message, including its file contents

<ReferenceDetails>
  #### Input [#input-16]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `messageId` | string | Yes | The ID of the message that owns the attachment |
  | `attachmentId` | string | Yes | The ID of the attachment to retrieve |

  #### Output [#output-16]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success or status message |
  | `results` | object | Attachment metadata |
  | ↳ `id` | string | Unique attachment identifier |
  | ↳ `name` | string | Attachment filename |
  | ↳ `contentType` | string | MIME type of the attachment |
  | ↳ `size` | number | Attachment size in bytes |
  | ↳ `isInline` | boolean | Whether the attachment is rendered inline in the message body |
  | ↳ `attachmentType` | string | Microsoft Graph attachment type (e.g. #microsoft.graph.fileAttachment) |
  | ↳ `lastModifiedDateTime` | string | When the attachment was last modified (ISO 8601) |
  | `attachments` | file\[] | The downloaded file attachment (empty for non-file attachment types) |
</ReferenceDetails>

### Outlook List Calendar Events [#outlook-list-calendar-events]

List Outlook calendar events within a start/end time window

<ReferenceDetails>
  #### Input [#input-17]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `calendarId` | string | No | ID of the calendar to read. Defaults to the mailbox default calendar. Calendars shared by another user are not supported and may return 403. |
  | `startDateTime` | string | No | Start of the time window (ISO 8601, e.g. 2025-06-03T00:00:00-08:00). Interpreted as UTC if no offset is given. Required unless paging with pageToken. |
  | `endDateTime` | string | No | End of the time window (ISO 8601, e.g. 2025-06-10T00:00:00-08:00). Interpreted as UTC if no offset is given. Required unless paging with pageToken. |
  | `maxResults` | number | No | Maximum number of events to return per page (default: 10, max: 100) |
  | `orderBy` | string | No | Order of events (default: start/dateTime) |
  | `pageToken` | string | No | Full @odata.nextLink URL from a previous page to continue paging |

  #### Output [#output-17]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success or status message |
  | `results` | array | Array of calendar event objects |
  | ↳ `id` | string | Unique event identifier |
  | ↳ `subject` | string | Event subject/title |
  | ↳ `bodyPreview` | string | Preview of the event body |
  | ↳ `start` | object | Event start |
  | ↳ `dateTime` | string | Local date and time (ISO 8601, no offset) |
  | ↳ `timeZone` | string | IANA or Windows time zone name |
  | ↳ `end` | object | Event end |
  | ↳ `dateTime` | string | Local date and time (ISO 8601, no offset) |
  | ↳ `timeZone` | string | IANA or Windows time zone name |
  | ↳ `isAllDay` | boolean | Whether the event lasts the entire day |
  | ↳ `location` | string | Event location display name |
  | ↳ `organizer` | object | Event organizer |
  | ↳ `name` | string | Display name of the person or entity |
  | ↳ `address` | string | Email address |
  | ↳ `attendees` | array | Event attendees |
  | ↳ `name` | string | Attendee display name |
  | ↳ `address` | string | Attendee email address |
  | ↳ `type` | string | Attendee type (required, optional, or resource) |
  | ↳ `response` | string | Attendee response status (none, accepted, declined, tentativelyAccepted, ...) |
  | ↳ `onlineMeeting` | object | Online-meeting join details, if any |
  | ↳ `joinUrl` | string | URL to join the online meeting |
  | ↳ `webLink` | string | URL that opens the event in Outlook on the web |
  | `nextLink` | string | URL for the next page of results, if any |
</ReferenceDetails>

### Outlook Get Calendar Event [#outlook-get-calendar-event]

Get a single Outlook calendar event by ID

<ReferenceDetails>
  #### Input [#input-18]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `eventId` | string | Yes | The ID of the calendar event to retrieve |

  #### Output [#output-18]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success or status message |
  | `results` | object | The calendar event object |
  | ↳ `id` | string | Unique event identifier |
  | ↳ `subject` | string | Event subject/title |
  | ↳ `bodyPreview` | string | Preview of the event body |
  | ↳ `start` | object | Event start |
  | ↳ `dateTime` | string | Local date and time (ISO 8601, no offset) |
  | ↳ `timeZone` | string | IANA or Windows time zone name |
  | ↳ `end` | object | Event end |
  | ↳ `dateTime` | string | Local date and time (ISO 8601, no offset) |
  | ↳ `timeZone` | string | IANA or Windows time zone name |
  | ↳ `isAllDay` | boolean | Whether the event lasts the entire day |
  | ↳ `location` | string | Event location display name |
  | ↳ `organizer` | object | Event organizer |
  | ↳ `name` | string | Display name of the person or entity |
  | ↳ `address` | string | Email address |
  | ↳ `attendees` | array | Event attendees |
  | ↳ `name` | string | Attendee display name |
  | ↳ `address` | string | Attendee email address |
  | ↳ `type` | string | Attendee type (required, optional, or resource) |
  | ↳ `response` | string | Attendee response status (none, accepted, declined, tentativelyAccepted, ...) |
  | ↳ `onlineMeeting` | object | Online-meeting join details, if any |
  | ↳ `joinUrl` | string | URL to join the online meeting |
  | ↳ `webLink` | string | URL that opens the event in Outlook on the web |
</ReferenceDetails>

### Outlook Create Calendar Event [#outlook-create-calendar-event]

Create a new Outlook calendar event

<ReferenceDetails>
  #### Input [#input-19]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `calendarId` | string | No | ID of the calendar to create the event in. Defaults to the mailbox default calendar. Calendars shared by another user are not supported and may return 403. |
  | `subject` | string | Yes | Event subject/title |
  | `startDateTime` | string | Yes | Start time (ISO 8601, e.g. 2025-06-03T10:00:00-08:00). A date-only value (2025-06-03) for both start and end creates an all-day event. |
  | `endDateTime` | string | Yes | End time (ISO 8601, e.g. 2025-06-03T11:00:00-08:00). A date-only value (2025-06-04) for both start and end creates an all-day event. |
  | `timeZone` | string | No | IANA or Windows time zone name (e.g. America/Los\_Angeles). Used for datetimes without a UTC offset. Defaults to UTC. |
  | `body` | string | No | Event body content |
  | `contentType` | string | No | Content type for the event body (text or html) |
  | `location` | string | No | Event location display name |
  | `attendees` | string | No | Attendee email addresses (comma-separated) |
  | `isAllDay` | boolean | No | Whether the event lasts the entire day |
  | `isOnlineMeeting` | boolean | No | Attach an online meeting to the event. The join URL depends on the meeting providers the mailbox allows (Teams on work/school accounts); personal accounts have no supported provider, so onlineMeeting.joinUrl stays null there. |

  #### Output [#output-19]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success or status message |
  | `results` | object | The created calendar event object |
  | ↳ `id` | string | Unique event identifier |
  | ↳ `subject` | string | Event subject/title |
  | ↳ `bodyPreview` | string | Preview of the event body |
  | ↳ `start` | object | Event start |
  | ↳ `dateTime` | string | Local date and time (ISO 8601, no offset) |
  | ↳ `timeZone` | string | IANA or Windows time zone name |
  | ↳ `end` | object | Event end |
  | ↳ `dateTime` | string | Local date and time (ISO 8601, no offset) |
  | ↳ `timeZone` | string | IANA or Windows time zone name |
  | ↳ `isAllDay` | boolean | Whether the event lasts the entire day |
  | ↳ `location` | string | Event location display name |
  | ↳ `organizer` | object | Event organizer |
  | ↳ `name` | string | Display name of the person or entity |
  | ↳ `address` | string | Email address |
  | ↳ `attendees` | array | Event attendees |
  | ↳ `name` | string | Attendee display name |
  | ↳ `address` | string | Attendee email address |
  | ↳ `type` | string | Attendee type (required, optional, or resource) |
  | ↳ `response` | string | Attendee response status (none, accepted, declined, tentativelyAccepted, ...) |
  | ↳ `onlineMeeting` | object | Online-meeting join details, if any |
  | ↳ `joinUrl` | string | URL to join the online meeting |
  | ↳ `webLink` | string | URL that opens the event in Outlook on the web |
</ReferenceDetails>

### Outlook Update Calendar Event [#outlook-update-calendar-event]

Update an existing Outlook calendar event

<ReferenceDetails>
  #### Input [#input-20]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `eventId` | string | Yes | The ID of the calendar event to update |
  | `subject` | string | No | New event subject/title |
  | `startDateTime` | string | No | New start time (ISO 8601). A date-only value (2025-06-03) converts the event to all-day. |
  | `endDateTime` | string | No | New end time (ISO 8601). A date-only value (2025-06-04) converts the event to all-day. |
  | `timeZone` | string | No | IANA or Windows time zone name applied to updated datetimes without a UTC offset. Defaults to UTC. |
  | `body` | string | No | New event body content |
  | `contentType` | string | No | Content type for the event body (text or html) |
  | `location` | string | No | New event location display name |
  | `attendees` | string | No | Replacement attendee email addresses (comma-separated) |
  | `isAllDay` | boolean | No | Whether the event lasts the entire day. Setting this true requires also sending startDateTime, since Graph needs midnight bounds. |
  | `isOnlineMeeting` | boolean | No | Attach an online meeting to the event. The join URL depends on the meeting providers the mailbox allows (Teams on work/school accounts); personal accounts have no supported provider, so onlineMeeting.joinUrl stays null there. |

  #### Output [#output-20]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success or status message |
  | `results` | object | The updated calendar event object |
  | ↳ `id` | string | Unique event identifier |
  | ↳ `subject` | string | Event subject/title |
  | ↳ `bodyPreview` | string | Preview of the event body |
  | ↳ `start` | object | Event start |
  | ↳ `dateTime` | string | Local date and time (ISO 8601, no offset) |
  | ↳ `timeZone` | string | IANA or Windows time zone name |
  | ↳ `end` | object | Event end |
  | ↳ `dateTime` | string | Local date and time (ISO 8601, no offset) |
  | ↳ `timeZone` | string | IANA or Windows time zone name |
  | ↳ `isAllDay` | boolean | Whether the event lasts the entire day |
  | ↳ `location` | string | Event location display name |
  | ↳ `organizer` | object | Event organizer |
  | ↳ `name` | string | Display name of the person or entity |
  | ↳ `address` | string | Email address |
  | ↳ `attendees` | array | Event attendees |
  | ↳ `name` | string | Attendee display name |
  | ↳ `address` | string | Attendee email address |
  | ↳ `type` | string | Attendee type (required, optional, or resource) |
  | ↳ `response` | string | Attendee response status (none, accepted, declined, tentativelyAccepted, ...) |
  | ↳ `onlineMeeting` | object | Online-meeting join details, if any |
  | ↳ `joinUrl` | string | URL to join the online meeting |
  | ↳ `webLink` | string | URL that opens the event in Outlook on the web |
</ReferenceDetails>

### Outlook Delete Calendar Event [#outlook-delete-calendar-event]

Delete an Outlook calendar event by ID

<ReferenceDetails>
  #### Input [#input-21]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `eventId` | string | Yes | The ID of the calendar event to delete |

  #### Output [#output-21]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success or status message |
  | `results` | object | Delete result details |
  | ↳ `eventId` | string | ID of the deleted event |
  | ↳ `status` | string | Deletion status |
</ReferenceDetails>

### Outlook Respond to Calendar Invite [#outlook-respond-to-calendar-invite]

Accept, tentatively accept, or decline an Outlook calendar event invitation

<ReferenceDetails>
  #### Input [#input-22]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `eventId` | string | Yes | The ID of the calendar event to respond to |
  | `responseType` | string | Yes | The response: accept, tentativelyAccept, or decline |
  | `comment` | string | No | Optional comment to include with the response |
  | `sendResponse` | boolean | No | Whether to send a response to the organizer (default: true) |

  #### Output [#output-22]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success or status message |
  | `results` | object | Response result details |
  | ↳ `eventId` | string | ID of the event responded to |
  | ↳ `responseType` | string | The response that was sent |
  | ↳ `status` | string | Response status |
  | ↳ `httpStatus` | number | HTTP status code returned by the API |
  | ↳ `requestId` | string | Microsoft Graph request-id header for tracing |
</ReferenceDetails>

## Triggers [#triggers]

A trigger starts a workflow when a supported event occurs in this service.

These triggers poll for new data on a schedule.

### Outlook Email Trigger [#outlook-email-trigger]

Triggers when new emails are received in Outlook (requires Microsoft credentials)

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `triggerCredentials` | string | Yes | This trigger requires outlook credentials to access your account. |
  | `folderIds` | string | No | Choose which Outlook folders to monitor. Leave empty to monitor all emails. |
  | `folderFilterBehavior` | string | Yes | Include only emails from selected folders, or exclude emails from selected folders |
  | `markAsRead` | boolean | No | Automatically mark emails as read after processing |
  | `includeAttachments` | boolean | No | Download and include email attachments in the trigger payload |

  #### Output [#output-23]

  | Parameter | Type | Description |
  | - | - | - |
  | `email` | object | |
  | ↳ `id` | string | Outlook message ID |
  | ↳ `conversationId` | string | Outlook conversation ID |
  | ↳ `subject` | string | Email subject line |
  | ↳ `from` | string | Sender email address |
  | ↳ `to` | string | Recipient email address |
  | ↳ `cc` | string | CC recipients |
  | ↳ `date` | string | Email date in ISO format |
  | ↳ `bodyText` | string | Plain text email body |
  | ↳ `bodyHtml` | string | HTML email body |
  | ↳ `hasAttachments` | boolean | Whether email has attachments |
  | ↳ `attachments` | file\[] | Array of email attachments as files (if includeAttachments is enabled) |
  | ↳ `isRead` | boolean | Whether email is read |
  | ↳ `folderId` | string | Outlook folder ID where email is located |
  | ↳ `messageId` | string | Message ID for threading |
  | ↳ `threadId` | string | Thread ID for conversation threading |
  | `timestamp` | string | Event timestamp |
</ReferenceDetails>
