Google Calendar Automation via Rube MCP
Automate Google Calendar workflows including event creation, scheduling, availability checks, attendee management, and calendar browsing through Composio's Google Calendar toolkit.
Toolkit docs: composio.dev/toolkits/googlecalendar
Prerequisites
- •Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- •Active Google Calendar connection via
RUBE_MANAGE_CONNECTIONSwith toolkitgooglecalendar - •Always call
RUBE_SEARCH_TOOLSfirst to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- •Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLSresponds - •Call
RUBE_MANAGE_CONNECTIONSwith toolkitgooglecalendar - •If connection is not ACTIVE, follow the returned auth link to complete Google OAuth
- •Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Create and Manage Events
When to use: User wants to create, update, or delete calendar events
Tool sequence:
- •
GOOGLECALENDAR_LIST_CALENDARS- Identify target calendar ID [Prerequisite] - •
GOOGLECALENDAR_GET_CURRENT_DATE_TIME- Get current time with proper timezone [Optional] - •
GOOGLECALENDAR_FIND_FREE_SLOTS- Check availability before booking [Optional] - •
GOOGLECALENDAR_CREATE_EVENT- Create the event [Required] - •
GOOGLECALENDAR_PATCH_EVENT- Update specific fields of an existing event [Alternative] - •
GOOGLECALENDAR_UPDATE_EVENT- Full replacement update of an event [Alternative] - •
GOOGLECALENDAR_DELETE_EVENT- Delete an event [Optional]
Key parameters:
- •
calendar_id: Use 'primary' for main calendar, or specific calendar ID - •
start_datetime: ISO 8601 format 'YYYY-MM-DDTHH:MM:SS' (NOT natural language) - •
timezone: IANA timezone name (e.g., 'America/New_York', NOT 'EST' or 'PST') - •
event_duration_hour: Hours (0+) - •
event_duration_minutes: Minutes (0-59 only; NEVER use 60+) - •
summary: Event title - •
attendees: Array of email addresses (NOT names) - •
location: Free-form text for event location
Pitfalls:
- •
start_datetimemust be ISO 8601; natural language like 'tomorrow' is rejected - •
event_duration_minutesmax is 59; useevent_duration_hour=1instead ofevent_duration_minutes=60 - •
timezonemust be IANA identifier; abbreviations like 'EST', 'PST' are NOT valid - •
attendeesonly accepts email addresses, not names; resolve names first - •Google Meet link creation defaults to true; may fail on personal Gmail accounts (graceful fallback)
- •Organizer is auto-added as attendee unless
exclude_organizer=true
2. List and Search Events
When to use: User wants to find or browse events on their calendar
Tool sequence:
- •
GOOGLECALENDAR_LIST_CALENDARS- Get available calendars [Prerequisite] - •
GOOGLECALENDAR_FIND_EVENT- Search by title/keyword with time bounds [Required] - •
GOOGLECALENDAR_EVENTS_LIST- List events in a time range [Alternative] - •
GOOGLECALENDAR_EVENTS_INSTANCES- List instances of a recurring event [Optional]
Key parameters:
- •
query/q: Free-text search (matches summary, description, location, attendees) - •
timeMin: Lower bound (RFC3339 with timezone offset, e.g., '2024-01-01T00:00:00-08:00') - •
timeMax: Upper bound (RFC3339 with timezone offset) - •
singleEvents: true to expand recurring events into instances - •
orderBy: 'startTime' (requires singleEvents=true) or 'updated' - •
maxResults: Results per page (max 2500)
Pitfalls:
- •Timezone warning: UTC timestamps (ending in 'Z') don't align with local dates; use local timezone offsets instead
- •Example: '2026-01-19T00:00:00Z' covers 2026-01-18 4pm to 2026-01-19 4pm in PST
- •Omitting
timeMin/timeMaxscans the full calendar and can be slow - •
pageTokenin response means more results; paginate until absent - •
orderBy='startTime'requiressingleEvents=true
3. Manage Attendees and Invitations
When to use: User wants to add, remove, or update event attendees
Tool sequence:
- •
GOOGLECALENDAR_FIND_EVENTorGOOGLECALENDAR_EVENTS_LIST- Find the event [Prerequisite] - •
GOOGLECALENDAR_PATCH_EVENT- Add attendees (replaces entire attendees list) [Required] - •
GOOGLECALENDAR_REMOVE_ATTENDEE- Remove a specific attendee by email [Required]
Key parameters:
- •
event_id: Unique event identifier (opaque string, NOT the event title) - •
attendees: Full list of attendee emails (PATCH replaces entire list) - •
attendee_email: Email to remove - •
send_updates: 'all', 'externalOnly', or 'none'
Pitfalls:
- •
event_idis a technical identifier, NOT the event title; always search first to get the ID - •
PATCH_EVENTattendees field replaces the entire list; include existing attendees to avoid removing them - •Attendee names cannot be resolved; always use email addresses
- •Use
GMAIL_SEARCH_PEOPLE