Skip to main content

Microsoft Outlook Component

Manage emails, calendar events, and subscriptions in Microsoft Outlook.

Component key: ms-outlook

Changelog ↓

Description

Microsoft Outlook is a productivity suite for managing email and calendar. This component allows you to read, send, and manage emails, as well as create, update, and manage calendar events and subscriptions.

API Documentation

This component was built using the Microsoft Graph API currently utilizing v1.0

Connections

OAuth 2.0 Authorization Code (Deprecated)

You will first need to create and configure a new "App Registration" within your Azure Active Directory tenant. When creating the application you will be prompted to select the 'Supported account types'. Under this section, be sure to select 'Accounts in any organizational directory (Any Azure AD directory - Multitenant)'.

You will need to go to "Platforms" and add the "Web" platform. In that section you should add the OAuth 2.0 callback URL - https://oauth2.prismatic.io/callback - as a Redirect URI.

Next, go to "Certificates & Secrets" for the app and add a new Client Secret. Note this value as you will need to supply it to the connection.

You will also need the Application (client) ID from the "Overview" page.

Now, configure the OAuth 2.0 connection. Add an Microsoft Outlook OAuth 2.0 connection config variable:

  • Use the Application (client) ID value for the Client ID field.
  • Use the Client Secret for the same named field.
  • If you didn't select Multitenant when creating the Azure application, you will need to replace the Authorize URL and Token URL with ones specific to your tenant.
  • The default scopes are as follows. You can remove scopes that you don't need:
    • https://graph.microsoft.com/User.Read for reading basic user data
    • https://graph.microsoft.com/Calendars.ReadWrite for managing Outlook calendar
    • https://graph.microsoft.com/Mail.ReadWrite for managing email
    • https://graph.microsoft.com/Mail.Send for sending email
    • Ensure the offline_access scope is included in your app registration. It is essential to maintain your OAuth connection and receive refresh tokens. Without it, users will need to re-authenticate every hour.

Save your integration and you should be able to authenticate a user with OAuth 2.0 to access their Microsoft Outlook data.

InputNotesExample
Authorize URL

OAuth 2.0 Authorization URL for Microsoft Outlook authentication.

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?prompt=consent
Base URL

Base URL for the Microsoft Graph API. Depending on the cloud environment, choose the correct endpoint from the Microsoft Graph deployments documentation.

https://graph.microsoft.com
Client ID

Application (client) ID from the Microsoft Entra App Registration.

12345678-1234-1234-1234-123456789abc
Client secret value

Client secret value from the Microsoft Entra App Registration. This value is only shown once when created.

Scopes

List of OAuth permission scopes. These scopes should be configured in the Microsoft Entra App Registration.

https://graph.microsoft.com/User.Read https://graph.microsoft.com/Mail.Read
Token URL

OAuth 2.0 Token URL for Microsoft Outlook authentication.

https://login.microsoftonline.com/common/oauth2/v2.0/token

OAuth 2.0 Client Credentials

To connect to Microsoft Outlook using OAuth 2.0 Client Credentials flow, create an App Registration with application permissions in Microsoft Entra.

The Client Credentials flow is used for server-to-server authentication without user interaction, requiring application-level permissions and admin consent.

Prerequisites

Setup Steps

  1. Navigate to Microsoft Entra Identity > Applications > App registrations and select New registration:
    • Set Supported Account types to Accounts in any organizational directory (Any Azure AD directory - Multitenant) to allow access from other organizations
    • Set the Redirect URI dropdown to Web platform and add https://oauth2.prismatic.io/callback as a Redirect URI
    • Select Register to complete
  2. From the App menu, navigate to Certificates & Secrets and add a new Client Secret:
    • Copy the Value for the Client Secret (this will only be shown once)
  3. Navigate to the Overview page and copy the Application (client) ID
  4. Navigate to API Permissions and configure application permissions:
    • Select Add Permission > Microsoft Graph > Application permissions
    • Add all permissions required for the use case (e.g., Mail.ReadWrite, Calendars.ReadWrite, User.Read.All)
    • Refer to Microsoft Graph permissions reference for available permissions
  5. After applying all relevant permissions, select Grant Admin Consent to authorize the application permissions

Configure the Connection

  • Enter the Tenant ID for the organization being accessed
  • Enter the Application (client) ID value into the Client ID field
  • Enter the Client Secret value into the same named field
  • Enter the User ID of the user whose data will be accessed (required for user-specific endpoints)
  • The default scope https://graph.microsoft.com/.default is pre-configured for the connection
Client Credentials vs Authorization Code

The Client Credentials flow uses application permissions and does not require user login. This is ideal for background services and automated processes. For user-delegated permissions, use the OAuth 2.0 Authorization Code connection instead.

User ID Required

All actions using the client credentials flow require a User ID to specify which user's data to access. This is required because application permissions operate on behalf of the application, not a signed-in user.

InputNotesExample
Base URL

The base URL for the Microsoft Graph API. Depending on your cloud environment, you can choose the correct one here.

https://graph.microsoft.com
Client ID

Client Id of your Azure application.

11111111-2222-3333-4444-555555555555
Client Secret

Client Secret generated under 'Certificates & Secrets' in your Azure application.

11111111-2222-3333-4444-555555555555
Microsoft Entra ID Endpoint

