A booking system for clinics and salons runs on the same engine as one for classes, coaches, workshops, and home service, but the slot rule changes with the business type.
Condition: the rules on this page apply when you sell time, not goods. One appointment holds 1 person, 1 room, or 1 machine.
Limit: a booking system tidies the schedule. It does not create demand. If nobody looks for you, a tidy booking page stays empty.
| Owner question | Short answer |
|---|---|
| What does the customer book? | The time of a staff member, a room, or a machine. |
| What holds 1 slot? | The resource that the session uses, not the service name. |
| How long is 1 slot? | The service duration plus the gap after it. |
| When does capacity apply? | When 1 slot holds more than 1 person, as in a class. |
| What causes most double bookings? | One fixed duration for services of different length. |
| What lowers no-shows? | A deposit on high-value services. |
A booking system for clinics and salons differs in the slot rule
A slot is a piece of time that something holds. Think of a slot as a seat on a bus. The bus stays the same, but the passenger in the seat changes with the business.
In a salon, 1 stylist sits in the seat. In a clinic, a practitioner and a room sit in the seat together. In a class, 12 people share 1 large seat.
Two numbers set the length of a slot. The first is the service duration. The second is the buffer, which is an automatic gap after the session. A buffer works like the time to clean a table before the next guest sits down.
I explain the terms in my article on what a booking system is and the technical flow in my article on how a booking system works. This page takes both to the business type level.

Salon and wellness: the slot follows the staff member
What breaks without a system. One stylist is promised to 2 people at the same hour. A cut plus colour needs 150 minutes, but it is sold in a column 60 minutes wide. The clean-up time disappears, and the next guest waits.
The setting that matters most. A duration for each service, not one duration for the whole shop. The Termilo guide on how to create a service in Termilo lists durationMin as a required field, and the buffer after a session starts at 0 minutes. That zero matters: the gap does not appear on its own, so you must set it.
How the booking page must ask. Ask for the service first, then the staff member, then the hour. A salon booking page that asks for the hour first offers times that cannot hold a long service. The order decides the result, because the service duration picks which slots still fit.
Clinics and therapy: the slot follows the practitioner and the room
What breaks without a system. The doctor is free, but the treatment room is busy. The patient arrives on time and then waits 40 minutes. The clinic loses trust because of 1 room, not because of the doctor.
The setting that matters most. A separate schedule for each schedule owner. The Termilo availability guide stores opening hours with an ownerType field set to tenant, staff, or resource. A room can therefore carry its own opening hours, apart from the practitioner and the clinic.
How the booking page must ask. Ask for the treatment, then the practitioner, then show the hours that remain after the room schedule cuts them back. Do not show an hour that is free only on the doctor side.
Clinic treatments carry a high value, so 1 late cancellation hurts. The Termilo deposit guide describes a deposit as a price setting for each service, with 20 percent, 30 percent, or 50 percent presets. The same page marks payment processing as a preview, so a deposit today is configuration, not an automatic charge. Check that status before you promise an upfront payment.
Classes and courses: 1 slot holds many people
What breaks without a system. A yoga class with 12 mats is sold as 12 separate appointments, so the calendar looks full without reason. Or the class is sold with no ceiling, and 18 people arrive in a room with 12 mats.
The setting that matters most. Capacity, not duration. The Termilo guide to group and class booking keeps capacity on a resource with a default of 1, and then each slot carries a capacityRemaining number. One booking takes 1 seat. When that number reaches 0, the slot is full.
How the booking page must ask. Show the seats left next to each hour. Hide an hour with 0 seats left, and do not let a person press the button and then get refused.
Two limits deserve attention. The Termilo documentation states that an automatic waiting list is not in the backend, so you manage a full class by hand. Booking several seats in 1 request also sits outside the current scope.

