Back to Insights
Practice Growth7 min

Let patients book on your website, and show them when you're free

Patients give up when they have to click through empty days, or when your website can only send them somewhere else. A colour-coded booking calendar, a booking widget for your own site and a book button for everywhere else fix both.

It is Sunday evening, and someone with a sore shoulder finally decides to do something about it. They find your website, like what they read, and tap “Book now”. A new page opens on a different address with a different look. They pick a service, pick a physiotherapist, and land on a calendar where every day looks equally open. They tap Tuesday: nothing. Wednesday: nothing. Thursday has one time, at 7:30 in the morning. By Friday they have closed the tab and decided to call on Monday, if they remember.

Two things went wrong there, and neither was the patient's fault. Your website, the page you paid for and keep up to date, could only send them somewhere else. And the calendar made them guess. We have just fixed both.

A calendar that answers before anyone clicks

On the “Pick a date and time” step of your booking page, every day of the month is now coloured before the patient chooses one. Green means there are times open. Amber means three or fewer are left. A day with nothing to book is greyed out and struck through, and it cannot be picked at all.

Before
Every future day looks the same
‹October 2026›
MoTuWeThFrSaSu
12345678910111213141516171819202122232425262728293031
No available slots on this date. Try another day.
Now
Coloured before the patient clicks
‹October 2026›
MoTuWeThFrSaSu
123456789101112131415161718192021222324252627282 times left293031
AvailableFew times leftUnavailable
The same month, before and after. Green days are open, amber days have three or fewer times left, and struck-through days cannot be picked at all.

A small legend under the calendar explains the colours, and hovering over an amber day says exactly how many times are left. If a whole month is booked out, the calendar says so and offers a “Check next month” link, instead of leaving the patient to flip through it day by day.

The colours are only useful if they are right, so they are worked out from the same rules as the list of times the patient sees next. That means the provider's working hours, their days off and custom-hours days, the buffer between appointments, their daily cap, how far ahead patients may book, and any weekdays you have closed to online booking. A green day won't open onto an empty list. Times that have already started do not count, and “today” is today in your practice's time zone, not the patient's.

The colours are worked out for the service and provider the patient has chosen, so a 90-minute assessment and a 30-minute follow-up can colour the same day differently. If the colours ever fail to load, every future day simply shows as plain and pickable, the way it did before. Booking never depends on them.

Your website can take the booking itself

The second fix is for the dead end. The booking widget puts your whole booking flow on your own website, in the middle of whatever page you choose: your home page, a treatments page, a page for one physiotherapist. The patient never leaves your site.

🔒 www.lakesidephysio.example/book
Lakeside Physio
Back to moving, without the wait.
Sports injuries, back pain and post-surgery rehab in the heart of Lakeside.
Book your visit
Genkō widget
Step 3 of 5
Pick a date and time
‹October 2026›
MoTuWeThFrSaSu
12345678910111213141516171819202122232425262728293031
AvailableFew times leftUnavailable
Available times
9:00 AM9:45 AM11:15 AM2:30 PM
Scheduling by Genkō
// your page, after a booking
genko:booked { paymentRequired: false }
12 Harbour Road · Mon–Fri 8:00–18:00
The booking widget in the middle of a practice's own page. It grows and shrinks with each step, and tells the page when a patient has booked.

It is the same flow as your patient portal, with the same five steps: service, provider, date and time, details, and confirm. It carries the same accent colour and the same coloured calendar. Each step is a different height, so the widget resizes itself as the patient moves through it. There is no inner scrollbar and no blank gap at the bottom of your page.

Widget on its own
1
Service
2
Provider
3
Date & time
4
Your details
5
Confirm
Service and provider preselected
1
Service
2
Provider
3
Date & time
Starts here
4
Your details
5
Confirm
Sign-in and online payment open in a new tab
The five steps are the same ones the portal uses. Preselect a service and a provider (a "Book a sports massage with Sam" button, say) and the flow opens straight on the calendar.

You can also preselect a service, a provider or both. Choose both and the widget opens straight on the calendar, which is ideal for a page about one treatment or a button on one provider's profile. Choose only a service and the patient starts by picking a provider.

Two parts of the flow open in a new tab on purpose. Signing in to an existing patient account happens on your portal, not inside your website. And if a service needs payment upfront, the widget holds the time and opens the secure payment page in a new tab, because payment pages refuse to load inside another site. The appointment is confirmed once it is paid.

