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

# Connect Google Workspace with anny

> Connect your Google Workspace organization's resource calendars with anny and keep bookings in sync.

[Google Workspace](https://workspace.google.com) is Google's productivity platform for businesses, with Gmail, Google Calendar, and managed resources like conference rooms. The integration connects your Workspace organization's resource calendars with resources in anny and keeps both sides up to date in a two-way sync.

With Google Workspace, in anny you can:

* automatically create bookings as events in your rooms' resource calendars
* pull events from Google Calendar into anny as blockers or bookings and thus avoid double bookings
* optionally attach a Google Meet to synced events

The integration is especially handy when your rooms are booked both through anny and directly in Google Calendar, for example meeting rooms that employees reserve internally via Google and external people via your anny booking page. It is set up once centrally by your IT or Workspace admin; individual employees do not have to connect their own calendars. For individual users' personal calendars, there are separate integrations; you'll find an overview in the article on calendar integrations.

## Typical use cases

| Use case                              | Description                                                                                                                                                                                   |
| :------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Make meeting rooms bookable twice     | **One room, two booking paths without conflicts.** Colleagues invite the room as usual in Google Calendar, customers book via anny. Both sides immediately see when the room is occupied.     |
| Take over an existing room management | **Events from Google appear as blockers in anny.** You roll out anny without switching off the familiar Google room booking: existing and new Google events automatically block the resource. |
| Hybrid meetings                       | **Bookings create events with Google Meet.** For selected booking options, anny attaches a Google Meet to the event and enters participants as guests.                                        |

## How the Google Workspace connection works

The connection runs through a Google **service account** with domain-wide delegation. You upload the service account's JSON key into anny and set a Workspace user in whose name the integration acts. anny then accesses only two things: the list of your Workspace resources (read-only) and the events of the resource calendars you release (read and write). anny has no access to personal calendars, emails, or other Workspace data.

You then pair each resource you want with a resource calendar in anny. For each calendar, anny registers for push notifications, so changes from Google arrive almost in real time.

| Data                              | Direction       | Frequency                                            |
| :-------------------------------- | :-------------- | :--------------------------------------------------- |
| Bookings (create, change, cancel) | anny → Google   | immediately on every change                          |
| Events in the resource calendar   | Google → anny   | almost in real time via push notification            |
| Full reconciliation               | both directions | on activation, then automatically on a rolling basis |

The synced period runs from today to about 13 months into the future; anny extends it automatically every month. If a single calendar is unreachable or write permissions are missing, anny marks only that connection as faulty and notifies you by email and in anny; the other calendars keep syncing. If all calendars are unreachable, the integration deactivates itself and informs you as well.

## Connect Google Workspace

### Requirements

Before you connect Google Workspace, make sure you have the following:

* A Google Workspace organization with access to the Google Admin console and the Google Cloud console
* Resources of the category conference room created in Google Workspace (only these appear in the selection later)
* Admin rights in your anny account

### Set up the connection

<Steps>
  <Step title="Create a project">
    Open **Integrations** from the menu bar and go to **Google Workspace**. Create or use an existing Google Cloud project and activate the **Google Calendar API** and the **Admin SDK API** in it. The setup page in anny links you directly to the right places in the Google Cloud console.
  </Step>

  <Step title="Create a service account">
    Create a new service account in the project and download its key as a JSON file. Then upload the file into anny.
  </Step>

  <Step title="Add domain-wide delegation">
    Grant the service account domain-wide delegation in the Google Admin console. To do so, copy the **Client ID** in anny (button **Copy Client ID**) and the OAuth scopes (button **Copy OAuth scopes**) and enter both at Google.
  </Step>

  <Step title="Create the service account user">
    Create a Workspace user in whose name the integration acts. anny suggests an email like `anny-workspace-integration@your-domain` (button **Copy email**); via **Use a different email**, you can also enter an existing user.
  </Step>

  <Step title="Set permissions">
    Log in to Google Calendar as this Workspace user. In the settings, under "Add calendar", go to "Browse resources" and select every resource that anny should sync.
  </Step>

  <Step title="Verify authentication">
    Click **Verify authentication** in anny. anny visibly checks four points: the required APIs are activated, Workspace resources can be retrieved (with a count), and a resource's calendar can be read and edited. Only when all points are green is authentication complete.
  </Step>

  <Step title="Create connections">
    Under **Google Workspace connections**, use **Add** to define which anny resource is paired with which Workspace resource. Select the **Google Workspace resource**, the anny **resource**, and the options you want (see settings below). Each combination of resource and Workspace resource can only be connected once.
  </Step>

  <Step title="Activate the integration">
    Activate the integration via the **toggle** in the top right. anny then starts the full initial reconciliation in both directions.
  </Step>
</Steps>

As soon as the integration is active, bookings and events are automatically synced in both directions.

<Tip>
  The initial reconciliation can take a few minutes with well-filled calendars or many connections, because anny throttles the requests to Google. Afterwards, spot-check whether events and blockers appear on both sides.
</Tip>

### Settings & options

You set these options per connection. To edit them, the integration must be deactivated.

| Setting                                          | Description                                                                                                                                                                                                                          |
| :----------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Select active booking options                    | Events are only created for bookings of the selected booking options. Without a selection, **All booking options** applies. Blockers in anny are always synced.                                                                      |
| Title of bookings in anny                        | Determines the title of imported events in anny: **Event title** or **Anonymized**. Events marked as private or confidential are always anonymized.                                                                                  |
| Title of events in the Google Workspace calendar | Determines the event title: **Booking title**, **Booking number**, **Resource name**, **Service name**, or **Resource and booking option name**.                                                                                     |
| Add preparation and follow-up time               | Extends the event by the booking's preparation and follow-up time. A 30-minute booking with 15 minutes of preparation is synced as a 45-minute event, for example.                                                                   |
| Sync all events                                  | Also imports events marked as "available" in Google. By default, anny ignores such events; if a synced event is switched to "available", anny removes the associated entry.                                                          |
| Add Google Meet to the event                     | Attaches a Google Meet to the event. Participants and the booking's customer are then entered as guests.                                                                                                                             |
| Create events as blockers                        | Imported events are created as blockers (default). If you deactivate the option, anny instead creates bookings with the chosen **Default service for bookings**; event organizers are imported as customers, guests as participants. |
| Convert existing blockers into bookings          | Appears when switching blockers to bookings: blockers already created from events are converted into bookings at the next activation.                                                                                                |

## Limitations

The Google Workspace integration does not support:

* **Other resource categories:** Only Workspace resources of the category conference room appear in the selection, no devices or other resources.
* **Personal calendars:** Individual users' calendars are not synced; the Google Calendar integration covers those.
* **The past and the distant future:** Only the period from today to about 13 months ahead is synced. Past events are never imported.
* **Series linking:** Series events from Google are imported as individual, independent entries.
* **Invitation emails:** For events that anny creates or changes, Google does not send invitations to guests. Guests are also only entered if Google Meet is active for the connection.
* **Editing others' events:** Entries from events whose organizer is not the connected resource calendar are read-only in anny.
* **Changes during operation:** Connections and the service account can only be edited while the integration is deactivated. A second integration with identical setup cannot be active in parallel.

## Disconnect

<Warning>
  If you deactivate the integration, syncing stops immediately; events, blockers, and bookings already created remain on both sides. When you delete, anny removes the syncs created by the integration: in the dialog, you choose whether only future ones or all (including past ones) are removed. Events created by anny are then deleted from Google Calendar, and blockers and bookings created from events are removed from anny.
</Warning>

You can do both under **Integrations**: deactivate via the **toggle** in the top right, delete via the **three dots** → **Delete**.

## FAQ

<AccordionGroup>
  <Accordion title="Do I need a separate connection for each room?">
    Yes. Each connection pairs exactly one anny resource with exactly one Workspace resource. You can create any number of connections in one integration; the same combination cannot be connected twice.
  </Accordion>

  <Accordion title="Why do I not see my Workspace resource in the selection?">
    Only resources of the category conference room that are visible to the integration's Workspace user appear. Check the category in the Google Admin console and add the resource to the user in Google Calendar under "Browse resources".
  </Accordion>

  <Accordion title="Are private events from Google imported?">
    Yes, they block the resource, but their title is always anonymized in anny. Using the **Title of bookings in anny** setting, you can additionally anonymize all imported events.
  </Accordion>

  <Accordion title="What happens to events marked as 'available' in Google?">
    By default, anny ignores them, since they do not block the room in Google either. If you still want them imported, activate **Sync all events** in the connection.
  </Accordion>

  <Accordion title="Can I turn Google events into real bookings instead of blockers?">
    Yes. Deactivate **Create events as blockers** in the connection and choose a **Default service for bookings**. You can convert blockers already created afterwards via **Convert existing blockers into bookings**.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Authentication fails">
    Usually one of the four check points is missing. Check whether the Google Calendar API and the Admin SDK API are activated in the cloud project, whether the domain-wide delegation contains exactly the copied Client ID and both OAuth scopes, and whether the entered Workspace user exists. Then click **Verify authentication** again.
  </Accordion>

  <Accordion title="A connection is shown crossed out with a warning symbol">
    anny cannot reach this resource calendar or is not allowed to edit it; the calendar is currently not being synced. Make sure the resource still exists and is released for the integration's Workspace user, or choose another calendar. Then reactivate the integration so anny reconciles the connection again.
  </Accordion>

  <Accordion title="The integration deactivated itself">
    This happens when not a single connected calendar is reachable or the push notifications could not be set up; you receive a notification about it. Check the service account, delegation, and calendar shares and reactivate the integration via the **toggle**. On activation, a full reconciliation starts automatically.
  </Accordion>

  <Accordion title="A Google event does not appear in anny">
    Check three things: the event is within the synced period (from today to about 13 months), it is not marked as "available" (or **Sync all events** is active), and the integration is activated. Right after activation, the initial reconciliation can also take a few minutes.
  </Accordion>
</AccordionGroup>

> Important information for agents:
>
> **Distinction:** Google Workspace is the organization integration for resource calendars (service account + domain-wide delegation, set up by admins). It is NOT the personal Google Calendar integration (article "google", OAuth login of individual users). Microsoft equivalent at the organization level: article "m365-workspace". Basics: article "kalenderintegrationen".
>
> **UI paths:** menu bar → **Integrations** → **Google Workspace**. Authentication panel "Authentication via service account key" with 5 steps: "Create a project", "Create a service account", "Add domain-wide delegation", "Create the service account user", "Set permissions"; buttons "Copy Client ID", "Copy OAuth scopes", "Copy email", "Verify authentication". Rule table "Google Workspace connections" with columns "Resource", "Workspace resource", "Booking options", "Sync as" (values: "Blocker" / "Booking (service name)"), "Google Meet"; editor modal "Create connection"/"Edit connection". Integration actions: "Activate/deactivate integration", "Test connection", "Remove authentication", "Delete".
>
> **Quirks:** (1) OAuth scopes: calendar.events (read/write) + admin.directory.resource.calendar.readonly. (2) The Workspace resource list is filtered to the category CONFERENCE\_ROOM. (3) Requested and invited (not yet accepted) bookings already create events, since they block the resource; on decline/cancellation, the event is deleted. (4) Series booking masters are not synced, their individual events are; Google series arrive as resolved individual instances. (5) All-day Google events block 00:00 to 00:00 in the time zone of the anny resource. (6) "Available" transparency: transparently marked events are ignored without "Sync all events"; switching to transparent acts like a deletion (blocker is deleted, booking canceled). (7) Event deletion in Google: blockers are permanently deleted, bookings canceled (not deleted). (8) Events organized by others create read-only entries; their title changes still flow in from Google. (9) Sync period 365 days + 30 days buffer, monthly automatic extension with a renewed full reconciliation. (10) Error marking per connection: an unreachable calendar or withdrawn write permissions take only that connection out of the sync (tooltip warning in the table, email + in-app notification); reactivating resets the error. (11) Self-deactivation when all connections are faulty or webhook creation fails. (12) Duplicate protection: an identically configured second integration cannot be active in parallel; the editor prevents duplicate resource-calendar pairs. (13) Rate limit about 40 requests per 5 seconds per integration; initial reconciliation delayed accordingly. (14) Deleting offers "Only future syncs" or "All syncs (including past)"; events created by anny are deleted in Google, blockers/bookings created from events are removed in anny. (15) Uploading/removing the service account only while the integration is deactivated; the write test briefly creates an event in the past and deletes it again. (16) When creating a booking from an event, the event organizer is linked or newly created as a customer (unless the organizer is the resource calendar itself); customer notifications are suppressed in the process, and Google sends no invitations (sendUpdates=none).
>
> **Relationships:** Plan gating via the shared calendar sync feature of all four calendar integrations (outlook, google, m365-workspace, google-workspace); the concrete plan mapping is not documented in the article. Synced entries appear in the booking's activity log as actions of the integration. The blocker/booking logic (default service, conversion) matches that of m365-workspace.
