Google Calendar Sync

You can integrate Bookly PRO with Google Calendar so that all new bookings created in Bookly Calendar will be automatically copied to the Google Calendar, and vice versa.

Bookly PRO offers three modes of Google Calendar synchronization:

Before you select the synchronization mode, please read carefully the following instructions to set up the connection between two calendars.

To set up the connection, you'll need to enter your Client ID and Client secret in Bookly > Settings > Google Calendar.

To find your client ID and Client secret, do the following:

1. Go to the Google Cloud Platform (

2. Select a project or create a new one.

3. In the sidebar on the left, select Library. In the list of APIs look for Calendar API or click this link ( to go directly to Calendar API and make sure it is enabled.


4. Click OAuth consent screen tab, select user type and provide the necessary information (App name, User support email and Developer contact information). Then click "Save and continue". You can leave the following settings unchanged.



5. We recommend to change the publishing status of your app to In production by clicking on the "Publish app" button.


6. In the sidebar on the left, select Credentials (, and in Create credentials drop-down menu select OAuth client ID.


7. Select 'Web application' and create your project's OAuth 2.0 credentials by providing the necessary information.


For Authorized redirect URIs enter the Redirect URI found in Bookly menu > Settings > Google Calendar. Click Create.


8. In the popup window look for the Client ID and Client secret. Use them in Bookly menu > Settings > Google Calendar.


Important: for two-way sync, your website must use HTTPS. Google Calendar API will be able to send notifications to HTTPS address only if there is a valid SSL certificate installed on your web server.

When you're finished configuring the settings, go to the Staff Members section, select your employee, switch to Advanced tab and enable the connection to synchronize staff member's appointments with Google Calendar.


Finally, log in to your Google account and give the permission for plugin to access your Google Calendar.



There is currently a limit of 50 refresh tokens per user account per client. If the limit is reached, creating a new refresh token automatically invalidates the oldest refresh token without warning. This limit does not apply to service accounts.

When you connect staff members to their Google Calendars you may see a warning that Google hasn't verified the app.

This screen means that your Google Application hasn't gone through the Google verification process. You may continue the process of connecting your staff, click on the Advanced and proceed.

To avoid this warning in future, you should go through a verification of your app on the consent screen of your application.

For current users, if experiencing syncing issues after adding new staff members:

Go to Bookly Settings > Google Calendar > Redirect URI. Copy the updated link and paste it in your Google API Console > Credentials > Web Application > Authorized Redirect URIs.

You did it in the past, and as the URI may change with regular updates of the plugin, you will occasionally need to tell Google API what new URI to authorize.

Doing this will most likely solve the sync issue. If it persists, please let us know at

Bookly allows you to set up the way your booking information will be displayed in Google Calendar.

Template for event title

Choose details for Google Calendar event description that is created via Bookly. Available codes are {service_name}, {category_name}, {staff_name} and {client_names}.

Template for event description

Use available codes for the appointment-related information that will be displayed in Google Calendar.

Starting from Bookly PRO 3.6 you should use {participant.client_email} instead of {client_email} and so on inside the {#each participants as participant}{/each} structure when you configure your GC event description. This was made to better display appointment details in Google Calendar for group bookings.

One-way sync

If you enable this type of sync, all new appointments created in Bookly Calendar, including custom fields, and any further changes will appear in Google Calendar.

Two-way front-end only

If you enable this type of sync, all updates in Bookly will automatically appear in your Google Calendar. Events that were initially created in Google Calendar will not be copied and displayed in your Bookly Calendar. Google Calendar events will be taken into account when offering available time slots to clients in your booking form. So if you have an event in Google Calendar, then the corresponding time slot won’t be available for booking because Bookly will consider this time slot as busy.

Please note that it can take some time to sync all appointments between two calendars which can result in a delay when loading the Time step in a booking form. We recommend that you limit the number of fetched events related to this feature as too many events in Google calendar may lead to a lack of memory in PHP when Bookly tries to fetch all events.

Two-way sync

If you enable this type of sync (available with installed Advanced Google Calendar (Add-on) for Bookly), you’ll get a full two-way synchronization which allows keeping all your Bookly calendar data and any further schedule updates in sync with Google Calendar. All new bookings created or updated in Bookly Calendar will be automatically reflected in the Google Calendar, and vice versa.


It is necessary to configure settings in Google Calendar first, before selecting this type of sync and clicking Save. Your website must use HTTPS.

Please read the following instructions carefully, and visit this page for more details about the implementation of calendar data "incremental synchronization".

Bidirectional sync consists of two stages:

1. Initial full sync is performed once at the very beginning in order to fully synchronize the client’s state with the server’s state. The client will obtain a sync token that it needs to persist.

The first stage of the initial full sync will be performed at the time of the two-way sync activation. When you click Save, all appointments from Bookly will be copied to Google Calendar, and all appointments from Google Calendar will be copied to Bookly.

In the Sync appointments history field, you can specify how many days of past calendar data you wish to sync. For example, if you enter 1 in this field, both calendars will sync appointments history starting from yesterday.

Initial sync may take a long time depending on the number of events to be synchronized.

2. Incremental sync is performed repeatedly and updates the client with all the changes that happened ever since the previous sync. Each time, the client provides the previous sync token it obtained from the server and stores the new sync token from the response.

Incremental sync starts functioning after initial full sync has been performed. Bookly triggers incremental sync when Google Calendar informs your Bookly Calendar about changes by push notifications.

Registering your domain

You must register the domain for any URLs you plan to use to receive push notification messages. In addition, before you register a domain, you must first verify that you own it. This step is an abuse-prevention measure to stop anyone from using push to send messages to someone else’s domain.

Step 1: Verify that you own the domain

Before you can register your domain, you need to verify that you own it. Complete the site verification process using Search Console. For more details, see the site verification help documentation.

Step 2: Register your domain

To register a verified domain name as one of the allowed domains for your project, do the following:

1. Go to the Domain verification page in the API Console.

2. Click Add domain.

3. Fill in the form, then again click Add domain.

At this point, the Google API Console checks all domains in the list against the ones that you have verified in Search Console. Assuming that you properly verified all the domains, the page updates to show your new list of allowed domains. You now can use any of these domains to receive push notifications.

If you want to get more technical information, follow these links:

Manual synchronization

You can force a new incremental sync by clicking on the google-calendar-manual-sync-btn.png button on the top right of the Bookly Calendar.


When you create All day event in Google Calendar, its status is set to Free by default. You should change its status to Busy to display this event in Bookly Calendar.



See these articles for troubleshooting the most common issues with Google Calendar sync:

I am unable to connect a staff member to Google Calendar

There are discrepancies between my website and Google Calendar. What can I do?

Google Calendar sync has stopped working properly after an update. How do I fix it?

My google calendar synchronization is not working. I see this error in Staff Members tab: “Could not json decode the token.”

Was this article helpful?
2 out of 5 found this helpful

Articles in this section