Skip to content
Gaurav TiwariDocs

Connect Google Calendar, Google Meet and Zoom

Updated October 22, 2026

Double bookings usually come from a calendar the booking page can’t see: a dentist visit, a school run, a client call booked by phone. Connect Google Calendar and Core Bookings reads each staff member’s chosen calendars live before it offers a time, then adds every new booking to one calendar of their choice. Google Meet or Zoom can add a video link to each booking at the same time.

Google Calendar, Meet and Zoom are part of the core plugin. There is no module to switch on.

Create the Google App

A manager does this once. The app belongs to your own Google Cloud account, so no booking data passes through a third party.

  1. In Google Cloud, create a project, enable the Google Calendar API, and create an OAuth client of the web application type.
  2. Go to Bookings → Settings → Calendar & meetings. Copy the Authorized redirect address and add that exact address to the app’s authorized redirect URIs.
  3. Paste the Google client ID and Google client secret, then click Save calendar & meeting settings. A blank secret field keeps the saved one.

Staff are asked to allow two permissions: managing calendar events and reading their calendar list. Under Event details you can tick Add the customer name and seats to staff calendar events. It’s off by default, because anyone who can see a staff calendar would see those details.

Connect a Staff Calendar

Every staff member connects their own Google account. A manager can’t connect one on someone else’s behalf.

  1. The staff member signs in to WordPress and opens Bookings → Staff → My calendar.
  2. They click Connect Google Calendar, sign in to Google and accept the permissions.
  3. Under Check availability on these calendars, they tick every calendar that should block their time.
  4. In Add new bookings to, they pick one writable calendar, then click Save calendars.

Someone with a work and a personal Google account can click Add another Google account. Each account gets its own card with Reconnect and Remove this account, and one calendar list covers them all.

What Blocks a Time

  • Every ticked calendar in every connected account, plus the destination calendar, is read live when times are shown and again before a booking is reserved.
  • Events marked free, cancelled events and invitations the staff member declined don’t block, matching Google’s own free/busy.
  • All-day events block the day.
  • Event titles and private event details are never stored on your site.
  • Changing the destination later doesn’t move existing appointments. They stay on their original calendar.

An event can still land on top of a confirmed booking after the fact. Core Bookings checks again about every five minutes (sooner on HTTPS sites, where Google notifies the site of changes). It flags the conflict on the appointment and the Overview, and emails the assigned staff member. The flag clears once you reschedule, cancel or remove the clashing event.

When a Connection Breaks

Once a staff member connects Google, the connection is required. If Google refuses the saved access, the card shows Reconnect required and that person’s online availability pauses. Pausing is deliberate: offering times you can’t check is how double bookings happen.

  • Reconnect restores the account and keeps its calendar choices.
  • Use local availability only drops the requirement and goes back to working hours alone.
  • Disconnect and pause online availability removes every account’s access at once.
  • A manager can open the staff profile in Bookings → Staff, enter a Reason for forced disconnect and click Disconnect and pause availability.

My calendar also shows the last successful synchronization and the latest error, if any.

Open a service and pick an option in Video meeting: No automatic meeting link, Google Meet or Zoom. The link reaches the customer in their confirmation email (the {meeting_url} placeholder), on their booking page and in the appointment panel.

  • Google Meet: the link is created in the host’s destination Google calendar, so the host must have Google connected. Customers can’t book a Meet service with a host whose connection isn’t ready.
  • Zoom: create a Server-to-Server OAuth app in Zoom with permission to read, create, update and delete meetings. Enter its Zoom account ID, Zoom client ID and Zoom client secret under Zoom meetings in the same settings screen. Then set each host’s Zoom host email in their staff profile (blank uses their WordPress email).

Customers only ever get participant links, never the host’s start link. Microsoft Teams links are covered in Connect Outlook and Microsoft Teams.

Limits

  • Up to five Google accounts per staff member, and up to ten checked calendars in total across them.
  • One destination calendar per staff member. Meet links are created in that account.
  • Live reads run on every availability check, so a slow Google response slows that person’s times.
  • After moving the site to a new address, reconnect meeting providers.
  • Using Apple Calendar or another CalDAV service instead? See Calendar Feeds, iCloud and CalDAV.
Share

Was this helpful?

Still stuck? Open a support ticket