Skip to content

Booking tool: buy or build?

Researched 2026-10-16. Prices change often: check each vendor's site before signing up.

Situation

  • At launch the salon has one master, who is also a partner.
  • The salon offers beauty / wellness only, with no medical massage. Health-insurance tools (ASCA/EMR receipts, OneDoc) are not needed.
  • The owner is a backend developer and could build a custom booking system.

Decision 2026-10-24: Cal.com (see Decisions). Dikidi was tested in the prototype and dropped. The research below is kept for reference.

Recommendation

Use a ready-made booking tool at launch. Build only the salon website, and embed the tool's "Book now" widget in it. Review the choice after 6–12 months, or once there are 3 or more masters.

After the language check below, only Fresha and Cal.com remain: they are the only ones whose booking pages cover DE, EN, FR and IT. Fresha is the main candidate, because it also brings some new clients. Cal.com is the backup if we want more control.

Ready-made tools (one master)

Tool Approx. price Good Less good
Fresha (Independent plan) ~USD 19.95/month (~CHF 16), ~CHF 190/year. A cheaper EU price list (~EUR 12.95) is also reported [verify]. Card fees, plus a 20% fee on new clients who come through the Fresha marketplace Polished, multilingual, Reserve with Google, marketplace brings new clients Marketplace fee on new clients
Dikidi Core features free. Paid add-ons are optional, and prices are shown only in the app [verify] Cheapest, simple, good mobile apps. Known among Ukrainian/Russian-speaking clients No German, French or Italian (see language check). Little known among Swiss clients
Cal.com Free for one person. Open source, so it can be self-hosted later Developer-friendly, has an API, easy path to a custom system later Generic scheduling tool, not salon-specific (no vouchers, stock, etc.)
SimplyBook.me Free tier with limits; paid plans above that [verify] Many add-ons (vouchers, payments) Interface feels dated
Altegio (international version of YCLIENTS) Smallest plan is for 2 employees, at a much higher price Very feature-rich, scales to chains No German (see language check). Too much and too expensive for one master

Before choosing, check each tool for: - DE / EN / FR / IT booking pages - CHF prices, and TWINT or card payments - Reserve with Google, plus the Instagram and Facebook "Book" buttons - Gift vouchers (useful for tourists in Gstaad) - A data processing agreement and data hosting compatible with the Swiss data protection law (revFADP / nDSG) - An API, needed for Phase 2 (see Phase 2: Booking everywhere)

Language check (DE / EN / FR / IT)

Checked 2026-10-16. The booking page must be fully available in our four website languages.

Tool DE EN FR IT How it was checked
Fresha ✅ ✅ ✅ ✅ The client app lists all four (App Store, Switzerland). fresha.com has real DE/FR/IT pages
Cal.com ✅ ✅ ✅ ✅ Open-source code has DE/FR/IT translations (~97% of the English text). The page follows the visitor's browser language
SimplyBook.me ⚠️ ✅ ⚠️ ⚠️ One booking-page language at a time. Several languages only through an automatic Google Translate add-on (machine translation)
Dikidi ❌ ✅ ❌ ❌ App only in EN, KK (Kazakh), PT, RU; website only in EN, KK, RU
Altegio ❌ ✅ ✅ ✅ Official list of 23 widget languages (updated 2026-09-01) has no German

German is the local language in Gstaad (Canton of Bern), so Dikidi and Altegio are ruled out.

Our own texts

The tools translate their own interface (buttons, calendar, emails). Texts we write ourselves (service names, descriptions, cancellation rules) are usually stored in one language only. During the trial, check:

  1. Can each service name and description be entered in all four languages?
  2. Are confirmations and reminders sent in the client's language?

If not, use short bilingual service names, e.g. "Klassische Massage / Classic massage 60 min".

Cal.com test (2026-10-16)

  • The floating "Book" button embed works on a plain test page: a button in the corner opens the calendar in a popup.
  • The popup can show or hide the service details (name, duration, description) next to the calendar.
  • The button text is fixed in the embed code (default: "Book my Cal"). It does not change with the visitor's language. On our multilingual site, each language version must set its own text, e.g. "Termin buchen" / "Book now" / "Réserver" / "Prenota".

Booking tool vs. finding clients

A booking tool such as Cal.com only handles scheduling: the calendar, free slots, the booking form, confirmations and reminders. It does not bring clients. Everything that makes people find us stays our work, whichever tool we choose:

  • SEO: our own .ch website in DE/EN/FR/IT (see Website). A booking page on cal.com does not help our search ranking, because it is not on our domain.
  • Google Business Profile: add the booking link as the "Appointment URL" (see Local search presence). As far as we know, Cal.com is not a "Reserve with Google" partner [verify], so clients click through to our link instead of booking inside Google.
  • Instagram / Facebook: booking link in the bio and on the "Book now" button.
  • Ads (Google, Meta): point to our website, not to the booking tool (see Marketing).
  • Reviews, local directories (local.ch, search.ch), hotel/concierge partnerships.

Difference with Fresha: Fresha also helps with finding clients, through its marketplace (people searching for a massage nearby) and Reserve with Google. The price is a 20% fee on new marketplace clients.

  • Cal.com: free and full control, but all new clients come from our own site and marketing.
  • Fresha: small subscription plus a fee on new marketplace clients, but some extra visibility from day one.

Building our own system

What a minimal version needs: services with durations and prices, the master's working hours, free-slot calculation, a booking form, email confirmations and reminders, cancel/reschedule links, a simple admin page, and calendar sync.

Item Estimate
Development 60–120 hours
Hosting (small server + database) CHF 5–15/month
SMS reminders (optional) ~CHF 0.07–0.10 per SMS
Email delivery Usually free at this volume
Online payments (TWINT/card) Same transaction fees as with a ready-made tool
Ongoing support: updates, security, backups, bugs 2–5 hours/month
Data protection The salon alone is responsible for storing client data safely

What we would not get from a self-built system on day one: - New clients from the platform: marketplace listings (Fresha, Dikidi catalog). A custom system only gets visitors through our own website and SEO. - Booking from other apps: Reserve with Google and the Instagram/Facebook "Book" buttons need partner approval or extra integration work. - A mobile app for the master with notifications for new bookings. - Extra features: gift vouchers, reviews, deposits and no-show protection.

Conclusion

With one master, a ready-made tool costs about CHF 0–200 per year. Building our own costs months of the owner's time, plus ongoing maintenance, and it would take many years to pay back.

Building our own makes sense only if one of these becomes true: - There are 3 or more masters or several locations, so per-person subscriptions grow. - We have needs no tool covers (for example, hotel/chalet partnerships with home visits, or unusual packages). - We decide to make a booking product for other salons. That would be a separate business.

A good middle step is Cal.com: free now, and it can later be self-hosted behind our own website.

Sources