The case for self-hosted booking: keep your data on your own site

Hosted booking services keep your customer list, charge per booking and can change terms. A self-hosted WordPress plugin like Schedopia removes all three risks.

The Schedopia admin dashboard with booking totals, revenue, a trend chart and today's schedule.

Most small businesses that take bookings online rent the software. A monthly fee, sometimes a cut of each booking, and a login to a service that holds the calendar and the customer list. It works, until it doesn’t, and the ways it stops working are worth spelling out. The prices and terms quoted below were checked on September 24, 2026 and link to the vendors’ own pages; they will drift, which is rather the point.

Three risks you take with a hosted booking service

The customer list isn’t yours

It sits on someone else’s servers. Exporting it is usually possible and usually awkward. Moving to another tool means re-importing, re-verifying, and losing the history that made the list useful in the first place. When Booksy acquired Genbook in September 2021, every Genbook salon was “invited over” to a different platform. The invitation was not optional.

The bill grows with your success

Per-booking fees and seat commissions mean a good month costs more than a bad one. Eventbrite charges 3.7% plus $1.79 per paid ticket, and 2.9% per order on top for payment processing. Ticket Tailor’s pay-as-you-go plan is £0.60 per ticket sold. Appointment tools do it by cap instead: SimplyBook.me’s plans include 50, 100, 500 or 2,000 bookings a month, and a busy month pushes you up a tier. A theater that sells out pays the most on its best night, which is a strange thing to be charged for.

The terms can change

Prices go up. Features move to a higher tier. The product gets acquired and sunset. You find out by email, and the email has a deadline in it. This is not hypothetical: Calendly’s customer terms (section 5.2) allow a renewal price increase of CPI plus 3% each term unless they tell you otherwise, on top of per-seat pricing of $10 to $16 a month. Acuity’s plans run $16 to $49 a month billed annually, or $20 to $61 monthly, with a seven-day trial and taxes on top.

None of these is dramatic on its own. Together they add up to a business dependency you did not ask for.

What a self-hosted booking plugin means in practice

A self-hosted booking plugin runs inside your own WordPress site, so the bookings, the customer list and the schedule stay in your database rather than on a vendor’s servers. The admin lives under your own WordPress menu, next to Posts and Pages, and logs in with the account you already have.

The Schedopia admin dashboard showing total bookings, revenue collected, completed count, new customers, a bookings trend chart and today’s schedule.
The dashboard, inside your own WordPress admin. Nothing here is fetched from anyone else’s server.

For Schedopia specifically:

  • Bookings, customers, services, staff, payments, venues, seats and events are stored in your database, in relational tables you can query and back up along with the rest of your site.
  • There is no account with us, and the plugin never contacts our servers. It loads nothing from third-party CDNs. The only optional external call is Google reCAPTCHA, and only if you turn it on and supply your own keys.
  • It is free and licensed under GPLv2. No per-booking fee, no seat commission, no usage limit. If we disappeared tomorrow, the plugin would keep taking bookings.
  • Uninstalling keeps your data by default. You decide if and when to delete it.

What “in your database” looks like

Every booking, customer, service, staff member, venue, seat and event is a row in a wp_schedopia_* table, next to the tables WordPress already keeps for posts and users. That has three practical consequences. Your existing backup covers bookings automatically, because it already covers the database. Your host’s staging copy carries the booking history with it. And when you want the customer list, you export your bookings from the Bookings screen as a CSV, with each customer’s name, email and phone, or read it straight from the table with any tool that speaks SQL, with no support ticket and no export queue.

The Schedopia customers screen: a searchable list with each customer’s name, email, phone and booking count.
Customers, with their history, in your own tables.

Payments follow the same rule. Schedopia records cash, bank transfer and mark-as-paid against each booking, so the money side of the record sits beside the booking itself. That is also the honest limitation of the current version: there is no online card checkout yet. If you must charge at booking time today, a hosted tool or a plugin with a payment gateway still wins on that one point.

“But hosted is easier”

It used to be. Hosted services won on setup time, and on the things that were hard to do inside WordPress: real-time availability, double-booking protection, decent emails, calendar sync.

