Prerequisites
- A Google account with Calendar access (personal Gmail or Google Workspace)
- A Google Workspace connection in AgentRuntime (OAuth via the Google account card on Connections)
- project_contributor access in your workspace
Connect in AgentRuntime
Connect Google
On Connections, use the Google account card and complete OAuth. See Google Workspace setup and Connections.
Enable Calendar
On your Google connection, enable the Calendar service so the account exposes Calendar API scopes.
Add google-calendar MCP instance
Go to MCP, click Add instance for google-calendar. Open Instance config, wire your Google connection, and set the profile active.
What you can build
- Meeting scheduler — Inbound booking request →
find_busy_free_periodsacross team calendars → LLM picks a slot →create_eventwith Meet link and attendees. - Daily standup digest — Schedule trigger →
get_eventsfor today onprimary→ LLM summary → gmail send to the team channel alias. - Post-approval booking — human_task approves time and attendees →
create_eventwithsend_notifications: all→ google-sheets log confirmation row. - Conflict resolver — Webhook with proposed time →
find_busy_free_periods→ if busy,create_quick_eventalternative via LLM-suggested text → notify requester.
Tools
| Tool | Description |
|---|---|
get_events | List Google Calendar events with optional search, date range, and event-type filters. |
get_event_by_id | Get a single Google Calendar event by event ID. |
find_busy_free_periods | Find busy and free periods across one or more Google Calendars in a time range. |
create_event | Create a Google Calendar event, with optional attendees, location, color, and Meet link. |
create_quick_event | Create a Google Calendar event from natural-language text using quickAdd. |
update_event | Update an existing Google Calendar event. |
delete_event | Delete a Google Calendar event. |
add_attendees_to_event | Add attendees to an existing Google Calendar event. |
add_calendar_to_list | Add an existing calendar to the authenticated user’s calendar list. |
Example
Create a client meeting after a human approves the time slot:Troubleshooting
| Issue | Fix |
|---|---|
| Reconnect prompt on Google connection | Re-authorize OAuth; Calendar scopes may have been revoked |
403 or calendar not found | Confirm calendar_id — use primary for the signed-in user’s main calendar |
| Attendees not receiving invites | Set send_notifications to all on create or update |
find_busy_free_periods shows unexpected busy blocks | Include all relevant calendar_ids; check shared calendars the account can read |