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

# Google Calendar Sync

> Sync a team member's Google Calendar with Bella Booking — choose two-way, push-only, or pull-only. Appointments and time off flow out; personal Google events come in as blocked time.

## Introduction

Google Calendar Sync connects a team member's Google Calendar with Bella Booking so that:

* **Bella Booking appointments and blocked time appear in Google Calendar** — every appointment for the team member, along with any blocked time (lunch, breaks, training, leave), is pushed to their chosen Google calendar within seconds.
* **Personal Google events block availability** — external events (dentist appointments, school pickups, meetings) are pulled into Bella Booking as read-only blocked time, preventing double-bookings in both the admin scheduler and online booking.

Each team member chooses the **direction** of their connection — both ways, or just one — and a new connection keeps personal events private until they opt in (see [Choosing your sync direction](#choosing-your-sync-direction)).

Team members can connect their own Google account, and business owners or admins with the **Edit team** permission can connect, pick a calendar, choose the sync direction, toggle title visibility, or disconnect on a team member's behalf.

<Info>
  Google Calendar Sync is rolling out gradually. If you don't see the **Calendar** tab on a team member's profile yet, it will be enabled for your account soon.
</Info>

***

## How It Works

### What gets pushed to Google

When a Bella Booking appointment is created, rescheduled, or cancelled for a connected team member, the corresponding Google Calendar event is created, updated, or removed automatically.

* Events include the appointment time and service details
* Bella Booking is the source of truth — if someone edits a pushed event directly in Google, Bella Booking overwrites it on the next sync cycle
* Cancelled appointments are removed from Google Calendar

**Blocked time** created in Bella Booking — lunch, breaks, training, leave, or any manual "do not book me" block — is pushed the same way, so the team member sees a complete day in their personal calendar:

* The block's reason is used as the event title (or simply **Blocked** when no reason was given)
* Recurring blocks are pushed as a single native recurring Google event, so editing or deleting the series in Bella Booking updates Google in step
* Blocks that cover a whole day (set to 00:00–23:59 in Bella Booking) are pushed as timed events spanning the day, not as Google "all-day" events
* Blocked time that was pulled **in** from Google is never pushed back — only blocks you create in Bella Booking are sent out

### What gets pulled from Google

External events on the connected calendar are imported into Bella Booking as **read-only blocked time**:

* Only events marked as **Busy** block availability (events marked as Free are ignored)
* **All-day events always block the entire day**, regardless of their free/busy setting — this ensures holidays and days off are respected
* Recurring events are expanded into individual occurrences within the sync window
* External blocks appear on the admin scheduler and are respected by the online booking engine

<Tip>
  The sync window covers **60 days before and after today**. Events outside this range are not imported.
</Tip>

### What is NOT synced

* **Client contact information is never sent to Google.** Pushed events contain the appointment time, service name, and client name, but not phone numbers, email addresses, or notes.
* **Minimal data read from Google.** Bella Booking accesses event start/end times, the free/busy status, and — when the "Show event titles" toggle is on — the event title. Event descriptions, attendees, and attachments are not accessed.

***

## Choosing your sync direction

Each team member decides which way their calendar syncs. On the **Calendar** tab, pick one of three options under **How should this calendar sync?**:

| Direction                       | Bella Booking → Google                   | Google → Bella Booking           |
| ------------------------------- | ---------------------------------------- | -------------------------------- |
| **Two-way**                     | Appointments and blocked time are pushed | Google events block availability |
| **Bella Booking → Google only** | Appointments and blocked time are pushed | —                                |
| **Google → Bella Booking only** | —                                        | Google events block availability |

**New connections start on Bella Booking → Google only.** Connecting never silently makes your personal Google events block your Bella Booking availability — you opt into that by switching to **Two-way** or **Google → Bella Booking**. (Team members who connected before this option existed keep their two-way sync.)

Switching is instant and never asks you to sign in to Google again — the direction is simply a setting on your existing connection. When you turn a direction **off**, Bella Booking tidies up after it:

* Turning **Google → Bella Booking** off removes the read-only blocked time those Google events created in Bella Booking.
* Turning **Bella Booking → Google** off removes the upcoming appointments Bella Booking had added to your Google Calendar — those from today onwards (up to about a year ahead). Appointments already in the past are left as they are.

Switching a direction back **on** re-establishes it right away in most cases — re-pushing your upcoming appointments, or pulling your current Google events (those within 60 days either side of today) back in. If Google is briefly unreachable when you switch, a nightly sync catches up. The sync facts and the **Show event titles** toggle on the Calendar tab adapt to match the direction you choose.

***

## Connecting Google Calendar

A team member can connect their own Google Calendar, and an owner or admin with the **Edit team** permission can connect it on their behalf. The connection uses Google's secure OAuth flow.

### Step-by-step

1. Go to **Team** from the sidebar and click on the team member's name
2. Select the **Calendar** tab
3. Click **Connect Google**
4. You are redirected to Google — sign in and grant Bella Booking permission to access the calendar
5. After authorising, you are returned to Bella Booking and a **calendar picker** appears
6. Select which Google calendar Bella Booking should use (the primary calendar is pre-selected)
7. Click **Use this calendar**

<Warning>
  **Connecting on behalf of a team member?** Bella Booking links whichever Google account is signed in to Google **on the device you're using** — not the team member's account automatically. Before you start, make sure that team member is the one signed in to Google here (sign out of your own account first, or use a private window where they sign in). After connecting, the Calendar tab shows the linked account email so you can double-check it's the right one.
</Warning>

Once connected, Bella Booking begins pushing your upcoming appointments and blocked time to Google Calendar. Because new connections start on **Bella Booking → Google only**, your personal Google events won't block your Bella Booking availability until you switch to **Two-way** or **Google → Bella Booking** — at which point Bella Booking pulls your existing events in as blocked time and registers for real-time notifications so new ones appear within seconds.

### What you see when connected

The Calendar tab shows:

* The connected Google account email and calendar name
* When the last sync occurred
* A **sync direction** selector — Two-way, Bella Booking → Google only, or Google → Bella Booking only
* Sync facts that match the chosen direction: the 60-day event window and Busy-only filtering when Google events flow in, and live push speed when appointments flow out
* A **title visibility toggle**, shown when Google events flow in (see [Calendar Preferences](#calendar-preferences) below)
* A **Disconnect** button

***

## Calendar Preferences

### Show event titles to colleagues

By default, external Google events appear as **Busy** on the admin scheduler — colleagues cannot see what the event is about. This protects your privacy.

If you prefer, you can toggle **Show event titles to colleagues** to on. When enabled, the actual event title (e.g. "Dentist" or "School pickup") is visible to other team members on the scheduler.

This setting only appears when Google events flow into Bella Booking (**Two-way** or **Google → Bella Booking only**). On **Bella Booking → Google only** there are no external events to label, so the toggle is hidden.

<Info>
  Regardless of this setting, clients booking online never see event titles — they only see that the time slot is unavailable.
</Info>

***

## Reconnecting

If your Google Calendar connection loses access — for example, if you revoke Bella Booking's permissions from your Google account settings — syncing pauses and a **Reconnect needed** banner appears on the Calendar tab.

To fix this:

1. Go to your team member profile and select the **Calendar** tab
2. You will see a **Reconnect needed** status with an explanation
3. Click **Reconnect Google**
4. Complete the Google authorisation flow again
5. Syncing resumes automatically

<Warning>
  While disconnected, new Google events will not block your availability and new Bella Booking appointments will not appear in your Google Calendar. Reconnect promptly to avoid double-bookings.
</Warning>

***

## Disconnecting

You can disconnect Google Calendar at any time:

1. Go to your team member profile and select the **Calendar** tab
2. Click **Disconnect**
3. Confirm in the dialog

When you disconnect:

* Syncing stops immediately
* External blocked time entries in Bella Booking for this connection are removed
* Bella Booking appointments and blocked time that were already pushed to Google Calendar **remain** in your Google calendar — they are not deleted
* You can reconnect at any time to start syncing again

### Admin connect, reconnect & disconnect

Business owners and admins with the **Edit team** permission can manage a team member's Google Calendar from that team member's profile — connect, pick a calendar, toggle title visibility, reconnect after a revoked token, or disconnect. When connecting or reconnecting on someone's behalf, remember that the linked account is whoever is signed in to Google on the device you're using, so confirm the account email shown on the Calendar tab.

***

## FAQs

<Accordion title="Does it work with Microsoft Outlook or Apple Calendar?">
  Google Calendar Sync currently supports **Google Calendar only**. For other calendar apps, you can use the [Calendar Feed](/teams#calendar-feed) feature, which provides a read-only subscription URL compatible with Outlook, Apple Calendar, and any app that supports iCal feeds. Note that the Calendar Feed is one-way (Bella Booking to calendar) and does not pull external events back into Bella Booking.
</Accordion>

<Accordion title="Can multiple team members connect their calendars?">
  Yes. Each team member connects their own Google account independently. There is no limit on how many team members can connect.
</Accordion>

<Accordion title="Can I choose which calendar to sync with?">
  Yes. After authorising with Google, a calendar picker lets you choose from any calendar on your Google account. Your primary calendar is selected by default, but you can pick any calendar you own.
</Accordion>

<Accordion title="Can I sync only one way?">
  Yes. On the **Calendar** tab, choose **Bella Booking → Google only** (your appointments flow to Google, but your Google events don't affect Bella Booking) or **Google → Bella Booking only** (your Google events block your Bella Booking availability, but Bella Booking doesn't add anything to your calendar). New connections start on **Bella Booking → Google only**. Switching direction is instant and never asks you to sign in to Google again.
</Accordion>

<Accordion title="Why do all-day events block my availability even if they're marked as Free?">
  Google defaults all-day events to Free, which means holidays and days off would not block your calendar. Bella Booking intentionally treats all-day events as blocking regardless of their free/busy setting — this prevents clients from booking over your days off or holidays.
</Accordion>

<Accordion title="What happens if I edit a Bella Booking appointment in Google Calendar?">
  Bella Booking is the source of truth for its own appointments. If you edit a pushed event in Google (for example, change the time), Bella Booking will overwrite your changes on the next sync cycle. Always reschedule appointments within Bella Booking.
</Accordion>

<Accordion title="What happens if I delete a Bella Booking appointment from Google Calendar?">
  The event will be re-created by Bella Booking on the next sync cycle. To cancel an appointment, use the Bella Booking scheduler or appointments page.
</Accordion>

<Accordion title="Does my time off and breaks sync to Google too?">
  Yes. Any blocked time you create in Bella Booking — lunch, breaks, training, leave, or a manual block — is pushed to your connected Google Calendar within seconds, using the block's reason as the event title (or "Blocked" if you didn't give one). Recurring blocks sync as a single recurring Google event. Blocked time that Bella Booking pulled in from Google is not pushed back out.
</Accordion>

<Accordion title="How quickly do changes sync?">
  **Bella Booking to Google:** Appointments appear in Google Calendar within seconds of being created or updated. **Google to Bella Booking:** External events typically appear as blocked time within seconds, thanks to real-time push notifications from Google. A nightly reconciliation ensures nothing is missed.
</Accordion>

<Accordion title="What Google permissions does Bella Booking request?">
  Bella Booking requests access to your Google account (for sign-in identity) and three calendar-specific permissions: read events on your calendars (to pull external events as blocked time), create and manage events that Bella Booking creates (to push appointments), and list your calendars (so you can pick which one to use). Bella Booking cannot modify events you created — it can only manage events it pushed itself.
</Accordion>

<Accordion title="Can two team members connect the same Google calendar?">
  Yes, though this is uncommon. Both team members will have the same external events blocking their availability, and each will have their own appointments pushed to that calendar separately.
</Accordion>

<Accordion title="What's the difference between Calendar Feed and Google Calendar Sync?">
  **Calendar Feed** is a read-only subscription URL — it pushes Bella Booking appointments to your calendar app but does not pull anything back. It works with any calendar app (Google, Apple, Outlook). **Google Calendar Sync** is a richer connection that can sync two ways — pushing appointments to Google and pulling external events back as blocked time — or just one way if you prefer. It requires a Google account and OAuth authorisation.
</Accordion>

<Accordion title="Is my calendar data private?">
  Yes. Bella Booking accesses event start/end times, free/busy status, and — when the "Show event titles" toggle is on — event titles. Event descriptions, attendees, and attachments are not accessed. Pushed appointments contain service names and the client's name but not their phone number, email, or notes.
</Accordion>

***

## Related

* [Calendar Feed](/teams#calendar-feed) — read-only subscription URL for any calendar app
* [Team Member Profiles](/teams#viewing--editing-a-team-member) — where the Calendar tab lives
* [Working Hours](/teams#managing-working-hours) — default and custom schedules
* [Time Off](/teams#managing-time-off) — manual availability blocking
