Booking solutions

Booking system development for calendars with real-world rules

Appointments, classes, rentals and consultations each book differently. We build the availability rules, payments, reminders and calendar sync on a WordPress booking plugin or as custom software.

  • 500+ clients to date
  • Plugin or custom, compared honestly
  • You talk to the developers
What is included
  • Availability rules
  • People, rooms and equipment
  • Deposits and cancellations
  • Reminders and follow-ups
  • Calendar sync
  • Operations view
Get a free quote Reply within one business day. NDA on request.
The problem

Booking problems we are called in to fix

A booking form is simple until your business rules meet it. The therapist who works alternate Saturdays. The class that needs six people to run and holds twelve. The van that needs two hours of cleaning between rentals. The consultant in Lisbon whose client in Chicago sees the wrong hour after the clocks change.

Hosted scheduling tools handle the common cases well, and for a solo practitioner we often recommend staying on one. Our projects start where those tools stop: several locations, shared rooms or equipment, deposits and cancellation fees, packages and memberships, or a booking step that has to live inside your own site, checkout or app. We build these on WordPress booking plugins when the model fits, and as a custom system on Laravel when availability is too particular for settings to describe.

  • Double bookings and phantom slots

    Two customers pay for the same hour, or the site offers a time when the room is free but the only qualified staff member is not. Staff fix it by phone and stop trusting the calendar.

  • No-shows cost real money

    Customers book, forget and never arrive. There is no deposit, the reminder is a single email sent at booking time, and the cancellation policy exists only on a sign at reception.

  • Times shift for remote customers

    Online sessions are booked across countries. Confirmation emails show the business time zone, calendar invites show another, and twice a year the daylight saving change moves appointments by an hour.

  • Staff calendars live somewhere else

    Your team runs on Google Calendar or Outlook. Holidays and meetings entered there do not block the booking page, and web bookings do not appear on their phones.

What we do

What sits behind a reliable calendar

Customers only see free slots and a confirm button. These are the parts that make sure the slot really was free.

Availability rules

Working hours, breaks, holidays, buffers, lead times, minimum notice and booking windows per service, staff member and location, combined into the slots a customer is actually offered.

People, rooms and equipment

Bookings that need a person, a room and equipment at once, skill-based assignment, round-robin or customer choice, and capacity for group sessions with waitlists.

Deposits and cancellations

Full payment, deposits or card on file through Stripe or PayPal, cancellation and reschedule rules with cut-off times, and automatic refunds or fees according to your policy.

Reminders and follow-ups

Email and SMS messages at intervals you choose, with confirm, reschedule and cancel links, plus follow-ups that ask for a review or invite the next booking.

Calendar sync

Two-way sync with Google Calendar and Microsoft 365, iCal feeds for rental channels, and video links created for online sessions, all time-zone aware.

Operations view

Day, week and resource views for front-desk staff, drag-to-reschedule, walk-in bookings, customer history, and reports on utilization, no-shows and revenue.

Typical projects

Four booking models, four different builds

01

Appointments for a clinic, salon or studio

Services with different durations, staff who each offer some of them, several locations, intake forms before the visit and a front-desk calendar that staff use all day.

02

Group classes and workshops

Recurring timetables, capacity limits, waitlists that promote automatically, class passes and memberships, and attendance check-in from a tablet or phone.

03

Rentals of equipment, vehicles or spaces

Date-range bookings priced by hour, day or season, turnaround buffers, security deposits, add-ons such as insurance, and availability shared with other channels by iCal.

04

Paid consultations and coaching

Clients book in their own time zone, pay up front or use a package of sessions, receive a video link and reminders, and can reschedule within your rules.

In depth

How to choose a booking approach and scope it

Stay hosted, add a plugin or build custom

A hosted scheduling tool is the right answer when you sell one-to-one time, your rules are simple and a link or embed on your site is enough. A WordPress booking plugin such as WooCommerce Bookings, Amelia or Bookly makes sense when the booking must sit inside your own site and checkout, share customers with a store or membership, and follow rules those plugins already model: services, staff, locations, capacity. Custom software earns its place when availability depends on combinations (this instructor, that room, a boat and the tide), when pricing is dynamic, or when booking is the core of a product you sell to other businesses.

Write the rules as sentences, then test them

