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. Calendesk has no free plan, only a 14-day free trial.
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.
Where a free booking system ends
support.google.com, calendly.com/pricing, reservio.com/pricing, learn.microsoft.com — read 22 September 2026
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 Electronic Communications Law (Prawo komunikacji elektronicznej), in force since 10 November 2024 (Dz.U. 2024 poz. 1221), bans in Article 398(1) using telecommunications terminal equipment to send commercial information, including direct marketing, without prior consent. An email or an SMS to a customer is exactly such a channel.
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 Electronic Communications Law as checked on 22 September 2026. 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 | PLN 0 | One booking page; reminders and several schedules on paid plans |
Calendly Standard | 10 USD 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 | |
Calendesk Standard | PLN 197 net per month | PLN 157 billed annually; up to 5 staff accounts, 750 bookings a month |
Calendesk Pro | PLN 347 net per month | PLN 287 billed annually; up to 15 accounts, 2,500 bookings |
Integrating an off-the-shelf tool with your website (our price list) | PLN 3,000 one-off | Plus the vendor's subscription |
A booking module of your own (our indicative estimate) | about PLN 26,500–31,000 net | Plus maintenance of about PLN 220–520 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 +PLN 3,000, payment at booking +PLN 5,000. 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 PLN 2,650–6,200 a year.
The arithmetic is simple: months to pay back = build cost ÷ (monthly subscription − monthly maintenance). Take, as an assumption, a build of PLN 28,000 and maintenance of PLN 400 a month. With a subscription of PLN 1,000 a month, the build pays for itself after about 47 months; at PLN 2,000, after about 18. For it to pay back within five years, the subscription would have to be about PLN 870 a month.
Now the real amounts. Calendesk Standard for five people costs PLN 197 net, Pro for fifteen PLN 347. Three seats on Calendly Standard come to 30 USD 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.
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 PLN 3,000, 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; Calendesk has no free plan, only a 14-day trial. 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 hundred złoty a month: Calendly Standard is 10 USD per seat per month billed annually, Calendesk Standard PLN 197 net a month for five accounts, 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 PLN 3,000. A module of your own, by our indicative estimate, comes to about PLN 26,500–31,000 net, plus maintenance.
Rarely because of the subscription. Assuming a build of PLN 28,000 and maintenance of PLN 400 a month, the module pays back within five years only against a subscription of about PLN 870 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 398 of the Electronic Communications Law.
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 Polish 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, Polish data, KSeF 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.
Table of Contents · 8 sections · 14 minutes read
Rate this article
Back to the guide: Business software — which tools a company needs, function by function

SMS marketing for online stores: GDPR and ePrivacy consent, what a campaign costs in PLN, and the Gmail, Yahoo and Outlook rules for email.

Meta Ads for online stores: Shops availability, the product catalogue, Advantage+ shopping, dynamic retargeting, and Pixel plus Conversions API.

Omnichannel in e-commerce: the definition versus multichannel, the shared-inventory mechanism between a store and a till, and when to implement it.

Ecommerce fulfillment: what the service covers, how providers in Poland price it, and when outsourcing your warehouse pays off instead of doing it in-house.

An ecommerce SEO audit runs mostly on free Google reports: indexing, Core Web Vitals, rich results, duplicates and Merchant Center data.

Google Merchant Center: site verification, product data, shipping and landing page rules, disapprovals, and Shopify, WooCommerce and IdoSell integrations.

API explained with NBP, KSeF and VIES as examples: REST API, webhooks, OpenAPI, API keys and integration security for business.

Multi-tenant SaaS: single tenant vs multi-tenant, the silo/pool/bridge models, Row Level Security, GDPR and choosing a model for an MVP.

On premise, your own server: the full cost beyond hardware, the end of Windows Server 2016 support, and when the cloud or VPS wins instead.