# Google Calendar

Allow Suger to access and manage your Google Calendar events, enabling automated scheduling and calendar management workflows.

---

## Overview

Google Calendar is a time management and scheduling service developed by Google. It allows users to create, edit, and manage events and calendars, with support for reminders, guest invites, and integration with other Google Workspace services.

By integrating Suger with Google Calendar, users can automate workflow tasks such as creating calendar events, managing schedules, sending invites, and synchronizing calendar data across systems for efficient appointment and meeting management.

### Org-Level vs User-Level

> **User-Level**: Google Calendar is **user-level only**. Each person connects their own Google account with OAuth 2.0, and Suger acts on that person's calendars — never on a shared organization-wide calendar identity.
>
> **Org-Level**: **Not supported.** There is no organization-wide Google Calendar connection. The service-account (domain-wide delegation) path that this integration previously offered has been removed.

:::note
If your organization previously connected Google Calendar with a GCP service account, that path is gone. Each person who needs calendar automation should connect their own Google Calendar as a user integration instead, following the steps below. Other Google services are unaffected — Gmail, Google Drive, Google Cloud Storage, and BigQuery all still offer org-level service-account connections.
:::

## Create Integration

### Prerequisites

- A Google account whose calendars you want Suger to work with.
- Access to the [Suger Console](https://console.suger.io/) with your own Suger user account.

No GCP project, service account, or Workspace admin action is required — the connection is a browser-based OAuth 2.0 authorization you complete yourself.

## Connect Your Personal Google Calendar (User Integration)

You connect your own Google Calendar as a **User Integration**. This uses a secure OAuth 2.0 connection, so your Google password is never shared or stored.

### Step 1: Configure the User Integration

1. In the [Suger Console](https://console.suger.io/), go to **Settings > User Integrations**.
2. Find the **Google Calendar** card and click **Connect**.
3. You will be redirected to the Google sign-in page. Select the account you want to sync.
4. Review the requested access and click **Allow**. This enables Suger to view and manage your calendar events.
5. Once redirected back to Suger, click **Verify**. A **Verified** status confirms your calendar is successfully linked.

### Step 2: Manage Sync Preferences

After the initial connection, you can tailor how Suger interacts with your schedule.

- **Select Calendars**: If you have multiple calendars (for example, Personal, Team, or Holiday), specify which one Suger should use to create marketplace events.
- **Update Connection**: To switch accounts or refresh an expired token, delete the current integration and repeat the setup process.
- **Notification Alerts**: Ensure your Google Calendar mobile or desktop notifications are active to receive real-time alerts for synced marketplace milestones.

### Step 3: Revoke Access

If you decide to stop using the integration, deleting it in Suger removes Suger's access. To fully clear the connection from Google's side:

1. Visit your [Google Account Security Settings](https://myaccount.google.com/security).
2. Go to **Your connections to third-party apps & services**.
3. Locate **Suger** and click **Remove Access**.

## Suger AI Tools

Suger AI uses a **middleware** strategy — wrapping the Google Calendar API directly.

> **User-level only**: these tools run against the Google account *you* connected, so each person's Suger AI sees their own calendars. There is no org-level Calendar credential for them to fall back to — if you have not connected Google Calendar yourself, the tools below are unavailable to you.

**Calendars**

| Tool | Description |
|------|-------------|
| `googlecalendar_list_calendars` | List calendars the user has subscribed to |
| `googlecalendar_get_calendar` | Get the user's view of a calendar |
| `googlecalendar_describe_calendar` | Get canonical calendar metadata |
| `googlecalendar_create_calendar` | Create a new secondary calendar |
| `googlecalendar_update_calendar` | Update a calendar's summary, description, or timezone |
| `googlecalendar_delete_calendar` | Permanently delete a secondary calendar |
| `googlecalendar_clear_primary_calendar` | Delete all events from the primary calendar |
| `googlecalendar_subscribe_to_calendar` | Subscribe to a shared calendar |
| `googlecalendar_update_subscribed_calendar` | Update user-specific view of a subscribed calendar |
| `googlecalendar_unsubscribe_calendar` | Unsubscribe from a calendar |
| `googlecalendar_get_colors` | Get the color palette for events and calendars |
| `googlecalendar_list_settings` | List the user's Calendar settings |
| `googlecalendar_get_setting` | Get a single Calendar setting by ID |

**Events**

| Tool | Description |
|------|-------------|
| `googlecalendar_list_events` | List events (expands recurring series with singleEvents=true) |
| `googlecalendar_get_event` | Get a specific event by ID |
| `googlecalendar_create_event` | Create a new event (supports Google Meet, all-day, recurring) |
| `googlecalendar_update_event` | Partially update an event |
| `googlecalendar_delete_event` | Delete an event |
| `googlecalendar_move_event` | Move an event to a different calendar |
| `googlecalendar_quick_add_event` | Create an event from a natural-language string |
| `googlecalendar_import_event` | Import an event from an external calendar |
| `googlecalendar_list_event_instances` | List instances of a recurring event |
| `googlecalendar_get_free_busy` | Query free/busy windows for one or more calendars |

**Sharing (ACL)**

| Tool | Description |
|------|-------------|
| `googlecalendar_list_calendar_acl` | List ACL rules for a calendar |
| `googlecalendar_get_calendar_acl_rule` | Get one ACL rule by ID |
| `googlecalendar_share_calendar` | Share a calendar with a user, group, or domain |
| `googlecalendar_update_calendar_acl_rule` | Change the role of an existing ACL rule |
| `googlecalendar_unshare_calendar` | Revoke a calendar share |

## Edit Integration

> Editing is not supported for security reasons. To change configuration, delete the integration and create a new one.

## Delete Integration

The Google Calendar integration can be deleted like all other integrations. Once the deletion is triggered, all integration info including the OAuth access and refresh tokens will be deleted immediately & permanently from Suger. No time window or methods to recover.

Deleting it affects only **your** connection — other people in your organization who connected their own Google Calendar are unaffected.

:::warning
- Deleting the integration in Suger does not automatically revoke the permission you granted in Google. To fully disable access, also remove Suger from your Google account — see [Step 3: Revoke Access](#step-3-revoke-access) above.
:::
