Online bookings (Booking module)

The booking module lets customers book appointments online themselves, without needing to call or drop by the service. The customer opens a public booking page (you share the link on your website, Google, SMS…), fills in the form, picks an available slot, and submits.

The booking module is paired with the service module but works as a standalone unit – it also works without PDR, and without the service module if you use only generic services (e.g. hairdresser, beautician, personal trainer). This article covers both use cases.

The booking module is tied to the service module – bookings can be of type Vehicle service or Generic service. It is recommended to read the main service article first for context.

Workflow – from a customer click to a finished service

  1. Customer opens the public link – e.g. https://app.kigo.cloud/booking/ABC-123-DEF. The page shows your company info (name, address, logo, colors), service descriptions and the booking form.
  2. Customer picks a service and date – for vehicle service: picks a service type and a date. For generic service: picks an employee and a service.
  3. System shows available slots – generated from the working-hours configuration minus existing bookings and calendar events.
  4. Customer fills in personal data – name, surname, email, phone, note, and for a vehicle: make, model, year, VIN, license plate, mileage.
  5. Customer submits the booking – saved to the database with status Pending. The customer receives a confirmation email.
  6. Admin gets a notification – email to the configured address + a notification in the admin UI.
  7. Admin confirms the booking – in Booking → Bookings. Status becomes Confirmed. The customer gets a second email about the confirmation.
  8. Automatic reminder – X hours before the appointment, the system automatically sends an email reminder.
  9. Arrival at the service – from the booking, one click creates a vehicle reception (or it is done automatically if configured).
  10. Service execution – continues along the classic service workflow, as described in the main service article.
  11. Closing – the booking is marked as Completed, or if the customer did not show up, No-show.
The booking module can be set to auto-confirm – every booking automatically becomes Confirmed without manual review. Useful for routine appointments (hair, small services), less suitable for vehicle service where you want to check parts availability.

Booking module configuration

Open Booking → Settings. Settings are per business unit (and per service location, if you use multi-location).

Basic settings
SettingDescriptionDefault
ActiveTurns the public booking page on/off. If off, the link returns an unavailability message.Off
Booking typeVehicle service (uses the service module) or Generic service (uses generic services with employees).Vehicle service
Page titleTitle shown to the customer on the public page (e.g. "Book a service appointment").
DescriptionText below the title – describe what the customer needs to know (hours, notes, instructions).
Primary colorHex color used for buttons and highlights. Match with your company branding.#3498db
Custom CSSAdditional CSS for advanced look adjustments.
Slots and capacity
SettingDescriptionExample
Slot duration (min)How long a single slot is in the calendar. Smaller = more appointments.15, 30, 60
Max bookings per slotHow many customers can book the same slot (for parallel work stations, multiple technicians simultaneously).1 (one slot = one customer)
Max days in advanceHow far into the future the customer can book. Prevents bookings 2 years ahead.30, 60, 90
Min hours in advanceMinimum time between booking and appointment. E.g. 24 – the customer cannot book less than 24h in advance.2, 12, 24
Min hours to cancelThe customer cannot cancel if fewer than X hours are left until the appointment.2, 6, 24
Working hours (per day of the week)

For each day of the week, enter the working hours range in the format HH:MM-HH:MM. Leave empty if the day is not a working day.

DayExample
Monday08:00-16:00
Tuesday08:00-16:00
Wednesday08:00-16:00
Thursday08:00-18:00
Friday08:00-16:00
Saturday09:00-13:00
Sunday(empty – closed)

Lunch break – additional field in the format HH:MM-HH:MM (e.g. 12:00-13:00) that applies to all days. Slots within the break are not generated.

Reminders and notifications
SettingDescription
Reminder enabledThe system automatically sends an email reminder to the customer before the appointment.
Hours beforeHow many hours before the appointment the reminder is sent (e.g. 24 = one day before).
Auto-confirmEvery booking is automatically confirmed without manual review. The customer immediately gets the confirmation.
Email confirmationThe customer gets a confirmation after submitting the booking.
Notification emailThe address where notifications about new bookings are sent (admin).
Location info (override)

If you want the public booking page to show different info from the general business unit settings (e.g. a different address, a different map), enter it here:

  • Location name – optional override
  • Location address – optional override
  • Google Maps URL – optional override (if empty, auto-generated from name + address)

How free slots are generated

Slots are calculated in real time as follows:

  1. Day-of-week check – if no working hours are defined for that day, there are no slots.
  2. Blocked date check – there is a list of manually blocked dates (holidays, company-wide leave). Blocked day = no slots.
  3. Load working hours – e.g. 08:00-16:00 for Monday.
  4. Generate slots – in steps of Slot duration (e.g. 30 min): 08:00, 08:30, 09:00, 09:30, …
  5. Skip lunch break – slots that overlap with the break are not generated (e.g. 12:00, 12:30 are skipped if the break is 12:00-13:00).
  6. Check existing bookings – the system counts how many bookings already exist for each slot. If the count equals Max bookings per slot, the slot is full.
  7. Check service events – slots overlapping already created service receptions (from the service module) are marked busy. This prevents bookings from colliding with manually created services.
  8. Min-hours-in-advance check – slots closer than min_hours_in_advance from now are shown but marked unavailable (or not shown at all).
Important for multi-location: If you use service locations, each location can have its own booking configuration with different working hours. Slots are then calculated per location, and overlap checks are only done within the same location.
Slots per employee (generic services)

