Skip to main content

Providing availability with Google Calendar

The unique Google Calendar 3-way integration.

info

Requires the presence of a connected Google Account.

info

Requires the presence of one or more availability plans.

Introduction

Imagine harnessing the power of Google Calendar, not just as a tool to mark when you're busy, but to define when you're available. With TheBooking, this becomes a reality.

Traditionally, an event in Google Calendar signifies a busy slot. But what if, by creating an event, you're indicating your availability instead? This twist transforms Google Calendar from a mere scheduling tool to a dynamic availability planner.

We've termed this the 3-way integration, where a Google Calendar serves three distinct purposes:

  1. Highlighting personal, busy times.
  2. Acting as a destination for events post-reservation.
  3. Signifying available time slots 🚀

Given that a single Google Account can house multiple calendars, the possibilities for tailored scheduling are vast.

The best part? Your entire booking system can be managed via Google Calendar, and thanks to its widespread compatibility, you can even use your favorite mobile calendar app.

Ready to dive in?

Connecting calendars to availability plans

By designating a Google Calendar as a source for an availability plan, you can schedule available slots for all services linked to that plan.

To designate a calendar as a source:

  1. Navigate to Availability > Google Accounts.
  2. Find the Google Account associated with the calendar.
  3. Expand the account row to view the calendar, then further expand the calendar to see a list of availability plans.
  4. Identify the relevant availability plan and activate the Source checkbox.

Marking Calendar as Source

Any event added to that calendar will now signify available time for the associated plan and its linked services.

How to set in-calendar availability

To set up time slots in a source Google Calendar, just create events on it that cover the desired available times.

Let's proceed with a practical example.

We want to provide some availability for our services. In this occasion, we want to be available on:

  • November 15th, from 9:00 AM to 1:00 PM
  • November 17th, from 9:00 AM to 1:00 PM and again from 2:00 PM to 5:00 PM

Therefore, we are going to create events that cover those date and times.

Note

When creating availability events ensure that they have the BUSY property in place. An event needs to be BUSY even if we are going to consider them as available time, because of how the Google API works. An event that is marked as FREE can't be seen by the plugin at all.

Where to check?

Google Project 1

Availability Events

Now that we have created the events in our source Google Calendar, let's explore how they are presented on the frontend of our website.

In the image below, you can see the booking calendar with available time slots:

Calendar with slots

All services linked to the availability plan, for which the Google Calendar serves as a source, are displayed. Our demo instance of the plugin shows the number of available slots for each service within the colored dot representing the service (this display behavior can be customized through the frontend customization).

You might notice that on the 15th of November, there is only one available slot per service. To understand why this is the case, let's continue and explore the booking process by selecting that day. We will examine the available time slots in more detail.

Example slot

There only one slot that spans from 9:00 AM to 13:00 AM, covering the entire availability period. This is because the service is currently configured that way.

But what if this is not what we intended for the Dental Care service? Our goal is to offer 1-hour time slots that fill the availability period.

To achieve this, we can modify the slot duration for that service, and observe how it appears after the change.

Split slots

Recap

By creating events in Google Calendar and linking them to specific services in TheBooking, the plugin automatically generates time slots based on each service's configuration.

This simple workflow can be adapted to fit many different needs, but it also raises some questions:

  • How can we differentiate available times for the services?
  • How do repeating events in Google Calendar affect time slot availability?

Differentiating availability

If you need distinct availability for different services, create separate availability plans for each service with unique available times. Then, link a distinct source Google Calendar to each plan.

Differentiating availability

Use repeating events

We can use Google Calendar's repeating events feature to plan the availability of our services in advance and with great flexibility. This means we don't have to manually create availability for every day, week, or month.

Repeating events

For example, let's say we want to offer the same availability for our services every Tuesday and Thursday from 9:00 AM to 1:00 PM. We can create a repeating event in Google Calendar for this time frame and set it to repeat every week on those days. The plugin will automatically convert these repeating events into time slots for our services, according to their specific configurations.

Note that when creating repeating events, we have to be mindful of any changes to our services' availability, as they will apply to every instance of the repeating event. We can always edit or delete specific instances of a repeating event if needed.

Slot commands (advanced)

There may be instances where you'd like to temporarily adjust specific service settings directly via Google Calendar for a particular event duration.

To do this, you can utilize slot commands within the event title. These commands are valid in any Google Calendar linked to an administrator's Google Account. If you're utilizing Service Providers, to employ slot commands in a Google Calendar tied to a Service Provider's Google Account, ensure the Allow service providers to use override commands option is enabled under Settings > Google Calendar.

To initiate the use of slot commands, prefix the event title with a double underscore followed by a space:

"__ "

Subsequently, you can incorporate slot commands in the title to modify certain service attributes.

Currently supported slot commands include:

  • Price: modifies the service price. Example: __ price=10
  • Tickets: modifies the service units. Example: __ tickets=5
  • Service: specifies a particular service from those linked to the availability plan associated with the calendar. This way, the event will produce availability slots exclusively for that service. Both service name or service ID can be used. Example: __ service=My Service 1

Furthermore, when an event title is prefixed with the double underscore, providing a location for that event will override the default service location, if one exists.

Slot commands can be used together as well:

__ price=10, tickets=5

caution

Slot commands increase flexibility, but they might be expensive in terms of network load and Google API quota. Use them with caution.