Microsoft Outlook Component
Manage emails, calendar events, and subscriptions in Microsoft Outlook.
Component key: ms-outlook
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.Readfor reading basic user datahttps://graph.microsoft.com/Calendars.ReadWritefor managing Outlook calendarhttps://graph.microsoft.com/Mail.ReadWritefor managing emailhttps://graph.microsoft.com/Mail.Sendfor sending email- Ensure the
offline_accessscope 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.
| Input | Notes | Example |
|---|---|---|
| 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
- Access to Microsoft Entra admin center
- Permissions to create App Registrations and grant admin consent
- Tenant ID for the organization
Setup Steps
- 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/callbackas a Redirect URI - Select Register to complete
- 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)
- Navigate to the Overview page and copy the Application (client) ID
- 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
- 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/.defaultis pre-configured for the connection
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.
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.
| Input | Notes | Example |
|---|---|---|
| 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
- Access to a Microsoft Entra admin center or Azure Portal
- Permissions to create App Registrations
Setup Steps
- Navigate to Azure Active Directory tenant and create a new App Registration
- 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
- Under Platforms, add the Web platform:
- Add
https://oauth2.prismatic.io/callbackas a Redirect URI
- Add
- Navigate to Certificates & Secrets and create a new Client Secret:
- Copy the Value of the client secret (this will only be shown once)
- 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_accesshttps://graph.microsoft.com/User.Read- Read basic user datahttps://graph.microsoft.com/Calendars.ReadWrite- Manage Outlook calendarhttps://graph.microsoft.com/Mail.ReadWrite- Manage emailhttps://graph.microsoft.com/Mail.Send- Send emailoffline_access- Maintain OAuth connection and receive refresh tokens- Refer to Microsoft Graph permissions reference for additional scope information
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.
The connection supports different Microsoft cloud environments (Commercial, Government, China). The Base URL will automatically adjust based on the selected cloud environment.
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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 theupdatedchange 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. Whenfalse, 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
updatedchange 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
| Input | Notes | Example |
|---|---|---|
| Connection |
Select Event
Select an event from the list of events | key: selectEvent | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection |
Select Language
Select a language from the list of supported languages | key: selectLanguage | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection |
Select Mail Folder
Select a mail folder from the list of folders | key: selectMailFolder | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection |
Select Message
Select a message from the list of messages | key: selectMessage | type: picklist
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| Connection |
Select Timezone
Select a timezone from the list of supported timezones | key: selectTimezone | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection |
Actions
Cancel Event
Cancel an Event | key: cancelEvent
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| Connection |
{
"data": {
"subscriptionsRemoved": [
"26ebd1e9-c54a-4bbe-9583-fc05974952a4",
"b9b27172-ee2e-4248-86df-fc98cb71d914"
]
}
}
Delete Calendar
Delete an existing Calendar | key: deleteCalendar
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Calendar ID | The unique identifier of the calendar to modify. | AAMkAGI2TGuLAAA= |
{
"data": ""
}
Delete Event
Delete an Event | key: deleteEvent
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Event ID | Unique identifier of the calendar event. | AAMkAGIAAAoZDOFAAA= |
{
"data": ""
}
Delete Mail Folder
Delete the specified mail folder | key: deleteMailFolder
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Folder ID | The unique identifier of the folder. | AAMkAGI2TGuLAAA= |
{
"data": null
}
Delete Message
Delete message by ID | key: deleteMessage
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Message ID | Unique identifier of the message. | AAMkAGUAAAwTW09AAA= |
{
"data": null
}
Delete Subscription
Delete existing subscription for Microsoft Outlook | key: deleteSubscription
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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> <<a href=\"mailto:example@gmail.com\" class=\"mp_address_email\">example@gmail.com</a>></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> <<a href=\"mailto:example@gmail.com\" class=\"mp_address_email\">example@gmail.com</a>></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
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| Connection |
List Supported Timezones
List supported timezones for current user | key: listSupportedTimezones
| Input | Notes | Example |
|---|---|---|
| Connection |
Raw Request
Send raw HTTP request to Microsoft Outlook | key: rawRequest
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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
| Input | Notes | Example |
|---|---|---|
| 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