The Microsoft Entra ID endpoint for the Microsoft Graph API. You can find this in the Azure portal or here.

https://login.microsoftonline.com
Scopes

Microsoft Graph API Scopes.

https://graph.microsoft.com/.default
Tenant

The tenant ID or name for the Microsoft Graph API. This is the ID or name of the tenant that you are connecting to.

11111111-2222-3333-4444-555555555555
Token URL

Provide a tenant specific OAuth 2.0 token endpoint.

{{#entraIdEndpoint}}/{{#tenant}}/oauth2/v2.0/token
User ID

Unique identifier of the user whose data will be accessed. Required for client credentials authentication to work with user-specific endpoints.

user@example.com

OAuth 2.0 Authorization Code

To connect to Microsoft Outlook using OAuth 2.0, create an App Registration in Microsoft Entra (formerly Azure Active Directory).

Prerequisites

Setup Steps

  1. Navigate to Azure Active Directory tenant and create a new App Registration
  2. When creating the application, select Supported account types:
    • Choose Accounts in any organizational directory (Any Azure AD directory - Multitenant) to allow users from other organizations to authenticate
  3. Under Platforms, add the Web platform:
    • Add https://oauth2.prismatic.io/callback as a Redirect URI
  4. Navigate to Certificates & Secrets and create a new Client Secret:
    • Copy the Value of the client secret (this will only be shown once)
  5. Navigate to the Overview page and copy the Application (client) ID

Configure the Connection

  • Enter the Application (client) ID value into the Client ID field

  • Enter the Client Secret value into the same named field

  • The default scopes are pre-configured for common use cases:

    https://graph.microsoft.com/User.Read https://graph.microsoft.com/Calendars.ReadWrite https://graph.microsoft.com/Mail.ReadWrite https://graph.microsoft.com/Mail.Send offline_access
    • https://graph.microsoft.com/User.Read - Read basic user data
    • https://graph.microsoft.com/Calendars.ReadWrite - Manage Outlook calendar
    • https://graph.microsoft.com/Mail.ReadWrite - Manage email
    • https://graph.microsoft.com/Mail.Send - Send email
    • offline_access - Maintain OAuth connection and receive refresh tokens
    • Refer to Microsoft Graph permissions reference for additional scope information
Single-Tenant Applications

For single-tenant applications (not Multitenant), tenant-specific URLs are required. The connection will automatically handle tenant-specific configuration when a Tenant ID is provided.

Cloud Environments

The connection supports different Microsoft cloud environments (Commercial, Government, China). The Base URL will automatically adjust based on the selected cloud environment.

InputNotesExample
Authorize URL

The OAuth 2.0 Authorization URL for Microsoft's Graph API.

login.microsoftonline.com/common
Base URL

The base URL for the Microsoft Graph API. Depending on your cloud environment, you can choose the correct one here.

https://graph.microsoft.com
Client ID

Client Id of your Azure application.

11111111-2222-3333-4444-555555555555
Client secret value

Client Secret generated under 'Certificates & Secrets' in your Azure application.

11111111-2222-3333-4444-555555555555
Scopes

Microsoft Graph API permission scopes are set on the OAuth application.

https://graph.microsoft.com/User.Read https://graph.microsoft.com/Calendars.ReadWrite https://graph.microsoft.com/Mail.ReadWrite https://graph.microsoft.com/Mail.Send offline_access
Tenant URL

The tenant URL for the Microsoft Graph API. This is the URL of the tenant that you are connecting to. You can find this in the Azure portal or here.

login.microsoftonline.com/common
Token URL

The OAuth 2.0 Token URL for Microsoft's Graph API.

login.microsoftonline.com/common

Triggers

Calendar Event Webhook

Receive calendar event notifications from Outlook. Automatically creates and manages a webhook subscription for calendar events when the instance is deployed, and removes the subscription when the instance is deleted. | key: webhookLifecycle

InputNotesExample
Allow Duplicates

When true, allows more than one webhook subscription per endpoint.

false
Connection
Expiration Date/Time

Expiration date and time for the webhook subscription in ISO 8601 format. If unspecified, defaults to the current date/time plus 10070 minutes (close to the maximum permitted by the Graph API).

2024-12-31T23:59:59.999Z

The Calendar Event Webhook trigger can manage Microsoft Graph webhook subscriptions for calendar events on an instance. Unlike traditional webhook setups that require manual subscription creation and management, this trigger handles the entire webhook lifecycle automatically.

When the trigger is used in a flow:

  • On Instance Deploy: The trigger automatically creates a webhook subscription in Microsoft Graph for calendar events (me/events) with the updated change type. The subscription points to the instance's unique webhook URL. If the **Allow
  • On Instance Deletion: The trigger automatically removes the webhook subscription from Microsoft Graph, ensuring no orphaned subscriptions remain.

Configuration Options

  • Connection: OAuth 2.0 connection for authenticating with Microsoft Graph
  • Expiration Date/Time: When the subscription should expire (ISO 8601 format). Defaults to approximately 7 days from creation.
  • Allow Duplicates: When set to true, allows multiple webhook subscriptions for the same endpoint. When false, reuses existing subscriptions to prevent duplication.

Supported Events

This trigger monitors calendar events for the following change type:

  • updated - Triggered when calendar events are created, modified, or deleted

For monitoring other Outlook resources or different change types, use the manual Webhook trigger with custom subscription configuration.

Important Notes

  • Resource Monitored: This trigger specifically monitors me/events (calendar events for the authenticated user)
  • Change Type: Only the updated change type is configured, which captures creates, updates, and deletes

Refer to the Microsoft Graph change notifications for Outlook resources for more details about subscription management and lifecycle.


Webhook

Receive and validate webhook requests from Outlook for manually configured webhook subscriptions. | key: webhook

Microsoft Outlook webhooks (also called change notifications or subscriptions) send notifications to the flow's webhook URL when Outlook resources change.

Microsoft Graph sends a validation request when the subscription is first configured. This validation is routed to the URL Validation branch. The trigger automatically responds with the validation token to complete setup. All subsequent event notifications are routed to the Notification branch.

To configure a webhook subscription, use the accompanying Subscription actions provided in the component.

Supported resources: Calendar events (me/events), mail messages (me/messages), mail folders (me/mailFolders), contacts (me/contacts)

Refer to the Microsoft Graph change notifications overview for subscription lifetimes and additional resources.


Data Sources

Select Calendar

Select a calendar from the list of calendars | key: selectCalendar | type: picklist

InputNotesExample
Connection

Select Event

Select an event from the list of events | key: selectEvent | type: picklist

InputNotesExample
Connection

Select Language

Select a language from the list of supported languages | key: selectLanguage | type: picklist

InputNotesExample
Connection

Select Mail Folder

Select a mail folder from the list of folders | key: selectMailFolder | type: picklist

InputNotesExample
Connection

Select Message

Select a message from the list of messages | key: selectMessage | type: picklist

InputNotesExample
Connection
Filter

OData filter expression to apply to the messages. Cannot be used with Search. Refer to Microsoft Graph filter parameter documentation for filter syntax.

from/emailAddress/address eq 'user@example.com'
Folder ID

Unique identifier of the folder. Omit to list all messages.

AAMkAGI2TGuLAAA=
Search

Search query to filter messages. Cannot be used with Filter. Refer to Microsoft Graph search parameter documentation for query syntax.

subject:meeting

Select Subscription

Select a subscription from the list of subscriptions | key: selectSubscription | type: picklist

InputNotesExample
Connection

Select Timezone

Select a timezone from the list of supported timezones | key: selectTimezone | type: picklist

InputNotesExample
Connection

Actions

Cancel Event

Cancel an Event | key: cancelEvent

InputNotesExample
Comment

Comment about the cancellation sent to all attendees

Connection
Event ID

Unique identifier of the calendar event.

AAMkAGIAAAoZDOFAAA=

{
"data": ""
}

Create Calendar

Create a new Calendar | key: createCalendar

InputNotesExample
Color

Color of the calendar; see 'color' in the Microsoft Graph calendar resource documentation for details

lightRed
Connection
Name

The name of the calendar.

Project Calendar

{
"data": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#me/calendars/$entity",
"@odata.id": "https://graph.microsoft.com/v1.0/users('266efe5a-0fd7-4edd-877b-b2d1e561f193@ae01a323-3934-4475-a32d-af1274312bb0')/calendars('AAMkADJmMVAAA=')",
"id": "AAMkADJmMVAAA=",
"name": "Volunteer",
"color": "auto",
"changeKey": "DxYSthXJXEWwAQSYQnXvIgAAIxGttg==",
"canShare": true,
"canViewPrivateItems": true,
"hexColor": "",
"canEdit": true,
"allowedOnlineMeetingProviders": [
"teamsForBusiness"
],
"defaultOnlineMeetingProvider": "teamsForBusiness",
"isTallyingResponses": true,
"isRemovable": false,
"owner": {
"name": "Samantha Booth",
"address": "samanthab@adatum.onmicrosoft.com"
}
}
}

Create Event

Create an Event on a Calendar | key: createEvent

InputNotesExample
Type

Event attendees as key-value pairs. Specify the email address as the key and the attendee type (required, optional, or resource) as the value.

{"john.doe@example.com": "required", "jane.smith@example.com": "optional"}
Attendees Data Collection

Reference to data structures representing attendees. Will be merged with Attendees if both are specified.

[{ emailAddress: { address: 'john.doe@example.com', name: 'John Doe' }, type: 'required' }]
Body (HTML)

HTML body content of the event.

<p>Please join us for the team meeting.</p>
Calendar ID

Unique identifier of the calendar to list events from. Lists all events for the current user if unspecified.

AAMkAGI2TGuLAAA=
Connection
End At

ISO 8601 formatted timestamp without timezone information.

2024-01-15T14:00:00
End Timezone

Timezone for the end time of the event. Use the List Supported Timezones action for details on valid aliases/values for this user.

Pacific Standard Time
Location Name

Name of the event location.

Conference Room A
Start At

ISO 8601 formatted timestamp without timezone information.

2024-01-15T12:00:00
Start Timezone

Timezone for the start time of the event. Use the List Supported Timezones action for details on valid aliases/values for this user.

Pacific Standard Time
Subject

Subject of the calendar event.

Team Meeting

{
"data": {
"subject": "Let's go for lunch",
"body": {
"contentType": "html",
"content": "Does noon work for you?"
},
"start": {
"dateTime": "2017-04-15T12:00:00",
"timeZone": "Pacific Standard Time"
},
"end": {
"dateTime": "2017-04-15T14:00:00",
"timeZone": "Pacific Standard Time"
},
"location": {
"displayName": "Conference Room A"
},
"attendees": [
{
"emailAddress": {
"address": "john.doe@example.com",
"name": "John Doe"
},
"type": "required"
}
],
"allowNewTimeProposals": true,
"transactionId": "7E163156-7762-4BEB-A1C6-729EA81755A7"
}
}

Create Event Subscription

Create an Event subscription for Microsoft Outlook | key: createEventSubscription

InputNotesExample
Allow Duplicates

When true, allows more than one webhook subscription per endpoint.

false
Connection
Expiration Date/Time

Expiration date and time for the webhook subscription in ISO 8601 format. If unspecified, defaults to the current date/time plus 10070 minutes (close to the maximum permitted by the Graph API).

2024-12-31T23:59:59.999Z
Notification URL

URL where notification events will be sent.

https://example.com/webhook

{
"data": {
"id": "e9d5b726-4478-4412-bfba-268530484566",
"resource": "me/events",
"changeType": "updated",
"notificationUrl": "https://example.com/webhook/",
"expirationDateTime": "2024-12-31T23:59:59.999Z",
"creatorId": "c8edbeda-c453-446c-91ce-c6d5c7310a6c",
"latestSupportedTlsVersion": "v1_2"
}
}

Create Mail Folder

Create a new mail folder | key: createMailFolder

InputNotesExample
Connection
Display name

The display name of the folder.

Project Files
Parent Folder ID

Create a folder under this parent folder. Omit to create a root-level folder.

AAMkAGI2TGuLAAA=

{
"data": {
"displayName": "displayName-value",
"parentFolderId": "parentFolderId-value",
"childFolderCount": 0,
"unreadItemCount": 0,
"totalItemCount": 0,
"id": "id-value",
"isHidden": true
}
}

Create Mail Folder Subscription

Create a Mail Folder subscription for Microsoft Outlook | key: createMailFolderSubscription

InputNotesExample
Mail Change Types

Types of changes to listen for on mail messages.

Connection
Expiration Date/Time

Expiration date and time for the webhook subscription in ISO 8601 format. If unspecified, defaults to the current date/time plus 10070 minutes (close to the maximum permitted by the Graph API).

2024-12-31T23:59:59.999Z
Notification URL

URL where notification events will be sent.

https://example.com/webhook

{
"data": {
"id": "7f105c7d-2dc5-4530-97cd-4e7ae6534c07",
"resource": "me/mailFolders('Inbox')/messages",
"changeType": "created,updated",
"notificationUrl": "https://example.com/webhook/",
"expirationDateTime": "2024-12-31T23:59:59.999Z",
"creatorId": "c8edbeda-c453-446c-91ce-c6d5c7310a6c",
"latestSupportedTlsVersion": "v1_2"
}
}

Delete All Instance Subscriptions

Delete all subscriptions pointed at this instance | key: deleteAllInstanceSubscriptions

InputNotesExample
Connection

{
"data": {
"subscriptionsRemoved": [
"26ebd1e9-c54a-4bbe-9583-fc05974952a4",
"b9b27172-ee2e-4248-86df-fc98cb71d914"
]
}
}

Delete Calendar

Delete an existing Calendar | key: deleteCalendar

InputNotesExample
Connection
Calendar ID

The unique identifier of the calendar to modify.

AAMkAGI2TGuLAAA=

{
"data": ""
}

Delete Event

Delete an Event | key: deleteEvent

InputNotesExample
Connection
Event ID

Unique identifier of the calendar event.

AAMkAGIAAAoZDOFAAA=

{
"data": ""
}

Delete Mail Folder

Delete the specified mail folder | key: deleteMailFolder

InputNotesExample
Connection
Folder ID

The unique identifier of the folder.

AAMkAGI2TGuLAAA=

{
"data": null
}

Delete Message

Delete message by ID | key: deleteMessage

InputNotesExample
Connection
Message ID

Unique identifier of the message.

AAMkAGUAAAwTW09AAA=

{
"data": null
}

Delete Subscription

Delete existing subscription for Microsoft Outlook | key: deleteSubscription

InputNotesExample
Connection
Subscription ID

Unique identifier of the webhook subscription.

e9d5b726-4478-4412-bfba-268530484566

{
"data": ""
}

Get Calendar Event

Gets information about a specific calendar event | key: getCalendarEvent

InputNotesExample
Connection
Event ID

Unique identifier of the calendar event.

AAMkAGIAAAoZDOFAAA=

{
"data": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#me/calendars/$entity",
"@odata.id": "https://graph.microsoft.com/v1.0/users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/calendars('AAMkAGI2TGuLAAA=')",
"id": "AAMkAGI2TGuLAAA=",
"name": "Calendar",
"color": "auto",
"isDefaultCalendar": false,
"changeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+w==",
"canShare": true,
"canViewPrivateItems": true,
"hexColor": "",
"canEdit": true,
"allowedOnlineMeetingProviders": [
"teamsForBusiness"
],
"defaultOnlineMeetingProvider": "teamsForBusiness",
"isTallyingResponses": true,
"isRemovable": false,
"owner": {
"name": "John Doe",
"address": "john.doe@example.com"
}
}
}