The quickest test of any approach is to write your rules in plain language and see whether the tool can express them. Working hours minus breaks, holidays and external calendar events. Buffers before and after. Minimum notice and how far ahead people may book. Resources shared between services. We turn those sentences into test cases with expected results, and run them against the plugin or our own engine before design starts. If a plugin fails three of twenty cases, you know what the workaround will involve.

Closing the gap that causes double bookings

Double bookings happen in the gap between showing a slot and taking payment. The fix is a short hold. When a customer starts checkout the slot is reserved for a few minutes, and the final write is protected by a database constraint or lock so two requests cannot both succeed. Synced calendars add another gap, since an external event may arrive seconds late, so we check availability again at the moment of confirmation.

Clock changes and customers abroad

Store every booking in UTC together with the named time zone it was made for, never a fixed offset. Show times in the customer zone on the site and in the staff zone in the back office, and say which is which in every email. Recurring classes must follow local wall-clock time through a clock change. These are small rules, and they are where homemade booking code most often fails.

What to include in the first version

One booking type done properly: rules, payment or deposit, confirmation, reminders, reschedule and cancel, staff calendar sync and the front-desk view. Packages, memberships, a customer mobile app and extra locations are sensible second steps once the calendar is trusted.

Process

From availability rules to live bookings

  1. 1

    Rules interview

    A free consultation where we write down your services, staff, resources, hours and policies as plain sentences, including the awkward exceptions.

  2. 2

    Test cases and approach

    Those sentences become test cases. We check them against plugin options and recommend hosted, plugin or custom, with a quote for the first booking type.

  3. 3

    Build and wire up calendars

    Booking flow, payments, notifications and calendar sync are built on staging and connected to test calendars and the gateway sandbox.

  4. 4

    Staff trial

    Your team runs mock bookings in the back office for a trial period, including reschedules, cancellations and a simulated clock change.

  5. 5

    Go live

    Existing appointments are imported, the public page is switched on, and we monitor the first bookings and sync jobs closely.

Deliverables

What is in place when bookings open

  • Availability rules written down and covered by tests
  • Paid bookings that land in staff calendars automatically
  • A cancellation policy the system enforces for you
  • Reminder messages your team can edit
  • Booking history and code under your ownership
FAQ

Booking system questions before you commit

Should we use a booking plugin or have a system built?
Use a plugin when your rules fit what it models: services, staff, locations and capacity. Build custom when availability depends on combinations of resources, pricing changes by demand or season in ways plugins cannot express, or booking is the product itself. Our test-case exercise shows which side you fall on.
How do you prevent double bookings?
A slot is held for a few minutes when checkout starts, and the confirming write is protected at database level so two simultaneous requests cannot both win. Availability is checked again against synced calendars at confirmation, and expired holds are released automatically.
Does it sync with Google Calendar and Outlook?
Yes, and the sync runs both ways. Events in a staff calendar block the matching slots on the booking page, and new bookings, changes and cancellations appear in that calendar. Each staff member connects their own account and can disconnect it at any time.
Can customers pay a deposit, and can we charge for late cancellations?
Yes. You can take full payment, a percentage or fixed deposit, or store a card and charge later. Cancellation and reschedule cut-offs are set per service, and the system applies the refund or fee your policy states, with the terms shown at checkout.
We already use a hosted scheduling tool. Is it worth moving?
Only if it is holding you back. Typical reasons are shared resources it cannot model, per-booking fees that have grown with volume, or a need to combine bookings with your own checkout, CRM or member accounts. If none apply, we will tell you to stay.
Can the booking system connect to our CRM, accounting or payroll?
Yes. Bookings, customers, payments and staff hours can be pushed to other systems through their APIs or webhooks. Our API development and integration team builds these connections with retries and logs, so a missed sync is visible.
Will it handle customers in other time zones?
Yes. Customers see and receive times in their own zone, staff in theirs, and bookings are stored in a way that survives daylight saving changes. Every confirmation states the time zone explicitly, which removes most of the confusion.
Start a project

Send us your booking rules

Describe what people book, who or what delivers it and the exceptions that cause trouble today. Expect a reply within one business day, with a recommended approach and a free quote.

  • Free consultation and quote
  • NDA on request
  • You own the source code
  • Reply within one business day
Add budget and timeline optional, helps us quote faster

This form is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.