2-way sync and busy-block
External calendar → Bookinda blocking, multi-calendar, filtering
2-way sync and busy-block
2-way sync (only Google) lets time blocked in your personal calendar be respected by Bookinda too. E.g., doctor visit → customer can't book that time.
Where to find it
/manager/connect/calendar → Google Calendar sync (ACTIVE status).
How busy-block works
The pull cron
- Runs every 15 min
- Checks every ACTIVE Google sync
- Pulls Google events since last pull
- 60-day future window
What's pulled
✅ Yes:
- Confirmed events
- Events with "Busy" status (Google default)
❌ No:
- Cancelled events
- All-day events (e.g., "birthday")
- Declined events (you declined invite)
- "Free" (transparent) events (you marked free)
What happens in Bookinda
- New
ExternalBusyBlockrecord created - Appears on staff calendar as "Busy" time slot
- Online booking blocked: customer can't book that time
- Staff sees busy-block on Manager calendar
Loop prevention
A problem: if Bookinda pushes booking to Google and Google → Bookinda pull also runs, event would re-pull.
Solution:
- Bookinda marks Google event with extended property: "Bookinda origin"
- Pull cron skips Bookinda-marked events
- Loop prevented
Multi-calendar
A staff can connect multiple Google calendars, each pulls busy-blocks separately:
- "Personal" calendar → doctor visit → busy-block
- "Work" calendar → meeting → busy-block
Bookinda takes busy-times from both. Overlap at single time is OK (Bookinda treats simply as "busy").
Per-staff vs per-tenant busy-block
Per-staff busy-block
- Google event is "Busy" on staff calendar
- Doesn't affect other staff bookings
- Customer can't book at this staff only
Per-tenant busy-block
- Google event is "Busy" for all staff
- (Rare, usually for salon-wide events)
Manual pull
/pull-now endpoint (or button on calendar-sync page) pulls instantly, no waiting for 15-min cron. Useful:
- After urgent event addition (e.g., "doctor visit in 10 min")
- Troubleshooting
Sync conflict handling
If busy-block conflicts with existing booking
Existing Bookinda booking stays valid (busy-block doesn't delete it). Manager calendar shows both events overlapping:
- Bookinda booking (with customer)
- External busy-block (doctor visit)
Staff/Manager must decide: cancel Bookinda booking or delete Google event.
If new online booking wants that time
Customer can't book (busy-block blocks it).
When useful
Scenario 1, staff doctor visit Anna stylist creates "Doctor visit 14:00" event in Google. 15 min later Bookinda pulls, busy-block created. Customer can't book this time with her. Anna can go to doctor.
Scenario 2, family event Béla staff has family event. Google has "Béla's wedding 14:00-19:00" all-day event. Pull → but all-day skipped, NO busy-block. Béla manually blocks time in Bookinda Schedule.
Scenario 3, ad-hoc meeting Sudden meeting at 11:00. Create in Google. "Pull now" button → busy-block immediately. 11:00 bookings blocked.
Scenario 4, multi-calendar staff Béla connected Personal + Work Google. Personal has "Mom's birthday 16:00," Work has "Team meeting 10:00." Both pull, both create busy-blocks.
Tips
- "Busy" marker in Google is mandatory, not "Free" / "Tentative." Otherwise not pulled.
- All-day events NOT pulled, use Bookinda Schedule for day blocking.
- 15-min pull cron isn't enough for urgent cases, use "Pull now."
- Multi-calendar in moderation, 2-3 OK. 5+ confusing.
- Loop prevention is automatic, no worry about duplication.
- Busy-block limited to 60-day future window, longer ahead not handled.