Get Current User

Get the information and metadata of the user that is currently logged in | key: getCurrentUser

InputNotesExample
Connection

{
"data": {
"businessPhones": [
"+1 555 555 5555"
],
"displayName": "John Doe",
"givenName": "John",
"jobTitle": "Manager",
"mail": "john.doe@example.com",
"mobilePhone": "+1 555 555 5555",
"officeLocation": "example",
"preferredLanguage": "en-US",
"surname": "Doe",
"id": "3693-4789-a1c3-f4de565f"
}
}

Get Mail Message

Fetch and parse a raw message by ID | key: getMessageById

InputNotesExample
Connection
Message ID

Unique identifier of the message.

AAMkAGUAAAwTW09AAA=

{
"data": {
"message": {
"headers": {
"mime-version": "1.0",
"date": "2022-09-19T20:09:01.000Z",
"message-id": "<Test-message-id@mail.outlook.com>",
"subject": "Test Message",
"from": {
"value": [
{
"address": "example@outlook.com",
"name": "Example Example"
}
],
"html": "<span class=\"mp_address_group\"><span class=\"mp_address_name\">Example Example</span> &lt;<a href=\"mailto:example@gmail.com\" class=\"mp_address_email\">example@gmail.com</a>&gt;</span>",
"text": "Example Example <example@outlook.com>"
},
"to": {
"value": [
{
"address": "example@outlook.com",
"name": "Example Example"
}
],
"html": "<span class=\"mp_address_group\"><span class=\"mp_address_name\">Example Example</span> &lt;<a href=\"mailto:example@gmail.com\" class=\"mp_address_email\">example@gmail.com</a>&gt;</span>",
"text": "Example Example <example@outlook.com>"
},
"content-type": {
"value": "multipart/mixed",
"params": {
"boundary": "000000000000680fa005e90d488f"
}
}
},
"attachments": [],
"text": "Example email body",
"html": "<div dir=\"ltr\">Example email body<div><br></div></div>\n"
},
"rawMessage": "Raw MIME message"
}
}

