Calendar Driver

How to Configure the Calendar Driver on PlaceOS

The PlaceOS Calendar Driver connects to Microsoft Graph API (365) or Google Workspace.

The Calendar Driver and the Bookings Driver work together to get resource calendar events.

The Calendar Driver can also make ad-hoc bookings from kiosks or room booking panels.

To configure and deploy the Calendar Driver for Microsoft 365 where Delegated Access has been used, please refer to this page related to configuring PlaceOS Calendar Driver for 365.

Prerequisites

  • Administrator access to your PlaceOS Backoffice

  • PlaceOS Drivers Repository Configured in Backoffice

  • Systems have a valid calendar resource address from Microsoft 365 or Google Workspace

Add Driver

Before we can use the PlaceOS Calendar Driver we must instantiate it as a driver.

  1. Navigate to the Drivers tab

  2. Click the + icon to add a new driver

  3. Select PlaceOS Drivers Repository

  4. Select the drivers > place > calendar.cr Driver Base

  5. Select the latest commit

  6. Click Save

Add to System

You need to instantiate a single instance of the PlaceOS Calendar Driver.

We recommend instantiating the driver in a generic system e.g. *Tracking.

That module is then added to each system that requires booking or calendar functionality.

Instantiate the Driver

  1. Navigate to the system you will instantiate the driver in

  2. Select the Modules tab

  3. Click Add New

  4. Search for the PlaceOS Calendar driver

  5. Click Save

Configure Driver

For Google Integration, we recommend creating a Service User on Google Workspace.

Service Users are the same as a regular Users Accounts with a descriptive name e.g. placeos-service-user@yourdomain.com

For testing, you can use your own Google Workspace Account.

The driver is now instantiated as a module, we need to configure the API Credentials.

  1. Navigate to the Drivers tab

  2. Select the Calendar Driver

  3. In the Settings view select unencrypted tab

  4. Delete all the example configuration provided by the driver

  5. If using Google Calendar API, paste this configuration into the encrypted tab:

    calendar_config:
          scopes:      ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/admin.directory.user.readonly"],
          domain:      "primary.domain.com", #Your Google Workspace Domain
          sub:         "default.service.account@google.com", # User or Service User Account
          issuer:      "placeos@organisation.iam.gserviceaccount.com", # client_id from the JSON
          signing_key: "PEM encoded private key" # private_key from the JSON
  6. If using Office 365, paste this configuration into the encrypted tab:

    calendar_config:
          tenant:          "",
          client_id:       "",
          client_secret:   "",
          conference_type: nil # This can be set to "teamsForBusiness" to add a Teams link to EVERY created Event

Add Module to Systems

You can now add the module to other systems as required.

  1. Navigate to an existing system

  2. Select the Modules tab

  3. From the drop down, select the Calendar Module

  4. Click Add Existing

Test Module

You can test by creating a booking or inspecting the state of the Calendar Driver.

Inspecting State should return a valid response.

This should return:

{
    "connected": true
}

You can also execute a function on the module and view the response.

As a test, executing the list_users function should return a list of users if connected properly.

Last updated