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.
- Sangoma: Calendar module ↗
- Sangoma: Calendar Event Groups module ↗
- Sangoma: local calendar ↗
- Sangoma: remote iCal calendar ↗
- Sangoma: remote CalDAV calendar ↗
- Sangoma: Outlook calendar OAuth 2.0 integration ↗
- FreePBX Calendar release/17.0 source ↗
- FreePBX Time Conditions release/17.0 metadata ↗
- Asterisk 22 GotoIfTime application ↗
- Asterisk 22 ExecIfTime application ↗
- Asterisk 22 IFTIME function ↗
- Asterisk 22 TESTTIME function ↗
- Asterisk 22 STRFTIME function ↗
- Sangoma: Time Conditions module overview ↗
- Sangoma: Time Conditions user guide ↗
- Sangoma: Time Group user guide ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.