// connections

Google Calendar

Manage Google Calendar events and calendars, find busy times across calendars, and control who a calendar is shared with. Connect with Google OAuth.

10 mcp tools21 operations
rest
https://api.superagnt.com/v1/connections/google-calendar plus the vendor's own path, with your superagnt_ API key as Authorization: Bearer.
mcp
Tools named connection_google_calendar_* on https://mcp.superagnt.com/mcp, served once the account is connected.
billing
Google Calendar bills your own account. Calls cost no superagnt_ data credits.
rate limit
10 requests a second, 600 a minute: the vendor's ceiling as the registry records it, for sizing bursts. Your plan's own limit is on Connections.

The Google Calendar connection lets an agent manage schedules end to end. It lists calendars and creates secondary ones, runs the full event lifecycle (create, update, move and delete, with attendee notifications), expands recurring events into instances, creates events from a sentence with quick add, answers "when is X free?" with free/busy queries, and manages calendar sharing.

ids, times and notifications

Calendar ids come from connection_google_calendar_calendars_read action list, and the account's main calendar is always addressable as primary. Event times are objects: {"dateTime":"2026-11-10T15:00:00-08:00","timeZone":"America/Los_Angeles"} for a timed event, {"date":"2026-11-10"} for an all-day one. Attendees get no email unless an event write sets sendUpdates to all or externalOnly (the default is none).

01

Setup

  1. Connect Google. In the superagnt app open Integrations, pick Google Calendar and click Connect with Google.
  2. Approve calendar access. Google asks only for calendar access (the https://www.googleapis.com/auth/calendar scope) plus your Google identity. Approve it in the Google window.

Google Calendar, Google Docs, Google Sheets and Google Search Console share one Google sign-in, but each is its own connection with its own consent: connecting one never grants the others. If the workspace already has a Google account connected for another Google app, the dialog offers Connect Google Calendar instead, which asks that account for Google Calendar's permissions only. Access tokens are refreshed for you.

02

Things to know

  • For a date-range agenda, pass timeMin and timeMax with singleEvents=true and orderBy=startTime, so recurring events expand into instances. q searches event text (summary, description, location and attendees).
  • Free/busy returns busy intervals only. Compute the free gaps by subtracting them from your query window.
  • Quick add parses times in the calendar's time zone on a best-effort basis. Check the returned start and end, and create the event in full when the time must be exact.
  • An event update changes only the fields you pass.
  • Deleting a calendar removes a secondary calendar with all its events (the primary calendar cannot be deleted). Clearing removes every event from the primary calendar, and works only there. Neither can be undone.
  • When more than one Google account in the workspace has granted Google Calendar, calls use the account most recently connected to it.

03

Permissions

These defaults decide whether a superagnt_ agent runs a call or waits for a person (Permissions). Reads run without asking, and so does the free/busy query. Creating, quick-adding, updating and moving events, creating and updating calendars, and sharing a calendar or changing a share ask by default. Deleting an event, deleting or clearing a calendar and unsharing one always ask a person first, because they cannot be undone.

04

Examples

A day's agenda

list one day's events in orderbash
curl "https://api.superagnt.com/v1/connections/google-calendar/calendars/primary/events?timeMin=2026-11-10T00:00:00Z&timeMax=2026-11-11T00:00:00Z&singleEvents=true&orderBy=startTime" \
  -H "Authorization: Bearer $AGNTDATA_API_KEY"

Create an event with attendees

create an event and email the attendeesbash
curl -X POST "https://api.superagnt.com/v1/connections/google-calendar/calendars/primary/events?sendUpdates=all" \
  -H "Authorization: Bearer $AGNTDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "summary": "Roadmap review",
    "start": {"dateTime": "2026-11-10T10:00:00-08:00", "timeZone": "America/Los_Angeles"},
    "end":   {"dateTime": "2026-11-10T10:45:00-08:00", "timeZone": "America/Los_Angeles"},
    "attendees": [{"email": "sam@example.com"}]
  }'

When is the team free?

query busy timesbash
curl -X POST "https://api.superagnt.com/v1/connections/google-calendar/freeBusy" \
  -H "Authorization: Bearer $AGNTDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "timeMin": "2026-11-10T00:00:00Z",
    "timeMax": "2026-11-11T00:00:00Z",
    "items": [{"id": "primary"}, {"id": "sam@example.com"}]
  }'
05// mcp tools

10 tools, one per resource and risk

MCP servers and agents on the grouped surface list Google Calendar as these tools. Each takes an action, and the ones that work across record types an object. Every operation also keeps its own per-operation name, in the next table, which works on every server. How grouping works: Grouped tools.

ToolRiskActions
connection_google_calendar_events_read

Read Google Calendar events

List or search a calendar's events (use singleEvents with orderBy startTime for an agenda), get one event, expand a recurring event into its instances, or find busy times across calendars. 'primary' is the account's main calendar.

