Calendar
Description: Enable agents to interact with Google Calendar events.
Author: Arcade
Code: GitHub
Auth: User authorization via the Google auth provider
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 Name | Description |
---|---|
CreateEvent | Create a new event in Google Calendar. |
ListEvents | List events from Google Calendar. |
UpdateEvent | Update an existing event in Google Calendar. |
DeleteEvent | Delete an event from Google Calendar. |
FindTimeSlotsWhenEveryoneIsFree | Provides 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 eventstart_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 eventlocation
(string, optional) The location of the eventvisibility
(string, optional) The visibility of the eventattendee_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:
- End after 09:00 on September 15, 2024 (exclusive)
- 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 frommax_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 updateupdated_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 eventupdated_description
(string, optional) The updated description of the eventupdated_location
(string, optional) The updated location of the eventupdated_visibility
(enum (EventVisibility), optional) The visibility of the eventattendee_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 deletecalendar_id
(string, optional, Defaults to'primary'
) The ID of the calendar containing the eventsend_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 toNone
) 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 toNone
) 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 toNone
) 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.