Get Schedule Availability

Get the free/busy availability information for a collection of users | key: getSchedule

InputNotesExample
Availability View Interval

Duration of time slot to check availability for in minutes

60
Connection
End At

ISO 8601 formatted timestamp without timezone information.

2024-01-15T14:00:00
End Timezone

Timezone for the end time of the event. Use the List Supported Timezones action for details on valid aliases/values for this user.

Pacific Standard Time
Schedules

Collection of SMTP addresses of users, distribution lists, or resources to get availability information for

example@example.com
Start At

ISO 8601 formatted timestamp without timezone information.

2024-01-15T12:00:00
Start Timezone

Timezone for the start time of the event. Use the List Supported Timezones action for details on valid aliases/values for this user.

Pacific Standard Time

{
"data": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(microsoft.graph.scheduleInformation)",
"value": [
{
"scheduleId": "user1@example.com",
"availabilityView": "000220000",
"scheduleItems": [
{
"isPrivate": false,
"status": "busy",
"subject": "Let's go for lunch",
"location": "Conference Room A",
"start": {
"dateTime": "2019-03-15T12:00:00.0000000",
"timeZone": "Pacific Standard Time"
},
"end": {
"dateTime": "2019-03-15T14:00:00.0000000",
"timeZone": "Pacific Standard Time"
}
}
],
"workingHours": {
"daysOfWeek": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "08:00:00.0000000",
"endTime": "17:00:00.0000000",
"timeZone": {
"name": "Pacific Standard Time"
}
}
},
{
"scheduleId": "user2@example.com",
"availabilityView": "200220010",
"scheduleItems": [
{
"status": "busy",
"start": {
"dateTime": "2019-03-15T08:30:00.0000000",
"timeZone": "Pacific Standard Time"
},
"end": {
"dateTime": "2019-03-15T09:30:00.0000000",
"timeZone": "Pacific Standard Time"
}
},
{
"status": "busy",
"start": {
"dateTime": "2019-03-15T12:00:00.0000000",
"timeZone": "Pacific Standard Time"
},
"end": {
"dateTime": "2019-03-15T14:00:00.0000000",
"timeZone": "Pacific Standard Time"
}
},
{
"status": "tentative",
"start": {
"dateTime": "2019-03-15T12:00:00.0000000",
"timeZone": "Pacific Standard Time"
},
"end": {
"dateTime": "2019-03-15T13:00:00.0000000",
"timeZone": "Pacific Standard Time"
}
},
{
"status": "busy",
"start": {
"dateTime": "2019-03-15T13:00:00.0000000",
"timeZone": "Pacific Standard Time"
},
"end": {
"dateTime": "2019-03-15T14:00:00.0000000",
"timeZone": "Pacific Standard Time"
}
},
{
"status": "tentative",
"start": {
"dateTime": "2019-03-15T16:00:00.0000000",
"timeZone": "Pacific Standard Time"
},
"end": {
"dateTime": "2019-03-15T17:00:00.0000000",
"timeZone": "Pacific Standard Time"
}
}
],
"workingHours": {
"daysOfWeek": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "08:00:00.0000000",
"endTime": "17:00:00.0000000"
}
}
]
}
}

