Introduction
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.
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).
Activating Docebo Connect
To activate Docebo Connect on your platform or sandbox, please reach out to your Docebo account manager. Please note that depending on the integration requirements, there may be associated costs.
Before you begin
It is advisable to create a service account on Google for use with the Docebo calendar integration. This can be an account that is in use by a person; however, using a separate account will prevent a personal account from being filled up by system-generated calendar entries. When testing this integration, if you have a staging platform, we suggest using separate Google accounts for production and staging purposes.
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 Usage: Copying Recipes. The list of recipes that need to be cloned follows. All recipes that call a sub-recipe will require editing, the called sub-recipes can be found in a list inside the recipe description.
The first step to take is to make a copy of all the necessary recipes used by this integration. This allows you to customize the recipes as needed without worrying about updates overwriting your customizations. Whenever updates are available for pre-made recipes you will be able to choose whether to update your copy to match the original recipe or continue working with your copy.
To copy your recipes simply click on the ellipsis menu in each recipe and select clone. Then drag and drop the cloned recipe to a new location within Docebo Connect. The list of recipes used by this integration can be found in the Recipes chapter.
Please note: If the Enrollment Invitations Via External Calendar setting is deactivated for a particular course after invitations have been sent when the setting was active then 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.
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.
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.
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.
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 |
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.
Next, click on the Project tab and locate the recipe item 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 green 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.
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.
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.
Please note: In order for this integration to work properly, the following recipes need to be started:For more information about starting recipes, please see Docebo Connect usage: common recipe actions.
- Update Google Calendar next sync token in lookup table
- Convert Google Calendar attendees to Docebo Learn attendees
- Get all instructors from event ID
- Add/Remove instructors from attendees
- Docebo Learn events dispatcher - Webhook
- Create or Update Google Calendar event
- Delete Google Calendar event
- Get Google Calendar events by Docebo Learn ID
- RSVP sync from Google Calendar to Docebo Learn
- Get all active enrollments by session id
- Get Docebo Learn future events
- Update Google Calendar Session Attendances
Steps to take when creating an ILT event
When creating a new course in Courses Management, 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.
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.
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).
Template details
The message template used by the Connect for Google Calendar recipe makes use of the following inputs and their respective shortcodes:
- Course ID
{{#course_id}}
- Course name
{{#course_name}}
- Course description
{{#course_description}}
- Session ID
{{#session_id}}
- Session name
{{#session_name}}
- 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).
Generating Session Links
The recipe 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:
https://{lms_base_uri}/learn/course/{course_id}/session/{session_id}/{session_name}
The session name must be converted to all lowercase letters and all spaces must be replaced by a dash (-) character.
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}} |
example-session |
Putting it all together, the session link will look like this:
https://platform.example.com/learn/course/190/session/54/example-session
Please note: The recipe 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
Docebo Learn events dispatcher - Webhook recipe upgrade September 26, 2022
Please note: If you have not used this integration prior to September 26, 2022, you may safely disregard this chapter.
Starting on September 26, 2022 an upgrade for the recipe 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.
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. To do so, access Docebo Connect by pressing the gears icon in the top right corner of your screen, locate Docebo Connect and press Manage. Then, locate the recipe in your Google Calendar integration folder and press the ellipsis button and choose Stop Recipe. Next, open the recipe to be updated, you will see a message stating that updates are available from its parent recipe. Press See details to access the screen where you can update.
In the next screen you will be presented with information about the recipe. Press the Install button located inside the information box titled The parent recipe that this recipe was copied from has a new version, followed by Yes in the confirmation pop-up window to proceed with the update.
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.
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 recipe into the Payload URL field and press the Save Changes button.
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 Learn platform attendees response to update the session events in Docebo.
- Trigger
- Triggered via function call
- Calls to other recipes
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
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
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
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