---
title: "Docebo Connect for Google Calendar"
slug: "docebo-connect-for-google-calendar"
updated: 2026-04-27T13:38:24Z
published: 2026-04-27T13:38:24Z
canonical: "developer.docebo.com/docebo-connect-for-google-calendar"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://developer.docebo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Docebo Connect for Google Calendar

## Introduction

Docebo Connect is a Docebo module acting as a connector between your platform and third-party SaaS systems, helping you to integrate your platform with more than 400 third-party external systems, reducing the integration effort.

Docebo Connect offers a large catalog of connectors for the most popular SaaS systems, to manage automated workflows (called recipes) shared among systems in order to exchange and share data on the basis of triggers.

> [!NOTE]
> Please note
> 
> Docebo Connect takes advantage of the APIs and business logic already existing in the integrating systems and does not create new ones. In addition, Docebo Connect does not manage SSO flows with Identity Providers (such as SAML, OpenID Connect, etc), JavaScript integrations (such as Google Analytics or Google Tag Manager) or iframe integrations (such as Docebo OEM or Salesforce Canvas).

The Integration for Google Calendar provides a way to allow a Google calendar account to supply invitations for enrolled sessions to the enrolled users. This is achieved through the usage of Docebo Connect and webhooks and provides the advantage of being able to integrate Google Calendar without the use of .ics files allowing automated synchronization to occur in near real-time.

