VoIP.info Guide

FreePBX Calendar: sources, groups and routing evidence

Keep calendar retrieval, event time, group matching and the consuming Time Condition, Follow Me or scheduler independently observable.

Reviewed 2026-10-15FreePBX 17 / Debian 12 editorial baseline; Sangoma Calendar, Calendar Event Groups, local, iCal, CalDAV and Outlook OAuth documentation plus FreePBX release/17.0 Calendar source and Time Conditions metadata reviewed October 11, 2026; several Sangoma interface examples are version-labelled for PBX 14 and are semantic rather than an exact FreePBX 17 screen map; installed module and driver versions, provider behavior, credentials, synchronization, event parsing, timezone, recurrence, group membership, consumer state, generated configuration, scheduler and live routing require local evidence, and no PBX, calendar account, event, credential, sync, route, page or live call was inspected or testedIntermediateDocumentation based · not lab tested

Choose the calendar owner before the call-flow owner

A local FreePBX calendar, remote iCal feed, CalDAV collection, Google calendar and Outlook integration have different creation, credential, write and refresh boundaries. Record the driver, remote tenant or account, calendar identity, responsible owner and intended consumer before connecting it to routing. Sangoma documents local calendars as editable on the PBX and iCal or CalDAV examples as read-only copies whose events are changed at the remote source.

Keep secrets out of screenshots and exports. Grant the connector only the calendar scope it needs, record its renewal owner and preserve a non-calendar recovery destination when business routing depends on an external service.

Normalize event time before testing a match

Record the source event identifier, start and end instants, all-day flag, recurrence rule, exception, source timezone, PBX timezone and consumer timezone. A title visible on both systems does not prove that they interpret the same interval. Test boundaries immediately before, at and after the expected transition, including daylight-saving or overnight cases where they matter.

Do not repair a timezone disagreement by moving the source event until the owner of each conversion is known. Preserve the original event and compare the normalized instants used by the PBX.

Treat retrieval and local visibility as separate stages

For a remote calendar, prove name resolution, TLS and authorization, selected remote collection, configured synchronization interval, last successful retrieval and the event stored or displayed locally. A successful credential test does not establish that the intended collection was selected or that a later refresh parsed the event.

Use a harmless, uniquely named control event when authorized. Record when it became visible locally and when it disappeared after removal. Avoid repeated manual refreshes that erase the timing evidence for a scheduled synchronization problem.

Use groups as explicit match policy

Calendar Event Groups can collect calendars, events or categories. Record every selected member and any event-name or category rule, then test one event that should match and one that should not. A calendar can be synchronized correctly while the group excludes its event or includes an unintended one.

Name groups by business decision rather than provider, for example office closed rather than one employee calendar. Keep a small ownership register so deletions or renames at the source do not silently change routing policy.

Read the consuming module’s semantics exactly

A Time Condition can match a selected calendar or group and choose its match or non-match destination. Follow Me can enable or disable behavior and applies a documented inverse choice. Paging Pro can schedule a page from an event start time and creates scheduler state. The same matching event can therefore produce different actions in different consumers.

Record the exact consumer, selected calendar or group, timezone, inverse or mode value, both destinations and applied configuration. Calendar visibility is not proof that a route, Follow Me leg or scheduled page selected the intended branch.

Operate the dependency with evidence and rollback

Monitor connector authorization, retrieval age, parsing errors, timezone changes and the next expected transition. Back up the Calendar module and document the external owner, but do not treat a configuration backup as a copy of remote events or credentials that remain usable.

For material call flows, rehearse source outage, stale data and recovery with approved non-emergency test calls. Define whether stale data keeps the last state or falls back elsewhere from observed behavior, not assumption. The focused diagnostic follows one wrong transition through every owner.

Keep event matching separate from timespec matching

Calendar or event-group state and Asterisk timespec evaluation are different decision sources. Use the time-routing guide only after establishing which generated mode owns the affected branch.

Sources & applicability

Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.

Examples require adaptation to your topology. No live PBX or hardware testing is claimed.