Skip to content

Google Calendar Integration

WFM can synchronise scheduled shifts and breaks to Google Calendar. Synchronisation is triggered manually via the "Google Sync" button on the schedule plan. 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

Configure Google integration in Settings > Integrated Applications > Google:

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

Workplace settings

Configure each workplace in the Google tab of the workplace form:

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)")

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 top bar.
  3. Wait for synchronisation to complete.

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
    • If Choose Breaks to Synchronize is enabled: only selected breaks (whitelist)
  • 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.