Skip to content
GitHub

Outlook Calendar

The Outlook Calendar provider connects to the Microsoft Graph API via OAuth2.

List all calendars accessible to the connected Microsoft account.

Policy operation: list_calendars

Parameters: None


List events from a specific Outlook calendar.

Policy operation: list_events

ParameterTypeRequiredDescription
calendarIdstringyesCalendar ID
startDateTimestringnoISO 8601 datetime lower bound (for calendar view)
endDateTimestringnoISO 8601 datetime upper bound (for calendar view)
filterstringnoOData $filter expression
topnumbernoMax events to return (default 50)

Get details of a specific Outlook calendar event.

Policy operation: get_event

ParameterTypeRequiredDescription
eventIdstringyesEvent ID

Create a new Outlook calendar event.

Policy operation: create_event

ParameterTypeRequiredDescription
calendarIdstringyesCalendar ID
subjectstringyesEvent subject/title
bodyobjectno{ contentType?: "text" | "html", content: string }
startobjectyes{ dateTime: string, timeZone: string }
endobjectyes{ dateTime: string, timeZone: string }
locationobjectno{ displayName: string }
attendeesarrayno[{ emailAddress: { address, name? }, type? }]
isAllDaybooleannoWhether the event is all day

Note that Outlook requires timeZone as an IANA time zone string (e.g. "America/New_York"), unlike Google Calendar where it’s optional.


Update an existing Outlook calendar event.

Policy operation: update_event

ParameterTypeRequiredDescription
eventIdstringyesEvent ID
subjectstringnoEvent subject/title
bodyobjectno{ contentType?: "text" | "html", content: string }
startobjectno{ dateTime: string, timeZone: string }
endobjectno{ dateTime: string, timeZone: string }
locationobjectno{ displayName: string }
attendeesarrayno[{ emailAddress: { address, name? }, type? }]
isAllDaybooleannoWhether the event is all day

Available on update_event. When enabled, the agent can only update events where the connected account is the organizer:

update_event:
allow: true
guards:
require_organizer_self: true
provider: outlook_calendar
account: "{account}"
operations:
list_calendars:
allow: true
list_events:
allow: true
get_event:
allow: true
create_event:
allow: false
update_event:
allow: false

The default policy is read-only. Enable create_event and update_event as needed.

delete_event is not implemented. There is no code path to delete an Outlook calendar event through Gatelet.

Example: read-only with constrained creates

Section titled “Example: read-only with constrained creates”
provider: outlook_calendar
account: me@outlook.com
operations:
list_calendars:
allow: true
list_events:
allow: true
get_event:
allow: true
create_event:
allow: true
constraints:
- field: calendarId
rule: must_equal
value: "YOUR_CALENDAR_ID"
mutations:
- field: attendees
action: delete