Microsoft Outlook
Manage Microsoft 365 email, calendars, contacts, and folders with attachment support
Overview
The Microsoft Outlook tool provides comprehensive access to Microsoft 365 email, calendar, contacts, and folder management via the Microsoft Graph API v1.0. It supports: (1) Messages — send, get, getAll, delete, move, update, and reply with binary attachment support; (2) Drafts — create, get, getAll, delete, send, update with binary attachments; (3) Calendars — create, get, getAll, delete, update; (4) Events — create, get, getAll, delete, update with timezone and all-day support; (5) Contacts — create, get, getAll, delete, update with rich contact fields; (6) Mail Folders — create, get, getAll, delete, update with recursive subfolder listing; (7) Folder Messages — getAll with filtering; (8) Message Attachments — add (with chunked upload for large files), download, get, getAll. Authentication via Microsoft OAuth2 with automatic token refresh and shared mailbox support.
Category: Communication
Tool Name: microsoft_outlook
Version: 1
Appearance: Icon: lucide-Mail | Color: #0078D4
Node Type
Action (Binary) — handles file/binary data operations
| Direction | Port(s) |
|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires Microsoft OAuth2 credentials.
See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|
| Calendar | calendar |
| Contact | contact |
| Draft | draft |
| Event | event |
| Folder | folder |
| Folder Message | folderMessage |
| Message | message |
| Message Attachment | messageAttachment |
Operations
| Operation | Value | Description |
|---|
| Delete | delete | Delete a message |
| Get | get | Get a message |
| Get Many | getAll | List messages |
| Move | move | Move a message to a folder |
| Reply | reply | Reply to a message |
| Send | send | Send a new email |
| Update | update | Update a message |
| Create | create | Create a draft |
| Delete | delete | Delete a draft |
| Get | get | Get a draft |
| Get Many | getAll | List drafts |
| Send | send | Send a draft |
| Update | update | Update a draft |
| Create | create | Create a calendar |
| Delete | delete | Delete a calendar |
| Get | get | Get a calendar |
| Get Many | getAll | List calendars |
| Update | update | Update a calendar |
| Create | create | Create an event |
| Delete | delete | Delete an event |
| Get | get | Get an event |
| Get Many | getAll | List events |
| Update | update | Update an event |
| Create | create | Create a contact |
| Delete | delete | Delete a contact |
| Get | get | Get a contact |
| Get Many | getAll | List contacts |
| Update | update | Update a contact |
| Create | create | Create a mail folder |
| Delete | delete | Delete a mail folder |
| Get | get | Get a mail folder |
| Get Many | getAll | List mail folders |
| Update | update | Rename a mail folder |
| Get Many | getAll | List messages in a folder |
| Add | add | Add an attachment to a message |
| Download | download | Download an attachment |
| Get | get | Get attachment metadata |
| Get Many | getAll | List attachments on a message |
The operation list is scoped to the resource you pick, which is why the same values appear against several resources.
Parameters
Message: Send
| Parameter | Type | Required | Default | Description |
|---|
| To | string | Yes | — | Comma-separated list of email addresses of recipients. Supports expressions like {{ $json.email }}. |
Subject (subject) | string | No | — | The subject of the message. Supports expressions. |
Message (bodyContent) | string | No | — | Message body content. Supports expressions. |
Additional Fields (additionalFields) | collection | No | {} | Extra recipients, attachments and delivery settings. |
| — Attachment Binary Properties | string | No | — | Comma-separated list of binary property names to attach (e.g. “data,attachment_0”). |
| — BCC Recipients | string | No | — | Comma-separated list of BCC email addresses. |
| — Categories | string | No | — | Comma-separated list of category names. |
| — CC Recipients | string | No | — | Comma-separated list of CC email addresses. |
| — Custom Headers | json | No | [] | JSON array of {name, value} objects for custom headers. |
| — From | string | No | — | The owner of the mailbox from which the message is sent. |
| — Importance | options | No | Normal | Message importance flag. |
| | | | Options: Low, Normal, High |
| — Message Type | options | No | html | Whether the body is HTML or plain text. |
| | | | Options: html (HTML), Text |
| — Read Receipt Requested | boolean | No | false | Whether to ask for a read receipt. |
| — Reply To | string | No | — | Address replies should go to. |
| — Save To Sent Items | boolean | No | true | Whether a copy is kept in Sent Items. |
Message: Get
| Parameter | Type | Required | Default | Description |
|---|
| Message ID | string | Yes | — | The ID of the message. Supports expressions like {{ $json.messageId }}. |
| Output | options | No | simple | How much of the record to return. |
| | | | Options: simple (Simplified), raw (Raw), fields (Select Included Fields) |
| Fields | string | No | — | Comma-separated list of fields to include in the output (for Select Included Fields mode). (shown when Output is fields) |
| Options | collection | No | {} | Attachment and MIME download settings. |
| — Download Attachments | boolean | No | false | Whether to download message attachments as binary data. |
| — Attachments Prefix | string | No | attachment_ | Prefix for binary property names (e.g. attachment_0, attachment_1). |
| — Get MIME Content | boolean | No | false | Whether to also download the raw MIME content as .eml file. |
| — MIME Binary Property | string | No | data | Binary property name for the MIME content. |
| — MIME File Name | string | No | — | Custom filename for the MIME .eml file (defaults to message ID). |
Message: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Output | options | No | simple | How much of each record to return. |
| | | | Options: simple, raw, fields |
| Fields | string | No | — | Comma-separated list of fields to include in the output (for Select Included Fields mode). (shown when Output is fields) |
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | Narrow the messages returned. |
| — Filter By | options | No | filters | Whether to build a filter from the fields below or run a free-text search. |
| | | | Options: filters (Filters), search (Search) |
| — Search | string | No | — | Free-text search string. |
| — Custom Filter Query | string | No | — | Raw OData $filter expression. |
| — Has Attachments | boolean | No | false | Only messages carrying attachments. |
| — Read Status | options | No | both | Whether to include read, unread or both. |
| | | | Options: both (Unread and Read), unread (Unread Only), read (Read Only) |
| — Sender | string | No | — | Only messages from this sender. |
| — Received After | string | No | — | Only messages received after this ISO datetime. |
| — Received Before | string | No | — | Only messages received before this ISO datetime. |
| — Folders to Include | string | No | — | Comma-separated folder IDs to include. |
| — Folders to Exclude | string | No | — | Comma-separated folder IDs to exclude. |
| Options | collection | No | {} | Attachment and MIME download settings. |
| — Download Attachments | boolean | No | false | Whether to download message attachments as binary data. |
| — Attachments Prefix | string | No | attachment_ | Prefix for binary property names (e.g. attachment_0, attachment_1). |
| — Get MIME Content | boolean | No | false | Whether to also download the raw MIME content as .eml file. |
| — MIME Binary Property | string | No | data | Binary property name for the MIME content. |
| — MIME File Name | string | No | — | Custom filename for the MIME .eml file (defaults to message ID). |
Message: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Message ID | string | Yes | — | The ID of the message. Supports expressions. |
Message: Move
| Parameter | Type | Required | Default | Description |
|---|
| Message ID | string | Yes | — | The ID of the message. Supports expressions. |
| Destination Folder ID | string | Yes | — | The ID of the folder to move the message to. Supports expressions. |
Message: Update
| Parameter | Type | Required | Default | Description |
|---|
| Message ID | string | Yes | — | The ID of the message. Supports expressions. |
Update Fields (updateFields) | collection | No | {} | The message properties to change. |
| — BCC Recipients | string | No | — | Comma-separated list of BCC email addresses. |
| — Categories | string | No | — | Comma-separated list of category names. |
| — CC Recipients | string | No | — | Comma-separated list of CC email addresses. |
| — Custom Headers | json | No | [] | JSON array of {name, value} objects for custom headers. |
| — Folder ID | string | No | — | Move message to this folder as part of the update. |
| — Importance | options | No | Normal | Message importance flag. |
| | | | Options: Low, Normal, High |
| — Is Read | boolean | No | false | Whether the message is marked read. |
| — Message | string | No | — | Replacement body content. |
| — Message Type | options | No | html | Whether the body is HTML or plain text. |
| | | | Options: html, Text |
| — Read Receipt Requested | boolean | No | false | Whether to ask for a read receipt. |
| — Reply To | string | No | — | Address replies should go to. |
| — Subject | string | No | — | Replacement subject line. |
| — To | string | No | — | Replacement recipient list. |
Message: Reply
| Parameter | Type | Required | Default | Description |
|---|
| Message ID | string | Yes | — | The ID of the message. Supports expressions. |
| Reply to Sender Only | boolean | No | false | Whether to reply to the sender only or to all recipients. |
Message (replyMessage) | string | No | — | Reply message body content. Supports expressions. |
Additional Fields (replyAdditionalFields) | collection | No | {} | Extra recipients, attachments and delivery settings for the reply. |
| — Attachment Binary Properties | string | No | — | Comma-separated list of binary property names to attach. |
| — BCC Recipients | string | No | — | Comma-separated list of BCC email addresses. |
| — CC Recipients | string | No | — | Comma-separated list of CC email addresses. |
| — From | string | No | — | The mailbox the reply is sent from. |
| — Importance | options | No | Normal | Message importance flag. |
| | | | Options: Low, Normal, High |
| — Message Type | options | No | html | Whether the body is HTML or plain text. |
| | | | Options: html, Text |
| — Read Receipt Requested | boolean | No | false | Whether to ask for a read receipt. |
| — Reply To | string | No | — | Address replies should go to. |
| — Save as Draft | boolean | No | false | Save the reply as a draft instead of sending it. |
| — Subject | string | No | — | Override the reply subject. |
| — To | string | No | — | Override the reply recipients. |
Draft: Create
| Parameter | Type | Required | Default | Description |
|---|
Subject (draftSubject) | string | No | — | The subject of the draft. Supports expressions. |
Message (draftBodyContent) | string | No | — | The draft body content. Supports expressions. |
Additional Fields (draftAdditionalFields) | collection | No | {} | Extra recipients, attachments and delivery settings. |
| — Attachment Binary Properties | string | No | — | Comma-separated list of binary property names to attach. |
| — BCC Recipients | string | No | — | Comma-separated list of BCC email addresses. |
| — Categories | string | No | — | Comma-separated list of category names. |
| — CC Recipients | string | No | — | Comma-separated list of CC email addresses. |
| — Custom Headers | json | No | [] | JSON array of {name, value} objects for custom headers. |
| — From | string | No | — | The mailbox the draft is written from. |
| — Importance | options | No | Normal | Message importance flag. |
| | | | Options: Low, Normal, High |
| — Message Type | options | No | html | Whether the body is HTML or plain text. |
| | | | Options: html, Text |
| — Read Receipt Requested | boolean | No | false | Whether to ask for a read receipt. |
| — Reply To | string | No | — | Address replies should go to. |
| — To | string | No | — | Comma-separated recipient list. |
Draft: Get
| Parameter | Type | Required | Default | Description |
|---|
| Draft ID | string | Yes | — | The ID of the draft. Supports expressions. |
| Output | options | No | simple | How much of the record to return. |
| | | | Options: simple, raw, fields |
| Fields | string | No | — | Comma-separated list of fields to include in the output (for Select Included Fields mode). (shown when Output is fields) |
| Options | collection | No | {} | Attachment and MIME download settings. |
| — Download Attachments | boolean | No | false | Whether to download message attachments as binary data. |
| — Attachments Prefix | string | No | attachment_ | Prefix for binary property names. |
| — Get MIME Content | boolean | No | false | Whether to also download the raw MIME content as .eml file. |
| — MIME Binary Property | string | No | data | Binary property name for the MIME content. |
| — MIME File Name | string | No | — | Custom filename for the MIME .eml file (defaults to message ID). |
Draft: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Output | options | No | simple | How much of each record to return. |
| | | | Options: simple, raw, fields |
| Fields | string | No | — | Comma-separated list of fields to include in the output. (shown when Output is fields) |
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Options | collection | No | {} | Attachment and MIME download settings. |
| — Download Attachments | boolean | No | false | Whether to download message attachments as binary data. |
| — Attachments Prefix | string | No | attachment_ | Prefix for binary property names. |
| — Get MIME Content | boolean | No | false | Whether to also download the raw MIME content as .eml file. |
| — MIME Binary Property | string | No | data | Binary property name for the MIME content. |
| — MIME File Name | string | No | — | Custom filename for the MIME .eml file. |
Draft: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Draft ID | string | Yes | — | The ID of the draft. Supports expressions. |
Draft: Send
| Parameter | Type | Required | Default | Description |
|---|
| Draft ID | string | Yes | — | The ID of the draft. Supports expressions. |
| To (Override) | string | No | — | Optionally update recipients before sending. |
Draft: Update
| Parameter | Type | Required | Default | Description |
|---|
| Draft ID | string | Yes | — | The ID of the draft. Supports expressions. |
Update Fields (draftUpdateFields) | collection | No | {} | The draft properties to change. |
| — BCC Recipients | string | No | — | Comma-separated list of BCC email addresses. |
| — Categories | string | No | — | Comma-separated list of category names. |
| — CC Recipients | string | No | — | Comma-separated list of CC email addresses. |
| — From | string | No | — | The mailbox the draft is written from. |
| — Importance | options | No | Normal | Message importance flag. |
| | | | Options: Low, Normal, High |
| — Is Read | boolean | No | false | Whether the draft is marked read. |
| — Message | string | No | — | Replacement body content. |
| — Message Type | options | No | html | Whether the body is HTML or plain text. |
| | | | Options: html, Text |
| — Read Receipt Requested | boolean | No | false | Whether to ask for a read receipt. |
| — Reply To | string | No | — | Address replies should go to. |
| — Subject | string | No | — | Replacement subject line. |
| — To | string | No | — | Replacement recipient list. |
Calendar: Create
| Parameter | Type | Required | Default | Description |
|---|
| Name | string | Yes | — | The name of the new calendar. Supports expressions. |
Additional Fields (calendarAdditionalFields) | collection | No | {} | Optional placement and appearance. |
| — Calendar Group ID | string | No | — | Create calendar in this calendar group. |
| — Color | options | No | lightBlue | The calendar’s colour in Outlook. |
| | | | Options: lightBlue, lightBrown, lightGray, lightGreen, lightOrange, lightPink, lightRed, lightTeal, lightYellow |
Calendar: Get
| Parameter | Type | Required | Default | Description |
|---|
| Calendar ID | string | Yes | — | The ID of the calendar. Supports expressions. |
Calendar: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
Custom Filter (calendarFilter) | string | No | — | OData $filter query for calendars. |
Calendar: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Calendar ID | string | Yes | — | The ID of the calendar. Supports expressions. |
Calendar: Update
| Parameter | Type | Required | Default | Description |
|---|
| Calendar ID | string | Yes | — | The ID of the calendar. Supports expressions. |
Update Fields (calendarUpdateFields) | collection | No | {} | The calendar properties to change. |
| — Color | options | No | lightBlue | The calendar’s colour in Outlook. |
| | | | Options: lightBlue, lightBrown, lightGray, lightGreen, lightOrange, lightPink, lightRed, lightTeal, lightYellow |
| — Is Default Calendar | boolean | No | false | Whether this becomes the mailbox’s default calendar. |
| — Name | string | No | — | Replacement calendar name. |
Event: Create
| Parameter | Type | Required | Default | Description |
|---|
| Calendar ID | string | Yes | — | The ID of the calendar for this event. Supports expressions. |
| Title | string | Yes | — | The event title. Supports expressions. |
| Start | string | Yes | — | ISO 8601 datetime string. Supports expressions. |
| End | string | Yes | — | ISO 8601 datetime string. Supports expressions. |
Additional Fields (eventAdditionalFields) | collection | No | {} | Optional event detail. |
| — Categories | string | No | — | Comma-separated list of category names. |
| — Description | string | No | — | The event body text. |
| — Hide Attendees | boolean | No | false | Whether attendees are hidden from each other. |
| — Importance | options | No | normal | Event importance flag. |
| | | | Options: low, normal, high |
| — Is All Day | boolean | No | false | Whether the event covers the whole day. |
| — Is Online Meeting | boolean | No | false | Whether an online meeting link is attached. |
| — Sensitivity | options | No | normal | The event’s privacy level. |
| | | | Options: normal, personal, private, confidential |
| — Show As | options | No | busy | How the time appears in free/busy. |
| | | | Options: busy, free, oof (out of office), tentative, workingElsewhere |
| — Timezone | string | No | UTC | Timezone the start and end values are expressed in. |
Event: Get
| Parameter | Type | Required | Default | Description |
|---|
| Event ID | string | Yes | — | The ID of the event. Supports expressions. |
| Output | options | No | simple | How much of the record to return. |
| | | | Options: simple, raw, fields |
| Fields | string | No | — | Comma-separated list of fields to include in the output. (shown when Output is fields) |
Event: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Calendar ID | string | Yes | — | The ID of the calendar for this event. Supports expressions. |
| Output | options | No | simple | How much of each record to return. |
| | | | Options: simple, raw, fields |
| Fields | string | No | — | Comma-separated list of fields to include in the output. (shown when Output is fields) |
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| From All Calendars | boolean | No | false | Whether to fetch events from all calendars. |
Custom Filter (eventFilter) | string | No | — | OData $filter query for events. |
Event: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Event ID | string | Yes | — | The ID of the event. Supports expressions. |
Event: Update
| Parameter | Type | Required | Default | Description |
|---|
| Event ID | string | Yes | — | The ID of the event. Supports expressions. |
Update Fields (eventUpdateFields) | collection | No | {} | The event properties to change. |
| — Categories | string | No | — | Comma-separated list of category names. |
| — Description | string | No | — | The event body text. |
| — End | string | No | — | Replacement end datetime (ISO 8601). |
| — Hide Attendees | boolean | No | false | Whether attendees are hidden from each other. |
| — Importance | options | No | normal | Event importance flag. |
| | | | Options: low, normal, high |
| — Is All Day | boolean | No | false | Whether the event covers the whole day. |
| — Is Online Meeting | boolean | No | false | Whether an online meeting link is attached. |
| — Sensitivity | options | No | normal | The event’s privacy level. |
| | | | Options: normal, personal, private, confidential |
| — Show As | options | No | busy | How the time appears in free/busy. |
| | | | Options: busy, free, oof, tentative, workingElsewhere |
| — Start | string | No | — | Replacement start datetime (ISO 8601). |
| — Subject | string | No | — | Replacement event title. |
| — Timezone | string | No | UTC | Timezone the start and end values are expressed in. |
| Parameter | Type | Required | Default | Description |
|---|
| Given Name | string | Yes | — | The contact’s given name. Supports expressions. |
Additional Fields (contactAdditionalFields) | collection | No | {} | The rest of the contact card. |
| — Assistant Name | string | No | — | Name of the contact’s assistant. |
| — Birthday | string | No | — | Birthday as an ISO date. |
| — Business Address | json | No | {} | Business address object. |
| — Business Home Page | string | No | — | Business web page. |
| — Business Phones | string | No | — | Comma-separated business phone numbers. |
| — Categories | string | No | — | Comma-separated list of category names. |
| — Children | string | No | — | Comma-separated names of children. |
| — Company Name | string | No | — | Employer name. |
| — Department | string | No | — | Department within the company. |
| — Display Name | string | No | — | The name shown in Outlook. |
| — Email Addresses | json | No | [] | JSON array of {name, address} objects. |
| — File As | string | No | — | How the contact is filed/sorted. |
| — Home Address | json | No | {} | Home address object. |
| — Home Phones | string | No | — | Comma-separated home phone numbers. |
| — IM Addresses | string | No | — | Comma-separated instant-messaging addresses. |
| — Initials | string | No | — | The contact’s initials. |
| — Job Title | string | No | — | The contact’s job title. |
| — Manager | string | No | — | The contact’s manager. |
| — Middle Name | string | No | — | The contact’s middle name. |
| — Mobile Phone | string | No | — | Mobile phone number. |
| — Nick Name | string | No | — | The contact’s nickname. |
| — Office Location | string | No | — | Office location. |
| — Other Address | json | No | {} | Additional address object. |
| — Personal Notes | string | No | — | Free-text notes. |
| — Profession | string | No | — | The contact’s profession. |
| — Spouse Name | string | No | — | Name of the contact’s spouse. |
| — Surname | string | No | — | The contact’s surname. |
| — Title | string | No | — | Honorific title. |
| Parameter | Type | Required | Default | Description |
|---|
| Contact ID | string | Yes | — | The ID of the contact. Supports expressions. |
| Output | options | No | simple | How much of the record to return. |
| | | | Options: simple, raw, fields |
| Fields | string | No | — | Comma-separated list of fields to include in the output. (shown when Output is fields) |
| Parameter | Type | Required | Default | Description |
|---|
| Output | options | No | simple | How much of each record to return. |
| | | | Options: simple, raw, fields |
| Fields | string | No | — | Comma-separated list of fields to include in the output. (shown when Output is fields) |
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Email Filter | string | No | — | Filter contacts by email address. |
Custom Filter (contactFilter) | string | No | — | OData $filter query for contacts. |
| Parameter | Type | Required | Default | Description |
|---|
| Contact ID | string | Yes | — | The ID of the contact. Supports expressions. |
| Parameter | Type | Required | Default | Description |
|---|
| Contact ID | string | Yes | — | The ID of the contact. Supports expressions. |
Update Fields (contactUpdateFields) | collection | No | {} | The contact properties to change. |
| — Business Phones | string | No | — | Comma-separated business phone numbers. |
| — Categories | string | No | — | Comma-separated list of category names. |
| — Company Name | string | No | — | Employer name. |
| — Department | string | No | — | Department within the company. |
| — Display Name | string | No | — | The name shown in Outlook. |
| — Email Addresses | json | No | [] | JSON array of {name, address} objects. |
| — Given Name | string | No | — | The contact’s given name. |
| — Job Title | string | No | — | The contact’s job title. |
| — Mobile Phone | string | No | — | Mobile phone number. |
| — Surname | string | No | — | The contact’s surname. |
Folder: Create
| Parameter | Type | Required | Default | Description |
|---|
| Display Name | string | Yes | — | The name of the new mail folder. Supports expressions. |
Parent Folder ID (parentFolderId) | string | No | — | Optional parent folder ID for creating a subfolder. |
Folder: Get
| Parameter | Type | Required | Default | Description |
|---|
| Folder ID | string | Yes | — | The ID of the mail folder. Supports expressions. |
Folder: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Include Child Folders | boolean | No | false | Whether to recursively include subfolders. |
Parent Folder ID (parentFolderFilter) | string | No | — | Scope listing to this parent folder. |
Folder: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Folder ID | string | Yes | — | The ID of the mail folder. Supports expressions. |
Folder: Update
| Parameter | Type | Required | Default | Description |
|---|
| Folder ID | string | Yes | — | The ID of the mail folder. Supports expressions. |
| New Display Name | string | Yes | — | The folder’s new name. Supports expressions. |
Folder Message: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Folder ID | string | Yes | — | The ID of the mail folder to list messages from. Supports expressions. |
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | Narrow the messages returned. |
| — Filter By | options | No | filters | Whether to build a filter from the fields below or run a free-text search. |
| | | | Options: filters, search |
| — Search | string | No | — | Free-text search string. |
| — Custom Filter Query | string | No | — | Raw OData $filter expression. |
| — Has Attachments | boolean | No | false | Only messages carrying attachments. |
| — Read Status | options | No | both | Whether to include read, unread or both. |
| | | | Options: both, unread, read |
| — Sender | string | No | — | Only messages from this sender. |
| — Received After | string | No | — | Only messages received after this ISO datetime. |
| — Received Before | string | No | — | Only messages received before this ISO datetime. |
| — Folders to Include | string | No | — | Comma-separated folder IDs to include. |
| — Folders to Exclude | string | No | — | Comma-separated folder IDs to exclude. |
| Options | collection | No | {} | Attachment and MIME download settings. |
| — Download Attachments | boolean | No | false | Whether to download message attachments as binary data. |
| — Attachments Prefix | string | No | attachment_ | Prefix for binary property names. |
| — Get MIME Content | boolean | No | false | Whether to also download the raw MIME content as .eml file. |
| — MIME Binary Property | string | No | data | Binary property name for the MIME content. |
| — MIME File Name | string | No | — | Custom filename for the MIME .eml file. |
Message Attachment: Add
| Parameter | Type | Required | Default | Description |
|---|
| Message ID | string | Yes | — | The ID of the message. Supports expressions. |
| Binary Property | string | No | data | Name of the binary property to upload as attachment. |
| File Name | string | No | — | Override filename for the attachment. |
Message Attachment: Download
| Parameter | Type | Required | Default | Description |
|---|
| Message ID | string | Yes | — | The ID of the message. Supports expressions. |
| Attachment ID | string | Yes | — | The ID of the attachment. Supports expressions. |
| Binary Property | string | No | data | Binary property the downloaded file is written to. |
Message Attachment: Get
| Parameter | Type | Required | Default | Description |
|---|
| Message ID | string | Yes | — | The ID of the message. Supports expressions. |
| Attachment ID | string | Yes | — | The ID of the attachment. Supports expressions. |
Message Attachment: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Message ID | string | Yes | — | The ID of the message. Supports expressions. |
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
All Operations
| Parameter | Type | Required | Default | Description |
|---|
| Microsoft Account | credential | No | — | Connect your Microsoft account via OAuth2. |
| Max Concurrency | number | No | 5 | Maximum number of items to process concurrently. Keep low to avoid Microsoft Graph rate limits. |
Output Data
This node never fans out — every operation produces exactly one output item per input item, including the list operations. The result is merged into the item JSON at the top level, so the fields the input item already carried pass through unchanged.
| Operation shape | What lands on the item |
|---|
Any getAll | results — the array of records — plus totalCount. Use a Split Out node on results if you want one workflow item per record |
get, create, update | The Microsoft Graph resource merged at the top level |
message / send, any delete, message / move, messageAttachment / add | success: true |
message / reply | The reply Graph returned, plus sent — true when it was sent, false when Save as Draft kept it as a draft |
messageAttachment / download | attachmentId and attachmentName, with the file itself written to the binary property named in Binary Property |
Binary in and out.
- Sending: list upstream binary property names in Additional Fields → Attachment Binary Properties (message send, reply and draft create), or name a single one in Message Attachment: Add. Large files are uploaded in chunks automatically.
- Receiving: turn on Options → Download Attachments on a message, draft or folder-message read, and each attachment arrives as its own binary property named with Attachments Prefix (
attachment_0, attachment_1, …). Options → Get MIME Content additionally writes the whole message as a .eml file on the MIME Binary Property.
- Binary already on the input item is forwarded through untouched.
Output controls the field set. simple returns a trimmed selection, raw returns everything Microsoft Graph sends, and fields returns exactly the comma-separated list you put in Fields.
Usage Examples
- Send an email with file attachments via Outlook
- Download all attachments from an Outlook message
- Create a calendar event in Microsoft 365
- List unread messages in a mail folder
- Reply to an email with attachments
- Create a contact in Outlook
- Add a large file attachment to a draft
Example Configuration
Send an HTML email with CC and high importance:
{
"type": "microsoft_outlook",
"parameters": {
"resource": "message",
"operation": "send",
"toRecipients": "recipient@example.com,another@example.com",
"subject": "Important Update",
"bodyContent": "<p>This is an HTML email body.</p>",
"additionalFields": {
"ccRecipients": "cc@example.com",
"importance": "High",
"bodyContentType": "html",
"isReadReceiptRequested": true
}
}
}
Reply to a message, using the ID from the incoming item:
{
"type": "microsoft_outlook",
"parameters": {
"resource": "message",
"operation": "reply",
"messageId": "{{ $json.messageId }}",
"replyToSenderOnly": false,
"replyMessage": "Thank you for your email. Here is my response.",
"replyAdditionalFields": {
"importance": "Normal",
"bodyContentType": "Text"
}
}
}
Create a calendar event:
{
"type": "microsoft_outlook",
"parameters": {
"resource": "event",
"operation": "create",
"calendarId": "AQMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OAAuAAADIkPFvOuw",
"eventSubject": "Team Meeting",
"startDateTime": "2024-03-15T09:00:00Z",
"endDateTime": "2024-03-15T10:00:00Z",
"eventAdditionalFields": {
"body": "Weekly team sync meeting",
"importance": "normal",
"isAllDay": false,
"showAs": "busy",
"timeZone": "UTC"
}
}
}
Create a draft:
{
"type": "microsoft_outlook",
"parameters": {
"resource": "draft",
"operation": "create",
"draftSubject": "Draft Email Subject",
"draftBodyContent": "This is a draft message that will be saved.",
"draftAdditionalFields": {
"toRecipients": "recipient@example.com",
"importance": "Normal",
"bodyContentType": "Text"
}
}
}
List unread messages that have attachments:
{
"type": "microsoft_outlook",
"parameters": {
"resource": "message",
"operation": "getAll",
"returnAll": false,
"limit": 50,
"filters": {
"filterBy": "filters",
"hasAttachments": true,
"readStatus": "unread",
"receivedAfter": "2024-01-01T00:00:00Z"
},
"options": {
"downloadAttachments": false,
"getMimeContent": false
},
"output": "simple"
}
}
Create a contact:
{
"type": "microsoft_outlook",
"parameters": {
"resource": "contact",
"operation": "create",
"givenName": "John",
"contactAdditionalFields": {
"surname": "Doe",
"displayName": "John Doe",
"companyName": "Acme Corp",
"jobTitle": "Manager",
"emailAddresses": "[{\"address\": \"john.doe@example.com\", \"name\": \"John Doe\"}]",
"businessPhones": "+1-555-0123"
}
}
}
Attach an upstream file to an existing message:
{
"type": "microsoft_outlook",
"parameters": {
"resource": "messageAttachment",
"operation": "add",
"messageId": "{{ $json.messageId }}",
"binaryPropertyName": "data",
"attachmentFileName": "document.pdf"
}
}
Error Handling
| Mode | Behavior |
|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Manage Microsoft 365 email, calendars, contacts, and folders via Microsoft Graph API with full attachment support.
Common Patterns
Email Workflow
- Send with attachments: Use
additionalFields.attachmentBinaryProperties to reference binary data
- Filter messages: Use
filters collection with specific criteria
- Download attachments: Set
options.downloadAttachments: true
Calendar Management
- Create events on a specific calendar: Set
calendarId
- All-day events: Set
eventAdditionalFields.isAllDay: true
- Online meetings: Set
eventAdditionalFields.isOnlineMeeting: true
Contact Organization
- Filter by email: Use
emailFilter parameter
- Full contact data: Use
contactAdditionalFields for addresses and additional info
- Business contacts: Include
companyName, jobTitle, businessPhones
Folder Management
- Create subfolders: Specify
parentFolderId
- List with hierarchy: Set
includeChildFolders: true
- Scope operations: Use
parentFolderFilter to limit scope
Key Notes
- List results are not separate items. Every Get Many returns one item with the array on
results; add a Split Out node on results when downstream nodes should see one record at a time.
- Keep Max Concurrency low. Microsoft Graph throttles aggressively; the default of 5 is a sensible ceiling for most mailboxes.
- Message Type values are case-sensitive. Use
html or Text exactly as listed.
- Event importance and message importance differ in case. Events use
low/normal/high; messages use Low/Normal/High.
- JSON-typed fields take JSON strings, including Email Addresses, the three address fields and Custom Headers.