Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automate Google Calendar events, scheduling, availability checks, and attendee management via Rube MCP (Composio). Create events, find free slots, manage attendees, and list calendars programmatically.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-11 | ✗→✓ | ▲ Improved | 118% | 0% |
| case-07 | ✓→✗ | ▼ Worse | 298% | 0% |
| case-10 | ✓→✗ | ▼ Worse | 124% | 0% |
| case-13 | ✓→✗ | ▼ Worse | 65% | 0% |
| case-17 | ✓→✗ | ▼ Worse | 225% | 0% |
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
RUBE_MANAGE_CONNECTIONS with toolkit googlecalendarRUBE_SEARCH_TOOLS first to get current tool schemasGet 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.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit googlecalendarWhen 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 IDstart_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 titleattendees: Array of email addresses (NOT names)location: Free-form text for event locationPitfalls:
start_datetime must be ISO 8601; natural language like 'tomorrow' is rejectedevent_duration_minutes max is 59; use event_duration_hour=1 instead of event_duration_minutes=60timezone must be IANA identifier; abbreviations like 'EST', 'PST' are NOT validattendees only accepts email addresses, not names; resolve names firstexclude_organizer=trueWhen 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 instancesorderBy: 'startTime' (requires singleEvents=true) or 'updated'maxResults: Results per page (max 2500)Pitfalls:
timeMin/timeMax scans the full calendar and can be slowpageToken in response means more results; paginate until absentorderBy='startTime' requires singleEvents=trueWhen to use: User wants to add, remove, or update event attendees
Tool sequence:
GOOGLECALENDAR_FIND_EVENT or GOOGLECALENDAR_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 removesend_updates: 'all', 'externalOnly', or 'none'Pitfalls:
event_id is a technical identifier, NOT the event title; always search first to get the IDPATCH_EVENT attendees field replaces the entire list; include existing attendees to avoid removing themGMAIL_SEARCH_PEOPLE to resolve names to emails before managing attendeesWhen to use: User wants to find available time slots or check busy periods
Tool sequence:
GOOGLECALENDAR_LIST_CALENDARS - Identify calendars to check Prerequisite]GOOGLECALENDAR_GET_CURRENT_DATE_TIME - Get current time with timezone Optional]GOOGLECALENDAR_FIND_FREE_SLOTS - Find free intervals across calendars Required]GOOGLECALENDAR_FREE_BUSY_QUERY - Get raw busy periods for computing gaps Fallback]GOOGLECALENDAR_CREATE_EVENT - Book a confirmed slot Required]Key parameters:
items: List of calendar IDs to check (e.g., 'primary'])time_min/time_max: Query interval (defaults to current day if omitted)timezone: IANA timezone for interpreting naive timestampscalendarExpansionMax: Max calendars (1-50)groupExpansionMax: Max members per group (1-100)Pitfalls:
GOOGLECALENDAR_FREE_BUSY_QUERY requires RFC3339 timestamps with timezoneGOOGLECALENDAR_LIST_CALENDARS to enumerate all calendarsGOOGLECALENDAR_FIND_EVENT or GOOGLECALENDAR_EVENTS_LISTGMAIL_SEARCH_PEOPLEGOOGLECALENDAR_GET_CURRENT_DATE_TIME to get current time in user's timezoneGOOGLECALENDAR_EVENTS_LIST returns nextPageToken; iterate until absentGOOGLECALENDAR_LIST_CALENDARS also paginates; use page_tokenevent_duration_minutes max 59; use hours for longer durations| Task | Tool Slug | Key Params | |------|-----------|------------| | List calendars | GOOGLECALENDAR_LIST_CALENDARS | max_results | | Create event | GOOGLECALENDAR_CREATE_EVENT | start_datetime, timezone, summary | | Update event | GOOGLECALENDAR_PATCH_EVENT | calendar_id, event_id, fields to update | | Delete event | GOOGLECALENDAR_DELETE_EVENT | calendar_id, event_id | | Search events | GOOGLECALENDAR_FIND_EVENT | query, timeMin, timeMax | | List events | GOOGLECALENDAR_EVENTS_LIST | calendarId, timeMin, timeMax | | Recurring instances | GOOGLECALENDAR_EVENTS_INSTANCES | calendarId, eventId | | Find free slots | GOOGLECALENDAR_FIND_FREE_SLOTS | items, time_min, time_max, timezone | | Free/busy query | GOOGLECALENDAR_FREE_BUSY_QUERY | timeMin, timeMax, items | | Remove attendee | GOOGLECALENDAR_REMOVE_ATTENDEE | event_id, attendee_email | | Get current time | GOOGLECALENDAR_GET_CURRENT_DATE_TIME | timezone | | Get calendar | GOOGLECALENDAR_GET_CALENDAR | calendar_id |
Powered by Composio
Other measured skills in the registry, with their headline benchmark lift.