BFBambooForge Labs

Appointment Booking Suite: Multi-location Scheduling

Appointment booking across branches: the visitor picks the location, only staff who work there are offered, and travel time prevents clashes.

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_locations.

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: Multi-location Scheduling

An add-on for BambooForge Booking Pro. Booking Pro's location is one line of text on the service; this makes the branch a record, with the people who work there and the time it takes to reach the next one.

Install

Install BambooForge Booking: Multi-location. Nothing changes until a service is given branches: a service with none keeps the page and the behaviour it had.

A new menu appears: Booking Pro → Locations.

Locations

Booking Pro → Locations. A location is:

Field

What it is for

Name, address, phone

Shown to the visitor under the branch selector, in the confirmation page, and in the LOCATION line of the .ics invitation.

Directions

Free text for the confirmation: parking, entrance, which floor.

Staff working here

Who can take bookings at this branch. A member listed under no branch works everywhere - the mobile hairdresser, the online consultant.

Travel time to other

Minutes to reach or leave this branch, used

locations

when no explicit pair is defined.

Travel time to specific

Per pair. One row serves both directions.

branches

Then, on each service: Offered at - one branch, some, or none.

What the visitor sees

A Where? selector above the calendar, with the address and directions of the chosen branch under it. The first branch is preselected, so the calendar is never shown unfiltered. Changing the branch reloads the slots and hides, in the With dropdown, the staff who do not work there.

The branch travels with the booking: into the record, into the manage page, into the calendar event and into the invitation - because a customer with two branches in their calendar and no address on the event drives to the wrong one.

Travel time

A stylist finishing in Altona at 12:00 cannot start in the city centre at 12:00. When a slot is computed for one branch, every booking that person has at another branch blocks the calendar for the booking plus the journey on both sides.

Which journey:

  • the explicit pair between the two branches, if there is one, in either direction;

  • otherwise the larger of the two branches' default travel times.

The larger, not the smaller, because the pessimistic side of that choice is a gap in the diary and the optimistic side is a customer waiting in the wrong branch.

A booking at the same branch needs no journey; the service's own buffers apply as before.

Honest limits

  • Travel time is a number you set, not a route somebody computed. Two branches ten minutes apart at 11:00 and forty at 17:00 are one number here - pick the one you would rather explain.

  • A staff member's working hours are still one calendar per person (Booking Pro's Working hours). Different hours at different branches is not modelled; the common approach is a member per branch.

Multi-company

Locations belong to a company and are filtered by it. Staff and services are Booking Pro's and follow its rules.

Support

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

Screens

Branch - bambooforge_booking_locations
Branch
Locations - bambooforge_booking_locations
Locations
Picker - bambooforge_booking_locations
Picker