Those are engineering problems, and they are solved problems. Schedopia checks availability against real staff hours and existing bookings, then checks again inside a database transaction when the customer confirms, so two people cannot take the same slot or the same seat. Confirmations, reminders, self-service cancellation and add-to-calendar buttons are built in. A read-only calendar feed puts your schedule in whatever calendar app you already open every morning. Setup is a wizard and one shortcode.

To be fair to hosted tools: if you don’t have a website and don’t want one, renting is still the sensible choice. But if you already run WordPress, the convenience gap has closed. What’s left is the ownership gap, and it points the other way.

Who this matters most for

Clinics and therapists, whose customer records are sensitive and who would rather not have a copy sitting with a vendor. Venues and studios, who sell seats in volume and feel per-ticket fees most sharply: at Eventbrite’s published rate, a 120-seat theater selling out at $25 a ticket pays roughly $215 in service fees for one night, before payment processing, and pays it again every night it sells out. And anyone who has been through a forced migration once and has no interest in doing it twice.

There is a quieter group too: agencies and freelancers who build sites for those businesses. A hosted booking account is one more login to hand over, one more subscription in a client’s name, and one more thing that breaks when the card on file expires. A plugin ships with the site, under the GPL, and the client owns the whole thing on day one.

Four questions to ask any booking tool

Before you commit to anything, hosted or not, ask these. Our answers for Schedopia follow each one.

Where does my customer data live, and can I export all of it, including history, in one step?

In your own WordPress database. Export it as a CSV, or read it straight from the tables.

What do I pay in a month where I do twice as much business?

The same as any other month, which is nothing.

What happens to my bookings if the company shuts down or is acquired?

They keep working. The plugin runs on your server, not ours.

What does the tool send to third parties without my say-so?

Nothing.

Every booking tool should be able to answer those four plainly. If one can’t, that tells you something too.

What you give up, honestly

Self-hosting is not free of obligations. You are responsible for keeping WordPress, PHP and the plugin updated, for backups, and for the hosting bill you already pay. If your site goes down, so does the booking form, where a hosted tool would have stayed up. And the current version records payments rather than taking them, so a business that must charge at booking time needs a gateway Schedopia does not yet offer. Those are real trade-offs. For most businesses already running WordPress, they are smaller than the ones in the first half of this post.

If you want to see how it works, install it from WordPress.org. If you want to argue with us about any of this, the contact form reaches the people who wrote it.

Keep reading

More from the blog

All posts
  1. A seat map of the Stalls with Premium and Standard tiers and two seats selected, beside a service with a capacity of 20, under the title Reserved Seating vs. General Admission: Which is better for your event?

    Opinion7 min read

    Reserved Seating vs. General Admission: Which Is Better for Your Event?

    Reserved seating vs general admission: when a seat number sells better, when an open room holds more people, and how to choose for a theater, hall or class.

  2. Cover reading AI Appointment Scheduling, The AI asks, the system decides, with icons for Ask, Check, Book and Log, beside an AI assistant chat booking Sam with Maya on Thursday at 3 PM, the resulting booking marked Slot free and Confirmed, and AI tool switches with List bookings and Create booking on and Delete a booking off.

    Opinion9 min read

    AI Appointment Scheduling: How AI Is Changing Booking Management

    AI appointment scheduling without the hype: where AI helps a small business with bookings today, where it promises what you don't offer, and how to keep it in check.

  3. Cover reading Automated vs. Manual Scheduling Pros and Cons, with icons for Phone, Diary, Online and Approval, beside a handwritten appointment book page labeled Manual, a Require approval for new bookings switch turned on, a booking form labeled Automated with 11:30 AM selected, and a Request received card pending approval.

    Guide9 min read

    Automated vs. Manual Appointment Scheduling: Pros and Cons

    Automated appointment scheduling vs doing it by hand: the real pros and cons of each, when manual still wins, and how to automate the routine and keep judgment.

Take your first booking today

Install Schedopia from WordPress.org, run the setup wizard and paste one shortcode. Free, self-hosted, no per-booking fees.

  • Free from WordPress.org
  • Data stays on your site
  • Ten-minute setup