Microsoft Outlook Calendar
Arcade.dev LLM tools for Outlook Calendar
Microsoft Outlook Calendar Toolkit
The Microsoft Outlook Calendar toolkit lets Arcade-powered LLMs interact with a user's Outlook Calendar via the Microsoft Graph API, enabling calendar reads, writes, and queries on behalf of authenticated users.
Capabilities
- Calendar discovery & context: List all calendars the user owns, shares, or has delegated access to; retrieve current user identity and calendar environment details.
- Event creation: Create events in the user's default calendar; timezone handling defers to the calendar's configured timezone (falls back to UTC if unset).
- Event retrieval & listing: Fetch a specific event by ID, or list all events within a defined time range using the calendar's native timezone.
- Search & filtering: Search events across a time range with optional filters; results are chronologically ordered with body content truncated to 200 characters for efficiency — use the returned event ID to fetch full details.
- Attachment inspection: List attachment metadata (name, size, type) for any calendar event, including events on shared or delegated calendars; attachment content is not returned.
OAuth
This toolkit uses OAuth 2.0 delegated auth via Microsoft. Arcade handles the OAuth flow automatically. See the Microsoft auth provider docs for configuration details.
Available tools(7)
| Tool name | Description | Secrets | |
|---|---|---|---|
Create an event in the authenticated user's default calendar.
Ignores timezone offsets provided in the start_date_time and end_date_time parameters.
Instead, uses the user's default calendar timezone to filter events.
If the user has not set a timezone for their calendar, then the timezone will be UTC. | |||
Get an event by its ID from the user's calendar. | |||
List all calendars the user has access to.
Returns the user's own calendars plus any shared or delegated calendars.
Each calendar includes its ID, name, owner, and permissions.
Use a calendar_id from the results to target a specific calendar
in other calendar tools. | |||
List attachment metadata for a calendar event.
Returns metadata only (name, size, type, etc.). Attachment content is not included.
Use this tool when the user wants to know what files are attached to a calendar event
or meeting.
Pass a calendar_id to list attachments on events in shared or delegated calendars. | |||
List events in the user's calendar in a specific time range.
Ignores timezone offsets provided in the start_date_time and end_date_time parameters.
Instead, uses the user's default calendar timezone to filter events.
If the user has not set a timezone for their calendar, then the timezone will be UTC. | |||
Search calendar events within a time range with optional filters.
Results are in chronological order.
Event bodies are truncated to 200 characters for efficient skimming.
Use the event_id from the results to retrieve full event details. | |||
Get information about the current user and their Outlook Calendar environment. |
Selected tools
No tools selected.
Click "Show all tools" to add tools.
Requirements
Select tools to see requirements
MicrosoftOutlookCalendar.CreateEvent
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Create an event in the authenticated user's default calendar. Ignores timezone offsets provided in the start_date_time and end_date_time parameters. Instead, uses the user's default calendar timezone to filter events. If the user has not set a timezone for their calendar, then the timezone will be UTC.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
subject | string | Required | The text of the event's subject (title) line. |
body | string | Required | The body of the event |
start_date_time | string | Required | The datetime of the event's start, represented in ISO 8601 format. Timezone offset is ignored. For example, 2025-04-25T13:00:00 |
end_date_time | string | Required | The datetime of the event's end, represented in ISO 8601 format. Timezone offset is ignored. For example, 2025-04-25T13:30:00 |
location | string | Optional | The location of the event |
attendee_emails | array<string> | Optional | The email addresses of the attendees of the event. Must be valid email addresses e.g., username@domain.com. |
is_online_meeting | boolean | Optional | Whether the event is an online meeting. Defaults to False |
custom_meeting_url | string | Optional | The URL of the online meeting. If not provided and is_online_meeting is True, then a url will be generated for you |
Requirements
Output
json— A dictionary containing the created event detailsMicrosoftOutlookCalendar.GetEvent
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get an event by its ID from the user's calendar.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
event_id | string | Required | The ID of the event to get |
Requirements
Output
json— A dictionary containing the event detailsMicrosoftOutlookCalendar.ListCalendars
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List all calendars the user has access to. Returns the user's own calendars plus any shared or delegated calendars. Each calendar includes its ID, name, owner, and permissions. Use a calendar_id from the results to target a specific calendar in other calendar tools.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
limit | integer | Optional | Maximum number of calendars to return. Max is 200. Defaults to 50. |
pagination_token | string | Optional | The pagination token to continue a previous request. |
Requirements
Output
json— A dictionary containing a list of available calendars.MicrosoftOutlookCalendar.ListEventAttachments
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List attachment metadata for a calendar event. Returns metadata only (name, size, type, etc.). Attachment content is not included. Use this tool when the user wants to know what files are attached to a calendar event or meeting. Pass a calendar_id to list attachments on events in shared or delegated calendars.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
event_id | string | Required | The ID of the calendar event to list attachments for. |
calendar_id | string | Optional | ID of a specific calendar containing the event, including shared and delegated ones. When omitted, searches the user's default calendar. |
limit | integer | Optional | The maximum number of attachments to return. Max is 100. Defaults to 25. |
pagination_token | string | Optional | The pagination token to continue a previous request. |
Requirements
Output
json— A dictionary containing a list of attachment metadata objects.MicrosoftOutlookCalendar.ListEventsInTimeRange
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List events in the user's calendar in a specific time range. Ignores timezone offsets provided in the start_date_time and end_date_time parameters. Instead, uses the user's default calendar timezone to filter events. If the user has not set a timezone for their calendar, then the timezone will be UTC.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
start_date_time | string | Required | The start date and time of the time range, represented in ISO 8601 format. Timezone offset is ignored. For example, 2025-04-24T19:00:00 |
end_date_time | string | Required | The end date and time of the time range, represented in ISO 8601 format. Timezone offset is ignored. For example, 2025-04-24T19:30:00 |
limit | integer | Optional | The maximum number of events to return. Max 1000. Defaults to 10 |
Requirements
Output
json— A dictionary containing a list of eventsMicrosoftOutlookCalendar.SearchEvents
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Search calendar events within a time range with optional filters. Results are in chronological order. Event bodies are truncated to 200 characters for efficient skimming. Use the event_id from the results to retrieve full event details.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
subject | string | Optional | Filter events whose subject contains this text (case-insensitive). Defaults to None (no subject filter). |
attendee_emails | array<string> | Optional | Filter events that include these attendees by exact email address. Multiple emails are combined with AND (all must be attendees). Defaults to None (no attendee filter). |
organizer_name | string | Optional | Filter events organized by another specific person by their display name. Matching is case-insensitive substring against the organizer's display name. Do not use this to filter for events organized by the current authenticated user — use organized_by_me=True instead, which does not depend on knowing your own display name. Defaults to None (no organizer filter). |
organized_by_me | boolean | Optional | Filter for events the current authenticated user organized (True) vs. events the current user was invited to but did not organize (False). Defaults to None (no filter). Prefer this over organizer_name when the user asks about their own events — it does not require knowing the user's display name in the tenant's format. |
importance | string | Optional | Filter by event importance level. Defaults to None (no filter).lownormalhigh |
is_online_meeting | boolean | Optional | Filter for online meetings (True) or in-person meetings (False). Defaults to None (no filter). |
start_date_time | string | Optional | The start of the time range, in ISO 8601 format. Timezone offset is ignored; the user's calendar timezone is used. Defaults to None (90 days before today). |
end_date_time | string | Optional | The end of the time range, in ISO 8601 format. Timezone offset is ignored; the user's calendar timezone is used. Defaults to None (90 days after today). |
calendar_id | string | Optional | ID of a specific calendar to search, including shared and delegated ones. When omitted, searches the user's default calendar. |
include_cancelled | boolean | Optional | Whether to include cancelled events in the results. Defaults to False. |
limit | integer | Optional | Maximum number of matching events to return. Max is 200. Defaults to 25. When client-side filters are active, the tool may scan multiple pages to accumulate matches. |
pagination_token | string | Optional | Encoded pagination token to continue a previous request. Preserves client-side filter state (attendee_emails, organizer_name, organized_by_me, is_online_meeting) across continuation calls. |
Requirements
Output
json— A dictionary containing a list of matching calendar events.MicrosoftOutlookCalendar.WhoAmI
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get information about the current user and their Outlook Calendar environment.
Parameters
No parameters required.
Requirements
Output
json— Get comprehensive user profile and Outlook Calendar information.