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
Where to find it
Advik Booking → Settings → Integrations → Google Calendar.
Setup — once per site
- Create a Google Cloud projectVisit 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.
- Enable the Calendar APIIn your project, go to APIs & Services → Library, search for Google Calendar API, and click Enable.
- Configure the OAuth consent screenAPIs & 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. - Create OAuth credentialsAPIs & 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). - Paste into Advik BookingCopy the Client ID and Client Secret into the plugin's Google Calendar settings. Save.
- Connect your accountClick 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:
| Mode | How it works |
|---|---|
| Single account | All staff events go to one shared Google Calendar. You specify the calendar ID per staff. Common for small teams. |
| Per-staff OAuth | Each 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
- Open the staff record.
- 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. - Save.
Linking a personal account
- Open the staff record as that user (or as admin, click Connect as this staff).
- Click Connect Google account.
- Approve the OAuth popup.
Event content
Each Google Calendar event includes:
| Field | Value |
|---|---|
| Title | [Booking #{id}] {Service} — {Customer} |
| Start / End | Booking start time → end time (based on duration) |
| Location | Customer address (from personal details) |
| Description | Customer name, phone, email, booking notes, link to admin booking page |
| Colour | Green (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.