GAIA Logo
PricingDocs
GAIA Logo
  1. Home
  2. Marketplace
  3. Productivity
googlecalendar Icon

Google Calendar

Schedule meetings and manage your calendar events

Category
Productivity
GAIA
Created by
GAIA Team
Auth
OAuth

What you can do with GAIA + Google Calendar

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.

  • Schedule meetings by describing your availability in plain English — GAIA books the slot instantly
  • Get a morning briefing of every event happening today, delivered to your chat
  • Find open time slots across multiple calendars with a single question
  • Create recurring events, set reminders, and invite attendees without opening Calendar
  • Reschedule or cancel events on the fly by just telling GAIA what changed

Available Tools (56)

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.

How it works

Set up your Google Calendar automation in three simple steps, no code required.

  1. 1

    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.

  2. 2

    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.

  3. 3

    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.

Frequently asked questions

Everything you need to know about the GAIA Google Calendar integration.

Yes. GAIA requests access to all calendars in your Google account. You can ask it to read from or write to any specific calendar by name, or use your primary calendar by default.



GAIA connects Google Calendar with your entire stack

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
Product
DownloadUse CasesMarketplaceBotsPricingRoadmap
Resources
DocumentationBlogRelease NotesStatusRequest a Feature
Company
AboutManifestoContactBranding
Legal
Terms of UsePrivacy Policy
The Experience Company Inc.
Discord IconTwitter IconGithub IconWhatsapp IconYoutube IconLinkedin Icon