For more information on the definition of terms and concepts used throughout this article, please read [Docebo Connect Glossary of Terms](https://developer.docebo.com/docs/docebo-connect-glossary-of-terms).

## Activating Docebo Connect

To activate Docebo Connect on your platform or sandbox, please reach out to your Docebo account manager.

> [!NOTE]
> Please note
> 
> Depending on the integration requirements, there may be associated costs.

## Before you start

All the recipes for this integration can be found in the project's folder. This folder should be considered a “special folder” as all the recipes contained within are subject to automatic updates. As such, any customizations you make to recipes located within the folder can be overwritten by Docebo. In order to prevent such an occurrence, it is strongly advised to create a new project folder for any recipes you wish to use in production and copy or clone the recipes from the project's folder inside.

Prior to configuring and using the integration, you need to make clones of all the recipes used in this integration. For more information on how to clone and edit a cloned recipe, please see [Docebo Connect: Copying recipes](/v1/docs/docebo-connect-usage-copying-recipes). The list of recipes that need to be cloned can be found in the Recipes chapter of this article. All recipes that call a sub-recipe will require editing, the called sub-recipes can be found in a list inside the recipe description.

## Useful information

Docebo Webhooks are used to send events to Docebo Connect which creates the calendar entry. Please see Creating and Managing Webhooks for further information and to familiarize yourself with this feature of the platform. Other articles which contain useful information and background are:

- Creating And Managing ILT and VILT Sessions
- Managing Advanced Properties for Courses
- Managing The Platform Advanced Settings

To protect users and domains from abusive behavior, Google sets certain limits for Google Calendar. Please see [this article for more information (opens in a new tab)](https://support.google.com/a/answer/2905486?hl=en).

> [!NOTE]
> Please note:
> 
> If the Enrollment Invitations Via External Calendar setting is deactivated for a course after invitations have been sent when the setting was active, any future updates to a session in the associated course where an invitation was previously sent will cause that event to be canceled in the learner's calendar.

## Configuring the integration

In order for the integration to function properly, external calendars must be enabled on your platform. To do so click on the **gears** icon, then click on **Advanced Settings** and click on the **ILT** tab. Find the option Enrollment Invitations via External Calendar and activate the **checkbox**. Next click **Save Changes**.

[Enabling enrollment invitations via external calendar in advanced settings.mp4](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/Enabling%20enrollment%20invitations%20via%20external%20calendar%20in%20advanced%20settings.mp4)

Next you will create the Google Calendar Connection in Docebo Connect and configure its settings. Click on the **gears** icon, find Docebo Connect and click **Manage**.

[Accessing Docebo Connect via the gears menu.mp4](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/Accessing%20Docebo%20Connect%20via%20the%20gears%20menu.mp4)

By default you will open Docebo Connect in the *Project* tab. This tab contains all your projects with their connections and recipes.

In the list of assets, click on Connections and press the **Create Connection** button.

![Pressing create connection](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/1(1).png)

In the list of available connections that follows, find **Google Calendar** and click on it. Select a location to save the Connection within Docebo Connect and press the **Connect** button.

![Connecting the connector](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/2(1).png)

In the pop-up window, choose your Google account that corresponds to the account hosting the calendar you wish to connect. Then press the **Allow** button to grant the appropriate permissions.

Next you will need to adjust the lookup table entries within Docebo Connect. To do so, click on the **Lookup Table** tab and choose the **Google Calendar Settings** table.

Click on the **Add Entry** button and enter the following values:

| Key | Value |
| --- | --- |
| `calendar_id` | (The email address you are using for your Google account that you wish to link) |
| `calendar_name` | The name of the Google calendar to use. This should match the name of the calendar in Google exactly. By default the main calendar is named `primary`. |
| `send_email_notification` | `true` |

Next, in the **integration-settings** Lookup Table, add the following entries:

| Integration | Key | Value |
| --- | --- | --- |
| `GOOGLE CALENDAR` | `ADD_INSTRUCTOR_FLAG` | `true` |
| `GOOGLE CALENDAR` | `NOTIFICATION_MAIL_ID` | The email address of the user to receive notification if any error occurs in a job |
| `GOOGLE CALENDAR` | `LMS_BASE_URL` | The base URL of your Docebo platform, including protocol. > [!TIP] > Examples: > > ```http > https://yourdomain.docebosaas.com > ``` > > or your custom domain, such as: > > ```http > https://training.example.com > ``` This value is used by the Google Calendar recipes to populate the session link in calendar invitations via the `lms_base_URI` shortcode in the message template. |

The key `ADD_INSTRUCTOR_FLAG`, when set to true, adds the instructor as an attendee in the Google Calendar event. If you do not wish to add the instructor as an attendee, set this value to `false`.

The key `NOTIFICATION_MAIL_ID` is the email address of the user (or distribution list, if it has a standard email address and can accept external emails) you wish to receive error messages, should one occur in a job.

The key `LMS_BASE_URL` stores the base URL of your Docebo platform. This value is read by the integration recipes and passed to the Google calendar event template as the `lms_base_URI` shortcode, so it is used to build the session URL shown in the calendar invite body.

Next, click on the *Project* tab and locate the recipe item [Docebo Learn events dispatcher - Webhook](/v1/docs/docebo-connect-for-google-calendar#docebo-learn-events-dispatcher-webhook). Click on the **recipe** and under the Project tab click the **first item**. You will then be presented with a side-bar that contains a URL and a Copy button. Press the **Copy** button to copy the URL to your clipboard.

Next click on the **gears** icon and find Webhooks. Click on the **Manage** link. Within Webhooks click on the **plus** button to create a new webhook.

In the following screen give the new webhook a **name**, **paste the URL** from the Docebo Connect recipe and add the following events:

- Course properties have been changed
- Ext Calendar ILT event changed
- Ext Calendar ILT session changed
- User has been unenrolled from a Learning Plan

Next press the **Save Changes** button. Once you are back at the screen listing your available webhooks, find your webhook, press the **ellipsis** button at the end of the relevant row and select **Activate** to activate the webhook.

[Finding the webhook address in the recipe.mp4](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/Finding%20the%20webhook%20address%20in%20the%20recipe.mp4)

Next you need to update the recipes used by the integration to utilize your Google Calendar Connection. To do so click on the gear icon and click on **Manage** under Docebo Connect.

In the *Project* tab, find the recipes used by the Google Calendar integration and click on a recipe. Next, move to the Connections tab. You will be presented with a notice that Google Calendar requires connection. Click on the **right arrow** which will reveal a box stating that you have an existing connection. In the dropdown menu below this, choose your *Google Calendar* connection. Repeat this process for all the related recipes.

[Updating the recipes to use the correct connector.mp4](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/Updating%20the%20recipes%20to%20use%20the%20correct%20connector.mp4)

After adding the appropriate connection to your recipes click on the **ellipsis menu** next to each recipe and press **Start Recipe**.

Please note that in some cases you can press the **Start Recipe** button immediately after updating the connection in each recipe but as some recipes depend on others to function properly, it is recommended to update the connection for all recipes first, then move on to activating the recipes.

> [!NOTE]
> Please note:
> 
> In order for this integration to work properly, the following recipes need to be started:
> 
> - [Update Google Calendar next sync token in lookup table](/v1/docs/docebo-connect-for-google-calendar#update-google-calendar-next-sync-token-in-lookup-table)
> - [Convert Google Calendar attendees to Docebo Learn attendees](/v1/docs/docebo-connect-for-google-calendar#convert-google-calendar-attendees-to-docebo-learn-attendees)
> - [Get all instructors from event ID](/v1/docs/docebo-connect-for-google-calendar#get-all-instructors-from-event-id)
> - [Add/Remove instructors from attendees](/v1/docs/docebo-connect-for-google-calendar#addremove-instructors-from-attendees)
> - [Docebo Learn events dispatcher - Webhook](/v1/docs/docebo-connect-for-google-calendar#docebo-learn-events-dispatcher-webhook)
> - [Create or Update Google Calendar event](/v1/docs/docebo-connect-for-google-calendar#create-or-update-google-calendar-event)
> - [Delete Google Calendar event](/v1/docs/docebo-connect-for-google-calendar#delete-google-calendar-event)
> - [Get Google Calendar events by Docebo Learn ID](/v1/docs/docebo-connect-for-google-calendar#get-google-calendar-events-by-docebo-learn-id)
> - [RSVP sync from Google Calendar to Docebo Learn](/v1/docs/docebo-connect-for-google-calendar#rsvp-sync-from-google-calendar-to-docebo-learn)
> - [Get all active enrollments by session id](/v1/docs/docebo-connect-for-google-calendar#get-all-active-enrollments-by-session-id)
> - [Get Docebo Learn future events](/v1/docs/docebo-connect-for-google-calendar#get-docebo-learn-future-events)
> - [Update Google Calendar Session Attendances](/v1/docs/docebo-connect-for-google-calendar#update-google-calendar-session-attendances)
> 
> For more information about starting recipes, please see [Docebo Connect: Working with recipes](/v1/docs/docebo-connect-working-with-recipes#starting-a-recipe).

## Steps to take when creating an ILT event

When creating a new course in [Courses Management (opens in a new tab)](https://help.docebo.com/hc/en-us/articles/360020127939), click the **Properties** tab. Under Enrollment Options find Enrollment Invitations via External Calendar and **activate the checkbox** next to Enable external calendars' RSVP feature for all of the sessions of this course in order to enable this course to send invitations to external calendars, such as Google Calendar.

> [!NOTE]
> Please note:
> 
> If you enable the RSVP functionality at course level, after sessions and their events have already been created, those events are not automatically synchronized. To ensure proper synchronization, you need to update or recreate the events manually. For more information see the article [External calendar invitations and RSVPs for ILT courses (opens in a new tab)](https://help.docebo.com/hc/en-us/articles/32055662143634).

If you wish to hide the list of attendees in the external calendar event for all the sessions and events related to this course, check the box labelled **Hide attendees in the external calendar event for all the sessions and related events of this course**.

If you prefer, you can also define this action on a session by session basis by clicking on the **Sessions** tab and then clicking on the session you wish to turn this feature on or off for. In the Properties tab of the session, in the General section you will find Enrollment Invitations via External Calendar. By **checking the box** in this section, you are able to customize this feature. If you have previously checked the box in the Course Management / Properties section, you will find the radio button next to Enable the external calendars' RSVP option for this session selected, with the option being marked as default. Otherwise, if you did not previously turn on Enable external calendars' RSVP feature for all of the sessions of this course then the radio button next to the option Disable the external calendars' RSVP option for this session will be selected and that option will be marked as default. Simply **activating the unselected radio button** will override the default course setting for this particular session.

![Overriding the default course setting for external calendar RSVP function](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/3(1).png)

## Managing the message template

Message templates in Connect allow you to customize the look and content of messages using shortcodes sent to your users via email. For more information about how message templates work and are configured, please see the [Workato knowledgebase (opens in a new tab)](https://docs.workato.com/features/message-template.html#message-template).

### Template details

The message template used by the Connect for Google Calendar recipe makes use of the following inputs and their respective shortcodes:

| Input | Shortcode |
| --- | --- |
| Course ID | `{{#course_id}}` |
| Course name | `{{#course_name}}` |
| Course description | `{{#course_description}}` |
| Session ID | `{{#session_id}}` |
| Session name | `{{#session_name}}` |
| Session name slug | `{{#session_name_slug}}` |
| Session description | `{{#session_description}}` |
| Event ID | `{{#event_id}}` |
| Event name | `{{#event_name}}` |
| Event description | `{{#event_description}}` |
| Webinar tool | `{{#webinar_tool}}` |
| Location name | `{{#location_name}}` |
| Location address | `{{#location_address}}` |
| Location phone number | `{{#location_phone_number}}` |
| Location email | `{{#location_email}}` |
| Location direction | `{{#location_direction}}` |
| Location accommodations | `{{#location_accommodations}}` |
| Location other info | `{{#location_other_info}}` |
| Classroom name | `{{#classroom_name}}` |
| Classroom details | `{{#classroom_details}}` |
| Classroom seats | `{{#classroom_seats}}` |
| Classroom equipment | `{{#classroom_equipment}}` |

The template has been structured to display a value only if the value is actually defined.

For further customization of the template, for example If you wish to add additional inputs and shortcodes, please refer to the [Workato knowledgebase (opens in a new tab)](https://docs.workato.com/features/message-template.html#message-template).

### Generating Session Links

The recipe [Create or Update Google Calendar event](/v1/docs/docebo-connect-for-google-calendar#create-or-update-google-calendar-event) is responsible for accessing and populating the message template with the required inputs, then generating the final content to be used as the calendar event description.

The session link is assembled via a combination of shortcodes and a set URL structure:

```http
https://{lms_base_uri}/learn/course/{course_id}/session/{session_id}/{session_name_slug}
```

The session name must be converted to all lowercase letters and all spaces must be replaced by a dash (`-`) character.

> [!TIP]
> Example:
> 
> If we are given the following parameters:
> 
> | Parameter | Value |
> | --- | --- |
> | Base URI of the platform | `platform.example.com` |
> | Course ID | `190` |
> | Session ID | `54` |
> | Session name | `Example session` |
> 
> Then the values of the shortcodes will be:
> 
> | Shortcode | Value |
> | --- | --- |
> | `{{lms_base_uri}}` | `platform.example.com` |
> | `{{course_id}}` | `190` |
> | `{{session_id}}` | `54` |
> | `{{session_name_slug}}` | `Example session` |
> 
> 
> 
> Putting it all together, the session link will look like this:
> 
> 
> 
> ```http
> https://platform.example.com/learn/course/190/session/54/example-session
> ```

> [!NOTE]
> Please note:
> 
> The recipe [Create or Update Google Calendar event](/v1/docs/docebo-connect-for-google-calendar#create-or-update-google-calendar-event) already has the required values to generate the session link except the base URI.

There are two possible ways to add the session link to the message template:

- Generate the session link based on the example provided above directly in the recipe and then add a new input and shortcode as a session link to the message template
- Add base URI as input and shortcode to the message template and generate the session link in the message template using the shortcodes

The LMS base URL used in the session link is retrieved from the `LMS_BASE_URL` entry of the integration-settings lookup table for the integration. The Google Calendar recipes read this value and pass it to the message template as the `lms_base_URI` shortcode, which is then combined with `course_id`, `session_id` and `session_name_slug` to build the full session URL in the calendar event description.

### Customizing message templates

If you have customized your message template, you will need to create a new template and edit the recipes where this template is populated. Described here are the steps needed to create a new message template as well as the calling recipe.

> [!NOTE]
> Please note:
> 
> The recipe editing should be performed on your cloned recipes in order to prevent a recipe update from reverting back to the default message template. Please see [Docebo Connect: Copying Recipes](/v1/docs/docebo-connect-usage-copying-recipes) for more information on copying recipes.

The steps needed to clone a message template should be performed in the following order:

1. Create a new message template using the information from the original template
2. Update the cloned recipe with the new message template information

An example template and the JSON file needed to create a new template that is compatible with the existing recipes is provided in this article and can be copied and pasted into Docebo Connect.

### Creating a new message template

In order to create a new template, navigate to the **Message templates** tab in Docebo Connect.

![Accessing the Message templates tab](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/4(1).png)

Next, press the **New template** button to open the Message template editor.

![Pressing the new template button](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/5(1).png)

In the following screen, press the **pencil** icon next to the New template title to give your template a name.

![Creating a new template and giving it a name](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/6(1).png)

Next, move to the template body text box.

> [!TIP]
> Tip:
> 
> You can optionally expand this box, using the **handle** in the bottom right corner of the text box.
> 
> ![Expanding the text box](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/7(1).png)

Then, copy the template body information provided here to your clipboard:

```xml
<b><u><i>Course Details</i></u></b>
{{#course_name}}
<b>Course Name:</b> {{course_name}}
{{/course_name}}
{{#course_description}}
<b>Course Description:</b> {{&course_description}}
{{/course_description}}

<b><u><i>Session Details</i></u></b>
{{#session_name}}
<b>Session Name:</b> {{session_name}}
{{/session_name}}
{{#session_description}}
<b>Session Description:</b> {{&session_description}}
{{/session_description}}
{{#session_name_slug}}
<b>Session URL:</b> Click <a href="https://{lms_base_URI}/learn/course/{{&course_id}}/session/{{&session_id}}/{{&session_name_slug}}" target="_blank">here</a> to access the session
{{/session_name_slug}}

<b><u><i>Event Details</i></u></b>
{{#event_name}}
<b>Event Name:</b> {{event_name}}
{{/event_name}}
{{#event_description}}
<b>Event Description:</b> {{&event_description}}
{{/event_description}}
{{#webinar_tool}}
<b>Webinar Tool:</b> {{webinar_tool}}
{{/webinar_tool}}

{{#is_location_present}}
<b><u><i>Location Details</i></u></b>
{{#location_name}}
<b>Location Name:</b> {{location_name}}
{{/location_name}}
{{#location_address}}
<b>Location Address:</b> {{location_address}}
{{/location_address}}
{{#location_phone_number}}
<b>Location Contact:</b> {{location_phone_number}}
{{/location_phone_number}}
{{#location_email}}
<b>Location Email:</b> {{location_email}}
{{/location_email}}
{{#location_direction}}
<b>Location Direction:</b> {{&location_direction}}
{{/location_direction}}
{{#location_accommodations}}
<b>Location Accommodations:</b> {{&location_accommodations}}
{{/location_accommodations}}
{{#location_other_info}}
<b>Location Additional Info:</b> {{&location_other_info}}
{{/location_other_info}}
{{/is_location_present}}

{{#is_classroom_present}}
<b><u><i>Classroom Details</i></u></b>
{{#classroom_name}}
<b>Classroom Name:</b> {{classroom_name}}
{{/classroom_name}}
{{#classroom_details}}
<b>Classroom Details:</b> {{&classroom_details}}
{{/classroom_details}}
{{#classroom_seats}}
<b>Classroom Available Seats:</b> {{classroom_seats}}
{{/classroom_seats}}
{{#classroom_equipment}}
<b>Classroom Equipments:</b> {{&classroom_equipment}}
{{/classroom_equipment}}
{{/is_classroom_present}}
```

Next, paste the template text into the **Template body** text box. The pasted text automatically highlights all the html used for formatting as well as all the input parameters.

![Pasting the template body code](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/8(1).png)

Next, in the Template input field, press the **Use JSON** button.

![Pressing the Use JSON button](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/9(1).png)

Next, copy the following code to your clipboard:

```json
{
  "course_id": "value",
  "course_name": "value",
  "course_description": "value",
  "session_id": "value",
  "session_name": "value",
  "session_name_slug": "value",
  "session_description": "value",
  "event_id": "value",
  "event_name": "value",
  "event_description": "value",
  "webinar_tool": "value",
  "location_name": "value",
  "location_address": "value",
  "location_phone_number": "value",
  "location_direction": "value",
  "location_email": "value",
  "location_accommodations": "value",
  "location_other_info": "value",
  "classroom_name": "value",
  "classroom_details": "value",
  "classroom_seats": "value",
  "classroom_equipment": "value",
  "is_location_present": true,
  "is_classroom_present": true,
  "is_webinar_tool_present": true
}
```

In the Generate schema window, select **Paste JSON sample** in the dropdown menu and paste the code into the **JSON sample box**, overwriting the existing curly brackets, then press **Next**.

![Pasting the JSON sample schema](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/10(1).png)

In the next step, review the sample JSON tree and press the **Generate schema** button.

![Generating the schema](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/11(1).png)

Returning to the previous screen, you will find the created Template input. To finish creating your template, press the **Create** button.

![Creating the message template](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/12(1).png)

Your new message template is now created. In order to make use of the new message template, the recipe [Create or Update Google Calendar event](/v1/docs/docebo-connect-for-google-calendar#create-or-update-google-calendar-event) needs to be edited. In order to do so, navigate to the folder where your Google Calendar recipes are located and click on the **Create or Update Google Calendar event** recipe.

Next, in the recipe, press **Edit**.

![Pressing Edit in the Create or Update Google Calendar event recipe](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/13.png)

In edit mode, locate and press the action called **Create message using Google calendar event template template**. In the resulting sidebar, locate the **Document template** dropdown menu and **select your newly created template** instead of the Google calendar event template. You will notice that once you change this template, the action will be updated. Next press **Save** and then **start** the recipe.

![Selecting the custom template in the recipe](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/14.png)

## Docebo Learn events dispatcher - Webhook recipe upgrade September 26, 2022

> [!NOTE]
> Please note:
> 
> If you have not used this integration prior to September 26, 2022, you may safely disregard this chapter.

On September 26, 2022 an upgrade for the recipe [Docebo Learn events dispatcher - Webhook](/v1/docs/docebo-connect-for-google-calendar#docebo-learn-events-dispatcher-webhook) was released. This recipe upgrade addresses the issue whereby in certain time zones the shift to and from Daylight savings time causes some meetings to synchronize with an incorrect time in Google Calendar.

> [!NOTE]
> Please note:
> 
> Before you upgrade your recipe, please be aware that **there is no possible downgrade** path from this upgrade. **It will also require all already scheduled events to be updated in Docebo**.

In order to make use of the upgraded recipe, you must manually update the recipe in your integration. For detailed instructions on updating recipes, please see [Docebo Connect: Working with recipes](/v1/docs/docebo-connect-working-with-recipes#updating-a-recipe).

After the update has completed, open the recipe and copy the webhook address to your clipboard by pressing on the **first recipe item** and then, in the resulting details window, pressing the **Copy** button above the webhook URL.

![Copying the webhook URL to the clipboard](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/15.png)

Next, press the **gears** button in the top right corner of your screen to access the Admin menu, then locate Webhooks and press **Manage**.

In the list of Webhooks, locate the webhook associated with your Docebo Connect for Google Calendar integration and press the **ellipsis** button to the right of the webhook, selecting **Edit** in the resulting dropdown window.

In the following screen paste the URL of the webhook you copied from the [Docebo Learn events dispatcher - Webhook](/v1/docs/docebo-connect-for-google-calendar#docebo-learn-events-dispatcher-webhook) recipe into the **Payload URL** field and press the **Save Changes** button.

![Configuring the webhook in Docebo](https://cdn.document360.io/75d583ae-622e-4bde-98e6-0ddd0e7a16bb/Images/Documentation/16.png)

Next, return to Docebo Connect via the **gears** icon in the top right corner of your screen, locate Docebo Connect in the list and press **Manage**. Find your Google Calendar integration and on the **Docebo Learn events dispatcher - Webhook** recipe press the **ellipsis** button again and select **Start Recipe**.

Once the recipe has been upgraded to the new version, you need to refresh each event in Docebo Learn that you have scheduled for the future. This causes the recipes to be triggered and will update the event on the Google calendar.

To update an event press the **gear** icon in the top right corner of the screen followed by **Course Management** in the left sidebar. Next, locate the course that contains the event you wish to edit and click on the **title of the event**. Then, the **Sessions** tab, locate the event you are editing, select the **ellipsis** icon to the right of the row and choose **Edit**. In the following screen, if you are not changing any important information, simply **add a space at the end of the description** in order to "make a change" to the event and then press the **Save** button. Your event will now update in your Google calendar. Repeat this process for every future event. For more information on managing Events see Creating and Managing ILT and VILT sessions.

## Recipes

### Update Google Calendar next sync token in lookup table

The recipe adds the value for the `next_sync_token` key to the Google Calendar settings lookup table if present. If this key is not present, it creates a new row by adding a key called `next_sync_token` and its associated value using the received token in the Google Calendar settings lookup table.

#### Trigger

Triggered via function call

#### Calls to other recipes

- None

### Convert Google Calendar attendees to Docebo Learn attendees

The recipe is responsible for converting the response of the attendees from Google Calendar to the Docebo platform attendees response to update the session events in Docebo.

#### Trigger

Triggered via function call

#### Calls to other recipes

- Get all active enrollments by session id

### Get all instructors from event ID

The recipe is responsible for retrieving the instructors assigned to the session events in Docebo.

#### Trigger

Triggered via function call

#### Calls to other recipes

- None

### Add/Remove instructors from attendees

The recipe is responsible for adding or removing instructors assigned to the session events from the list of attendees to be added to the Google Calendar events.

#### Trigger

Triggered via function call

#### Calls to other recipes

- Get all instructors from event ID
- Get Google Calendar events by Docebo Learn ID

### Docebo Learn events dispatcher - Webhook

This recipe handles all the operations that synchronize Docebo events with Google calendar events. Specifically, the recipe is listening to all the webhooks to which it is subscribed to in the Webhooks section.

#### Trigger

Triggered via HTTP Webhook

#### Calls to other recipes

- Get all active enrollments by session id
- Add/Remove instructors from attendees (called multiple times)
- Create or Update Google Calendar event (called multiple times)
- Get Google Calendar events by Docebo Learn ID (called multiple times)
- Delete Google Calendar event (called multiple times)
- Get Docebo Learn future events (called multiple times)
- Get all active enrollments by session id (called multiple times)
- Update Google Calendar Session Attendances

### Create or Update Google Calendar event

The recipe is responsible for creating or updating the Google Calendar events based on the Webhooks event received from Docebo.

#### Trigger

Triggered via function call

#### Calls to other recipes

- Get Google Calendar events by Docebo Learn ID

### Delete Google Calendar event

The recipe is responsible for deleting the Google Calendar events based on the Webhooks event received from Docebo.

#### Trigger

Triggered via function call

#### Calls to other recipes

- None

### Get Google Calendar events by Docebo Learn ID

The recipe is responsible for retrieving details of the Google Calendar event based on the session or event ID from Docebo.

#### Trigger

Triggered via function call

#### Calls to other recipes

- None

### RSVP sync from Google Calendar to Docebo Learn

This recipe is responsible for retrieving the response of the attendees for the Google Calendar event invites and updating the response in the Docebo platform.

#### Trigger

Triggered every five minutes automatically

#### Calls to other recipes

- Convert Google Calendar attendees to Docebo Learn attendees

### Get all active enrollments by session id

The recipe is responsible for retrieving active enrollments based on the provided session ID.

#### Trigger

Triggered via function call

#### Calls to other recipes

- None

### Get Docebo Learn future events

The recipe is responsible for retrieving the future Docebo platform session events from the date the recipe is called.

#### Trigger

Triggered via function call

#### Calls to other recipes

- None

### Update Google Calendar Session Attendances

The recipe is responsible for updating the attendees list into the Google calendar event

#### Trigger

Triggered via function call

#### Calls to other recipes

- Docebo Connect for Microsoft Outlook 365 CalendarDocebo Connect for Microsoft Outlook 365 CalendarGet Docebo Learn future events
- Get all active enrollments by session id
- Add/Remove instructors from attendees
- Get Google Calendar events by Docebo Learn ID

A course is a fundamental training unit in Docebo used to manage and deliver learning content. It can be a self-paced, online e-learning program or an instructor-led training (ILT) session held in-person or virtually. A course typically contains various learning materials, such as lessons, and is a key tool for organizing content, tracking user progress, and managing attendance and certifications.

A session acts as a specific scheduled instance of an Instructor-Led Training (ILT) course and functions as a container for one or more specific dates and times known as events. It represents a unique opportunity for learners to enroll in a particular offering of the training content on a defined schedule. While the main course holds the general subject matter and common properties the session manages the logistical details such as the specific instructor, location and attendance data for that group of learners. Administrators can create multiple sessions within a single course to provide flexibility for users to choose the timing or region that best fits their needs without duplicating the course itself.

A webhook is a method for one application to automatically send real-time data to another application when a specific event occurs. It acts as a user-defined HTTP callback, triggered by events, rather than the traditional polling method where applications repeatedly query for updates.