read
listgetinstancesfree_busy
connection_google_calendar_events_write

Create and update Google Calendar events

Create an event (or quick-add one from a sentence), update an event (only the fields you pass change), or move it to another calendar. Set sendUpdates to email the attendees.

write
createquick_addupdatemove
connection_google_calendar_events_delete

Delete a Google Calendar event

Delete an event. Cannot be undone.

destructive
delete
connection_google_calendar_calendars_read

Read Google calendars

List the account's calendars, or get one.

read
listget
connection_google_calendar_calendars_write

Create and update Google calendars

Create a secondary calendar, or change a calendar's name, description or time zone.

write
createupdate
connection_google_calendar_calendars_delete

Delete or clear Google calendars

Delete a secondary calendar with all its events, or clear every event from the primary calendar. Cannot be undone.

destructive
deleteclear
connection_google_calendar_shares_read

Read Google Calendar sharing

List who a calendar is shared with, and the role each has.

read
list
connection_google_calendar_shares_write

Share Google calendars

Share a calendar with someone, or change a sharing rule's role.

write
createupdate
connection_google_calendar_shares_delete

Unshare a Google calendar

Revoke someone's access to a calendar.

destructive
delete
connection_google_calendar_settings_read

Read Google Calendar settings

Read the color palette and the user's settings, including the time zone.

read
colorslist
06// operations

All 21 operations

Each operation is a REST path under https://api.superagnt.com/v1/connections/google-calendar and an MCP tool. The per-operation tool name is the one permissions, approvals and usage records use.

OperationMCP tool
GET/users/me/calendarList

List calendars

connection_google_calendar_list_calendarsgrouped: connection_google_calendar_calendars_read, action list
POST/calendars

Create a calendar

connection_google_calendar_create_calendargrouped: connection_google_calendar_calendars_write, action create
GET/calendars/{calendarId}

Get a calendar

connection_google_calendar_get_calendargrouped: connection_google_calendar_calendars_read, action get
PATCH/calendars/{calendarId}

Update a calendar

connection_google_calendar_update_calendargrouped: connection_google_calendar_calendars_write, action update
DELETE/calendars/{calendarId}

Delete a calendar

connection_google_calendar_delete_calendargrouped: connection_google_calendar_calendars_delete, action delete
POST/calendars/{calendarId}/clear

Clear the primary calendar

connection_google_calendar_clear_calendargrouped: connection_google_calendar_calendars_delete, action clear
GET/calendars/{calendarId}/events

List events

connection_google_calendar_list_eventsgrouped: connection_google_calendar_events_read, action list
POST/calendars/{calendarId}/events

Create an event

connection_google_calendar_create_eventgrouped: connection_google_calendar_events_write, action create
GET/calendars/{calendarId}/events/{eventId}

Get an event

connection_google_calendar_get_eventgrouped: connection_google_calendar_events_read, action get
PATCH/calendars/{calendarId}/events/{eventId}

Update an event

connection_google_calendar_update_eventgrouped: connection_google_calendar_events_write, action update
DELETE/calendars/{calendarId}/events/{eventId}

Delete an event

connection_google_calendar_delete_eventgrouped: connection_google_calendar_events_delete, action delete
POST/calendars/{calendarId}/events/quickAdd

Quick-add an event from text

connection_google_calendar_quick_add_eventgrouped: connection_google_calendar_events_write, action quick_add
POST/calendars/{calendarId}/events/{eventId}/move

Move an event to another calendar

connection_google_calendar_move_eventgrouped: connection_google_calendar_events_write, action move
GET/calendars/{calendarId}/events/{eventId}/instances

List instances of a recurring event

connection_google_calendar_list_event_instancesgrouped: connection_google_calendar_events_read, action instances
POST/freeBusy

Query free/busy times

connection_google_calendar_query_free_busygrouped: connection_google_calendar_events_read, action free_busy
GET/colors

List color palette

connection_google_calendar_get_colorsgrouped: connection_google_calendar_settings_read, action colors
GET/users/me/settings

List user calendar settings

connection_google_calendar_list_settingsgrouped: connection_google_calendar_settings_read, action list
GET/calendars/{calendarId}/acl

List calendar sharing rules

connection_google_calendar_list_calendar_sharesgrouped: connection_google_calendar_shares_read, action list
POST/calendars/{calendarId}/acl

Share a calendar

connection_google_calendar_share_calendargrouped: connection_google_calendar_shares_write, action create
PATCH/calendars/{calendarId}/acl/{ruleId}

Update a sharing rule

connection_google_calendar_update_calendar_sharegrouped: connection_google_calendar_shares_write, action update
DELETE/calendars/{calendarId}/acl/{ruleId}

Remove a sharing rule

connection_google_calendar_unshare_calendargrouped: connection_google_calendar_shares_delete, action delete