Google Calendar setup
OAuth flow, calendar selection, real-time push, 15-min pull
Google Calendar setup
Google Calendar is the most-used sync provider. Connectable via OAuth flow, real-time both ways.
Where to find it
/manager/connect/calendar → + Google Calendar button.
Connection (OAuth flow)
Steps
- + Google Calendar button
- New window: Google login
- Allow access (Bookinda asks: Calendar.read + Calendar.write)
- Redirect back to Bookinda
- Pick calendar: which Google calendar to connect (e.g., Primary, Work, Family)
- Pick privacy level (FULL / LIMITED / BUSY_ONLY)
- Save → ACTIVE status
What Bookinda asks for
- Calendar.read: read calendar events (busy-block pull)
- Calendar.write: create new events (Bookinda booking push)
- Offline access: refresh token (connection persists)
Sync directions
Bookinda → Google (real-time push)
New booking creation / modification / cancellation:
- Sent within 1-2 seconds to Google
- Event title: depends on privacy level
- Event description: customer info, service, price
- Google event extended properties: Bookinda marker
Google → Bookinda (15-min pull)
- Bookinda pulls Google's new events every 15 min
- Creates
ExternalBusyBlockfrom these - Appears on salon calendar as "Busy" time slot
Manual pull
- "Pull now" button on calendar-sync page
- Immediate refresh (no waiting for 15-min cron)
Multi-calendar
A staff can connect multiple Google calendars:
- E.g., "Personal" + "Work"
- Each separately ACTIVE
- Each pulls busy-blocks
Sync statuses
ACTIVE
All good, sync works.
PAUSED
You paused (or admin). Sync stopped.
ERROR
Error (e.g., token expired and can't refresh). Message on calendar-sync page.
PENDING
Connected but no Calendar selected yet.
Disconnect
On calendar-sync row → Disconnect button:
- Token revocation (at Google)
- Bookinda sync row deleted
- Previously pushed Google events STAY (not deleted)
- Future bookings no longer go to Google
To reconnect: new OAuth flow.
Token management
Google OAuth tokens:
- Access token: short-lived (1 hour)
- Refresh token: long-lived (forever unless revoked)
Bookinda auto-refreshes access token. If refresh-token invalid (you revoked in Google Settings), sync goes ERROR.
When to use it
Scenario 1, hairstylist personal sync Anna stylist connects own Google Calendar to Bookinda. Bookings appear in "Work" calendar. Personal events (doctor visit, family dinner) become busy-block in Bookinda.
Scenario 2, salon owner overview Owner creates "Salon Overview" Google calendar. Connects to all staff at tenant level. Sees salon-wide in one calendar.
Scenario 3, multi-account staff Béla uses 2 Google accounts (personal + business). Connects both. Both sync separately.
Scenario 4, sync error Sync is ERROR. Check: token revoked. Reconnect.
Tips
- OAuth flow takes 1-2 minutes, no more. If longer, something's off.
- Calendar choice critical: don't pick Primary if it's very crowded. Separate work calendar.
- Privacy level reflects customer-data sensitivity, medical stricter.
- Multi-calendar in moderation, 2-3 OK, 10+ confusing.
- 15-min pull cron means Google-created event appears in Bookinda busy-block 0-15 min later. Urgent = "Pull now."
- Always check ERROR status reason, don't ignore.