If you book one person’s time for standard appointments, a subscription booking tool is quicker and cheaper, and several work in South Africa. A custom booking system makes sense when you book things as well as people, when your rules do not fit a tool’s settings, or when bookings need to land in a system you already run. Either way, deposits, WhatsApp reminders and a link into your other systems are all possible.
When is a subscription tool enough?
For salons, practices and consultants booking standard appointments, a tool will usually do the job. Fresha and Booksy both sell here. Booklink is a South African option that takes deposits through Yoco, Paystack, Payfast and iKhokha. And if you already use a Yoco card machine, Yoco’s Plus plan includes appointment management.
Check one thing before you commit: whether the tool can take payments through a South African gateway. Setmore and Calendly connect to Stripe, PayPal or Square, and Timely only takes payments in Australia, New Zealand, the US, the UK and the EU.
What can a custom booking system do?
- Book things as well as people: rooms, vehicles or equipment, each with its own capacity, buffer time between bookings and minimum notice.
- Take a deposit or full payment through Payfast, Yoco or Paystack, and apply your own rules on refunds and no-shows.
- Confirm and remind over WhatsApp, sent automatically by the system.
- Price the way you do: peak and off-peak, packages, member rates.
- Put every booking straight into your CRM or operations system, so nobody types it in twice.
What makes a booking system hard to get right?
Double bookings, first. Two customers can try to take the last slot in the same second, and if the only check lives in the application code, both of them can win. The fix is to let the database refuse the second booking. In Postgres an exclusion constraint does exactly that: no two bookings for the same resource may overlap in time, and the database enforces it however the booking arrived. It is the same reason I keep business rules in the database on other systems.
Payments that half-finish come next. A customer pays and then closes the tab before your confirmation page loads. The booking has to be confirmed by the gateway’s own notification, not by the page the customer lands on. While they pay, hold the slot for a few minutes and release it if no payment arrives.
What drives the cost?
- How many kinds of thing you book, and how different their rules are.
- Payments: deposits, refunds and what happens when someone does not arrive.
- Reminders. WhatsApp messages also carry Meta’s own fee per message.
- Staff calendars, including a sync with Google or Outlook.
- Connections to your CRM, accounting or existing website.
Sources
- Booklink, Fresha, Booksy and Yoco plans and fees
- Setmore payments, Calendly and Timely, for which payment providers each supports
- The estimate above is drawn from ranges published by South African developers, including Muon Software and Masterpiece Designs, read on 19 October 2026