When a free booking calendar is enough, what an online booking system must handle and when a custom module pays off. Vendor prices and our estimate.
A company that introduces an online booking system isn't buying a calendar. It already has one. It is buying an end to the calls and emails asking "do you have a free slot on Thursday?", followed by another one asking "what about Friday?". Every exchange like that costs someone on the team a few minutes, and carries the risk that the customer books somewhere else in the meantime.
A good booking system does three things without anyone's involvement: it shows the free slots, takes the booking and reminds the customer of the appointment. So the question isn't whether to have one, but which kind is enough — free, off-the-shelf on a subscription, or built to order.
We write this from an unusual position: booking a call on this website runs on a module we built ourselves. That is why we know what is hard about such a system, and why we can honestly say when building your own doesn't pay — which is most of the time.
An online booking system is a page or widget where a customer sees your free times, picks one and books it without talking to anyone. On your side, the appointment lands in your calendar and the customer gets a confirmation. In its simplest form, that is all. In a fuller version you add reminders, the option to cancel or reschedule, payment in advance and several staff members with separate schedules.
The easiest way to understand it is to compare it with a contact form. A form collects a request: "I'd like an appointment, ideally in the afternoon". Somebody has to read it, check the calendar, reply with a proposal, wait for an answer — and often start again, because the proposed slot no longer works. An appointment booking system reverses that order: the customer only sees what is genuinely free, and closes the matter themselves. There is no stage of negotiating the date.
That tells you where online appointment booking makes the most sense:
Where it makes less sense: where the date depends on an inspection or a quote, not just on a free hour. There a form works better, and the booking comes as the second step.
It is also worth separating, from the start, two things that blur together in vendors' offers. A booking calendar is only the view of free times and the booking itself. A booking system is the calendar plus the rules around it: who can book, how far in advance, how long an appointment lasts, what happens with cancellations, who gets notified. It is the rules, not the calendar, that decide whether the tool takes work off your team or adds to it.
If you work alone or as a pair, have one type of appointment and don't take payment in advance, a free online booking system will usually do. The closest one is probably in the calendar you already use.
Google Calendar on an ordinary account. According to Google's help pages, a personal Google Account or the Workspace Business Starter plan lets you create a single booking page where others can book time in your calendar (as of 22 September 2026). In the settings of the appointment schedule you can set the length and hours of availability, the minimum and maximum notice for a booking, adjusted availability on specific days such as holidays, and checking your calendar for conflicts. The schedule is created in a web browser on a computer — not in the phone app.
Google shows where the free version ends in its table of premium features. More than one appointment schedule, automatic email reminders and checking availability across several calendars require a paid Google One or Workspace subscription. Accepting payment for appointments and verifying email addresses, which protects you from fake bookings, only come with Workspace plans from Individual upwards. In practice: one type of appointment without reminders — free; several types of appointment with reminders — on a subscription.
Free plans of booking tools. Most vendors have a free plan, but with a limit that is easy to miss. On Calendly, the Free plan covers one event type and one calendar connection. On Reservio, the Free plan is, according to its pricing page, 40 bookings per 30 days and 100 clients.
The one you may already be paying for. If your company runs on Microsoft 365, check Microsoft Bookings before you pay for anything else. According to Microsoft's documentation, Bookings is included in the Microsoft 365 Business Basic, Business Standard and Business Premium plans, among others. It isn't free in the strict sense, but if you already pay for those plans, it costs nothing extra.
When does the free version stop being enough? Usually when one of three things appears: a second member of staff with their own schedule, a second type of appointment of a different length, or enough no-shows that you need reminders. At that point there is no sense in improvising workarounds — the paid plan of an off-the-shelf tool is cheaper than your team's time. Building a system of your own isn't on the table yet at this stage; we come back to that with the numbers.
Price lists compare the number of staff, bookings and text messages. What decides the quality of a system is something else: the rules that make a free slot on the page genuinely free. Here is a list worth going through with any scheduling software before you pay for it. Every item is a setting we had to build ourselves, so we know why it is needed.
A buffer before and after the appointment. The appointment lasts an hour, but between two of them you need a quarter of an hour to prepare, travel or write notes. Without a buffer, the system will sell two appointments back to back, because formally they don't overlap.
Minimum notice. Without it, someone will book an appointment twenty minutes from now, and you will find out after the fact. Our default minimum is 12 hours.
The slot grid. Can appointments start every 15 minutes, every 30, or only on the hour? That decides whether your calendar breaks up into useless fragments.
The booking horizon. How far ahead a customer can book. Too short loses the customers who plan ahead; too long freezes your calendar before you know your own schedule.
Time zones. If even some of your customers are abroad, the time on the page must be shown in their time zone and stored in yours. A mistake here means a meeting at which one side turns up an hour early.
Exceptions and holidays. Leave, a training day, a short Friday. The system should know public holidays without them being entered by hand, and let you override any single day.
Busy times from your own calendar. This is the most important point. The system has to see not just its own bookings but everything you put in your calendar yourself — the meeting with your accountant, the school run, the appointment booked over the phone. Otherwise it will show as free a slot that isn't.
Reminders, cancellations and rescheduling. A customer who can move an appointment with one click moves it, instead of simply not turning up.
There is one more thing no price list mentions. A booking system knows when you are busy because you gave it permission to access your calendar. That permission can expire or be revoked: somebody changed a password, an administrator tightened security policies, the calendar provider invalidated an old connection. For the curious: this is the OAuth token the application exchanges for access, which at some point stops working.
The worst part is what happens next. If, after losing that permission, the system simply stops seeing your busy times, it goes on showing free slots — only now all of them, including the ones where you already have meetings. Nobody gets an error. The first sign is a customer who turns up at a time somebody else already booked. That is why, before you choose a tool, it is worth asking the vendor one question: what does the customer see when the calendar connection stops working, and who finds out about it? The good answer is: no free slots are shown, and the owner gets a notification.
Our module handles booking a call on this website. We didn't build it because off-the-shelf tools are bad, but because a booking is part of the contact history for us — we explain that decision in more detail in our article on off-the-shelf versus custom software. Below is what happens between the click and the meeting.
Meeting type and schedule. Every meeting type has a duration, a slot step, a buffer before and after, a minimum notice, a booking horizon of up to 90 days and a format: video call or phone. It is attached to an availability schedule with weekly hours, a time zone, exceptions for specific dates, and public holidays for Poland or Switzerland, calculated automatically — those are the two calendars our own business runs on; for any other country, days off go in as date exceptions. An exception always wins over a holiday.
Free slots. When someone opens the form, the system asks Google Calendar for busy times and subtracts them from the schedule. It keeps the result for 45 seconds, so that several people browsing slots at the same time don't each trigger a separate query; errors aren't cached, so a failure doesn't "freeze" in memory. Public queries are rate-limited per address, so that nobody outside can read your calendar in bulk.
Booking. Just before saving, the system checks busy times once more, because between choosing a time and clicking "Book" someone else may have taken it — in that case the customer sees "That slot was just taken. Please pick another." Then it creates the event in Google Calendar, with a video call link if needed. If saving to the database fails, the calendar event is rolled back, so that no meeting is left behind that nobody can cancel.
CRM and notifications. The meeting immediately creates or updates the contact card in our CRM, together with the source of the visit — which campaign the person came from. The customer gets an email with a calendar file (ICS) and links to cancel or reschedule, followed by reminders 24 hours and one hour before the meeting, in their language and their time zone. Whoever books within the last hour gets only the second one.
The path of a booking — from click to meeting
Digital Vantage, based on the code of our booking module
What we do in a silent failure. When the permission to access Google Calendar stops working, the system closes itself: it shows no slots at all, only the message "Booking is temporarily unavailable." We would rather lose a booking than sell an hour that is already taken. Independently of that, every 15 minutes it checks that the permission is still alive. When it has expired, it marks the connection for re-authorisation and sends the owner one email with a button to reconnect it — without flooding the inbox every quarter of an hour. A momentary network error or a problem on Google's side doesn't raise an alarm; the next check simply tries again.
The whole module is about four thousand lines of code. Most of them aren't about the calendar itself but about the edge cases: two people racing for the same hour, time zones and a broken connection. That is precisely what no tool's demo shows you.
A booking system collects personal data: a name, an email address, often a phone number and a short message. The good news is that for the booking itself you usually don't need separate consent. The GDPR, in Article 6(1)(b), allows processing that is necessary for the performance of a contract or for steps taken at the person's request before entering into one. Booking an appointment and sending the confirmation is exactly that situation.
For the same reason, an appointment reminder is a transactional message, not marketing. It concerns a service the customer ordered themselves and helps get the contract performed. It doesn't need marketing consent.
The line runs through the content of the message. If you add "and this month, 20% off a second treatment" to the reminder "your appointment is tomorrow at 10:00", the message changes character: it becomes direct marketing. The ePrivacy Directive allows direct marketing by email — which in the directive's definition includes text messages — only to people who have given prior consent (Article 13(1)). There is one exception that matters for a booking business (Article 13(2)): if you obtained the customer's email address when selling them a service, you may use it to market your own similar services, provided you gave them a clear, free and easy way to object when you collected the address, and give it again in every message. A customer who has booked and paid for a treatment may well fall within that exception; a visitor who only made an enquiry probably doesn't. The directive is implemented through national law, so the details depend on the member state — check your own country's rules before relying on the exception.
Two GDPR principles are worth keeping in mind when you design the form. Purpose limitation (Article 5(1)(b)): data collected for a booking serves the booking, not automatically the newsletter. Data minimisation (Article 5(1)(c)): ask only for what the appointment requires. If you don't need the phone number, make the field optional.
The practical conclusion: keep reminders purely informational, and collect marketing consent through a separate box that is unticked by default. In an off-the-shelf tool, check whether you can switch off the vendor's promotional footers in the messages that go to your customers.
We refer to the GDPR and the ePrivacy Directive as checked on 22 September 2026. The directive's rules on marketing are applied through national law and differ between member states. We are not a law firm. If you plan to combine reminders with offers, to collect health data (as practices do — health data is a special category under Article 9 of the GDPR), or to pass customer data to a provider outside the EU, have the specific setup checked by a lawyer.
Let's start with the criteria, because price rarely settles it on its own. A booking system of your own makes sense when the booking has to connect to your own data — the CRM, customer history, the source of the visit, your own service process — and when an off-the-shelf tool forces you to stitch that data together by hand. It doesn't make sense when all you need is for customers to see free slots. Then the off-the-shelf tool wins.
You have to compare total cost, not a subscription with a build price. Here are the numbers we checked on 22 September 2026.
Solution | Cost | Notes |
|---|---|---|
Google Calendar, personal account | €0 | One booking page; reminders and several schedules on paid plans |
Calendly Standard | €10 per seat per month | Billed annually; Free plan: one event type |
Included in Microsoft 365 Business Basic, Standard and Premium | No separate price; costs nothing extra if you already have one of these plans | |
Integrating an off-the-shelf tool with your website (our price list) | €1,950 one-off | Plus the vendor's subscription |
A booking module of your own (our indicative estimate) | about €17,225–20,150 excl. VAT | Plus maintenance of about €144–336 a month |
We don't quote Reservio's paid plans — its pricing page loads them with a script, and we couldn't read them.
This isn't an item on our price list but an estimate assembled from its components, for a module added to an existing website:
Optional: multiple languages +€1,950, payment at booking +€3,250. The hours for the last two components are an estimate based on the scope of our own implementation — we didn't log the time it took to build. We calculate maintenance with the rule from our calculator: 10–20% of the feature's cost per year, which is €1,722.50–4,030 a year.
The arithmetic is simple: months to pay back = build cost ÷ (monthly subscription − monthly maintenance). Take, as an assumption, a build of €18,200 and maintenance of €260 a month. With a subscription of €650 a month, the build pays for itself after about 47 months; at €1,300, after about 18. For it to pay back within five years, the subscription would have to be about €563 a month.
Now the real amounts. Three seats on Calendly Standard come to €30 a month. Microsoft Bookings costs nothing extra if you already pay for Microsoft 365. All of these are lower than the maintenance of your own module alone. With a few seats, the build never pays for itself — the difference in subscription doesn't even cover the cost of looking after the code.
When a booking module of your own pays for itself
Digital Vantage, based on our indicative estimate, the Calendly price list and Microsoft's documentation, checked on 22 September 2026
That is why a booking system of your own is almost always justified by something other than saving on a subscription: the data it has to connect, a process no tool handles, or control over what happens when something fails. For us it was the first of these, not the price.
Start with a free or off-the-shelf tool, and measure. For two or three months, track how many bookings come in through the website, how many calls about appointments have stopped, and how many people didn't turn up despite booking. Those three numbers will tell you more than any comparison site.
Go through the list in the section on what a system must handle, and ask the vendor about the silent failure of the calendar connection. That one question filters out quite a few tools.
Connect the tool to your website properly. Embedding a widget takes five minutes, but a sensible integration — in the place where the customer makes the decision, with measurement in your analytics — is real work; with us it is €1,950, which you can see in our website cost calculator.
Come back to the decision when bookings start living in several places. If bookings from the calendar have to be copied into the CRM by hand, and the customer's source gets lost along the way, first check whether business process automation between off-the-shelf tools is enough. If it isn't, a conversation about a booking system built to order already has numbers to stand on. For the wider context — which problems business applications solve and when they pay off — see our guide to business software.
Yes. Google Calendar on a personal account lets you create one booking page — without email reminders and without several appointment types, which need a paid subscription. Off-the-shelf tools have free plans too, but with limits: on Calendly it is one event type, on Reservio 40 bookings per 30 days. For one person with one type of appointment that is usually enough. If your company already uses Microsoft 365 Business Basic, Standard or Premium, Microsoft Bookings is included.
Off-the-shelf tools range from nothing to a few dozen euros a month: Calendly Standard is €10 per seat per month billed annually, and Microsoft Bookings comes with Microsoft 365 business plans (prices checked on 22 September 2026). With us, integrating an off-the-shelf tool with your website costs €1,950. A module of your own, by our indicative estimate, comes to about €17,225–20,150 excluding VAT, plus maintenance.
Rarely because of the subscription. Assuming a build of €18,200 and maintenance of €260 a month, the module pays back within five years only against a subscription of about €563 a month, and typical plans for a small business are many times cheaper. A system of your own makes sense when the booking has to connect to your CRM, customer history or a process no off-the-shelf tool handles.
The reminder itself doesn't — it is a message connected with performing the contract the customer entered into by booking (GDPR, Article 6(1)(b)). If you add a promotion to it, the message becomes direct marketing, and sending it by email or SMS requires prior consent under Article 13 of the ePrivacy Directive, unless the existing-customer exception applies. The details depend on your member state.
It depends on the system, and it is worth asking before you buy. If a system stops seeing your busy times after losing access, it may keep showing free slots that are in fact taken. The safe behaviour is to close bookings and notify the owner — that is how our module works, checking the connection to Google Calendar every 15 minutes.
Tell us how you book customers today and where their data ends up afterwards.
If a free calendar or an off-the-shelf booking system will do — we will say so,
and help you connect it properly.
Business software is chosen one function at a time: accounting, CRM, ERP, booking, your own tools. A map of situations, the order to go in and the costs.
What an ERP system is, how many EU firms use one, when a small business needs it, what it costs beyond the price list and where it goes wrong.
Low code and no code explained: who a citizen developer is, what a low code platform suits, its price limits and what you can take with you when you leave.
What a CRM is, when a spreadsheet is enough, what the system must do, how to square a customer database with the GDPR and how to choose one.
Off-the-shelf or custom software is decided one function at a time. Four questions, a five-year TCO with our own prices, and vendor lock-in both ways.
Business process automation: how it differs from RPA and AI, EU data, e-invoicing, our hands-off funnel, examples by department and the first step.
What a mobile application is and how it differs from a website and a PWA. The frequency test, loyalty apps, working offline and app store costs.
Your Partner in Business, Digital Vantage Team
Digital Vantage team is a group of experienced professionals combining expertise in web development, software engineering, DevOps, UX/UI design and digital marketing. Together we carry out projects from concept to implementation - websites, e-commerce stores, dedicated applications and digital strategies. Our team combines years of experience from technology corporations with the flexibility and immediacy of working in a smaller, close-knit structure. We work in agile methodologies, focus on transparent communication and treat each project as if it were our own business. The strength of the team is the diversity of perspectives - from systems architecture and infrastructure, frontend and design, to SEO and content marketing strategy. As a result, the client receives a cohesive solution where technology, aesthetics and business goals go hand in hand.
Rate this article
Back to the guide: Business software — which tools a company needs, function by function

What an ERP system is, how many EU firms use one, when a small business needs it, what it costs beyond the price list and where it goes wrong.

Low code and no code explained: who a citizen developer is, what a low code platform suits, its price limits and what you can take with you when you leave.

What a CRM is, when a spreadsheet is enough, what the system must do, how to square a customer database with the GDPR and how to choose one.


Learn how a web application differs from a website and mobile application. A simple guide with application examples for business owners.


Off-the-shelf or custom software is decided one function at a time. Four questions, a five-year TCO with our own prices, and vendor lock-in both ways.

Business process automation: how it differs from RPA and AI, EU data, e-invoicing, our hands-off funnel, examples by department and the first step.

What a mobile application is and how it differs from a website and a PWA. The frequency test, loyalty apps, working offline and app store costs.