List Calendars

List all Calendars for the user | key: listCalendars

InputNotesExample
Connection
Fetch All

When true, fetches all pages of results using pagination.

false
Page Limit

Maximum number of results to return per page.

100
Page Skip

Number of records to skip before returning results.

100

{
"data": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#me/calendars",
"value": [
{
"@odata.id": "https://graph.microsoft.com/v1.0/users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/calendars('AAMkAGI2TGuLAAA=')",
"id": "AAMkAGI2TGuLAAA=",
"name": "Calendar",
"color": "auto",
"changeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+w==",
"canShare": true,
"canViewPrivateItems": true,
"hexColor": "",
"canEdit": true,
"allowedOnlineMeetingProviders": [
"teamsForBusiness"
],
"defaultOnlineMeetingProvider": "teamsForBusiness",
"isTallyingResponses": true,
"isRemovable": false,
"owner": {
"name": "John Doe",
"address": "john.doe@example.com"
}
}
]
}
}

List Events

List all Events for the user | key: listEvents

InputNotesExample
Calendar ID

Unique identifier of the calendar to list events from. Lists all events for the current user if unspecified.

AAMkAGI2TGuLAAA=
Connection
Fetch All

When true, fetches all pages of results using pagination.

false
Page Limit

Maximum number of results to return per page.

