How to add Google Calendar appointment booking to your website: a step-by-step guide¶
You have a website, people visit it, they read what you do, they decide you are the right professional for them. And then they stop, because booking means calling you. Half of them never will.
The good news is that Google Calendar already includes a tool that fixes this, and it costs nothing: the booking page, which you can put straight into your own website. The client picks a time, confirms, and the appointment lands in your calendar on its own.
In this guide we go through setting it up from start to finish, without touching any complicated code, and above all how to configure it so that it gets along with your practice's WhatsApp assistant — because the number one risk of having two booking channels is ending up with two people at the same time.
Google Calendar appointment booking: what you need before you start¶
Only a few things, all of them simple:
- A Google account. The free one you use for Gmail is fine.
- A computer. The booking page can only be created in a browser, not from the phone app.
- The ability to edit a page on your website. If someone else looks after your site, you will need to send them a line of code to paste. Two minutes of their time is enough.
It is worth being clear about the limits straight away, so you don't discover the surprises halfway through. With a free Google account you can create a single booking page, which means a single appointment type. To have several of them (first visit, follow-up session, online consultation), to send reminders by email, or to take a deposit at the time of booking with Stripe, you need a paid Google Workspace plan. The differences are summarized on Google's official appointment scheduling page and in the support article on appointment schedules.
For most professionals working on their own, the free version is more than enough to get started.
How to create a Google Calendar booking page in 7 steps¶
Follow these steps in order. The full procedure is also documented in Google's official guide on creating an appointment schedule.
- Open Google Calendar on a computer. Go to calendar.google.com and sign in with your account.
- Click "Create", top left, and choose "Appointment schedule". A panel opens on the left: that is where you build everything.
- Give it a title. This is the name the client sees on the page. "First visit" or "Physiotherapy session" works better than "Appointment".
- Set the appointment length. Choose how long the service actually takes, not how long it ideally would. If a first visit takes 60 minutes out of your day, put 60.
- Set your general availability. Enter the days and time ranges when you accept bookings. You can add two ranges on the same day, for example morning and afternoon, with the lunch break in between.
- Configure the booking form. This is the most important step of all, and we come back to it in a moment. By default Google asks for first name, last name and email: you need to add the phone number.
- Open the advanced settings and adjust three things: the buffer time between one appointment and the next, the maximum number of bookings per day, and the booking window, meaning how far in advance someone has to book at the earliest. Setting a minimum notice of at least a few hours saves you the surprise of an appointment that appeared while you were already at work.
Then save. The page is live.
The field not to forget: the phone number¶
In the booking form, click "Add an item" and add the Phone number field, ticking the Required box.
As a label, don't just write "Phone". Write something that explains what it is for:
WhatsApp number where you want to get your reminder
There is no need to ask for a particular format: however the client writes it is fine. If you often get clients from abroad, though, add "with the international country code", because a number written without one is interpreted based on the country your practice is in.
It looks like a trivial detail. It isn't: it is the difference between a client who gets the reminder on WhatsApp the day before and one who forgets the appointment. We'll see why in a moment.
How to embed the Google Calendar widget in your website¶
Once the page exists, it has to go where people will find it. Google gives you the code ready made: all you do is copy and paste it. The official procedure is described in Google's guide on sharing and embedding your booking page.
- In the calendar grid, click the block for your appointment schedule.
- Click Share.
- Choose the Embed on website tab.
- Choose how it should look:
- Button with pop-up: a button appears on the site ("Book an appointment") and the booking page opens on top of it, in a window. You can customize the button text and color.
- Embedded booking page: the calendar shows up right inside the page, as if it were part of it.
- Click Copy code.
- Paste the code into your site, inside an HTML or custom code block. On WordPress it is called "Custom HTML", on Wix and Squarespace "Embed code". If you paste it into an ordinary text block you will see the code printed on the page instead of the calendar: that is the most common mistake, and it is fixed by changing the block type.
Which of the two should you pick? If you have a "Contact" or "Book" page, use the embedded page: whoever gets there has already decided. If instead you want to put the invitation to book inside an article or on your services page, use the button with the pop-up: it doesn't break the reading flow.
One practical tip: try the result on a phone before considering it finished. Most of your clients will book from there.
Google Calendar and a WhatsApp assistant together: four rules for never taking two appointments at the same time¶
Here we get to the part almost nobody explains. If you take bookings from your website and you have an assistant booking on WhatsApp, you have two channels writing into the same calendar. It works perfectly well, on one condition: that both of them look at the same calendar and read it the same way.
Wably reads real availability straight from Google Calendar before it offers a time, and checks it a second time at the instant it writes the appointment. That means a slot already taken by a booking from the website will never be offered to the client writing on WhatsApp. And the other way around: an appointment made in chat occupies the slot and disappears from the booking page on your site.
For this to genuinely work, four rules.
Rule 1: one calendar only. Create the appointment schedule on your main calendar, and connect that exact same calendar to Wably. Don't use one for the website and one for the practice. Automatic conflict checking across several calendars at once is a feature of the paid Google Workspace plans, whereas working on a single calendar works on any account and never breaks. How to connect your calendar to Wably is covered in the documentation on the Google Calendar integration.
Rule 2: events have to show as "Busy". When you block time on your calendar — for a meeting, for a course, for a morning off — check that the event's Availability setting is on Busy and not Free. Events marked "Free" are ignored by every booking system, Google's included, and that time will stay bookable. All-day events, on the other hand, always block the whole day.
Rule 3: turn on calendar checking. In the appointment schedule settings, make sure the Check calendars for availability option is on. That is what stops the page offering times when you are already busy. How it works is explained in Google's guide on availability checking.
Rule 4: line up lengths and breaks. If a session in Wably lasts 45 minutes with a 15-minute break, set the same values in the Google appointment schedule. If the two channels use different grids, you end up with ten-minute gaps that are impossible to fill. Wably's lengths and breaks are set on the Business hours page of the dashboard.
WhatsApp reminders for people who book from the website too¶
This is the reason I was making such a fuss about the phone number format a few lines ago.
Wably syncs your calendar periodically: when it finds an appointment on the calendar that it didn't make itself, it recognizes it, records the client and adds them to your address book. From that moment that person joins the normal cycle, which means they get the automatic WhatsApp reminder before the appointment, and after the visit the review request.
Recognizing the client happens by itself. Name and email are read from the event's guest, which is exactly where Google's booking page writes them. You don't have to adopt any convention, any code in the notes, any particular way of writing the title.
What is missing, and what you have to ask for in the form, is the phone number: without it, the appointment stays in the calendar but there is no channel to send the reminder on. The format is not a problem, Wably recognizes the number however it is written: +1 555 123 4567, 001 555 123 4567, (555) 123-4567, 555-123-4567. When a number arrives without an international country code it is completed based on the country your practice is in, so check just once that the correct country and time zone are set in your dashboard profile.
Make one test booking, just once. Book from your own page using your own number, then check two things: that the appointment showed up in your calendar and that you show up among the contacts in the dashboard. If you are there, the chain works and you will never have to think about it again.
Those two minutes are worth spending: a reminder sent the day before is the cheapest way there is not to lose a slot, as we covered in the article on what managing appointments by hand really costs.
Website and WhatsApp: two front doors, one calendar¶
It is worth understanding what each of the two channels does, because they serve different people.
The booking page on your website catches people who have already decided. They have read who you are, they know what they want, all they are looking for is a time. For these people the form is perfect: three clicks and they have booked, even at eleven at night.
The assistant on WhatsApp catches everyone else, and they are the majority. The ones who, before booking, want to know whether you treat their problem, how much it costs, whether there is parking, whether they need a referral, whether you could see them on Saturday. A booking form does not answer those questions: whoever has them closes the page and writes to somebody else. A conversational AI assistant does answer, and in the same conversation it takes the person all the way to booking.
Then there is the whole life of the appointment after the booking: the reschedule, the cancellation, the "can I come half an hour later?". Those requests never arrive on the website. They arrive on WhatsApp, and if nobody answers they turn into phone calls, or they turn into no-shows.
The two together cover the whole path, and syncing with Google Calendar keeps everything lined up without you having to check anything. If you are also weighing up traditional practice management software, we compared the two approaches in the article on practice management software versus a WhatsApp assistant.
Five mistakes to avoid¶
- Creating the appointment schedule on a secondary calendar. It is the number one cause of double bookings. Use the main calendar, the one you also connected to the assistant.
- Marking personal commitments as "Free". That time stays bookable and you find it taken by a client.
- Not asking for the phone number. Without a number you cannot send reminders, and without reminders the no-shows stay exactly where they are.
- Not setting a minimum booking notice. Without it, somebody can book for twenty minutes from now.
- Publishing without testing on a phone. The embedded box on small screens always needs checking.
Frequently asked questions¶
Is the Google Calendar booking page free? Yes. With a free Google account you can create one booking page for one appointment type and put it on your site at no cost. The extra features, such as several booking pages, email reminders and upfront payments, require a paid Google Workspace plan.
Do I need to know how to code to put the calendar on my site? No. Google generates the code for you: all you have to do is copy it and paste it into an HTML block on your website page. If somebody else manages the site, two minutes of their time is enough.
Can I use Google Calendar for bookings from my site and Wably on WhatsApp at the same time? Yes, and it is the recommended setup. Both work on the same Google Calendar: Wably reads real availability before offering a time, so it never offers a slot already booked from the site, and appointments made in chat disappear from the booking page.
Do people who book from the website get the WhatsApp reminder? Yes, if their phone number is in the calendar event. Wably reads name and email from the event's guest and recognizes the number in whatever format it was written in, so the only thing to do is make the phone field required in the booking form.
What happens if two people book the same time at the same moment? Each slot on the booking page can only be booked once and disappears as soon as somebody takes it. On the WhatsApp side, Wably re-checks availability at the exact instant it writes the appointment, so a slot taken a few seconds earlier does not get confirmed.
Can I have different appointment types, for example first visit and follow-up? With a free Google account you can create only one booking page, so one appointment type. On WhatsApp, on the other hand, the assistant works out from the conversation which service is needed and applies the right length without you having to create different pages.
In short¶
Put the Google Calendar booking page on your website: it is free, it takes a quarter of an hour to set up, and it recovers the bookings of people who would never call you. Then remember that the website is only one of the two doors, and it is not the one most people come in through.
Wably answers on the other one, the one your client already has open on their phone, and it writes into the same calendar. Try it free for 30 days and see how many appointments it handles on its own, or take a look at how syncing with Google Calendar works.