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

# Google Calendar

> Integration details and setup guide for the Google Calendar connector in Alloy Automation.

## Pre-Built Tooling

| Category                            | Details                                                                                                                                                                                                                   |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Authentication**                  | OAuth 2.0 (Authorization Code with refresh tokens)                                                                                                                                                                        |
| **Two-Way Sync**                    | Yes                                                                                                                                                                                                                       |
| **Events Supported**                | No                                                                                                                                                                                                                        |
| **Realtime**                        | Polling                                                                                                                                                                                                                   |
| **Supports Rate Limiting**          | Yes (Google API quotas & 429 handling)                                                                                                                                                                                    |
| **Authentication Scopes Supported** | `https://www.googleapis.com/auth/calendar` (read-write access), `https://www.googleapis.com/auth/calendar.readonly`, `https://www.googleapis.com/auth/userinfo.email`, `https://www.googleapis.com/auth/userinfo.profile` |

***

## Objects Supported

Alloy Automation supports syncing the following objects from **Google Calendar**:

* **Calendar List** (user's calendars)
* **Calendars** (metadata)
* **Events**
* **Attendees**
* **Reminders**
* **Conference Data** (Meet, Zoom, etc.)

***

## Set Up Guide

### Trial Access

| Question                                           | Answer                                                                                                                                                                                                                   |
| -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Offers free trial?**                             | Yes. Create a free Google account at [https://accounts.google.com/signup](https://accounts.google.com/signup) and set up a Google Cloud project at [https://console.cloud.google.com](https://console.cloud.google.com). |
| **Requires paid sandbox**                          | No paid sandbox required.                                                                                                                                                                                                |
| **Requires partnership to obtain authentication?** | No. However, Google App Verification may be required in production for sensitive scopes, which can add review time.                                                                                                      |

***

### Authentication (OAuth 2.0)

For customers who want to completely whitelabel their OAuth experience, you can provide your own developer keys instead of using Alloy Automation's.

#### Create your OAuth app (Google Cloud Console)

1. Go to **Google Cloud Console** ([https://console.cloud.google.com](https://console.cloud.google.com)) → **APIs & Services** → **Credentials**.
2. Create an **OAuth client ID** (application type: *Web application*).
3. Add the redirect URI: [https://api.runalloy.com/api/strategy/connector/googleCalendar/callback](https://api.runalloy.com/api/strategy/connector/googleCalendar/callback)
4. Enable the **Google Calendar API** for your project (APIs & Services → Library).
5. Configure the scopes you intend to request:
   * `https://www.googleapis.com/auth/calendar` (full read-write access)
   * `https://www.googleapis.com/auth/calendar.readonly` (read-only access)
   * `https://www.googleapis.com/auth/userinfo.email`
   * `https://www.googleapis.com/auth/userinfo.profile`
6. Copy your **Client ID** and **Client Secret** into Alloy Automation.

#### Consent screen & verification

* Set up the **OAuth consent screen** with your app details and domain.
* For production use or external users, complete **Google app verification** (may require demo video, privacy policy, and domain ownership).

***

## Use Cases

### 1) Automated meeting scheduling and calendar sync

Synchronize calendar availability across multiple platforms, automatically create meetings based on booking forms or CRM activities, and ensure conflicts are prevented across integrated systems.

### 2) Event-driven workflow automation

Trigger workflows when calendar events are created, updated, or deleted—such as sending reminders, preparing meeting materials, updating project management tools, or notifying team members.

### 3) Resource and conference room booking

Manage shared resources like conference rooms, equipment, or vehicles by syncing availability with Google Calendar, automatically blocking time slots and handling booking conflicts.

### 4) Customer appointment management

Build appointment booking systems that sync with Google Calendar, send automated confirmations and reminders, handle rescheduling, and manage multi-timezone scheduling for global customers.

### 5) Time tracking and productivity analytics

Extract calendar event data for time tracking, productivity analysis, and utilization reporting by analyzing meeting patterns, focus time, and cross-functional collaboration metrics.

***

## API Gotchas

* ⚠️ **Calendar ID format:** The primary calendar uses the special ID `primary`, but secondary calendars use email-like IDs (e.g., `calendar-id@group.calendar.google.com`). Always use the `calendarList` endpoint to discover available calendars and their IDs.

* ⚠️ **Timezone handling:** Events can have different timezones for start and end times. Always specify the `timeZone` field when creating events, and be careful when converting to/from UTC. All-day events use the `date` field instead of `dateTime`.

* ⚠️ **Recurring events complexity:** Recurring events have a parent event (with `recurrence` rules in RRULE format) and individual instances. Modifying a single occurrence creates an exception. Use the `recurringEventId` field to identify instances.

* ⚠️ **Attendee response status:** When creating events with attendees, the creator is automatically added as an organizer. Attendee response statuses (`needsAction`, `accepted`, `declined`, `tentative`) are managed by Google and may not update immediately.

* ⚠️ **Conference data creation:** To add Google Meet or other conference solutions, you must send a `conferenceDataVersion` parameter and specify the `conferenceSolution` type. Not all calendar types support conference data.

* ⚠️ **Incremental sync with syncToken:** For efficient syncing, use the sync token pattern: after the first full sync, store the `syncToken` and use it in subsequent requests to only fetch changes. Tokens expire after a period of time.

> For questions or troubleshooting, contact **[support@runalloy.com](mailto:support@runalloy.com)**.
