SailLab
Back to resources

Google Forms as a booking system: how to build one, and where it breaks

21 min read Ken Morimoto / SailLab Editorial
Google Forms as a booking system: how to build one, and where it breaks

"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.

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

Filling in a Google Forms booking form on a laptop

Google Forms genuinely can take bookings. It costs nothing and needs only a Google account. The build is five steps.

  1. Create the questions — name, email address, phone, requests. Make the email field required so you can send respondents a copy of their answer
  2. 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
  3. Set a response limit and an end date — under publish settings, "set end date or response limit" stops the whole form
  4. Send responses to a spreadsheet — link the responses tab to a sheet and manage the list there
  5. 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

Checking a printed list of form responses by hand

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.

What Google Forms checks at submit versus what a booking tool checks A form checks the total response count while a booking tool checks whether the specific time slot is still free Google Forms Checked at submit Total responses to the form Per-slot capacity is not checked Simultaneous submissions can exceed the limit Double bookings remain A booking tool Checked at submit Is this slot still free Existing calendar events too Taken slots never appear as an option Slots cannot be contested The difference is not feature count — it is what gets checked at the moment of submit
Two things called a "booking form" can be checking entirely different questions.

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

Checking available booking slots in a calendar on a smartphone

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

Reviewing booking tool settings on a laptop

Here is how far each approach carries, across four axes. Find the column your operation resembles.

RequirementGoogle FormsForms + script/add-onCalendar appointment scheduleBooking tool
Capacity per time slotNoPartly (concurrency leaks)YesYes
Clash check against existing eventsNoNoYesYes
Automatic remindersNoPartly (self-built)Paid tierYes
Payment up frontNoNoPaid tierYes
Several booking pagesYesYesOne on the free tierYes
Embedding in your own siteYesYesLimitedVaries 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

Configuring a SailLab booking page and its intake questions

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
PlanMonthly (excl. tax)Events with capacityPayment up front
Free¥0
Light¥1,000 (¥800/mo billed annually)Yes
Standard¥1,500 (¥1,200/mo billed annually)YesYes
Professional¥2,800 (¥2,240/mo billed annually)YesYes

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

Calculating booking volume and admin time with documents and a calculator

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.

OrderWhat movesWhy
1One-person-per-slot bookings (consultations, private lessons, treatments)A clash is immediately an incident — move these first even at low volume
2The intake questionsCopied across as-is, responses look the same and no announcement text needs rewriting
3Capacity-limited sign-ups (information sessions, trials)Applications cluster near the deadline, where double booking is most likely
Surveys and enquiriesNo 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.