Calendar Sync
Keep your team in sync by connecting Advik Booking to Google Calendar and Google Sheets — new appointments appear automatically, cancellations remove the event.
Overview
Advik Booking integrates with Google Workspace to give you a real-time view of all appointments without switching tabs. Two integration modes are available:
Google Calendar
New bookings create Google Calendar events. Cancellations remove them. Optional two-way sync blocks plugin slots when external events are added.
Google Sheets
Every new booking appends a row to a designated spreadsheet — perfect for reporting, invoicing, or passing data to other tools via Zapier or Make.
Both integrations use the same Google OAuth credentials — you only need to set up the Google Cloud project once.
Create a Google Cloud Project
Both integrations require OAuth 2.0 credentials from the Google Cloud Console. Follow these steps to generate your Client ID and Client Secret.
- Open the Google Cloud Console and sign in with the Google account that owns your business calendar.
- Click Select a project → New Project. Name it
AdvikBooking(or any name you prefer) and click Create. - In the left sidebar go to APIs & Services → Library. Search for and Enable both:
- Google Calendar API
- Google Sheets API
- Go to APIs & Services → OAuth consent screen. Select External and click Create.
- Fill in the App name (e.g., My Booking Site), your support email, and developer contact email. Click Save and Continue through the remaining screens (you can skip adding scopes manually — the plugin handles them).
- Go to APIs & Services → Credentials → Create Credentials → OAuth client ID.
- Set Application type to Web application.
- Under Authorized redirect URIs add:
https://yourdomain.com/wp-json/advik-booking/v1/oauth/google/callbackReplace yourdomain.com with your actual domain. Click Create. Google will show your Client ID and Client Secret — keep this window open for the next step.
Keep your Client Secret private. Never commit it to version control. Store it only in Advik Booking → Settings → Integrations or your server's environment variables.
Connect Google Calendar
Once you have your OAuth credentials, connect the plugin in three steps:
- Go to Advik Booking → Settings → Integrations → Google Calendar.
- Paste your Client ID and Client Secret into the respective fields and click Save.
- Click Connect Google Account. You will be redirected to Google's OAuth consent screen. Sign in with the account whose calendar you want to use and click Allow.
- You are redirected back to WordPress. A green "Connected — [your@email.com]" message confirms the connection.
- From the Calendar dropdown, select which calendar to write bookings to (e.g., "Bookings" or "My Business Calendar"). Click Save.
From this point onward, every confirmed booking creates a Google Calendar event with:
- Event title:
[Service Name] — [Customer Name] - Start/end time matching the booked slot
- Description: service details, staff member, location, and booking reference
- Attendee: customer's email address (invite sent automatically)
Two-Way Sync
Two-way sync makes Google Calendar events block availability in the booking plugin — so if a staff member adds a personal event to their calendar, customers won't be able to book into that slot.
Two-way sync is a Pro/Growth plan feature. It is not available on the Free or Starter plan.
Enable Two-Way Sync
- In Advik Booking → Settings → Integrations → Google Calendar, toggle on Two-Way Sync.
- Choose the Block Mode:
- All Events — any calendar event blocks the slot.
- Tagged Events — only events with the prefix
[BLOCK]in the title block availability.
- Set the Sync Interval (default: every 15 minutes). Shorter intervals require more API quota.
- Click Save.
New booking confirmed
→ Create Google Calendar event
→ Send customer invite
External Google event added (two-way mode)
→ Sync job detects new event
→ Block matching slot in Advik Booking
Booking cancelled
→ Delete Google Calendar event
→ Slot reopens for new bookings
Connect Google Sheets
The Google Sheets integration logs every booking to a spreadsheet in real time — no extra tools required.
- Create a new Google Spreadsheet and give it a recognisable name (e.g., Advik Bookings Log).
- Copy the Spreadsheet ID from the URL:
https://docs.google.com/spreadsheets/d/[SPREADSHEET_ID]/edit - In Advik Booking → Settings → Integrations → Google Sheets, toggle on Enable Sheets Logging.
- Paste the Spreadsheet ID and set the Sheet Tab Name (default:
Bookings). - Choose which columns to export. Available fields:
| Column | Description |
|---|---|
| Booking ID | Unique booking reference number. |
| Date & Time | Appointment date and start time (ISO 8601). |
| Service | Service name booked. |
| Staff | Assigned staff member name. |
| Location | Branch or service location. |
| Customer Name | Customer full name. |
| Customer Email | Customer email address. |
| Customer Phone | Customer phone number. |
| Amount Paid | Total amount charged (with currency). |
| Status | confirmed, cancelled, or no-show. |
| Notes | Customer notes or special requests. |
- Click Save. The plugin will immediately write a header row to your sheet. All future bookings will append a new row automatically.
Sync Behaviour Reference
| Event | Google Calendar | Google Sheets |
|---|---|---|
| Booking confirmed | Create event | Append row |
| Booking rescheduled | Update event time | Update row |
| Booking cancelled | Delete event | Update Status → cancelled |
| Booking marked no-show | No change | Update Status → no-show |
| Staff member changed | Update event description | Update Staff column |
| Customer details updated | Update event description | Update row |
Troubleshooting
"redirect_uri_mismatch" error during OAuth
The Authorized redirect URI in your Google Cloud credentials must exactly match your WordPress site URL including the /wp-json/advik-booking/v1/oauth/google/callback path. Check for trailing slashes or HTTP vs HTTPS mismatches.
Events not appearing in Google Calendar
Confirm the Calendar dropdown in the plugin settings is pointing to the correct calendar. Check that the Google Calendar API is enabled in your Cloud project and the connected account has write access to that calendar.
Two-way sync not blocking slots
Ensure the sync cron job is running — go to Advik Booking → Logs → Cron Jobs to see the last run time. If WordPress cron is disabled on your server, configure a server-side cron to call wp-cron.php on schedule.
Google Sheets rows not updating on reschedule
Sheets logging requires the Booking ID to match. If you manually edited rows in the sheet, the ID lookup may have failed. Re-enable the integration and use the Resync button under Settings → Integrations → Google Sheets to rewrite all rows.
"Token expired" after some time
The OAuth refresh token should handle this automatically. If you see this error, disconnect and reconnect the Google account from Settings → Integrations → Google Calendar. This generates a new refresh token.
Still stuck? Open a support ticket from your AdvikLabs dashboard with a copy of the error log found at Advik Booking → Logs → Sync Errors.