# Connect Google Calendar

> A complete walkthrough for connecting a writable Google calendar, choosing what syncs, testing both directions, reconnecting access, and disconnecting safely.

Source: https://docs.amomic.in/console/google-calendar

---

Connect Google Calendar when the people taking Amomic-AI bookings also keep their real availability in Google. The connection does two jobs:

- an appointment booked, moved, or cancelled in Amomic-AI is mirrored to the selected Google calendar;
- an ordinary timed event already on that Google calendar becomes busy time, so the agent does not offer the same time.

Amomic-AI remains the source of truth for customer appointments. Google is the external diary and busy-time source. Connecting it does not turn every Google event into an editable customer appointment.

## Before you begin

Have all of these ready before selecting **Connect Google Calendar**:

| Requirement | Why it matters |
|---|---|
| **Amomic-AI owner or admin role** | Connecting grants the workspace ongoing read and write access to a real calendar. Members cannot grant it. |
| **A saved booking calendar** | Google Calendar is connected from an existing calendar's booking-rules page. The card is not shown while creating an unsaved calendar. |
| **A Google account you can sign in to** | Google shows its own account picker and consent screen outside Amomic-AI. |
| **Owner or writer access to the calendar you want** | Read-only calendars are not offered as sync targets because Amomic-AI must create, update, and cancel mirrored events. |
| **The correct workspace selected** | The authorization is stored for the active Amomic-AI workspace, not globally for your login. |

If this is a company-managed Google Workspace account, your Google administrator may restrict third-party OAuth applications. Ask them to permit the Amomic-AI application if Google shows an administrator-approval message. Amomic-AI cannot override a policy set by your Google Workspace administrator.

::: tip Use a dedicated team calendar when several people share bookings
A calendar such as `Sales demos` or `Clinic appointments` is easier to audit than one employee's primary calendar. Give the connecting Google account owner or writer access, then select that calendar after authorization.
:::

## Step 1: create and save the booking calendar

