Google Calendar Integration

Two-way sync between Advik Booking and Google Calendar. Every booking appears on the assigned staff member's calendar, and busy times from Google Calendar are respected by the slot picker.

What you get

  • Bookings auto-create Google Calendar events on the staff's calendar.
  • Reschedules update the event in place.
  • Cancellations delete the event.
  • Existing busy times on Google Calendar block those slots from being offered.
  • Events include the customer name, phone, service, address, and a link back to the booking.

How it syncs

Two-way sync
Advik BookingBooking createdWebhookPOST to GoogleGoogle CalendarEvent createdGoogle busy timesPulled on slot lookupSlot pickerHides busy slots

Where to find it

Advik Booking → Settings → Integrations → Google Calendar.

Setup — once per site

  1. Create a Google Cloud project
    Visit console.cloud.google.com and create a new project (or use an existing one). The project name doesn't matter — it can be your company name.
  2. Enable the Calendar API
    In your project, go to APIs & Services → Library, search for Google Calendar API, and click Enable.
  3. Configure the OAuth consent screen
    APIs & Services → OAuth consent screen. Pick External, fill in your app name, support email, and developer email. Add the scope https://www.googleapis.com/auth/calendar.events.
  4. Create OAuth credentials
    APIs & Services → Credentials → Create credentials → OAuth client ID. Application type: Web application. Add the redirect URI shown in the plugin's Google Calendar settings (looks like https://yourdomain.com/wp-admin/admin.php?page=advik-booking&action=google-oauth-callback).
  5. Paste into Advik Booking
    Copy the Client ID and Client Secret into the plugin's Google Calendar settings. Save.
  6. Connect your account
    Click Connect Google account. A Google popup asks you to log in and grant calendar access. Approve.

Per-staff setup

Once the site is connected, each staff member needs their own Google Calendar linked. The plugin uses one of two modes:

ModeHow it works
Single accountAll staff events go to one shared Google Calendar. You specify the calendar ID per staff. Common for small teams.
Per-staff OAuthEach staff member logs in with their own Google account. Events go to their personal calendar. Common for sole traders or large teams.

Linking a single-account calendar

  1. Open the staff record.
  2. In the Profile tab, set Google Calendar ID to the calendar's email-like address (e.g. staff-jane@group.calendar.google.com). Find this in Google Calendar → Settings → [calendar] → Integrate calendar.
  3. Save.

Linking a personal account

  1. Open the staff record as that user (or as admin, click Connect as this staff).
  2. Click Connect Google account.
  3. Approve the OAuth popup.

Event content

Each Google Calendar event includes:

FieldValue
Title[Booking #{id}] {Service} — {Customer}
Start / EndBooking start time → end time (based on duration)
LocationCustomer address (from personal details)
DescriptionCustomer name, phone, email, booking notes, link to admin booking page
ColourGreen (confirmed), Yellow (pending), Red (cancelled)
i

Conflicts

If a customer books through Advik Booking at a time the staff has another Google Calendar event, Advik Booking detects the conflict and blocks the slot. This requires the Google Calendar API "free/busy" check, which the plugin runs in real time on the slot picker.

What if the connection drops?

If Google returns an error (rate limit, OAuth expired, calendar deleted), the booking is still saved. The Google event is retried up to 5 times in the background. You can manually re-sync any booking from the admin booking detail view.

!

Token refresh

OAuth tokens expire after ~1 hour. The plugin auto-refreshes them transparently. If a staff member sees "Google connection lost" in their profile, ask them to re-authorise.