100
Page Skip

Number of records to skip before returning results.

100

{
"data": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('cd209b0b-3f83-4c35-82d2-d88a61820480')/events(subject,body,bodyPreview,organizer,attendees,start,end,location)",
"value": [
{
"@odata.etag": "W/\"ZlnW4RIAV06KYYwlrfNZvQAAKGWwbw==\"",
"id": "AAMkAGIAAAoZDOFAAA=",
"subject": "Orientation ",
"bodyPreview": "Please join us for the team orientation. Bring any questions you may have.",
"body": {
"contentType": "html",
"content": "<html><head></head><body><p>Please join us for the team orientation. Bring any questions you may have.</p></body></html>"
},
"start": {
"dateTime": "2017-04-21T10:00:00.0000000",
"timeZone": "Pacific Standard Time"
},
"end": {
"dateTime": "2017-04-21T12:00:00.0000000",
"timeZone": "Pacific Standard Time"
},
"location": {
"displayName": "Assembly Hall",
"locationType": "default",
"uniqueId": "Assembly Hall",
"uniqueIdType": "private"
},
"locations": [
{
"displayName": "Assembly Hall",
"locationType": "default",
"uniqueIdType": "unknown"
}
],
"attendees": [
{
"type": "required",
"status": {
"response": "none",
"time": "0001-01-01T00:00:00Z"
},
"emailAddress": {
"name": "John Doe",
"address": "john.doe@example.com"
}
},
{
"type": "required",
"status": {
"response": "none",
"time": "0001-01-01T00:00:00Z"
},
"emailAddress": {
"name": "Jane Smith",
"address": "jane.smith@example.com"
}
}
],
"organizer": {
"emailAddress": {
"name": "Samantha Booth",
"address": "samanthab@a830edad905084922E17020313.onmicrosoft.com"
}
}
}
]
}
}

List Mail Folders

Get the mail folder collection directly under the root folder of the signed-in user, or under the specified parent folder. | key: listMailFolders

InputNotesExample
Connection
Fetch All

When true, fetches all pages of results using pagination.

false
Page Limit

Maximum number of results to return per page.

100
Page Skip

Number of records to skip before returning results.

100
Parent Folder ID

List all folders contained within this folder. Omit to list root-level folders.

AAMkAGI2TGuLAAA=

{
"data": {
"@odata.context": "https://graph.microsoft.com/beta/$metadata#users('68ca8ec0-11f8-456b-a785-70d9936650d5')/mailFolders",
"value": [
{
"id": "AQMkADYAAAIBCgAAAA==",
"displayName": "Deleted Items",
"parentFolderId": "AQMkADYAAAIBCAAAAA==",
"childFolderCount": 0,
"unreadItemCount": 0,
"totalItemCount": 0,
"isHidden": false
},
{
"id": "AQMkADYAAAIBDwAAAA==",
"displayName": "Drafts",
"parentFolderId": "AQMkADYAAAIBCAAAAA==",
"childFolderCount": 0,
"unreadItemCount": 0,
"totalItemCount": 0,
"isHidden": false
},
{
"id": "AQMkADYAAAIBDAAAAA==",
"displayName": "Inbox",
"parentFolderId": "AQMkADYAAAIBCAAAAA==",
"childFolderCount": 1,
"unreadItemCount": 70,
"totalItemCount": 71,
"isHidden": false
},
{
"@odata.type": "#microsoft.graph.mailSearchFolder",
"id": "AAMkADYRAAAZg1yTAAA=",
"displayName": "Weekly digests",
"parentFolderId": "AQMkADYAAAIBDAAAAA==",
"childFolderCount": 0,
"unreadItemCount": 4,
"totalItemCount": 5,
"isHidden": false,
"isSupported": true,
"filterQuery": "contains(subject, 'weekly digest')"
},
{
"id": "AQMkADYAAAIBGQAAAA==",
"displayName": "Junk Email",
"parentFolderId": "AQMkADYAAAIBCAAAAA==",
"childFolderCount": 0,
"unreadItemCount": 0,
"totalItemCount": 0,
"isHidden": false
},
{
"id": "AQMkADYAAAIBCwAAAA==",
"displayName": "Outbox",
"parentFolderId": "AQMkADYAAAIBCAAAAA==",
"childFolderCount": 0,
"unreadItemCount": 0,
"totalItemCount": 0,
"isHidden": false
},
{
"id": "AQMkADYAAAIBCQAAAA==",
"displayName": "Sent Items",
"parentFolderId": "AQMkADYAAAIBCAAAAA==",
"childFolderCount": 0,
"unreadItemCount": 0,
"totalItemCount": 0,
"isHidden": false
}
]
}
}

