IntegrationsProductivity & DocsGoogleCalendar

Calendar

Description: Enable agents to interact with Google Calendar events.

Author: Arcade

Code: GitHub

Auth: User authorization via the Google auth provider

PyPI VersionLicensePython VersionsWheel StatusDownloads

The Arcade Calendar toolkit provides a pre-built set of tools for interacting with Google Calendar. These tools make it easy to build agents and AI apps that can:

  • Create, update, list, and delete events

Install

pip install arcade_google

pip installing the toolkit is only needed if you are self-hosting Arcade. You do not need to install the toolkit if you’re using Arcade Cloud.

Available Tools

These tools are currently available in the Arcade Calendar toolkit.

Tool NameDescription
CreateEventCreate a new event in Google Calendar.
ListEventsList events from Google Calendar.
UpdateEventUpdate an existing event in Google Calendar.
DeleteEventDelete an event from Google Calendar.
FindTimeSlotsWhenEveryoneIsFreeProvides time slots when everyone is free within a given date range and time boundaries.

If you need to perform an action that’s not listed here, you can get in touch with us to request a new tool, or create your own tools with the Google auth provider.

CreateEvent


Create a new event in the specified calendar.

Parameters

  • summary (string, required) The title of the event
  • start_datetime (string, required) The datetime when the event starts in ISO 8601 format, e.g., ‘2024-12-31T15:30:00’.
  • end_datetime (string, required) The datetime when the event ends in ISO 8601 format, e.g., ‘2024-12-31T17:30:00’.
  • calendar_id (string, optional, Defaults to 'primary') The ID of the calendar to create the event in, usually ‘primary’.
  • description (string, optional) The description of the event
  • location (string, optional) The location of the event
  • visibility (string, optional) The visibility of the event
  • attendee_emails (array, optional) The list of attendee emails. Must be valid email addresses e.g., [email protected].

ListEvents


List events from the specified calendar within the given datetime range.

min_end_datetime serves as the lower bound (exclusive) for an event’s end time. max_start_datetime serves as the upper bound (exclusive) for an event’s start time.

For example: If min_end_datetime is set to 2024-09-15T09:00:00 and max_start_datetime is set to 2024-09-16T17:00:00, the function will return events that:

  1. End after 09:00 on September 15, 2024 (exclusive)
  2. Start before 17:00 on September 16, 2024 (exclusive) This means an event starting at 08:00 on September 15 and ending at 10:00 on September 15 would be included, but an event starting at 17:00 on September 16 would not be included.

Parameters

  • min_end_datetime (string, required) Filter by events that end on or after this datetime in ISO 8601 format, e.g., ‘2024-09-15T09:00:00’.
  • max_start_datetime (string, required) Filter by events that start before this datetime in ISO 8601 format, e.g., ‘2024-09-16T17:00:00’.
  • calendar_id (string, optional) The ID of the calendar to list events from
  • max_results (integer, optional) The maximum number of events to return

UpdateEvent


Update an existing event in the specified calendar with the provided details. Only the provided fields will be updated; others will remain unchanged.

updated_start_datetime and updated_end_datetime are independent and can be provided separately.

Parameters

  • event_id (string, required) The ID of the event to update
  • updated_start_datetime (string, optional) The updated datetime that the event starts in ISO 8601 format, e.g., ‘2024-12-31T15:30:00’.
  • updated_end_datetime (string, optional) The updated datetime that the event ends in ISO 8601 format, e.g., ‘2024-12-31T17:30:00’.
  • updated_calendar_id (string, optional) The updated ID of the calendar containing the event.
  • updated_summary (string, optional) The updated title of the event
  • updated_description (string, optional) The updated description of the event
  • updated_location (string, optional) The updated location of the event
  • updated_visibility (enum (EventVisibility), optional) The visibility of the event
  • attendee_emails_to_add (array, optional) The list of attendee emails to add. Must be valid email addresses e.g., [email protected].
  • attendee_emails_to_remove (array, optional) The list of attendee emails to remove. Must be valid email addresses e.g., [email protected].
  • send_updates (enum (SendUpdatesOptions), optional, Defaults to 'all') Should attendees be notified of the update? (none, all, external_only)

DeleteEvent


Delete an event from Google Calendar.

Parameters

  • event_id (string, required) The ID of the event to delete
  • calendar_id (string, optional, Defaults to 'primary') The ID of the calendar containing the event
  • send_updates (enum (SendUpdatesOptions), optional, Defaults to 'all') Specifies which attendees to notify about the deletion

FindTimeSlotsWhenEveryoneIsFree


Provides time slots when everyone is free within a given date range and time boundaries.

Parameters

When using model calling with the Google.FindTimeSlotsWhenEveryoneIsFree tool, always ground the LLM with the current date and day of the week by appending it to the prompt. See examples above for “Execute the Tool with OpenAI”. Consider your user’s timezone when appropriate.

  • email_addresses (list of strings, defaults to None) The list of email addresses from people in the same organization domain (apart from the currently logged in user) to search for free time slots. Defaults to None, which will return free time slots for the current user only.
  • start_date (string, optional, Defaults to None) The start date to search for time slots in the format ‘YYYY-MM-DD’. Defaults to today’s date. It will search starting from this date at the time 00:00:00.
  • end_date (string, optional, Defaults to None) The end date to search for time slots in the format ‘YYYY-MM-DD’. Defaults to seven days from the start date. It will search until this date at the time 23:59:59.
  • start_time_boundary (string, defaults to “08:00”) Will return free slots in any given day starting from this time in the format ‘HH:MM’. Defaults to ‘08:00’, which is a usual business hour start time.
  • end_time_boundary (string, defaults to “18:00”) Will return free slots in any given day ending at this time in the format ‘HH:MM’. Defaults to ‘18:00’, which is a usual business hour end time.

Auth

The Arcade Calendar toolkit uses the Google auth provider to connect to users’ Google accounts.

With the hosted Arcade Engine, there’s nothing to configure. Your users will see Arcade as the name of the application that’s requesting permission.

With a self-hosted installation of Arcade, you need to configure the Google auth provider with your own Google app credentials.