> ## Documentation Index
> Fetch the complete documentation index at: https://koreai.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft Outlook Calendar integration

[Back to list of integrations](https://koreai.mintlify.site/agent-platform/integrations/enterprise-systems.md)

Use the Microsoft Outlook Calendar integration to let agents create, list, and delete calendar events through Microsoft Graph.

| Authentication | Actions | Workflow triggers |
| - | - | - |
| Azure AD (Service Principal), OAuth 2.0 App (User Delegated) | [4](#supported-actions) | None |

## Supported actions

Actions are Microsoft Outlook Calendar operations that an agent runs as Action Tools during a conversation. You can also run them from an [Integration node](https://koreai.mintlify.site/agent-platform/workflows.md#integration-node) in a workflow.

| Action | Use it to |
| - | - |
| [Create a new event in a calendar](#create-a-new-event-in-a-calendar) | Create an event. |
| [List events in a calendar](#list-events-in-a-calendar) | List events, optionally filtered. |
| [Delete an event in a calendar](#delete-an-event-in-a-calendar) | Delete an event. |
| [Custom API Call](#custom-api-call) | Call any API endpoint the other actions don't cover. |

## Set up the integration

**1. Register an Entra ID app**

Register an app in [Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app), create a client secret, and copy the **Application (client) ID** and **Directory (tenant) ID**. Add Microsoft Graph permissions (for example `Calendars.ReadWrite`, plus `offline_access` for delegated access) as **Delegated** or **Application** permissions, grant admin consent, and for delegated access add the Artemis **Callback URL** as a **Web** redirect URI.

**2. Create the auth profile**

In **Integrations**, select **Microsoft Outlook Calendar** > **Connect**. On **Project Auth Profiles**, select **New Profile** > **Integration Profile** > **Microsoft Outlook Calendar** > **Continue**. Select an **Auth Type**, configure the fields, and select **Create Profile**. For delegated access, select **Authorize**.

> [tab] OAuth 2.0 App (User Delegated)
>
> Enter the Microsoft identity platform endpoints if Artemis doesn't pre-fill them (`https://login.microsoftonline.com/<tenant>/oauth2/v2.0/authorize` and `.../token`), the delegated **Scopes**, **Client ID**, and **Client Secret**.&#x20;
>
> **Usage Mode**: **Preconfigured** shares one authorization across users; **JIT** and **Preflight** ask each user to authorize, during or before the session. See [Auth profiles](https://koreai.mintlify.site/agent-platform/administration/integrations-settings.md#auth-profiles).

> [tab] Azure AD (Service Principal)
>
> Enter **Azure Tenant ID**, **Scopes** (`https://graph.microsoft.com/.default`), **Client ID**, and **Client Secret**. Keep **Resource** as `https://graph.microsoft.com`.

**3. Create the action tool**

In **Tools**, select **New Tool** > **Action** > **Microsoft Outlook Calendar** > **Continue**. Select the **Action** and **Auth Profile**, set parameter defaults (leave a value empty for the agent to supply at runtime), and select **Create Tool**. Then [assign the tool to an agent](https://koreai.mintlify.site/agent-platform/tools/actions.md#assign-an-action-to-an-agent).

## Action reference

> [accordion] Create a new event in a calendar
>
> | Parameter | Type | Description |
> | - | - | - |
> | `calendarId` | enum | Calendar. |
> | `title` | string | Event title. |
> | `start` | string | Start date and time. |
> | `end` | string | End date and time. Defaults to 30 minutes after start. |
> | `timezone` | enum | Time zone. |
> | `location` | string | Location. |

> [accordion] List events in a calendar
>
> | Parameter | Type | Description |
> | - | - | - |
> | `calendarId` | enum | Calendar. |
> | `filter` | string | OData filter. See [filter query parameter](https://learn.microsoft.com/en-us/graph/filter-query-parameter). |

> [accordion] Delete an event in a calendar
>
> | Parameter | Type | Description |
> | - | - | - |
> | `calendarId` | enum | Calendar. |
> | `eventId` | string | Event ID. |

> [accordion] Custom API Call
>
> | Parameter | Type | Description |
> | - | - | - |
> | `url` | object | Endpoint URL. |
> | `method` | enum | HTTP method. |
> | `headers` | object | Additional request headers. Artemis injects the authorization header. |
> | `queryParams` | object | Query parameters. |
> | `body_type` | enum | Body type. Default: `None`. |
> | `body` | object | Request body. |
> | `response_is_binary` | boolean | Turn on for binary responses. Default: `False`. |
> | `failsafe` | boolean | Returns no error when the call fails. |
> | `timeout` | number | Timeout, in seconds. |
> | `followRedirects` | boolean | Follows HTTP redirects. Default: `False`. |

## Troubleshoot common issues

| Issue | Resolution |
| - | - |
| `AADSTS50011` redirect URI mismatch | Add the exact **Callback URL** as a **Web** redirect URI in the app registration. |
| `AADSTS65001` consent required | Grant admin consent for the API permissions, and then authorize again. |
| `403 Forbidden` | Add the missing Microsoft Graph permission for the action, and grant consent. |
| Event time is off | Set **timezone** to match the times in `start` and `end`. |

**Related articles:**

* [Auth profiles](https://koreai.mintlify.site/agent-platform/administration/integrations-settings.md#auth-profiles)
* [Action Tools](https://koreai.mintlify.site/agent-platform/tools/actions.md)
* [Calendar API in Microsoft Graph](https://learn.microsoft.com/en-us/graph/outlook-calendar-concept-overview)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.