Connect Google or Microsoft calendars

OAuth, provider mapping, busy-block checks, and the mistakes that create ghost availability.

Why this step is non-negotiable

If the calendar is wrong, every channel is wrong. Chat will offer ghost slots. Voice will confirm a time that was never free. Reminders will go out for appointments that collide with a dentist who is actually in surgery.

Connect the calendar before you celebrate a pretty widget. Pretty and wrong is worse than slow and honest.

Connect and map

Open Integrations → calendar and authorize Google or Microsoft with the account that owns the real schedule. Personal Gmail for a five-clinician practice is a smell - use the workspace account your ops team already trusts.

Map each AptaBook provider to the correct external calendar. Mapping the office manager’s personal calendar to five clinicians is a classic own-goal: every booking lands on one person, and everyone else’s busy blocks are invisible.

If someone uses both a clinical calendar and a personal calendar, map the clinical one. Personal dentist appointments should still block the clinical calendar if you want them respected - or they’ll get double-booked.

Verify before go-live

Create a busy block on the external calendar for a time that would otherwise be open. Confirm AptaBook stops offering that slot in chat within a sync cycle. If it still offers the time, do not embed the widget on the homepage.

Book once from chat with a test customer. Confirm the event lands on the external calendar with a title your staff will recognize, and that Meet/Teams links appear when you enabled them.

Cancel or reschedule from the agent once. Watch the external event update. One-way sync that creates events but never updates them will haunt you during no-show season.

When something drifts, check whether the calendar connection still shows connected and which admin authorized it before you rewrite agent prompts. Reconnect the calendar if the link looks stale.