"Add an add-on or a Google Apps Script and you can manage capacity." Search for how to take bookings with Google Forms and you will reach that answer almost every time. It is half true.
What a form checks when someone hits submit is the total number of responses — not whether that particular time slot is still free. That gap is why double bookings survive however much you build on top. This article walks the free build all the way through first, then covers the manual work that remains, why the double bookings do not go away, whether Google Calendar's own appointment schedule is enough, and where the switch to a booking tool actually pays off.
Contents
- Taking bookings with Google Forms, step by step
- Three manual jobs the build leaves behind
- Why double bookings survive: the form only counts responses
- Before building a form, try Google Calendar's appointment schedule
- Where the switch pays off, and what to check first
- At how many bookings a month does the form stop being worth it
- Replacing it without switching the form off
For the wider picture of running bookings with a very small team, see the Freelancers & small teams resource hub.
Taking bookings with Google Forms, step by step

Google Forms genuinely can take bookings. It costs nothing and needs only a Google account. The build is five steps.
- Create the questions — name, email address, phone, requests. Make the email field required so you can send respondents a copy of their answer
- Turn times into options — a radio list such as "Wed 6 Aug, 10:00". Keep date and time in a single question; splitting them into two lets people select combinations that do not exist
- Set a response limit and an end date — under publish settings, "set end date or response limit" stops the whole form
- Send responses to a spreadsheet — link the responses tab to a sheet and manage the list there
- Enable the automatic reply — respondents receive a copy of their submission
That much automates intake, storage and an acknowledgement. For a small event, or any sign-up where slots do not really compete, this is enough. Problems start when it is used for bookings where one time slot holds exactly one person — consultations, lessons, treatments.
Three manual jobs the build leaves behind

The form takes the application. Turning that into a booking leaves three jobs with a person.
- Copying into the calendar — every response has to be written into your own schedule by hand. Skip it and you will book something else over the same hour yourself
- Confirming — the automatic reply says the response was received, not that the time is confirmed. Someone still has to check and write back
- Reminders and changes — the day-before nudge, reschedules and cancellations all happen outside the form
All three scale with volume. At five minutes per booking, thirty bookings a month is two and a half hours. None of it is visible while you are building the form; it arrives with the traffic.
Removing filled options by hand joins the list. Leave a booked time in the list and it will be chosen again, so every booking triggers a trip into the form to delete the option. Wanting to automate that is where most people start.
Why double bookings survive: the form only counts responses
The automation does exist — add-ons that hide used options, or a Google Apps Script that tracks remaining capacity. Neither gets double bookings to zero, and the reason sits in how a form works.
The limit Google Forms offers applies to the form as a whole. Google's help text reads "enter the maximum number of responses the form will accept" — there is no per-option capacity setting. That is why the same question keeps being asked: how do I give option A fifty places, option B fifty places, and so on.
More importantly, even that single limit is not absolute. Google states it plainly in its own documentation: "if multiple users respond at the same time, responses are accepted regardless of the response limit." (source: Google Docs Editors Help, "View and manage form responses", as of August 2026). The company that built the limit documents that the limit can be exceeded.
So at the moment submit is pressed, the form is not asking whether this slot is still free. It is asking how many responses the form has collected in total. Add-ons and scripts count remaining places outside that moment, which means a second submission arriving before the count finishes goes through. That is why it happens most around a deadline, or right after an announcement email goes out.
The decision that follows is simple. If a clash is an incident in your business, building further on the form is the wrong investment. If a clash just means a follow-up phone call, the form is fine.
Before building a form, try Google Calendar's appointment schedule

Less widely known: Google Calendar has a booking page of its own, called appointment schedules. Because slots come from your calendar's free time, they cannot collide with what is already there. It is worth testing before building anything in Forms.
The free tier is narrow, though. According to Google's help, a personal Google account can create one booking page. Multiple appointment schedules, automatic reminder emails to bookers, checking availability across several calendars, accepting payment for a booking and adding co-hosts all require an eligible Google Workspace subscription or a Google One membership (source: Google Calendar Help, "Compare appointment schedule premium features", as of August 2026).
That is where the paths separate. One booking page, no reminders, no payments — and this solves the problem at no cost. There is nothing further to read. If instead you need separate pages per service, automatic day-before reminders, or payment up front, you are into the paid tier anyway, which is the point at which comparing other options makes sense.
Where the switch pays off, and what to check first