1. Sign in at [console.amomic.in](https://console.amomic.in).
2. Confirm the workspace switcher shows the organization that should own the connection.
3. Open **Calendar**.
4. Select **Booking rules**.
5. Choose an existing calendar, or select **New calendar**.
6. Set its **Name**, **Time zone**, opening hours, **Booking length**, **Gap after each booking**, **Can two people book the same time?**, **Earliest someone can book**, **How far ahead** and **Days you're closed**. See [Booking rules](/console/appointments#booking-rules).
7. Select **Create calendar** or **Save booking rules**.

The Google Calendar card appears only after the booking calendar has been created. If the page title is still **New booking calendar**, save it first and remain on the saved calendar's rules page.

![The Google Calendar card on a saved booking calendar, not yet connected, with a Connect Google Calendar button](https://docs.amomic.in/screens/calendar/google-connect.light.webp)

The time zone deserves a deliberate check. Opening hours and customer-facing slots use the booking calendar's time zone. Google events carry their own timestamps and are converted to absolute time; choosing the wrong booking time zone can make the grid look shifted even when sync is technically correct.

## Step 2: authorize the Google account

1. On the saved booking calendar's rules page, scroll to **Google Calendar**.
2. Select **Connect Google Calendar**.
3. The browser leaves Amomic-AI and opens Google's account picker. Choose the account that owns or can edit the intended calendar.
4. Review Google's consent screen and allow the requested Calendar access.
5. Google returns the browser to the **Booking rules** list, not to the calendar you started from. No message confirms the result there.
6. Select the same booking calendar again. Its **Google Calendar** card now shows the account email and **Connected**.

If the card still shows **Connect Google Calendar**, the connection didn't complete: you cancelled on Google's screen, the link expired, or Google refused. Start again from **Connect Google Calendar**.

This is a full-page redirect, not a popup. Do not close the tab while Google is returning you to the console. The authorization link lasts 15 minutes; if you leave Google's screen open longer, the connection fails and you start again from **Connect Google Calendar**.

### What access you are granting

The integration requests permission to read calendar information and read and write events. It uses that access to:

- list calendars the signed-in account can use;
- read events from the calendar you select;
- create and update mirrored Amomic-AI appointments;
- remove the mirrored Google event when its Amomic-AI appointment is cancelled;
- watch the selected calendar for changes so busy time can update promptly.

It does not need to create or delete Google calendars. OAuth tokens are stored as secrets and are not returned to the browser after connection.

Google's consent page describes permissions at the Google API scope level, which can sound broader than the product behavior. In Amomic-AI, only the calendar selected on this booking calendar is used for event mirroring and busy-time import.

## Step 3: choose the Google calendar

Immediately after authorization, the Google account's primary calendar is selected. If the account has more than one writable calendar, the card shows **Which calendar** with the available choices.

1. Find **Which calendar** under the connected account.
2. Select the calendar that should mirror this booking calendar.
3. Wait for **Calendar updated. Syncing now.**
4. Confirm the selected calendar remains highlighted.

![The Google Calendar card connected to service.desk@veloriahome.in, Last synced 3m ago, with Which calendar offering the primary calendar, Technician visits (selected) and Bengaluru field team](https://docs.amomic.in/screens/calendar/rules-limits.light.webp)

Only calendars where the Google account is an **owner** or **writer** are listed. A calendar visible in Google but missing here is usually read-only. In Google Calendar, open that calendar's sharing settings and give the connected account permission to make changes, then return and retry. If the list remains stale, reconnect the account.

Changing the selected calendar starts a fresh sync for the new target. Two things stay behind:

- events Amomic-AI already created in the old Google calendar remain there; remove them in Google if you don't want them;
- busy time already imported from the old calendar keeps blocking those times on the Amomic-AI calendar. Pick the right calendar before you go live, so there is nothing to carry over.

## Step 4: link the booking calendar to an agent

Calendar sync prevents conflicts, but the agent still needs explicit booking authority.

1. Open **Agents** and select the agent that should take bookings.
2. Open its **Tools** tab.
3. Turn on **Book appointments**.
4. If you have more than one booking calendar, pick the one you connected to Google in the **Calendar** list. With a single calendar, the agent uses it automatically.
5. Decide whether the agent may also cancel bookings, and set **Let it move or cancel a booking**. With booking on, the agent can always move a customer's own booking; this switch adds cancelling. See [Moving and cancelling through the agent](/console/appointments#moving-and-cancelling-through-the-agent).
6. Test the flow in the agent's **Test** tab.

The switches on the **Tools** tab save as soon as you flip them, and the live agent uses them on its next reply. There is no separate publish step for them, so test before switching booking on for a busy line.

## Step 5: verify Google to Amomic-AI sync

Do not stop at the **Connected** badge. It proves authorization succeeded, not that the selected calendar, booking rules, and agent behavior are correct.

1. In Google Calendar, create a **timed** event during the Amomic-AI calendar's opening hours.
2. Keep the event inside the booking horizon and use a time that would otherwise be bookable.
3. Leave the event's availability as **Busy**.
4. Return to Amomic-AI and wait for the connection's first sync to complete. The card changes from **Waiting for the first sync** to a relative **Last synced** time.
5. Ask the agent for availability across that period, or inspect the matching date in the Calendar page.
6. Confirm the overlapping slot is not offered.

Imported Google events appear as external busy time. They are not customer appointments and cannot be edited, completed, rescheduled, or cancelled from Amomic-AI. Change the original event in Google.

### Events that do not block a slot

| Google event | Result in Amomic-AI |
|---|---|
| Timed event marked **Busy** | Blocks overlapping availability. |
| Timed event marked **Free** | Does not block availability. |
| All-day event | Does not block availability. Use **Days you're closed** in the booking rules when the whole day must be unavailable. |
| Cancelled or deleted Google event | Its imported busy block is removed after sync. |
| Event created by Amomic-AI | Recognized as the mirrored appointment, not imported again as a second busy block. |

Use the booking calendar's **Days you're closed** for holidays, leave, or a day when nobody should book. An all-day Google event is intentionally not treated as closure because many all-day entries are reminders, birthdays, or informational events rather than unavailable time.

## Step 6: verify Amomic-AI to Google sync

1. Use the Amomic-AI console or a test agent to book a real future test slot.
2. Confirm the appointment appears immediately in the Amomic-AI Calendar page.
3. Open the selected Google calendar and find the mirrored event.
4. Check its start and end time. The event is titled with the customer's name, and its description starts *Booked through Amomic-AI* with the channel, then the booking reference and the customer's phone, email and notes when known.
5. Reschedule the appointment in Amomic-AI. The old Google event is removed and a new one appears at the new time, because a move creates a new booking.
6. Cancel the new booking in Amomic-AI and confirm its Google event is removed.

Make appointment changes in Amomic-AI when the record originated there. Editing or deleting its mirrored Google event does not make Google the authority for that customer booking; a later Amomic-AI change or repair sync may restore the authoritative state.

::: warning A Google outage never cancels a valid Amomic-AI booking
Booking commits in Amomic-AI first, then the copy is sent to Google. If Google can't be reached after a few quick attempts, the appointment stays valid but its Google copy is skipped, and it isn't sent again later. The console doesn't flag a skipped copy. Treat the Amomic-AI Calendar page as the authoritative booking record, and don't rely on Google alone to see the day's visits.
:::

## Statuses and what to do

| Status | Meaning | Action |
|---|---|---|
| **Connected** | Authorization is healthy. The selected calendar can be used. | Check **Last synced** during initial testing and after changing calendars. |
| **Waiting for the first sync.** | Connection exists, but the first pull has not completed yet. | Wait briefly and refresh. Create no duplicate connection. |
| **Reconnect needed** | Google revoked or can no longer refresh the authorization. Nothing is syncing. | Select **Reconnect**, sign in to the intended account, and grant access again. |
| **Google Calendar is not set up for this environment yet** | The Amomic-AI environment does not have its Google OAuth client configured. | Contact Amomic-AI support. This is not fixed in your Google account. |

Google notifies Amomic-AI of changes as they happen, and an hourly catch-up sync picks up anything a notification missed. A short delay is different from a stale **Last synced** time that never advances.

## Reconnect access

Reconnect when the card says **Reconnect needed**, when Google access was revoked, when the authorizing user's Workspace access changed, or when the stored authorization can no longer be refreshed.

1. Open **Calendar → Booking rules** and select the affected booking calendar.
2. In the Google Calendar card, select **Reconnect**.
3. Choose the intended Google account. The account picker may default to your Amomic-AI login email; change it if the calendar belongs to another account.
4. Grant the requested permissions again.
5. Confirm the card returns to **Connected** and **Last synced** advances.
6. Repeat one busy-time test and one mirrored-booking test.

Reconnecting the same Google account rotates its authorization in place; it does not deliberately create another copy of that account connection.

![The Google Calendar card in the Reconnect needed state: Google revoked access, so nothing is syncing. Reconnect to resume. A Reconnect button sits beside Disconnect](https://docs.amomic.in/screens/calendar/google-reconnect.light.webp)

## Change accounts or calendars

To use another calendar owned by the same Google account, select it under **Which calendar**. This is the least disruptive route.

One Google account links to one booking calendar at a time. If you connect the same account from a second booking calendar, the connection moves there and the first calendar's card goes back to **Connect Google Calendar**. To cover two booking calendars, connect a different Google account to each.

To use a different Google account:

1. Disconnect the current connection.
2. Sign out of unintended Google accounts if the account picker keeps selecting the wrong one.
3. Select **Connect Google Calendar** again.
4. Choose the new account and grant access.
5. Select its writable calendar and repeat both verification tests.

Before switching a live team calendar, note which future events were created by Amomic-AI in the old calendar. The switch does not clean up that old calendar for you.

## Disconnect safely

1. Open the saved booking calendar's rules page.
2. In the Google Calendar card, select **Disconnect**.
3. Review the confirmation, including the connected account email.
4. Select **Disconnect** again, or **Keep it connected** to back out.

![The Disconnect Google Calendar? confirmation naming service.desk@veloriahome.in, with Keep it connected and Disconnect buttons](https://docs.amomic.in/screens/calendar/google-disconnect.light.webp)

After disconnecting:

- future Amomic-AI bookings stop appearing in Google;
- Google events stop contributing busy time;
- Amomic-AI appointments and their history remain intact;
- events previously mirrored into Google remain there until you remove them in Google;
- the local credential is removed and Amomic-AI makes a best-effort request to revoke it at Google.

If you are disconnecting for security rather than simply changing calendars, also review the Google account's third-party application access and remove the Amomic-AI grant there. That confirms the provider-side authorization is gone even if Google was unreachable during disconnect.

## Troubleshooting

::: details The Connect button is missing
First save the booking calendar; the Google card is only rendered for an existing calendar. Then confirm you are an Amomic-AI owner or admin and are looking at **Calendar → Booking rules**, not only the agenda. If the card says the environment is not configured, contact Amomic-AI support.
:::

::: details Google says an administrator must approve access
Your Google Workspace organization restricts third-party OAuth applications. Send the administrator the exact Google consent-screen message and ask them to allow the Amomic-AI application. Retrying with the same managed account before policy changes will produce the same result. A personal Google account may work technically, but use it only if your organization's data policy allows that calendar to hold customer booking information.
:::

::: details The wrong Google account keeps opening
Google follows the active browser session and Amomic-AI supplies your login email only as a hint. Use **Use another account** on Google's picker, or sign out of the unintended Google account before starting again. After connection, verify the email displayed on the card before creating a test booking.
:::

::: details The calendar I need is not listed
The account must have owner or writer access. Read-only calendars are filtered out because event mirroring would fail. Change the calendar's Google sharing permission, then reconnect if the writable-calendar list does not refresh.
:::

::: details A Google event does not block availability
Check all five conditions: it is on the selected Google calendar, it has start and end times rather than being all-day, it is marked Busy rather than Free, it overlaps the booking calendar's open hours, and the connection's **Last synced** time has advanced since the change. Also confirm the agent is bound to this Amomic-AI booking calendar, not another one with similar hours.
:::

::: details An Amomic-AI booking does not appear in Google
Confirm it was created on the booking calendar connected by this card, then confirm the selected Google calendar and account email. If the card shows **Reconnect needed**, reconnect; bookings made while access was revoked are not copied afterwards. If Google was briefly unreachable when the booking was made, its copy was skipped and won't be retried. The booking itself remains valid in Amomic-AI.
:::

::: details Times look shifted
Compare the Amomic-AI booking calendar's time zone, the Google event's displayed time zone, and the viewer's Google Calendar time zone. The appointment stores an absolute start and end, but each interface renders it in a chosen zone. Correct the Amomic-AI booking calendar time zone before taking live bookings; changing display settings does not repair business hours configured in the wrong zone.
:::

::: details The agent still offers an occupied time
Ask whether the event is merely visible or actually Busy. Then check the agent's **Tools** tab: **Book appointments** is on and points to the same booking calendar. Finally, check **Last synced**. Availability is checked again transactionally when booking, but Google busy time must have reached Amomic-AI before it can participate in that check.
:::

::: details Disconnect left events in Google
This is expected. Disconnect stops future sync and keeps both systems' historical records. Delete obsolete mirrored events directly in Google after confirming the corresponding appointments still exist in Amomic-AI.
:::

## Go-live checklist

- The Google account email on the card is the intended operational account.
- The selected calendar is the intended writable team or personal calendar.
- The Amomic-AI booking calendar has the correct time zone and opening hours.
- A timed Busy event in Google removes an otherwise valid slot.
- An all-day or Free event does not unexpectedly close the day.
- A test Amomic-AI booking appears in Google with the correct time.
- Rescheduling and cancelling the test booking update Google correctly.
- The agent's **Tools** tab binds it to this exact booking calendar.
- Someone on the team checks the Google Calendar card for **Reconnect needed**. The console doesn't send an alert when access is revoked.
- The team knows Amomic-AI, not Google, is authoritative for customer appointments.

## Related guides

- [Appointments and calendars](/console/appointments) explains booking rules, reminders, agent permissions, and appointment operations.
- [Tools and actions](/build/tools#appointment-tools) explains exactly when the four appointment tools are exposed to an agent.
- [Testing and publishing](/build/testing) explains how to test an agent before customers reach it.
- [Setup directory](/start/setup-directory) maps the prerequisites and success checks for other channels and integrations.
