The Per-Seat Problem

Service businesses run on appointments. Hair salons coordinate overlapping stylist schedules. Plumbers juggle same-day dispatch windows. Consultants block out discovery calls and follow-ups. Every one of these businesses needs a calendar — and the default choice is a SaaS tool that charges per seat, per month, forever.

The math gets uncomfortable quickly. Three stylists at sixteen dollars per month each is $576 a year. Add a fourth and you are approaching $800. And all of that buys you a calendar you do not control. The platform decides which payment processors you can use, how your booking page looks, what data you can export, and what happens to your appointment history if you cancel.

The alternative is a self-hosted appointment calendar — one that installs directly into your CMS, stores every record in your own database, and costs a single license fee with no recurring per-seat charge.


 How a Self-Hosted Appointment Calendar Works

The system installs as a component inside your CMS. You define your services — haircut, deep clean, legal consultation, tattoo session — set durations, assign staff, and publish a booking page that matches your existing site design. Customers pick a service, choose an available time, fill in any required fields, and pay through whatever gateway you have configured.

Behind the scenes, the calendar engine handles the scheduling logic. It checks staff availability, enforces buffer times between appointments, blocks dates you have marked unavailable, and prevents double-bookings across locations. When a booking is confirmed, the system sends branded email confirmations, optional SMS reminders, and syncs the event to your staff members’ Google Calendar or Outlook — two-way, so changes in either direction stay current.

All of this runs on your server. Your customer list, booking history, payment records, and scheduling data never leave your infrastructure.


 Feature Highlights

  • Unlimited services, staff, and locations with no per-seat fees — add a fifth stylist or a second shop without touching your license
  • Two timeslot modes: standard intervals generated from business hours, or custom time blocks you define manually for specialty sessions
  • Monthly and weekly Ajax calendars with real-time availability — customers see open slots load instantly without a full page refresh
  • Repeat booking: customers schedule recurring appointments by day, week, or month — ideal for regular clients who book the same slot every week
  • Two-way Google Calendar and Outlook sync plus ICS export, so every confirmed appointment appears on your staff’s mobile device automatically
  • Over 30 payment gateways: PayPal, Stripe, Square, Authorize.net, bank transfer, cash on arrival, or free bookings — you choose what fits your workflow
  • Deposit collection with automatic remaining-balance tracking — collect a percentage up front and the rest at the appointment
  • Automated email confirmations and SMS reminders via five-plus providers including Clickatell, Textlocal, and ClickSend
  • Waiting list: when a popular slot fills up, the next customer is notified automatically the moment a cancellation opens it
  • Custom checkout fields with optional surcharges — let customers add premium products, request specific materials, or flag accessibility needs
  • Coupon codes and group discounts applied at checkout — run promotions without handing a percentage to a third-party deal site
  • Customer self-service portal: clients view upcoming appointments, modify bookings, cancel if needed, and rebook — all without calling your front desk
  • PDF invoice generation for every completed booking — useful for consultants and tradespeople whose clients need documentation for expense reports
  • QR code check-in: staff scans the customer’s code on arrival, the system marks the appointment as attended, and the dashboard updates in real time

 The Scheduling Arithmetic

A SaaS appointment tool for a five-person team typically runs $80 to $120 per month — $960 to $1,440 per year. Scale to ten staff across two locations and you are looking at $2,000 or more annually, before the platform’s transaction fees on payments.

A self-hosted calendar is a one-time license. The same five-person salon that was spending $1,200 a year pays once and never pays again for additional seats. Your hosting already exists. Your SSL certificate already exists. The only incremental cost is the extension license and the time to configure it.

There is a subtler benefit too. Because the booking engine lives inside your CMS, every confirmation email, every reminder, and every follow-up links back to your domain — not to calendly.com or acuityscheduling.com. Your brand stays visible at every step of the customer journey.


 Who Uses This

Self-hosted appointment calendars are running in production across a wide range of service businesses:

  • Hair salons and barbershops: overlapping stylist schedules with per-service durations, buffer times for cleanup, and automated reminders that cut no-shows
  • Tattoo studios: consultations and multi-hour sessions with deposit collection, waiting lists for popular artists, and custom fields for uploading reference images
  • Plumbers and tradespeople: same-week availability windows, deposit at booking, and confirmed jobs synced to a mobile calendar for field crews
  • Consultants and coaches: discovery calls, paid sessions, and blocked internal time on a single calendar — customers see only what you make available
  • Housekeepers and cleaning services: recurring weekly bookings, staff assigned to territories, and customers who reschedule through a self-service portal instead of calling

 The Trade-Off

You are responsible for your own server. If your host goes down, your booking page goes with it. SSL certificates, PHP updates, database backups, and uptime monitoring are on you — there is no SaaS operations team absorbing that work behind the scenes.

Configuration takes real time. You will spend an afternoon defining services, timeslots, staff schedules, email templates, and payment gateways before the first customer books. SaaS tools abstract that setup behind guided wizards; a self-hosted system gives you more control but expects you to use it.

And calendar sync, while powerful, requires attention. Google Calendar API credentials expire. Outlook integration depends on your Microsoft 365 configuration. These are solvable problems, not permanent ones — but they are yours to solve.

Extension referenced in this article: OS Services Booking by Joomdonation • $39.99 one-time • 129 JED reviews • 5,000+ active installations • 30+ integrated payment gateways • Two-way Google Calendar & Outlook sync • joomdonation.com