Documentation
User & admin guide
Back to Calendar
Admin guide

Connection config

Per-connection configuration fields for ERP, Outlook, Google, and ICS calendar sources.

Each calendar source has its own connection record. Open one at Admin → Config and select a connection to see its settings.

ERP connection

  • API base URL — the root URL of the ERP API (e.g. https://erp.example.com/api/v1). Provided by your ERP vendor.
  • API key / token — the credential used to authenticate. This is an ERP-side service account credential, not a herbe.calendar token.
  • Sync interval — how often herbe.calendar polls the ERP for changes. Default is every 15 minutes. Reducing this increases ERP API load.
  • Activity types to sync — which ERP activity types to include. Uncheck types you don't want appearing in the calendar (e.g. internal admin records).

Outlook / Exchange connection

  • Tenant ID — your Azure AD tenant ID. Found in the Azure portal under Azure Active Directory → Overview.
  • Client ID and secret — the app registration credentials created during initial setup. See Azure AD setup for how these are created.
  • Sync modeFull account syncs events from all members herbe.calendar knows about. User-delegated syncs only events accessible via each user's own OAuth token (requires users to individually authorize).

Google Workspace connection

  • Client ID and secret — from the Google Cloud Console OAuth 2.0 credentials created during setup. See Google Workspace setup.
  • Scopes — herbe.calendar requests calendar.readonly by default. To also create and edit Google Calendar events from herbe.calendar, enable the calendar read/write scope and reauthorize the connection.

ICS / webcal feeds

  • Feed URL — the full https:// or webcal:// URL of the feed. webcal:// URLs are converted to https:// automatically.
  • Refresh interval — how often to re-fetch the feed. ICS feeds don't push changes, so a shorter interval means more timely updates at the cost of more outbound requests.

Saving changes

Changes take effect on the next sync cycle. To apply immediately, trigger a manual sync from Admin → Pipeline or invalidate the cache from Admin → Cache.