BFBambooForge Labs

Appointment Booking Suite: Google & Outlook Sync

Appointment booking with calendar sync: a subscription link for staff without an Odoo login, and their own calendar read back to block slots.

Buy on the Odoo Apps StoreOpen the live demoWebsite€464Community & Enterprise

Available for Odoo 16.0, Odoo 17.0, Odoo 18.0, Odoo 19.0. Technical name bambooforge_booking_calendar_sync.

Odoo 16.0Odoo 17.0Odoo 18.0Odoo 19.0
Full walkthrough on a live Odoo 19.0 database, with subtitles. It ends with what this app deliberately does not do.

Appointment Booking Suite: Google & Outlook Sync

An add-on for BambooForge Booking Pro, for the staff who will never have an Odoo login.

What Odoo already does

Odoo Community ships google_calendar and microsoft_calendar, and Booking Pro already refuses a slot when a staff member's Odoo user has a calendar event in the way.

If your staff are Odoo users, connect their accounts in their own preferences. That is free, it is two-way, and this module does not try to sell it to you again.

What this adds

The freelance trainer, the visiting dentist, the photographer who works Thursdays - none of them are Odoo users, and none of them will be.

Their calendar, read back

Paste the secret iCal address their own calendar publishes:

  • Google Calendar - Settings for my calendars → Secret address in iCal format.

  • Outlook / Microsoft 365 - Settings → Calendar → Shared calendars → Publish a calendar → ICS link.

  • Apple iCloud - share the calendar publicly and copy the webcal address.

Events found there block slots. Odoo never writes to that calendar: the sync is one-way in, one-way out, and nothing of yours ends up in their personal diary.

Refreshed every fifteen minutes. A calendar checked once a day is a double booking waiting to happen.

What the reader understands

Deliberately small, and deliberately explicit about it:

Understood

Not understood

Timed events with a zone

Monthly and yearly repeats - imported as a single event rather than expanded wrongly

All-day events, in the

Exceptions to a repeat (EXDATE) - the

calendar's own zone

occurrence stays blocked

Cancelled events (skipped)

Attendee status: an invitation you have not answered still blocks

Events marked free

Attachments, alarms, anything not a time

(skipped)

Daily and weekly repeats,

with COUNT and UNTIL

A wrong busy block silently costs a booking; a missing one costs a manual check. Where the two conflict, this errs towards blocking.

Housekeeping

  • Imported busy time older than two days is deleted by the standard autovacuum.

  • A pull replaces that member's imported blocks - no duplicates build up.

  • A calendar that fails to answer is reported on the staff form and does not stop the other members from being refreshed.

Support

support@bambooforge.dev - the people who wrote it.

Screens

Busy - bambooforge_booking_calendar_sync
Busy
Slots - bambooforge_booking_calendar_sync
Slots
Staff - bambooforge_booking_calendar_sync
Staff