Google Calendar
The Google Calendar connector lets AI agents read and manage calendar events, check free/busy availability, and schedule meetings — all through the official Google Calendar API using OAuth 2.0. Your credentials are stored encrypted in MCPGate's vault and are never exposed to the AI client.
Required scopes#
MCPGate requests the following OAuth scopes when you connect a Google Calendar account. All scopes are requested up front so you don't need to re-authorise when enabling additional tools.
| Scope | Purpose |
|---|---|
| calendar.readonly | Read events, calendars, and free/busy data |
| calendar.events | Create, update, and delete calendar events |
Tool reference#
The Google Calendar connector exposes 10 tools. Use the MCP Apps page to enable or disable individual tools per app, and the Guardrails page to add fine-grained rules on top.
| Tool | Category | Description |
|---|---|---|
| calendar_list_events | read | List upcoming calendar events |
| calendar_get_event | read | Get details of a specific calendar event |
| calendar_list_calendars | read | List all calendars for the user |
| calendar_search_events | read | Search for calendar events matching a query |
| calendar_get_free_busy | read | Check availability / free-busy times for calendars |
| calendar_get_recurring_instances | read | Get instances of a recurring calendar event |
| calendar_create_event | write | Create a new calendar event |
| calendar_update_event | write | Update an existing calendar event |
| calendar_quick_add | write | Create a calendar event from natural language text |
| calendar_delete_event | delete | Delete a calendar event |
Common guardrail recipes#
Read-only access#
Enable only the six read tools and deny calendar_create_event, calendar_update_event, calendar_quick_add, and calendar_delete_event. This is safe for scheduling assistants that should report on availability but never modify your calendar.
Block past-date events#
Apply the deny_past_dates template to calendar_create_event and calendar_update_event. This prevents the AI from accidentally creating or moving events to dates that have already passed.
Restrict to specific calendars#
Apply the allow_values template to write tools and target the calendar_id field. Provide a list of calendar IDs the agent may modify. Requests targeting other calendars — such as a shared team calendar — will be denied.
Troubleshooting#
- 403 forbidden on a calendar — The connected account does not have write access to the target calendar. Check calendar sharing settings in Google Calendar.
- Event not found after creation —
calendar_quick_addparses natural language and may silently default to the primary calendar if the target calendar is ambiguous. Verify thecalendar_idparameter. - Free/busy returns empty —
calendar_get_free_busyonly returns data for calendars the authenticated account has permission to view. Ensure the requested calendar IDs are accessible.