> **Building with AI coding agents?** If you're using an AI coding agent, install the official Scalekit plugin. It gives your agent full awareness of the Scalekit API — reducing hallucinations and enabling faster, more accurate code generation.
>
> - **Claude Code**: `/plugin marketplace add scalekit-inc/claude-code-authstack` then `/plugin install <auth-type>@scalekit-auth-stack`
> - **GitHub Copilot CLI**: `copilot plugin marketplace add scalekit-inc/github-copilot-authstack` then `copilot plugin install <auth-type>@scalekit-auth-stack`
> - **Codex**: run the bash installer, restart, then open Plugin Directory and enable `<auth-type>`
> - **Skills CLI** (Windsurf, Cline, 40+ agents): `npx skills add scalekit-inc/skills --list` then `--skill <skill-name>`
>
> `<auth-type>` / `<skill-name>`: `agent-auth`, `full-stack-auth`, `mcp-auth`, `modular-sso`, `modular-scim` — [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Outlook

<div class="grid grid-cols-5 gap-4 items-center">
 <div class="col-span-4">
  Connect to Microsoft Outlook. Manage emails, calendar events, contacts, and tasks
 </div>
 <div class="flex justify-center">
  <img src="https://cdn.scalekit.com/sk-connect/assets/provider-icons/outlook.svg" width="64" height="64" alt="Outlook logo" />
 </div>
</div>

Supports authentication: OAuth 2.0

## Set up the agent connector

<SetupOutlookSection />

## Usage

<UsageOutlookSection />

## Tool list

## `outlook_create_calendar_event`

Create a new calendar event in the user's Outlook calendar. Supports attendees, recurrence, reminders, online meetings, multiple locations, and event properties.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `attendees_optional` | string | No | Array of email addresses for optional attendees |
| `attendees_required` | string | No | Array of email addresses for required attendees |
| `attendees_resource` | string | No | Array of email addresses for resources (meeting rooms, equipment) |
| `body_content` | string | No | No description |
| `body_contentType` | string | No | No description |
| `end_datetime` | string | Yes | No description |
| `end_timezone` | string | Yes | No description |
| `hideAttendees` | boolean | No | When true, each attendee only sees themselves |
| `importance` | string | No | Event importance level |
| `isAllDay` | boolean | No | Mark as all-day event |
| `isOnlineMeeting` | boolean | No | Create an online meeting (Teams/Skype) |
| `isReminderOn` | boolean | No | Enable or disable reminder |
| `location` | string | No | No description |
| `locations` | string | No | JSON array of location objects with displayName, address, coordinates |
| `onlineMeetingProvider` | string | No | Online meeting provider |
| `recurrence_days_of_week` | string | No | Days of week for weekly recurrence (comma-separated) |
| `recurrence_end_date` | string | No | End date for recurrence (YYYY-MM-DD), required if range_type is endDate |
| `recurrence_interval` | integer | No | How often the event recurs (e.g., every 2 weeks = 2) |
| `recurrence_occurrences` | integer | No | Number of occurrences, required if range_type is numbered |
| `recurrence_range_type` | string | No | How the recurrence ends |
| `recurrence_start_date` | string | No | Start date for recurrence (YYYY-MM-DD) |
| `recurrence_type` | string | No | Recurrence pattern type |
| `reminderMinutesBeforeStart` | integer | No | Minutes before event start to show reminder |
| `sensitivity` | string | No | Event sensitivity/privacy level |
| `showAs` | string | No | Free/busy status |
| `start_datetime` | string | Yes | No description |
| `start_timezone` | string | Yes | No description |
| `subject` | string | Yes | No description |

## `outlook_delete_calendar_event`

Delete a calendar event by ID.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `event_id` | string | Yes | No description |

## `outlook_get_calendar_event`

Retrieve an existing calendar event by ID from the user's Outlook calendar.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `event_id` | string | Yes | No description |

## `outlook_list_calendar_events`

List calendar events from the user's Outlook calendar with filtering, sorting, pagination, and field selection.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `filter` | string | No | OData filter expression to filter events (e.g., startsWith(subject,'All')) |
| `orderby` | string | No | OData orderby expression to sort events (e.g., start/dateTime desc) |
| `select` | string | No | Comma-separated list of properties to include in the response |
| `skip` | number | No | Number of events to skip for pagination |
| `top` | number | No | Maximum number of events to return |

## `outlook_update_calendar_event`

Update an existing Outlook calendar event. Only provided fields will be updated. Supports time, attendees, location, reminders, online meetings, recurrence, and event properties.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `attendees_optional` | string | No | Comma-separated optional attendee emails |
| `attendees_required` | string | No | Comma-separated required attendee emails |
| `attendees_resource` | string | No | Comma-separated resource emails (meeting rooms, equipment) |
| `body_content` | string | No | Event description/body |
| `body_contentType` | string | No | Content type of body |
| `categories` | string | No | Comma-separated categories |
| `end_datetime` | string | No | Event end time in RFC3339 format |
| `end_timezone` | string | No | Timezone for end time |
| `event_id` | string | Yes | The ID of the calendar event to update |
| `hideAttendees` | boolean | No | When true, each attendee only sees themselves |
| `importance` | string | No | Event importance level |
| `isAllDay` | boolean | No | Mark as all-day event |
| `isOnlineMeeting` | boolean | No | Create an online meeting (Teams/Skype) |
| `isReminderOn` | boolean | No | Enable or disable reminder |
| `location` | string | No | Physical or virtual location |
| `locations` | string | No | JSON array of location objects with displayName, address, coordinates |
| `onlineMeetingProvider` | string | No | Online meeting provider |
| `recurrence_days_of_week` | string | No | Days of week for weekly recurrence (comma-separated) |
| `recurrence_end_date` | string | No | End date for recurrence (YYYY-MM-DD) |
| `recurrence_interval` | integer | No | How often the event recurs (e.g., every 2 weeks = 2) |
| `recurrence_occurrences` | integer | No | Number of occurrences |
| `recurrence_range_type` | string | No | How the recurrence ends |
| `recurrence_start_date` | string | No | Start date for recurrence (YYYY-MM-DD) |
| `recurrence_type` | string | No | Recurrence pattern type |
| `reminderMinutesBeforeStart` | integer | No | Minutes before event start to show reminder |
| `sensitivity` | string | No | Event sensitivity/privacy level |
| `showAs` | string | No | Free/busy status |
| `start_datetime` | string | No | Event start time in RFC3339 format |
| `start_timezone` | string | No | Timezone for start time |
| `subject` | string | No | Event title/summary |

---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