List Mail Messages

List mail messages in a user's mailbox | key: listMessages

InputNotesExample
Connection
Fetch All

When true, fetches all pages of results using pagination.

false
Filter

OData filter expression to apply to the messages. Cannot be used with Search. Refer to Microsoft Graph filter parameter documentation for filter syntax.

from/emailAddress/address eq 'user@example.com'
Folder ID

Unique identifier of the folder. Omit to list all messages.

AAMkAGI2TGuLAAA=
Page Limit

Maximum number of results to return per page.

100
Page Skip

Number of records to skip before returning results.

100
Search

Search query to filter messages. Cannot be used with Filter. Refer to Microsoft Graph search parameter documentation for query syntax.

subject:meeting

{
"data": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('bb8775a4-4d8c-42cf-a1d4-4d58c2bb668f')/messages(sender,subject)",
"value": [
{
"@odata.etag": "W/\"CQAAABYAAADHcgC8Hl9tRZ/hc1wEUs1TAAAwR4Hg\"",
"id": "AAMkAGUAAAwTW09AAA=",
"subject": "You have late tasks!",
"sender": {
"emailAddress": {
"name": "Microsoft Planner",
"address": "noreply@Planner.Office365.com"
}
}
}
]
}
}

List Subscriptions

List all subscriptions for Microsoft Outlook | key: listSubscriptions

InputNotesExample
Connection
Fetch All

Turn on to fetch all pages of results.

true
Show Instance Webhooks

Show only subscriptions for this instance's webhooks.

true

{
"data": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#subscriptions",
"value": [
{
"id": "e9d5b726-4478-4412-bfba-268530484566",
"resource": "me/events",
"changeType": "updated",
"clientState": null,
"notificationUrl": "https://example.com/webhook/",
"notificationQueryOptions": null,
"lifecycleNotificationUrl": null,
"expirationDateTime": "2024-12-31T23:59:59.999Z",
"creatorId": "c8edbeda-c453-446c-91ce-c6d5c7310a6c",
"includeResourceData": null,
"latestSupportedTlsVersion": "v1_2",
"encryptionCertificate": null,
"encryptionCertificateId": null,
"notificationUrlAppId": null
}
]
}
}

List Supported Languages

List supported languages for current user | key: listSupportedLanguages

InputNotesExample
Connection

List Supported Timezones

List supported timezones for current user | key: listSupportedTimezones

InputNotesExample
Connection

Raw Request

Send raw HTTP request to Microsoft Outlook | key: rawRequest

InputNotesExample
Connection
Data

The HTTP body payload to send to the URL.

{"exampleKey": "Example Data"}
File Data

File Data to be sent as a multipart form upload.

[{key: "example.txt", value: "My File Contents"}]
File Data File Names

File names to apply to the file data inputs. Keys must match the file data keys above.

Form Data

The Form Data to be sent as a multipart form upload.

[{"key": "Example Key", "value": new Buffer("Hello World")}]
Header

A list of headers to send with the request.

User-Agent: curl/7.64.1
Max Retry Count

The maximum number of retries to attempt. Specify 0 for no retries.

0
Method

The HTTP method to use.

Query Parameter

A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2.

Response Type

The type of data you expect in the response. You can request json, text, or binary data.

json
Retry On All Errors

If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors.

false
Retry Delay (ms)

The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled.

0
Timeout

The maximum time that a client will await a response to its request

2000
URL

Input the path only (/me/calendars), The base URL is already included (https://graph.microsoft.com/v1.0). For example, to connect to https://graph.microsoft.com/v1.0/me/calendars, only /me/calendars is entered in this field.

/me/calendars
Use Exponential Backoff

Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored.

false

{
"data": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#me/calendars",
"value": [
{
"id": "AAMkAGI2TGuLAAA=",
"name": "Calendar",
"color": "auto",
"changeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+w==",
"canShare": true,
"canViewPrivateItems": true,
"canEdit": true,
"owner": {
"name": "John Doe",
"address": "john.doe@example.com"
}
}
]
}
}

Send Message

Send a new message | key: sendMessage

InputNotesExample
Attachments

File attachments as key-value pairs. Specify the file name as the key (e.g., my-file.pdf) and the file data as the value.

{ "my-file.pdf": { "type": "Buffer", "data": [ 102, 105, 108, 101, 32, 99, 111, 110, 116, 101, 110, 116 ] } }
BCC

Blind carbon copy email addresses. Multiple addresses can be specified as a comma-separated list.

["bcc.recipient@example.com"]
Message Body

Plain text or HTML body content of the email message.

<p>Hello, this is the email body.</p>
Body Content Type

