Microsoft Outlook Calendar
Service domainCALENDAR
Arcade Optimized
Arcade.dev LLM tools for Outlook Calendar
8tools
Microsoft Outlook Calendar Toolkit
The Microsoft Outlook Calendar toolkit lets AI agents manage calendar data through the Microsoft Graph API — creating events, querying availability, searching meetings, and inspecting attachments on behalf of an authenticated user.
Capabilities
- Event management: Create events in the user's default calendar, retrieve a specific event by ID, and list events within a time range. All time-anchoring uses the user's mailbox timezone (falling back to UTC if unset); timezone offsets passed in parameters are ignored.
- Search and filtering: Search calendar events by keyword and optional filters within a time range; results are chronological and bodies are truncated to 200 characters for skimming — use the returned
event_idto fetch full details. - Free/busy scheduling: Get availability across one or more people over a time range, with per-interval status codes, explicit
schedule_itemsblocks, and working-hours data. Numerous edge cases are surfaced explicitly: secondary calendars are invisible, inaccessible calendars return all-free with anote, unresolvable addresses return anerror, and the timezone anchor falls back to UTC with atime_zone_source: "fallback"flag when the mailbox timezone is unreadable. - Calendar discovery: List all calendars the user can access — own, shared, and delegated — with IDs, names, owners, and permissions; use the returned
calendar_idto target non-default calendars in other tools. - Attachment inspection: List attachment metadata (name, size, type) for any calendar event; supports shared/delegated calendars via
calendar_id. Content is not returned, only metadata. - Identity and environment introspection: Retrieve current user info and mailbox timezone details, including the
mailbox_timezone_sourcefield that distinguishes a user-configured zone from a UTC fallback — ensuring agents don't misreport timezone configuration to users.
OAuth
This toolkit uses OAuth 2.0 via the Microsoft provider. Arcade handles the OAuth flow automatically. See the Microsoft auth provider docs for configuration details.
Available tools(8)
8 of 8 tools
Operations
Behavior
| 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. | |||
Get the free/busy availability of one or more people over a time range.
Timezone offsets in start_date_time and end_date_time are ignored. The window is anchored
in the returned time_zone, which is the authenticated user's mailbox timezone, and may be a
Windows name such as "Eastern Standard Time" rather than an IANA identifier - that names a
zone observing daylight saving, not a fixed offset. time_zone_source is "mailbox" only when
the user's mailbox named that zone; it is "fallback" whenever the window is anchored to UTC,
which cannot be distinguished from a mailbox that names no zone at all. On "fallback" treat
every time in the response as unconfirmed and check the intended zone before acting.
Each person's availability_view has one digit per interval, beginning at start_date_time in
that time_zone: 0 = free (or working elsewhere), 1 = tentative, 2 = busy, 3 = out of
office. For the specific times a person is busy, prefer schedule_items, which lists each
block with absolute start and end times; each item's status is one of free, tentative,
busy, oof, workingElsewhere, or unknown.
When Graph provides it, working_hours gives the days and hours a person works. These are on
that person's own clock - named by working_hours.time_zone when Graph resolves it - and are
not converted to the window's time_zone, so do not compare them directly against
availability_view without accounting for the difference.
Results cover only each person's primary calendar. Events that live solely on a secondary
calendar do not mark them busy, so free/busy can read clear while such an event exists.
Visibility depends on your access to each person's calendar. Colleagues, rooms, and
resources whose free/busy is shared with you return busy/free times; an event's subject,
location, and is_private flag appear only when its details are shared with you. A calendar
you cannot see is returned all-free with no error, which is indistinguishable from
genuinely free, so every all-free result carries a "note" marking it unconfirmed. An
address Graph could not resolve or read carries an "error" instead, and is still listed so
that no requested address is silently dropped. One address failing does not affect the rest,
and an error naming too many calendar entries is worth retrying for that address alone over
a shorter range. | |||
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.
mailbox_timezone is the time zone this mailbox's dates are expressed in. It may be a
Windows name such as "Eastern Standard Time" rather than an IANA identifier - that
names a zone observing daylight saving, not a fixed offset. mailbox_timezone_source
says where it came from: "mailbox" and "mailbox_utc" mean the mailbox itself names
the zone, whereas "default_not_configured" (the mailbox names none) and
"default_unreadable" (the setting could not be read) mean UTC is a fallback this
toolkit applied, not a zone the mailbox is set to. On either fallback, do not tell
the user their mailbox is configured for that zone. |
Get Building
Last updated on