Schedule meetings and manage your calendar events
GAIA connects to Google Calendar via MCP (Model Context Protocol) and exposes every action as a natural-language command. Tell GAIA what you want and it handles the rest, automatically.
Googlecalendar Acl Delete
Deletes an access control rule from a Google Calendar. Use when you need to remove sharing permissions for a user, group, or domain.
Googlecalendar Acl Get
Retrieves a specific access control rule for a calendar. Use when you need to check permissions for a specific user, group, or domain.
Googlecalendar Acl Insert
Creates an access control rule for a calendar. Use when you need to grant sharing permissions to a user, group, or domain.
Googlecalendar Acl Patch
Updates an existing access control rule for a calendar using patch semantics (partial update). This allows modifying specific fields without affecting other properties. IMPORTANT: The ACL rule must already exist on the calendar. This action cannot create new rules. If you receive a 404 Not Found error, the rule does not exist - use ACL insert to create it first, or use ACL list to verify available rules. Each patch request consumes three quota units. For domain-type ACL rules, if PATCH fails with 500 error, this action will automatically fallback to UPDATE method.
Googlecalendar Acl Watch
Tool to watch for changes to ACL resources. Use when you need to set up real-time notifications for access control list modifications on a calendar.
Googlecalendar Batch Events
Execute up to 1000 event mutations (create/patch/delete) in one Google Calendar HTTP batch request with per-item status/results. Use this to materially reduce round-trips for bulk operations like migrations, cleanup, or large-scale updates.
Googlecalendar Calendar List Delete
Tool to remove a calendar from the user's calendar list. Use when you need to unsubscribe from or hide a calendar from the user's list.
Googlecalendar Calendar List Get
Retrieves metadata for a SINGLE specific calendar from the user's calendar list by its calendar ID. This action requires a calendarId parameter and returns details about that one calendar only. NOTE: This does NOT list all calendars. To list all calendars in the user's calendar list, use GOOGLECALENDAR_CALENDAR_LIST_LIST instead.
Googlecalendar Calendar List Insert
Inserts an existing calendar into the user's calendar list.
Googlecalendar Calendar List List
Returns the calendars on the user's calendar list. Use when you need to retrieve all calendars visible to the authenticated user.
Googlecalendar Calendar List Patch
Updates an existing calendar on the user's calendar list using patch semantics. This method allows partial updates, modifying only the specified fields.
Googlecalendar Calendar List Update
Updates an existing entry on the user\'s calendar list.
Googlecalendar Calendar List Watch
Watch for changes to CalendarList resources using push notifications. Use this to receive real-time updates when calendar list entries are modified.
Googlecalendar Calendars Delete
Deletes a secondary calendar that you own or have delete permissions on. You cannot delete your primary calendar or calendars you only have read/write access to. Use calendarList.list to find calendars with owner accessRole. For primary calendars, use calendars.clear instead.
Googlecalendar Calendars Update
Updates metadata for a calendar.
Googlecalendar Channels Stop
Tool to stop watching resources through a notification channel. Use when you need to discontinue push notifications for a specific channel subscription.
Googlecalendar Clear Calendar
Clears a primary calendar. This operation deletes all events associated with the primary calendar of an account.
Googlecalendar Colors Get
Returns the color definitions for calendars and events. Use when you need to retrieve the available color palette for styling calendars or events.
Googlecalendar Create Event
Create a Google Calendar event using `start_datetime` plus `event_duration_hour` and `event_duration_minutes` fields to derive the end time. Requires calendar write access. The organizer is added as an attendee unless `exclude_organizer` is True. By default, attempts to create a Google Meet link for the event (create_meeting_room defaults to True). Workspace accounts will receive a Meet link, while personal Gmail accounts will gracefully fallback to creating an event without a Meet link when conference creation fails. Set create_meeting_room to False to explicitly skip Meet link creation. Example request to create event for 1 hour 30 minutes: { "calendar_id": "primary", "start_datetime": "2025-01-16T13:00:00", "timezone": "America/New_York", "event_duration_hour": 1, "event_duration_minutes": 30, "summary": "Client sync", "attendees": [{"email": "guest@example.com"}] }
Googlecalendar Delete Event
Deletes a specified event by `event_id` from a Google Calendar (`calendar_id`); this action is idempotent and raises a 404 error if the event is not found.
Googlecalendar Duplicate Calendar
Creates a new, empty Google Calendar with the specified title (summary).
Googlecalendar Events Get
Retrieves a SINGLE event by its unique event_id (REQUIRED). This action does NOT list or search events - it fetches ONE specific event when you already know its ID. If you want to list events within a time range, search for events, or filter by criteria like time_min/time_max, use GOOGLECALENDAR_EVENTS_LIST instead.
Googlecalendar Events Import
Tool to import an event as a private copy to a calendar. Use when you need to add an existing event to a calendar using its iCalUID. Only events with eventType='default' can be imported.
Googlecalendar Events Instances
Returns instances of the specified recurring event.
Googlecalendar Events List
Returns events on the specified calendar.
Googlecalendar Events List All Calendars
Return a unified event list across all calendars in the user's calendar list for a given time range. Use when you need a single view of all events across multiple calendars.
Googlecalendar Events Move
Moves an event to another calendar, i.e., changes an event's organizer.
Googlecalendar Events Watch
Watch for changes to Events resources.
Googlecalendar Find Event
Finds events in a specified Google Calendar using text query, time ranges (event start/end, last modification), and event types; ensure `timeMin` is not chronologically after `timeMax` if both are provided.
Googlecalendar Find Free Slots
Finds both free and busy time slots in Google Calendars for specified calendars within a defined time range (defaults to the current day UTC if `time_min`/`time_max` are omitted). Returns busy intervals enriched with event details and calculates free slots by finding gaps between busy periods; `time_min` must precede `time_max` if both are provided. This action retrieves free and busy time slots for the specified calendars over a given time period. It analyzes the busy intervals from the calendars and provides calculated free slots based on the gaps in the busy periods.
Googlecalendar Free Busy Query
Returns free/busy information for a set of calendars.
Googlecalendar Get Calendar
Retrieves a specific Google Calendar, identified by `calendar_id`, to which the authenticated user has access.
Googlecalendar Get Current Date Time
Gets the current date and time, allowing for a specific timezone offset.
Googlecalendar List Acl Rules
Retrieves the list of access control rules (ACLs) for a specified calendar, providing the necessary 'rule_id' values required for updating specific ACL rules.
Googlecalendar List Calendars
Retrieves calendars from the user's Google Calendar list, with options for pagination and filtering.
Googlecalendar List Settings
Tool to return all user settings for the authenticated user. Use when you need to retrieve calendar settings.
Googlecalendar Patch Calendar
Partially updates (PATCHes) an existing Google Calendar, modifying only the fields provided; `summary` is mandatory and cannot be an empty string, and an empty string for `description` or `location` clears them.
Googlecalendar Patch Event
Update specified fields of an existing event in a Google Calendar using patch semantics (array fields like `attendees` are fully replaced if provided); ensure the `calendar_id` and `event_id` are valid and the user has write access to the calendar.
Googlecalendar Quick Add
Parses natural language text to quickly create a basic Google Calendar event with its title, date, and time, suitable for simple scheduling; does not support direct attendee addition or recurring events, and `calendar_id` must be valid if not 'primary'.
Googlecalendar Remove Attendee
Removes an attendee from a specified event in a Google Calendar; the calendar and event must exist.
Googlecalendar Settings Get
Tool to return a single user setting for the authenticated user. Use when you need to retrieve a specific calendar setting value.
Googlecalendar Settings List
Returns all user settings for the authenticated user.
Googlecalendar Settings Watch
Watch for changes to Settings resources.
Googlecalendar Sync Events
Synchronizes Google Calendar events, performing a full sync if no `sync_token` is provided or if a 410 GONE error (due to an expired token) necessitates it, otherwise performs an incremental sync for events changed since the `sync_token` was issued.
Googlecalendar Update Acl Rule
Updates an access control rule for the specified calendar.
Googlecalendar Update Event
Updates an existing event in Google Calendar. REQUIRES event_id - you MUST first search for the event using GOOGLECALENDAR_FIND_EVENT or GOOGLECALENDAR_EVENTS_LIST to obtain the event_id. This is a full PUT replacement, so provide all desired fields as unspecified ones may be cleared or reset.
Googlecalendar Custom Create Event
CALENDAR: CREATE EVENT(S) Creates one or more calendar events. Supports batch creation with ID mapping for adding recurrence. TIMEZONE: Use ISO format with user's timezone: "2025-01-15T10:00:00" Args: events (List): List of events to create, each with: - summary (str): Required. Title. - start_datetime (str): Required. Start time (ISO format). - duration_hours/minutes (int): Duration, default 30min. - calendar_id (str): Calendar ID, default "primary". - description, location, attendees: Optional. - is_all_day (bool): Default False. confirm_immediately (bool): If True, create immediately. Default False. Returns (when confirm_immediately=True): { "created": true, "created_events": [{"index": 0, "summary": "...", "event_id": "abc123", ...}], "errors": [{"index": 1, "summary": "...", "error": "..."}] } Use event_id with ADD_RECURRENCE to make events recurring. A non-empty "errors" means only some events were created: tell the user which failed.
Googlecalendar Custom List Calendars
CALENDAR: LIST CALENDARS Lists all calendars accessible to the user. Args: short (bool): If True (default), return only essential fields (id, summary, description, backgroundColor). Returns: Dict with success status and list of calendars.
Googlecalendar Custom Get Day Summary
CALENDAR: GET DAY SUMMARY Gets a quick summary of a day's schedule including events, busy hours, and next upcoming event. Uses user's timezone from their profile preferences. USE THIS TOOL FIRST when user asks: • "What does my day look like?" • "What's on my schedule today/tomorrow?" • "Am I busy on Thursday?" Args: date (str): Optional. Date to get summary for (YYYY-MM-DD). Defaults to today. Returns: { "date": "2025-01-15", "events": [...], "total_events": N, "next_event": {...} or null, "busy_hours": 5.5 }
Googlecalendar Custom Fetch Events
CALENDAR: FETCH EVENTS Fetches events from one or more calendars within an optional time range. USAGE: • "What does my day look like?" → calendar_ids=None (fetches ALL selected calendars) • Events from specific calendar → calendar_ids=["calendar_id_here"] • Events from primary only → calendar_ids=["primary"] DEFAULT BEHAVIOR: If calendar_ids is None, fetches from ALL user's selected calendars. Args: calendar_ids (List[str]): Optional. Calendar IDs to fetch from. If None, fetches from all selected calendars. time_min (str): Optional. Start time filter in ISO format. Defaults to current time. time_max (str): Optional. End time filter in ISO format. max_results (int): Maximum events to return (1-250), default 50. Returns: Dict with success status, events list, calendars_fetched, and has_more flag.
Googlecalendar Custom Find Event
CALENDAR: SEARCH/FIND EVENT Searches for events by text query. Searches event titles, descriptions, and other text fields. Args: query (str): Required. Search query text. calendar_id (str): Calendar ID to search, default "primary". time_min (str): Optional. Start time filter in ISO format. time_max (str): Optional. End time filter in ISO format. Returns: Dict with success status, matching events, and count.
Googlecalendar Custom Get Event
CALENDAR: GET EVENT(S) Gets one or more calendar events by ID. Args: events (List): List of events to get, each with: - event_id (str): Required. The event ID. - calendar_id (str): Calendar ID, default "primary". Returns: { "events": [{"event_id": "...", "calendar_id": "...", "event": {...}}], "errors": [{"event_id": "...", "calendar_id": "...", "error": "..."}] } A non-empty "errors" means only some events were retrieved: tell the user which failed.
Googlecalendar Custom Delete Event
CALENDAR: DELETE EVENT(S) Deletes one or more calendar events. Args: events (List): List of events to delete, each with: - event_id (str): Required. The event ID. - calendar_id (str): Calendar ID, default "primary". send_updates (str): Notify attendees: 'all', 'externalOnly', 'none'. Default 'all'. Returns: { "deleted": [{"event_id": "...", "calendar_id": "..."}], "errors": [{"event_id": "...", "calendar_id": "...", "error": "..."}] } A non-empty "errors" means only some events were deleted: tell the user which failed.
Googlecalendar Custom Patch Event
CALENDAR: UPDATE/PATCH EVENT Updates an existing calendar event. Only the fields provided will be updated. Args: event_id (str): Required. The event ID to update. calendar_id (str): Calendar ID, default "primary". summary (str): Optional. New title. description (str): Optional. New description. start_datetime (str): Optional. New start time (ISO format). end_datetime (str): Optional. New end time (ISO format). location (str): Optional. New location. attendees (List[str]): Optional. New attendees list. send_updates (str): Notify attendees: 'all', 'externalOnly', 'none'. Default 'all'. Returns: Dict with success status and updated event details.
Googlecalendar Custom Add Recurrence
CALENDAR: ADD RECURRENCE Adds a recurrence pattern to an existing event. Use this to make an event repeating. RECURRENCE PATTERNS (RFC 5545): FREQUENCY VALUES: - "DAILY": Repeats every N days - "WEEKLY": Repeats every N weeks (use by_day for specific days) - "MONTHLY": Repeats every N months - "YEARLY": Repeats every N years EXAMPLES: 1. Every Monday and Wednesday: frequency="WEEKLY", by_day=["MO", "WE"] 2. Every 2 weeks on Friday: frequency="WEEKLY", interval=2, by_day=["FR"] 3. Daily for 10 occurrences: frequency="DAILY", count=10 4. Weekly until Dec 31, 2025: frequency="WEEKLY", until_date="2025-12-31", by_day=["MO"] 5. Monthly on the first Monday: frequency="MONTHLY", by_day=["1MO"] RULES: - Use either 'count' OR 'until_date', not both - by_day values: 'SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA' - Can prefix with number for nth occurrence (e.g., '1MO' = first Monday) Args: event_id (str): Required. Event ID to add recurrence to. calendar_id (str): Calendar ID, default "primary". frequency (str): Required. One of: "DAILY", "WEEKLY", "MONTHLY", "YEARLY". interval (int): Interval between occurrences, default 1. count (int): Optional. Number of occurrences (don't use with until_date). until_date (str): Optional. End date "YYYY-MM-DD" (don't use with count). by_day (List[str]): Optional. Days of week: 'SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA'. Returns: Dict with success status, updated event, and RRULE string.
Googlecalendar Custom Gather Context
Get Google Calendar context snapshot: today's events, busy hours, free slots. Zero required parameters. Returns today's schedule for situational awareness.
Set up your Google Calendar automation in three simple steps, no code required.
Connect Google Calendar to GAIA
Open the GAIA Marketplace, find Google Calendar, and click "Add to your GAIA". You'll be redirected to Google's OAuth consent screen — grant calendar access and you're connected in under two minutes.
Tell GAIA what to schedule in plain English
Say things like "block two hours tomorrow for deep work" or "schedule a 30-minute call with Alex on Friday at 3 PM and send him an invite". GAIA understands context and handles the details.
GAIA manages your calendar automatically
GAIA can monitor your calendar, send you proactive reminders before events, and trigger workflows — like sending a Slack message when a meeting is about to start.
Everything you need to know about the GAIA Google Calendar integration.
Google Calendar is just one piece of the puzzle. GAIA integrates with 50+ tools across productivity, communication, productivity, and more, letting you build cross-tool automations in plain English without writing a single line of code.
Browse all integrations