Format of the message body content.

html
CC

Carbon copy email addresses. Multiple addresses can be specified as a comma-separated list.

["cc.recipient@example.com"]
Connection
Dynamic Attachments

Array of objects with "key" and "value" properties, where "key" is the file name and "value" is the binary file data. Typically used as a reference from a previous step.

[ { "key": "my-attachment.pdf", "value": "<BINARY FILE DATA TO ATTACH>" }, { "key": "another-attachment.xlsx", "value": "<BINARY EXCEL FILE DATA>" } ]
Subject

Subject line of the email message.

Quarterly Report
To

Recipient email addresses. Multiple addresses can be specified as a comma-separated list.

["john.doe@example.com", "jane.smith@example.com"]

{
"data": null
}

Update Calendar

Update an existing Calendar | key: updateCalendar

InputNotesExample
Color

Color of the calendar; see 'color' in the Microsoft Graph calendar resource documentation for details

lightRed
Connection
Calendar ID

The unique identifier of the calendar to modify.

AAMkAGI2TGuLAAA=
Name

The name of the calendar.

Project Calendar

{
"data": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#me/calendars/$entity",
"@odata.id": "https://graph.microsoft.com/v1.0/users('266efe5a-0fd7-4edd-877b-b2d1e561f193@ae01a323-3934-4475-a32d-af1274312bb0')/calendars('AAMkADJmMVAAA=')",
"id": "AAMkADJmMVAAA=",
"name": "Social events",
"color": "auto",
"isDefaultCalendar": false,
"changeKey": "DxYSthXJXEWwAQSYQnXvIgAAIxGttg==",
"canShare": true,
"canViewPrivateItems": true,
"hexColor": "",
"canEdit": true,
"allowedOnlineMeetingProviders": [
"teamsForBusiness"
],
"defaultOnlineMeetingProvider": "teamsForBusiness",
"isTallyingResponses": true,
"isRemovable": false,
"owner": {
"name": "Samantha Booth",
"address": "samanthab@adatum.onmicrosoft.com"
}
}
}

Update Event

Update an existing Event | key: updateEvent

InputNotesExample
Type

Event attendees as key-value pairs. Specify the email address as the key and the attendee type (required, optional, or resource) as the value.

{"john.doe@example.com": "required", "jane.smith@example.com": "optional"}
Attendees Data Collection

Reference to data structures representing attendees. Will be merged with Attendees if both are specified.

[{ emailAddress: { address: 'john.doe@example.com', name: 'John Doe' }, type: 'required' }]
Body (HTML)

HTML body content of the event.

<p>Please join us for the team meeting.</p>
Connection
End At

ISO 8601 formatted timestamp without timezone information.

2024-01-15T14:00:00
End Timezone

Timezone for the end time of the event. Use the List Supported Timezones action for details on valid aliases/values for this user.

Pacific Standard Time
Event ID

Unique identifier of the calendar event.

AAMkAGIAAAoZDOFAAA=
Location Name

Name of the event location.

Conference Room A
Start At

ISO 8601 formatted timestamp without timezone information.

2024-01-15T12:00:00
Start Timezone

Timezone for the start time of the event. Use the List Supported Timezones action for details on valid aliases/values for this user.

Pacific Standard Time
Subject

Subject of the calendar event.

Team Meeting

{
"data": {
"subject": "Let's go for lunch",
"body": {
"contentType": "html",
"content": "Does noon work for you?"
},
"start": {
"dateTime": "2017-04-15T12:00:00",
"timeZone": "Pacific Standard Time"
},
"end": {
"dateTime": "2017-04-15T14:00:00",
"timeZone": "Pacific Standard Time"
},
"location": {
"displayName": "Conference Room A"
},
"attendees": [
{
"emailAddress": {
"address": "john.doe@example.com",
"name": "John Doe"
},
"type": "required"
}
],
"allowNewTimeProposals": true,
"transactionId": "7E163156-7762-4BEB-A1C6-729EA81755A7"
}
}

Update Event Subscription Expiration

Update existing Event subscription expiration for Microsoft Outlook | key: updateEventSubscription

InputNotesExample
Connection
Expiration Date/Time

Expiration date and time for the webhook subscription in ISO 8601 format. If unspecified, defaults to the current date/time plus 10070 minutes (close to the maximum permitted by the Graph API).

2024-12-31T23:59:59.999Z
Subscription ID

Unique identifier of the webhook subscription.

e9d5b726-4478-4412-bfba-268530484566

{
"data": {
"id": "e9d5b726-4478-4412-bfba-268530484566",
"resource": "me/events",
"changeType": "updated",
"notificationUrl": "https://example.com/webhook/",
"expirationDateTime": "2024-12-31T23:59:59.999Z",
"creatorId": "c8edbeda-c453-446c-91ce-c6d5c7310a6c",
"latestSupportedTlsVersion": "v1_2"
}
}

Changelog

2025-11-04

Added Calendar Event Webhook trigger with automatic subscription creation and deletion on instance deploy/delete functionality

2025-10-03

Added fetch all support for subscription list actions to improve handling of large subscription datasets

2025-08-12

Added OAuth 2.0 Client Credentials connection type

2025-04-28

Fixed handling of null cc and bcc inputs to prevent errors when optional email fields are empty