> ## Documentation Index
> Fetch the complete documentation index at: https://docs.collabase.ch/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Calendar

> Create, update, delete events, check availability, respond to invitations, and manage calendars.

# Google Calendar

Manage events across Google Calendar — from creating meetings to checking free/busy availability, quick-adding natural language events, and responding to invitations.

## Authentication

**Auth type:** OAuth 2.0

Enable the **Google Calendar API** in [Google Cloud Console](https://console.cloud.google.com/). Generate an OAuth 2.0 access token with `https://www.googleapis.com/auth/calendar` scope.

| Credential       | Description                                |
| ---------------- | ------------------------------------------ |
| **Access Token** | OAuth 2.0 access token with Calendar scope |

## Triggers

| Trigger                 | When it fires                              |
| ----------------------- | ------------------------------------------ |
| **Event Created**       | A new event is added to a calendar         |
| **Event Updated**       | An existing event is modified              |
| **Event Deleted**       | An event is removed                        |
| **Event Starting Soon** | An event begins within a configured window |

## Actions

<AccordionGroup>
  <Accordion title="Events">
    | Action               | Key inputs                                                                                                             | Key outputs                                        |
    | -------------------- | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
    | **Create Event**     | `calendarId`, `summary`, `description`, `startDateTime`, `endDateTime`, `attendees[]`, `location`, `sendNotifications` | eventId, htmlLink                                  |
    | **Quick Add Event**  | `calendarId`, `text` (natural language, e.g. "Meeting tomorrow at 3pm")                                                | eventId, htmlLink                                  |
    | **Get Event**        | `calendarId`, `eventId`                                                                                                | eventId, summary, start, end, attendees\[], status |
    | **Update Event**     | `calendarId`, `eventId`, `summary`, `startDateTime`, `endDateTime`, `description`                                      | eventId, htmlLink                                  |
    | **Delete Event**     | `calendarId`, `eventId`, `sendNotifications`                                                                           | deleted                                            |
    | **List Events**      | `calendarId`, `timeMin`, `timeMax`, `query`, `maxResults`                                                              | events\[], count                                   |
    | **Respond to Event** | `calendarId`, `eventId`, `response` (accepted/declined/tentative)                                                      | eventId                                            |
  </Accordion>

  <Accordion title="Scheduling">
    | Action             | Key inputs                                                              | Key outputs               |
    | ------------------ | ----------------------------------------------------------------------- | ------------------------- |
    | **Get Free/Busy**  | `calendarIds[]`, `timeMin`, `timeMax`                                   | busy\[], free\[]          |
    | **Find Free Slot** | `calendarIds[]`, `duration` (minutes), `from`, `to`, `workingHoursOnly` | slotStart, slotEnd, found |
  </Accordion>

  <Accordion title="Calendars">
    | Action              | Key inputs                           | Key outputs                         |
    | ------------------- | ------------------------------------ | ----------------------------------- |
    | **List Calendars**  | —                                    | calendars\[] — id, summary, primary |
    | **Create Calendar** | `summary`, `description`, `timeZone` | calendarId, summary                 |
  </Accordion>
</AccordionGroup>

<Tip>
  Use `calendarId: "primary"` to target the authenticated user's primary calendar without looking up the ID first.
</Tip>
