olaao

	

# Test

>> System.out.println("Hello world!");

Hello world! // Test: OK


>>>


# Welcome to the system kernel. Select a module to load

> Home

> About Us

> FAQ

> Blog // Active

> Contact


# You can also close this window and continue with your active module

> Close


All rights reserved!

2026
Blog

	

Page type: Blog :: Post

Author: The Last One

Published on: 01/30/2026

Post: How the Booking System Works: Configuration and Internal Logic

Index: Redirect


Word count: 957

Reading time: 5 min

Difficulty:

Tags: booking booking logic availability rules booking slots booking configuration scheduling system booking engine appointment booking availability calculation olaao blueprint


>>>


# How the Booking System Works: Configuration and Internal Logic

The booking system in olaao is designed as a flexible and scalable solution that adapts to various types of businesses—from hair salons and barbershops to massages and specialized services. The entire logic is built to give you full control over availability, pricing, and booking rules, while keeping the reservation process as simple and transparent as possible for visitors.


1. Activating the booking module

The first step is to activate the booking module. You can do this in Settings → System → Enabled Modules. Until the booking module is activated, it is not possible to work with the booking system or create related entities.

After activation, the complete booking section becomes available in the administration.


2. Basic booking system settings

The next step is to configure the booking system itself in Bookings → Settings. Here you define global rules that affect the behavior of the entire system.


Key settings include, for example:

- maximum booking window length (e.g., how many days in advance bookings are allowed)

- the option to allow one or multiple appointments within a single order

- spam protection using captcha

- an informational page (e.g., terms of use for the booking system) that the visitor must accept before completing the booking


After a booking is completed, the system sends a confirmation email to the visitor and also sends a copy of the booking to you.


3. Branches as the foundation of the logic

The core building block of the booking logic is the branch. In the paid version, you can have up to 15 branches, which matches real-world scenarios where a business operates multiple locations in different cities.

A typical example is a hair salon that has salons in multiple cities. Each city is a separate branch with its own availability, booking slots, and potentially also its own pricing.


Before you start creating bookings, it is recommended to have all branches properly created and configured.


4. Booking activities

Once branches have been created, the next step is to create booking activities. An activity represents a specific service you offer.


Examples:

- for massages, this is the type of massage

- for hair salons, this is the type of haircut

- for barbershops, this is beard or hair grooming


If you use multiple languages, you must save the activity name in each language separately so that visitors see the correct translation according to the selected website language.

Booking activities are shared across branches and serve as the foundation for configuring slots.


5. Booking slots

A booking slot is a key element of the entire system. You can think of it, for example, as a barber chair or a specific workstation.


Each branch can have any number of slots, and each slot can:

- offer different activities

- have different prices for the same activity

- have its own opening hours

- have its own holidays or exclusions


This means that even if two barbers in the same branch offer the same haircut, each of them can have a different price. Likewise, each can have different holidays configured, because slots operate independently.


When creating or editing a slot:

- you assign the slot to a specific branch

- you select which activities are available within the slot

- you set prices based on active currencies

- you define the slot opening hours

- you configure holidays / closures (within a from–to date range)

- you can add an image and a slot description

- you can add a note for the visitor (shown on the slot detail page and in the confirmation email, e.g., “Please arrive 5 minutes earlier”)


6. Technical part: how availability is calculated

When displaying available times, the system always works with the combination of branch, slot, and activity. Availability is calculated so that the visitor only sees time slots that are truly possible to book.


# Decision order

The system proceeds in this order:

- branch

- slot

- activity

- available time


# Opening hours

Opening hours are defined for each slot (e.g., Mon–Fri 09:00–17:00). The system generates potential time slots from these time ranges.

# Activity duration

Each activity has its own duration (e.g., 30 min, 45 min, 60 min). The system checks whether the activity can fit into the opening hours without exceeding the end of the working day.

# Slot holidays and closures

Holidays are configured for each slot separately, because each staff member can have different time off. If a time slot falls within a holiday range, the system automatically removes it from availability.

# Conflicts with existing bookings

When calculating availability, the system checks whether there is already an existing booking in the given slot that would overlap with the new time. If so, the time is not offered.


7. Time zones and internal logic

Bookings are always calculated in the time zone of the branch. This means that opening hours, holidays, and available time ranges are evaluated according to the branch time zone. If a visitor accesses the system from a different time zone, the system must perform a conversion so that the visitor sees the correct times in their local zone, while internal calculations and booking storage remain consistent in the branch time zone.


Internally, the best practice is to store bookings as an exact date and time (date-time) with an unambiguous time zone, and never compare only “day” and “time” separately. This makes the system resilient to time zone differences, daylight saving time changes, and visitors from other continents.


Recommended practices

It is recommended to follow this order: first create branches, then activities, and only then slots. After configuring slots, it is advisable to test availability using real data, verify opening hours and holidays, and confirm that times are displayed correctly even for visitors in different time zones.


By combining branches, activities, and slots, olaao provides a professional booking system that is both simple to configure and technically robust enough for real-world businesses with multiple branches and diverse availability rules.


All rights reserved!

2026