Skip to main content

Calendars

Let agents manage real calendars: create meetings with attendees and video links, look up availability windows, reschedule, and cancel — on Google Calendar or Outlook Calendar.

The Google tool types require a Google Calendar connector; the Outlook tool types require an Outlook Calendar connector. Both are OAuth connections to the account whose calendars the agent should manage — see Connectors. Both families share the same conventions for dates and times: dates are yyyy-MM-dd, times are 24-hour HH:mm, and timeZone is an IANA identifier like America/New_York (when omitted, the connector's default time zone is used).

Both providers also share one recurrence model. The recurrence field on the create and update tools takes a RecurrenceRule object:

RecurrenceRule
{
"frequency": "WEEKLY",
"interval": 2,
"byDay": ["MO", "WE", "FR"],
"until": "2026-12-31",
"excludeDates": ["2026-11-26"]
}

frequency is DAILY, WEEKLY, MONTHLY, or YEARLY; interval spaces out occurrences (every 2 weeks, etc.); end the series with either count or until (mutually exclusive). byDay takes weekday codes (MO–SU, with position prefixes like 1MO or -1FR for monthly patterns), and byMonthDay, byMonth, and bySetPos cover day-of-month, month, and "first/last occurrence" patterns. For Google, the rule is converted to standard RRULE strings, and excludeDates/includeDates become EXDATE/RDATE entries; passing "frequency": "NONE" on an update clears recurrence. For Outlook, the same rule is converted to a Microsoft Graph recurrence pattern — excludeDates and includeDates are not supported there.

Google Calendar​

Google tools can span multiple calendars on the connected account. Create and update return the event as a simplified object (eventId, name, description, start/end date and time fields, location, attendees, isBlocking, isOrganizer, and any recurrence), so agents never have to parse raw Google API payloads.

Create Event (Google) TOOLGOOGLE_CALENDAR_CREATE_EVENT​

Creates an event on the given calendar — or, when calendarId is omitted, on the connector's first enabled calendar. Two conveniences default to on: unless addGoogleMeet is false a Google Meet conference is attached and its link comes back as meetUrl, and unless includeOrganizerAsAttendee is false the connected account is added as an attendee so the event blocks their availability. attendees is a list of email addresses (a single comma-separated string also works), and a recurrence rule makes the event repeat. The result returns the eventId and the simplified event object.

Example​

Tool config
{
"toolType": "GOOGLE_CALENDAR_CREATE_EVENT",
"connectorId": "V1StGXR8Z5",
"calendarId": "primary",
"summary": "@@{meetingTitle}",
"description": "@@{agenda}",
"startDate": "@@{meetingDate}",
"startTime": "14:00",
"endDate": "@@{meetingDate}",
"endTime": "14:30",
"timeZone": "America/New_York",
"attendees": ["@@{attendeeEmail}"],
"location": "Google Meet",
"addGoogleMeet": true
}
This tool type requires a connected external account. Pass the connector's ID as connectorId in the tool configuration.

Configuration fields

  • Name
    connectorId
    Type
    string (ID)
    Description
    Required string (ID) value. References a connector by ID.
  • Name
    calendarId
    Type
    string
    Description
    Required string value.
  • Name
    summary
    Type
    string
    Description
    Required string value.
  • Name
    description
    Type
    string
    Description
    Required string value.
  • Name
    startDate
    Type
    string
    Description
    Required string value.
  • Name
    startTime
    Type
    string
    Description
    Required string value.
  • Name
    endDate
    Type
    string
    Description
    Required string value.
  • Name
    endTime
    Type
    string
    Description
    Required string value.
  • Name
    timeZone
    Type
    string
    Description
    Required string value.
  • Name
    attendees
    Type
    array<string>
    Description
    Required array<string> value.
  • Name
    location
    Type
    string
    Description
    Required string value.
  • Name
    recurrence
    Type
    object · optional
    Description
    Recurrence rule for creating recurring events (optional). See RecurrenceRule class for JSON structure and examples.
  • Name
    includeOrganizerAsAttendee
    Type
    boolean
    Description
    When null or true, the organizer (connector account) is added to attendees as self.
  • Name
    addGoogleMeet
    Type
    boolean
    Description
    When null or true, a Google Meet conference is created and its link returned.

List Events (Google) TOOLGOOGLE_CALENDAR_LIST_EVENTS​

Lists events across one or more calendars at once — calendarIds is a list, and results from every calendar are merged into a single events array ordered by start time, with totalEventCount and the responseTimeZone used for formatting. Narrow the window with the start/end date and time fields, filter by free-text query, and cap results with maxResults. It doubles as a single-event lookup: set eventId (with exactly one calendar in calendarIds) to fetch just that event. This is the availability primitive — agents check a time window here before proposing or booking a slot.

Example​

Tool config
{
"toolType": "GOOGLE_CALENDAR_LIST_EVENTS",
"connectorId": "V1StGXR8Z5",
"calendarIds": ["primary"],
"startDate": "@@{windowStart}",
"startTime": "00:00",
"endDate": "@@{windowEnd}",
"endTime": "23:59",
"timeZone": "America/New_York",
"maxResults": 50
}
This tool type requires a connected external account. Pass the connector's ID as connectorId in the tool configuration.

Configuration fields

  • Name
    connectorId
    Type
    string (ID)
    Description
    Required string (ID) value. References a connector by ID.
  • Name
    calendarIds
    Type
    array<string>
    Description
    Required array<string> value.
  • Name
    startDate
    Type
    string
    Description
    Required string value.
  • Name
    startTime
    Type
    string
    Description
    Required string value.
  • Name
    endDate
    Type
    string
    Description
    Required string value.
  • Name
    endTime
    Type
    string
    Description
    Required string value.
  • Name
    timeZone
    Type
    string
    Description
    Required string value.
  • Name
    maxResults
    Type
    integer
    Description
    Required integer value.
  • Name
    query
    Type
    string
    Description
    Required string value.
  • Name
    eventId
    Type
    string
    Description
    Required string value.

Update Event (Google) TOOLGOOGLE_CALENDAR_UPDATE_EVENT​

Updates an existing event with patch semantics: the executor first fetches the current event, and any date, time, or attendee field left unset keeps its existing value — so an agent can move a meeting without restating the guest list. Supplying attendees replaces the list; a recurrence rule rewrites the series, and "frequency": "NONE" removes recurrence entirely. The result returns the eventId and the updated simplified event; an unknown eventId fails with EVENT_NOT_FOUND.

Example​

Tool config
{
"toolType": "GOOGLE_CALENDAR_UPDATE_EVENT",
"connectorId": "V1StGXR8Z5",
"calendarId": "primary",
"eventId": "@@{eventId}",
"startDate": "@@{newDate}",
"startTime": "@@{newStartTime}",
"endDate": "@@{newDate}",
"endTime": "@@{newEndTime}",
"timeZone": "America/New_York"
}
This tool type requires a connected external account. Pass the connector's ID as connectorId in the tool configuration.

Configuration fields

  • Name
    connectorId
    Type
    string (ID)
    Description
    Required string (ID) value. References a connector by ID.
  • Name
    calendarId
    Type
    string
    Description
    Required string value.
  • Name
    eventId
    Type
    string
    Description
    Required string value.
  • Name
    summary
    Type
    string
    Description
    Required string value.
  • Name
    description
    Type
    string
    Description
    Required string value.
  • Name
    startDate
    Type
    string
    Description
    Required string value.
  • Name
    startTime
    Type
    string
    Description
    Required string value.
  • Name
    endDate
    Type
    string
    Description
    Required string value.
  • Name
    endTime
    Type
    string
    Description
    Required string value.
  • Name
    timeZone
    Type
    string
    Description
    Required string value.
  • Name
    attendees
    Type
    array<string>
    Description
    Required array<string> value.
  • Name
    location
    Type
    string
    Description
    Required string value.
  • Name
    recurrence
    Type
    object · optional
    Description
    Recurrence rule for updating recurring events (optional). See RecurrenceRule class for JSON structure and examples.

Delete Event (Google) TOOLGOOGLE_CALENDAR_DELETE_EVENT​

Deletes an event from the given calendar, cancelling it for all attendees. The result confirms the eventId and calendarId that were removed. Get the eventId from a prior List Events call — deleting a recurring event's series ID cancels the whole series.

Example​

Tool config
{
"toolType": "GOOGLE_CALENDAR_DELETE_EVENT",
"connectorId": "V1StGXR8Z5",
"calendarId": "primary",
"eventId": "@@{eventId}"
}
This tool type requires a connected external account. Pass the connector's ID as connectorId in the tool configuration.

Configuration fields

  • Name
    connectorId
    Type
    string (ID)
    Description
    Required string (ID) value. References a connector by ID.
  • Name
    calendarId
    Type
    string
    Description
    Required string value.
  • Name
    eventId
    Type
    string
    Description
    Required string value.

Outlook Calendar​

Outlook tools operate on one calendar per call, defaulting to the connector's primary calendar when calendarId is omitted. Events come back in a simplified Graph shape (id, subject, bodyPreview, start/end with time zones, location, attendees, organizer, webLink), and event IDs are compact six-character short IDs valid for four hours — if an update or delete reports an expired ID, re-run List Events for fresh ones.

Create Event (Outlook) TOOLOUTLOOK_CALENDAR_CREATE_EVENT​

Creates an event on the given calendar (or the account's default calendar when calendarId is omitted), inviting everyone in attendees. A recurrence rule is converted to Microsoft Graph's native recurrence pattern — daily through yearly, including relative patterns like "first Monday of each month" via byDay plus bySetPos — though excludeDates/includeDates are not supported on Outlook. There is no automatic video-conference option here, unlike the Google equivalent. The result returns the short eventId and the simplified event.

Example​

Tool config
{
"toolType": "OUTLOOK_CALENDAR_CREATE_EVENT",
"connectorId": "V1StGXR8Z5",
"subject": "@@{meetingTitle}",
"description": "@@{agenda}",
"startDate": "@@{meetingDate}",
"startTime": "14:00",
"endDate": "@@{meetingDate}",
"endTime": "14:30",
"timeZone": "America/New_York",
"attendees": ["@@{attendeeEmail}"],
"location": "Teams"
}
This tool type requires a connected external account. Pass the connector's ID as connectorId in the tool configuration.

Configuration fields

  • Name
    connectorId
    Type
    string (ID)
    Description
    Required string (ID) value. References a connector by ID.
  • Name
    calendarId
    Type
    string
    Description
    Required string value.
  • Name
    subject
    Type
    string
    Description
    Required string value.
  • Name
    description
    Type
    string
    Description
    Required string value.
  • Name
    startDate
    Type
    string
    Description
    Required string value.
  • Name
    startTime
    Type
    string
    Description
    Required string value.
  • Name
    endDate
    Type
    string
    Description
    Required string value.
  • Name
    endTime
    Type
    string
    Description
    Required string value.
  • Name
    timeZone
    Type
    string
    Description
    Required string value.
  • Name
    attendees
    Type
    array<string>
    Description
    Required array<string> value.
  • Name
    location
    Type
    string
    Description
    Required string value.
  • Name
    recurrence
    Type
    object
    Description
    Required object value.

List Events (Outlook) TOOLOUTLOOK_CALENDAR_LIST_EVENTS​

Lists events from one calendar within a date window, expanding recurring events into their individual occurrences (Graph calendar-view semantics). When no window is given it defaults to the next seven days starting today, which makes an unconfigured call a useful "what's coming up" check. Filter with free-text query and cap with maxResults; the result returns totalEventCount and the simplified events array with short event IDs for follow-up update or delete calls.

Example​

Tool config
{
"toolType": "OUTLOOK_CALENDAR_LIST_EVENTS",
"connectorId": "V1StGXR8Z5",
"startDate": "@@{windowStart}",
"endDate": "@@{windowEnd}",
"timeZone": "America/New_York",
"maxResults": 50
}
This tool type requires a connected external account. Pass the connector's ID as connectorId in the tool configuration.

Configuration fields

  • Name
    connectorId
    Type
    string (ID)
    Description
    Required string (ID) value. References a connector by ID.
  • Name
    calendarId
    Type
    string
    Description
    Required string value.
  • Name
    startDate
    Type
    string
    Description
    Required string value.
  • Name
    startTime
    Type
    string
    Description
    Required string value.
  • Name
    endDate
    Type
    string
    Description
    Required string value.
  • Name
    endTime
    Type
    string
    Description
    Required string value.
  • Name
    timeZone
    Type
    string
    Description
    Required string value.
  • Name
    maxResults
    Type
    integer
    Description
    Graph `$top` page size, not a cap on the events returned: the client follows `@odata.nextLink` and returns the whole window, setting `truncated` if its page limit is reached.
  • Name
    query
    Type
    string
    Description
    Graph `$top` page size, not a cap on the events returned: the client follows `@odata.nextLink` and returns the whole window, setting `truncated` if its page limit is reached.

Update Event (Outlook) TOOLOUTLOOK_CALENDAR_UPDATE_EVENT​

Updates an existing event with patch semantics — only the fields you supply are changed, and start/end are only rewritten when both the date and time parts are present. eventId takes a short ID from a previous List Events call (expired short IDs fail with EVENT_ID_EXPIRED; re-list to refresh). A recurrence rule replaces the series pattern. The result returns a fresh short eventId and the updated simplified event.

Example​

Tool config
{
"toolType": "OUTLOOK_CALENDAR_UPDATE_EVENT",
"connectorId": "V1StGXR8Z5",
"eventId": "@@{eventId}",
"startDate": "@@{newDate}",
"startTime": "@@{newStartTime}",
"endDate": "@@{newDate}",
"endTime": "@@{newEndTime}",
"timeZone": "America/New_York"
}
This tool type requires a connected external account. Pass the connector's ID as connectorId in the tool configuration.

Configuration fields

  • Name
    connectorId
    Type
    string (ID)
    Description
    Required string (ID) value. References a connector by ID.
  • Name
    calendarId
    Type
    string
    Description
    Required string value.
  • Name
    eventId
    Type
    string
    Description
    Required string value.
  • Name
    subject
    Type
    string
    Description
    Required string value.
  • Name
    description
    Type
    string
    Description
    Required string value.
  • Name
    startDate
    Type
    string
    Description
    Required string value.
  • Name
    startTime
    Type
    string
    Description
    Required string value.
  • Name
    endDate
    Type
    string
    Description
    Required string value.
  • Name
    endTime
    Type
    string
    Description
    Required string value.
  • Name
    timeZone
    Type
    string
    Description
    Required string value.
  • Name
    attendees
    Type
    array<string>
    Description
    Required array<string> value.
  • Name
    location
    Type
    string
    Description
    Required string value.
  • Name
    recurrence
    Type
    object
    Description
    Required object value.

Delete Event (Outlook) TOOLOUTLOOK_CALENDAR_DELETE_EVENT​

Deletes an event from the calendar, cancelling it for all attendees. eventId takes a short ID from a previous List Events call and fails with EVENT_ID_EXPIRED once the four-hour window has passed — re-list to get a fresh ID. The result confirms the eventId that was removed.

Example​

Tool config
{
"toolType": "OUTLOOK_CALENDAR_DELETE_EVENT",
"connectorId": "V1StGXR8Z5",
"eventId": "@@{eventId}"
}
This tool type requires a connected external account. Pass the connector's ID as connectorId in the tool configuration.

Configuration fields

  • Name
    connectorId
    Type
    string (ID)
    Description
    Required string (ID) value. References a connector by ID.
  • Name
    calendarId
    Type
    string
    Description
    Required string value.
  • Name
    eventId
    Type
    string
    Description
    Required string value.