Free resources · Guide

Self-hosted booking: what actually works

Once you decide you want to own your booking system instead of renting one, the next question is practical: what do you actually use? The answer depends on what kind of business you run, how many bookings you handle, and how much you want to manage yourself. Here is an honest look at what is out there, what works, what does not, and what we have used ourselves.

The landscape after Cal.com

The biggest name in self-hosted scheduling was Cal.com, an open-source alternative to Calendly. In April 2026, Cal.com went closed-source. The community edition that remains, called Cal.diy, is MIT-licensed and still free to run, but the team scheduling and automated workflow features were stripped out. What is left works for individual use. It is no longer a realistic option for a team or a business that needs anything beyond basic one-on-one scheduling.

We run Cal.com for our own discovery calls. We set it up before the closed-source move, and it still works for what we need. But we would not recommend starting a new Cal.diy deployment for a business today unless your needs are genuinely simple (one person, one calendar, basic availability).

That said, the self-hosted booking landscape is broader than one project. Here is what else is worth knowing about.

For appointments and services

If your business books appointments (consultations, coaching, therapy, salon visits, professional services), these are the tools that are genuinely ready for real use.

Easy!Appointments is the most mature open-source appointment scheduler. It runs on PHP and MySQL (the same stack as WordPress), deploys in a Docker container or on any cheap shared host, and handles multiple providers, services, and locations. It syncs with Google Calendar. It is not flashy, but it is reliable, actively maintained, and you own every record in the database. For a service business that books one-on-one appointments, this is often the simplest path to owning your scheduling.

WordPress booking plugins are worth considering if you already run WordPress, because your data stays in the database you already control. Bookly is the most established, with a free core and a paid Pro version that adds payment integration and staff management. Amelia handles appointment booking with a clean interface and WooCommerce integration for payments. Both keep your customer and booking data in your WordPress database, which means your existing backup and export setup covers your booking data too. The trade-off is that they are commercial plugins with paid tiers, not fully open-source. But they are plugins you install on your own site, not SaaS platforms that hold your data hostage.

For tours, activities, and complex availability

Tour and activity booking is harder to self-host, because the scheduling is more complex: group sizes, seasonal availability, equipment assignments, guide scheduling, multi-day itineraries. This is the space dominated by FareHarbor, Peek Pro, and Bokun, and it is where the per-booking fees are highest.

There is no single open-source project that replicates a full tour booking platform. The honest answer is that most tour operators who leave a booking SaaS end up with a custom build, not an off-the-shelf alternative. That sounds more daunting than it is. A custom booking system built on WordPress, with WooCommerce handling payments and a purpose-built calendar handling availability, costs less to build than most operators expect, and nothing per booking after that. We have built systems like this for clients, and the total cost was less than one year of the SaaS fees they replaced.

The key is scoping honestly. Most tour operators use a fraction of their platform’s features. The features they actually need (calendar availability, online booking, payment processing, confirmation emails, a customer database they can export) are well-understood problems with well-tested solutions. The hundred other features their SaaS advertises are often things no one on the team has ever touched.

For rooms, resources, and shared spaces

If you are booking meeting rooms, equipment, shared workspaces, or other physical resources, the options are more specialized.

MRBS (Meeting Room Booking System) is a long-standing open-source project for exactly this: scheduling rooms and resources with conflict detection. It is not pretty, but it is solid and simple to run.

Booked Scheduler handles resource booking with user roles and permissions, useful for organizations where different teams share equipment or spaces.

What self-hosting actually costs

The hosting itself is almost free. A server that runs your booking system, your website, and several other tools costs a few dollars a month. The real cost is the setup: someone has to install it, configure it, connect it to your payment processor, and make sure it works the way your business needs it to.

For a straightforward appointment scheduler (Easy!Appointments or a WordPress plugin), a competent person can set it up in a day. For a custom tour booking system, the build takes longer, but the result is something you own completely, with no per-booking fee and no platform that can raise prices or change terms on you.

The ongoing cost is modest: hosting (a few dollars a month), occasional updates, and a payment processor’s standard transaction fee (typically 2.9% + $0.30, which you pay regardless of which booking system you use). Compare that to 6-8% per booking on FareHarbor or Peek Pro, and the math speaks for itself.

When self-hosting is not the right answer

Self-hosting is not always the right call, and saying so is part of being honest about it.

If you need OTA distribution (you sell tours through Viator, GetYourGuide, or similar marketplaces), you need a system that connects to those channels. That is one of the genuine advantages of platforms like FareHarbor and Bokun. A self-hosted system does not plug into the OTA network out of the box. If marketplace distribution is a significant part of your revenue, a hybrid approach (own your website and customer database, use a SaaS for OTA connectivity) may make more sense than going fully self-hosted.

If nobody on your team or in your network can maintain it, a self-hosted system that nobody updates or monitors is a liability, not an asset. You do not need to be technical yourself, but you need access to someone who is, whether that is a staff member, a freelancer, or a partner like us. If that person does not exist, a well-chosen SaaS with clean data export may be the more honest answer.

The honest summary

Self-hosted booking is genuinely practical for most small businesses today. Easy!Appointments and WordPress plugins handle appointments and services well. Custom builds on WordPress handle tours and complex availability for less than most operators expect. The ongoing cost is a fraction of any SaaS. But it requires honest scoping: know what you actually use, build for that, and make sure someone can maintain it. The right answer is not always “self-host everything.” It is “own the parts that matter, and choose the rest with your eyes open.”

Want help setting up a booking system you own?

Whether it's an off-the-shelf scheduler or a custom build for tours and activities, we've done both. We'll scope what you actually need, set it up on hosting you control, and make sure your customer data stays yours.

Book a free 30-min consult
Share this