The widget always runs signed out. Even if a visitor is signed in to your portal in another tab, the widget never acts with that login, so nobody can trick a signed-in patient into booking from a page they did not mean to use.

A book button for everywhere else

Not every place you reach patients can hold a booking flow. An email signature can't. A link-in-bio page can't. Some website builders will only let you add a button. For those, there is the book button: a styled link that opens your booking page in a new tab.

Book an appointmentSolid · Rounded · Large
Book nowOutline · Pill · Medium
Book onlineSolid · Square · Medium
Agendar una citaSpanish page · Pill · Small
Works anywhere a link does
Email signature
Dr. Leah Moreno, PT
Lakeside Physiotherapy · +1 555 0187
Book an appointment
Link-in-bio page
@lakesidephysioBook nowOur treatmentsFind us
Every button here is the real generated code. It is one link with its own styles and no script, so it keeps its look in a site builder, an email signature or a social profile.

You choose the text, the button colour and the text colour, a solid or outline style, a square, rounded or pill shape, and three sizes. You also choose whether it opens the English or the Spanish version of your booking page, which is handy if you write to some patients in each language. The colour starts as your portal's accent, so it matches from the first click.

The button is a single <a> link with its styles written into it. There is no script and no stylesheet to load, which is why it looks the same wherever you paste it. If you only need the address, the direct link is there too, ready for a text message, a QR code or a social profile.

Built from one panel, with a live preview

All three are set up in Settings → Integrations → Scheduling → Online booking. Pick any service or provider to preselect at the top, then switch between the booking widget, the book button and the direct link. Whatever you preselect applies to all three.

🔒 www.getgenko.com/dashboard/lakeside-physio/settings/integrations
Settings · Integrations · Scheduling
Online booking — website widget & book button
Let patients book from your own website: embed the booking flow, add a book button, or share the link.
Preselect a service
Any service (patient chooses)▾
Preselect a provider
Any provider (patient chooses)▾
Booking widgetBook buttonDirect link
Button text
Book an appointment
Booking page language
English▾
Button colour
#0f766e
Text colour
#ffffff
Style
SolidOutline
Shape
SquareRoundedPill
Size
SmallMediumLarge
Preview
Book an appointment
Copy<a href="…/portal/lakeside-physio/book" target="_blank" style="…">Book an appointment</a>
Settings → Integrations → Online booking. The colour starts as your portal's accent, the preview is the exact code you copy, and the widget tab shows the live booking flow.

The button preview is drawn from the exact code you copy, so what you see is what you get. The widget tab shows the real booking flow running live. That means appointments made in the preview are real, so use a test patient if you want to try it end to end. When you are happy, copy the snippet and paste it into your site:

Widgetiframe
<div data-genko-book="lakeside-physio"></div>
<script src="https://www.getgenko.com/book.js" async></script>

// optional: count bookings in your analytics
<script>
  document.querySelector('[data-genko-book]')
    .addEventListener('genko:booked', () => {
      window.dataLayer?.push({ event: 'genko_booked' })
    })
</script>
The whole widget is the first two lines, and the builder fills in your practice and any preselection. The script below them is optional: add it only if you want to count bookings.

That is the whole installation. Every time a patient books, the widget fires a genko:booked event on its container, which you can forward to your analytics if you want to know which page brings in bookings. The event carries no patient information, only whether payment is still due.

Some website builders strip out scripts from anything you paste. For those, tick “My website builder removes script tags” and you get a plain iframe instead. It works the same way, but it has a fixed height and does not fire the booking event. The booking widget guide has the details for both.

What you need, and what to expect

Online booking from your own website is included from the Solo plan up. The widget, the button and the link all open your patient portal's booking flow, so the portal has to be turned on. If it isn't, the panel tells you and links straight to the portal settings. Owners and admins can see the panel.

The widget shows exactly what your public portal already shows: your services, your providers and your open times. Nothing more is exposed by putting it on your website. On Solo and Starter, the widget carries a small “Scheduling by Genkō” line at the bottom; from Group up you can hide it, just as on the portal.

Check pricing for what each plan includes.

Let patients book on your website, and show them when you're free.

The coloured calendar is on every Genkō booking page. The booking widget, the book button and the direct link take a few minutes to set up from Settings → Integrations, on the Solo plan and up.

Read the booking widget guide →

Article Focus

#booking widget for website#embed online booking on practice website#book now button#online appointment booking#availability calendar#patient self-scheduling