For the booking type Generic service, slots are calculated per employee. Each employee has their own "channel" of free slots. The customer first picks an employee and a service, then sees that employee's available slots. This is useful for beauty salons, hair salons, private doctors, and similar businesses.

Services in the booking module

Vehicle service

When the booking type is Vehicle service, the list of services the customer sees comes from Service types. Under Booking → Services you can choose which service types are visible on the public page and in what order. You can e.g. hide "Internal service" or "Factory recall", which are not for customers.

The appointment duration is pulled from the Duration (min) field of the service type (e.g. "Oil change" = 60 min, "Diagnosis" = 30 min). The system then blocks the appropriate number of 30-minute slots in the calendar.

Generic services (Bookable service)

When the booking type is Generic service, instead of service types you define your own services under Booking → Generic services. Fields:

FieldDescription
NameService name shown to the customer (e.g. "Men's haircut", "60 min massage", "Consultation").
DescriptionShort service description.
PricePrice shown to the customer (optional, can be a "from" price).
Duration (min)How many slots the service takes.
EmployeesWhich employees perform this service. The customer chooses among them.
ImageOptional service image for the public page.
Sort orderList ordering.
ActiveIf off, not shown to the customer.

A customer can pick multiple generic services in the same booking (e.g. "haircut + shave"). The system sums the durations and blocks the corresponding slots.

Blocked dates

Under Booking → Blocked dates you define dates when customers cannot book an appointment, regardless of the working-hours settings:

  • Public holidays (Christmas, New Year, national holidays…)
  • Company-wide leave (e.g. 1-15 August)
  • Individual non-working days (medical check-up, seminar, equipment failure)

Blocked dates are shown to the customer as gray/unavailable in the calendar.

Booking statuses

Every booking goes through one of these statuses:

StatusColorMeaning
PendingYellowThe customer has booked, waiting for admin confirmation (unless auto-confirm is on).
ConfirmedGreenAdmin has confirmed. The customer has a confirmation email, the system will also send a reminder.
RejectedRedAdmin has rejected (no capacity, unsuitable work type, client on a "blocklist"). The customer gets a notification.
CancelledGrayThe customer or admin has cancelled the booking.
CompletedBlueThe appointment has passed and the service was performed. The booking is archived.
No-showRedThe customer did not turn up. Used for statistics and identifying unreliable customers.

Email notifications

The booking module automatically sends the following emails:

EventRecipientWhen
New bookingCustomerImmediately on submission (if email confirmation is enabled)
New bookingAdminImmediately, to the address from settings
ConfirmedCustomerWhen admin clicks Confirm (or immediately with auto-confirm)
RejectedCustomerWhen admin clicks Reject
CancelledCustomerWhen admin or customer cancels
ReminderCustomerX hours before the appointment (automatic background task)
Email texts can be edited under Options → Email Settings. Each template supports variables like {client_name}, {booking_date}, {service_name}, {cancel_link}.

Public URL and how to share it

Every business unit has a unique UUID (universal identifier) that forms the public booking URL:

https://app.kigo.cloud/booking/[BUSINESS-UNIT-UUID]
    

How to get the link:

  1. Open Booking → Settings.
  2. The Public link is shown at the top with a copy button.
  3. Copy and share:
    • On your website as a "Book appointment" button.
    • In your Google Business Profile (My Business → Bookings).
    • In your Facebook and Instagram bio.
    • In your email signature.
    • Via a QR code on business cards, at the reception, on illuminated signs.
    • As an SMS link after a phone call.
The booking module also generates a QR code from the settings – print it and put it on the door, counter, window. The customer scans it with a phone and lands directly on your booking page.

Security and spam protection

The public booking page is open to everyone, so protection against spam bookings is important. The system implements:

  • IP rate limiting – one IP address cannot make dozens of bookings within a minute.
  • Email validation – format is checked, and periodically (optionally) verification is sent.
  • Min hours in advance – prevents last-minute troll bookings.
  • Trace data – the system records IP address and user agent for each booking (for audit).
  • Manual confirmation – if you don't use auto-confirm, the admin reviews each booking before it becomes active.

Access rights

The booking module requires the following rights for employees:

  • Booking – settings – usually admins only, for editing the public page, working hours and templates.
  • Booking – view bookings – who may see the list of incoming bookings.
  • Booking – confirm / reject – who may change the status (confirm, reject, cancel).
  • Booking – only own – an employee only sees bookings where they are the assigned employee (for generic services).

Frequently asked questions

QuestionAnswer
Can I have two booking pages with different working hours?Yes. Create two service locations, each with its own booking configuration. Each gets its own public link.
What if I want the customer to pay at booking time?The booking module does not currently offer integrated payment – payment happens at arrival. A deposit can be charged manually through an advance invoice after confirmation.
Can I accept a booking for multiple vehicles from the same customer?Each booking = one vehicle. The customer repeats the process for each vehicle, or you agree by phone and manually create the reception.
How do I prevent no-shows?Enable the email reminder X hours before the appointment. You can also request a phone number and send an additional SMS reminder (in preparation). Repeat no-show customers can be added to a "blocklist" (manually rejecting each new booking).
What happens if a customer cancels?Status becomes Cancelled, the slot is freed and becomes available to other customers. The admin receives a notification.
Can the customer change their booking?Yes. The confirmation email contains a link to cancel or change. Changes are only possible if there are more than min hours to cancel hours until the appointment.
Do I manually convert a booking into a reception?From a booking, one click creates a vehicle reception in the service module with pre-filled data (customer, vehicle, service type, appointment). After that, the classic service workflow applies.

Related articles