Consultants and coaches: an online slot needs a meeting link
What breaks without a system. The time is agreed in a chat, and then the meeting link is never sent. A client in Makassar reads the hour as Jakarta time, and a paid session is lost.
The setting that matters most. The location mode. The Termilo service documentation offers offline, online, customer, phone, and manual. In online mode the meeting link comes from the Google Meet or Zoom integration when the booking is made, so the link does not depend on your memory.
How the booking page must ask. Make the email field required, and show the time zone next to the hour. Write the time zone in letters, such as WIB, not as a number alone.
Automotive: the slot follows the bay and the job length
What breaks without a system. Three cars are booked for 09:00, but the workshop has 2 bays. An oil change of 30 minutes and an engine rebuild of 4 hours are sold in slots of the same width.
The setting that matters most. Make each bay a resource with a capacity of 1 and its own schedule. Set the duration from the job type, not from the vehicle type. If a job needs a special machine, make that machine a resource too.
How the booking page must ask. Ask for the job type before the hour, and then ask for the plate number. The plate number lets you pull the service history before the car arrives.
Home service: the slot must include travel time
What breaks without a system. Two addresses 14 kilometres apart are booked back to back with no gap. The technician is late at the second job, and later at the third.
The setting that matters most. A buffer before and after the session, filled with your travel estimate. The Termilo service documentation offers bufferBeforeMin and bufferAfterMin in minutes, and a customer location mode for work at the customer address.
How the booking page must ask. Ask for the full address before you show any hour, and state the service area in the page text. An address that arrives late forces you to call back and cancel.
An honest limit: the buffer is a fixed number that you set. The Termilo documentation names no automatic distance calculation.
Six business types in 1 table
This table maps the same 4 points across 6 businesses. Read the second column first, because it decides the rest.
| Business type | What is booked | Who or what holds the slot | Largest risk | Main setting |
|---|---|---|---|---|
| Salon and wellness | A session with 1 staff member | The stylist or therapist | A long service does not fit | Duration for each service |
| Clinics and therapy | A medical treatment | The practitioner and the room | The patient waits too long | A schedule for each room |
| Classes and courses | 1 seat in a group session | The room with a capacity | More people than seats | Capacity and seats left |
| Consultants and coaches | An online session | The time of 1 consultant | The meeting link is lost | Online location mode |
| Automotive | A job on a vehicle | The bay and the machine | A queue builds in the morning | Duration for each job type |
| Home service | A visit to an address | The technician and the travel | Delays chain through the day | A travel buffer |
A dental clinic simulation with dummy data
The numbers below are dummy data for practice. They are not a client result and not an industry benchmark.
Start condition. A dental clinic has 2 dentists and 1 x-ray room. It opens 09:00 to 17:00, Monday to Friday. All appointments arrive through chat messages.
Input used. The Scaling service runs 45 minutes with a 15 minute buffer. The X-ray service runs 20 minutes and is tied to the x-ray room with a capacity of 1. Both dentists do Scaling, but there is only 1 x-ray room.
Steps taken. First, set the duration and buffer of each service. Second, create the x-ray room as a resource and tie it to the X-ray service. Third, set the clinic hours, then set the x-ray room hours to 09:00 until 12:00. Fourth, publish the booking page and stop private chat scheduling.
Visible output. The page shows Scaling at 09:00, 10:00, and 11:00 for 2 dentists, which makes 6 morning slots. X-ray appears until 12:00 only, and it disappears as soon as 1 patient takes it. After 2 weeks, the record shows the x-ray slots gone before 10:00 on 7 working days.
Decision. The constraint is the room, not the dentist. Add 2 afternoon hours to the x-ray room before you hire a third dentist. Test for 4 weeks, then read the numbers again.
The tool I recommend
I recommend Termilo for a service business that needs a booking page, a website widget, and a booking APIAPIThe official door 2 systems use to exchange data, without anybody copying it by hand.Open the glossary. Termilo is operated by PT Nafanesia Kebermanfaatan Indonesia in Bandung. Rama Digital recommends Termilo and does not operate it.
My reason is plain. The 6 business types on this page match the list that Termilo names on the Termilo features page. It also states its limits, including the parts still in preview. I trust documentation that names what does not work yet.
A booking page performs better when the page around it is clear. If you need an offer page that sends people to the booking button, see our landing page service.
A checklist before your booking page goes live
- Write the service list with real durations, measured from your last 5 sessions.
- Set a buffer after each session for clean-up, notes, or travel.
- Mark the resource that limits you, such as a room, a bay, or a machine.
- Set a capacity above 1 for group sessions only, and keep 1 for private sessions.
- Set opening hours for each staff member and each room, not 1 schedule for all.
- Turn on a deposit for high-value services, then check the feature status.
- Test the booking 3 times as a customer from a phone, not from a laptop.
- Stop scheduling through private chat once the page is live.
Questions I receive often
Can 1 booking system serve 6 business types at once? Yes, because the engine is the same. Only the slot rule, the capacity, and the location mode change when you create the service.
What is the difference between capacity and duration? Duration sets the length of a slot in minutes. Capacity sets how many people fit inside 1 slot. A private session uses a capacity of 1.
How does a clinic prevent a room conflict? Create the room as a resource with its own schedule. A slot appears only when the practitioner and the room are both free at that hour.
Does a deposit stop customers who do not arrive? A deposit lowers the risk on high-value services. In Termilo today a deposit is a price setting, and payment processing is still in preview.
How long is a new slot held before confirmation? The Termilo lifecycle documentation holds a new booking for 10 minutes with the status held. After confirmation the status becomes confirmed and the slot is locked.
Does home service need a special setting? Yes, set a buffer before and after the session with your travel estimate. Ask for the full address before the customer picks an hour.
Sources
I opened all pages below on 17 March 2026.
- Termilo, features and business types: termilo.id/fitur
- Termilo, create a service, duration and buffer: termilo.id/docs/services
- Termilo, group and class booking, capacity: termilo.id/docs/group-booking
- Termilo, deposit and payment status: termilo.id/docs/deposit
- Termilo, availability and schedule owners: termilo.id/docs/availability
- Termilo, booking lifecycle: termilo.id/docs/booking-lifecycle