Here is how far each approach carries, across four axes. Find the column your operation resembles.
| Requirement | Google Forms | Forms + script/add-on | Calendar appointment schedule | Booking tool |
|---|---|---|---|---|
| Capacity per time slot | No | Partly (concurrency leaks) | Yes | Yes |
| Clash check against existing events | No | No | Yes | Yes |
| Automatic reminders | No | Partly (self-built) | Paid tier | Yes |
| Payment up front | No | No | Paid tier | Yes |
| Several booking pages | Yes | Yes | One on the free tier | Yes |
| Embedding in your own site | Yes | Yes | Limited | Varies by tool |
The last row is the one people miss. If you need the booking form embedded directly in your own website, Google Forms remains a strong option. Some dedicated tools do not offer an embed at all and are shared by link or QR code instead. If embedding is a requirement, check that first.
Four things to compare otherwise:
- Does a chosen slot close immediately, so nobody else can take it?
- Does it check against your existing calendar automatically?
- Can you rebuild your intake questions — the ones the form was asking?
- Is there a per-booking charge on top of the monthly fee?
As one example of a tool meeting those four, here is SailLab.
SailLab

SailLab is a Japan-built booking system that combines intake with calendar checking. The questions you were asking in the form move across, and slot clashes are handled by the booking page itself.
- Intake form builder: short text, long text, email, phone, number, dropdown, radio, checkbox, date and time fields, with required/optional flags and validation. Save a set as a template and reuse it across booking pages
- Calendar checking: connect Google Calendar and Microsoft Outlook and choose per calendar which ones count for conflicts. Events created outside SailLab are excluded from your open slots too
- Capacity and waitlist: for event-style slots where several people attend the same time, set a capacity and a waitlist (Light plan and above)
- Automatic reminders: set days or hours before per booking page; the same mechanism sends follow-ups after the meeting
- Payment up front: connect Stripe for card payment at booking time, or issue an invoice for later payment (Standard plan and above)
Settings are per booking page, so splits like these are quick to set up:
- One-to-one consultations and lessons: a one-person-per-slot page built from calendar availability, with a reminder the day before
- Information sessions and trials: an event-style page with capacity — full slots stop being selectable and overflow goes to the waitlist
| Plan | Monthly (excl. tax) | Events with capacity | Payment up front |
|---|---|---|---|
| Free | ¥0 | — | — |
| Light | ¥1,000 (¥800/mo billed annually) | Yes | — |
| Standard | ¥1,500 (¥1,200/mo billed annually) | Yes | Yes |
| Professional | ¥2,800 (¥2,240/mo billed annually) | Yes | Yes |
There is no per-booking charge. If you collect payments, SailLab's commission on collected revenue is 0% on Professional and 3% on Standard; Stripe's own processing fees apply on top in both cases (as of August 2026 — see the pricing page). Note that booking pages are shared by link and QR code; there is no embed for your own website. It suits individuals and small teams who need one-person-per-slot bookings to hold reliably.
At how many bookings a month does the form stop being worth it

The decision is a multiplication. Assume five minutes per booking for the three manual jobs above — copying, confirming, reminding.
For one-person-per-slot consultations at thirty bookings a month, that is 5 minutes × 30 = 2 hours 30 minutes. At an hourly rate of ¥3,000, ¥7,500 a month, or ¥90,000 a year — before the option-deleting and before the apology-and-rebook when a clash happens. Against a booking tool at ¥1,000–1,500 a month, the crossover lands somewhere above ten bookings a month.
If your volume is a handful a month, stay on the form. The real dividing line is not whether bookings will grow — it is whether a clash counts as an incident. With one person per slot, a single double booking costs you trust regardless of volume.
For context, using cloud tooling for this kind of work is no longer unusual: 80.6% of companies used cloud services as of 2024, with schedule sharing among the most common uses (source: Ministry of Internal Affairs and Communications, "2025 White Paper on Information and Communications", published July 2025, based on the Communications Usage Trend Survey; respondents are companies, so sole proprietors are not in the sample). Adding a tool is not, in itself, an unusual call.
Replacing it without switching the form off
Nothing about the form you are running has to stop. Move only the bookings where a clash hurts and let the rest keep running alongside — that is the order least likely to go wrong.
| Order | What moves | Why |
|---|---|---|
| 1 | One-person-per-slot bookings (consultations, private lessons, treatments) | A clash is immediately an incident — move these first even at low volume |
| 2 | The intake questions | Copied across as-is, responses look the same and no announcement text needs rewriting |
| 3 | Capacity-limited sign-ups (information sessions, trials) | Applications cluster near the deadline, where double booking is most likely |
| — | Surveys and enquiries | No slot to contest, so there is no reason to move them |
Capacity and waitlist design is covered in the seminar booking system guide, and reducing day-of absences with payment up front in the prepaid booking guide. A one-person-per-slot booking page can be created from a free account (no credit card required).
Automate your booking flow with SailLab
Calendar sync, automatic reminders, and prepaid bookings — all in one booking page. The Free plan takes 3 minutes to set up, no credit card required.