Skip to content

Google Calendar Integration

WFM can synchronise scheduled shifts and breaks to Google Calendar. Synchronisation is triggered manually with the Google Sync action in the schedule's right panel. Events are created in a Google Calendar assigned to the workplace.


Prerequisites

Google Cloud Console

  1. Service Account - Created in Google Cloud Console with Domain-wide Delegation enabled.
  2. OAuth Scopes - Configured in Google Workspace Admin Console:
    • https://www.googleapis.com/auth/calendar
    • https://www.googleapis.com/auth/calendar.events

WFM settings

  1. Go to Settings > Integrations > Applications.
  2. Click New Application and choose the type Google.
  3. Fill in:

    Field Description Where to get it
    Google Client ID Service account Client ID Google Cloud Console > IAM > Service Accounts
    Google Client Email Service account email JSON key file (client_email field)
    Google Signing Key Private key JSON key file (private_key field), include the full key with -----BEGIN/END PRIVATE KEY-----
    Google Subject Google Workspace user email Email of the user on whose behalf the service account acts (e.g., admin@company.com)
  4. Click Save.

Each application type can be added once. When the Google application exists, the type is no longer offered under New Application - edit the existing one instead.

Workplace settings

Once the Google application is saved, the workplace form (Settings > Configuration > Workplaces) gets a Google tab. Configure each workplace there:

Field Type Description
Google Calendar ID Dropdown Calendar where events will be written. "Primary Calendar" = subject's main calendar. Only calendars with write access are shown.
Synchronize Schedules Toggle Enable synchronisation of shifts
Synchronize Breaks Toggle Enable synchronisation of breaks
Show Attendees Name In Title Toggle Show employee names in event title (e.g., "Morning Shift (John Doe, Jane Smith)")
Show Attendees Skill In Name Title Toggle Add each employee's skills after their name, e.g. "John Doe [ Support, Sales ]". Available only while Show Attendees Name In Title is on.

Set up Domain-wide Delegation

Domain-wide Delegation allows the service account to act on behalf of users in your Google Workspace.

  1. Go to Google Cloud Console > IAM & Admin > Service Accounts.
  2. Select the service account and go to Advanced settings > Domain-wide Delegation.
  3. Go to Google Workspace Admin Console (admin.google.com) > Security > API Controls > Domain-wide Delegation.
  4. Click Add new and enter:
    • Client ID of the service account
    • Scopes: https://www.googleapis.com/auth/calendar,https://www.googleapis.com/auth/calendar.events
  5. Wait a few minutes for changes to propagate.

Synchronise schedules

How to sync

  1. Open the schedule plan.
  2. Click Google Sync in the right panel.
  3. Wait for synchronisation to complete.

Google Sync is shown only when the Google application is configured, and it is disabled on a closed schedule plan.

What gets synchronised

Shifts:

  • All shifts from the schedule plan (not just emergency shifts)
  • Conditions:
    • Workplace has Synchronize Schedules enabled
    • Shift has assigned employees (attendees)
  • Each event contains:
    • Summary: Shift name (optionally with attendee names)
    • Attendees: Emails of all assigned employees
    • Time: Shift start and end

Breaks:

  • Conditions:
    • Workplace has Synchronize Breaks enabled
  • Each event contains one attendee (the employee on break)

Notifications

Events are created with sendUpdates: 'all' - all attendees receive an email notification from Google Calendar. Before the first synchronisation, be aware that all assigned employees will receive emails.


Notes

  • Synchronisation is manual - click the button each time you want to sync.
  • Events are updated if they already exist (matched by internal event ID).
  • Deleted or orphaned events (without attendees) are removed from Google Calendar.
  • Authentication is shared via cookies on the same domain.
  • The calendar dropdown only shows calendars where the subject user has write access.