Freeze one event, instant and consumer outcome
Choose one authorized event and one expected Time Condition, Follow Me or scheduler action. Record source event identifier, title, start and end with timezone, recurrence or exception, PBX time, selected calendar or group, expected branch, actual branch and one call or action timestamp. Preserve both destinations and avoid editing the event while collecting evidence.
Classify the first symptom: the source event is absent, remote retrieval is stale, local time is wrong, the group does not match, the consumer applies inverse semantics, generated state is old, or the call reached a different consumer or destination.
Prove retrieval into the intended local calendar
For a remote driver, inspect the configured endpoint, selected collection, authorization state, synchronization interval, last successful retrieval and any current error without exposing credentials. Confirm the exact event appears in the intended local calendar. A reachable provider or successful OAuth authorization does not prove the selected calendar synchronized or the event parsed.
Compare a known-good control event from the same source. If both are absent, remain at retrieval; if only one is absent, inspect its format, recurrence and filters before changing the connector.
Resolve timezone, recurrence and active interval
Normalize the source start and end, source timezone, event timezone, PBX timezone and consumer timezone to explicit instants. Check all-day interpretation, overnight events, recurrence rules, exclusions, moved instances and daylight-saving boundaries. A visually correct date in the source UI may map to a different active interval on the PBX.
Test immediately outside and inside the intended window. Do not move the production event or PBX clock as a diagnostic shortcut; correct the demonstrated owner of the conversion.
Evaluate the selected group and match policy
If the consumer selects a Calendar Event Group, enumerate its calendar, event and category members. Determine whether the expected event satisfies the exact rule and whether another active event makes the group match unexpectedly. Calendar synchronization and group evaluation are separate checkpoints.
Use one should-match and one should-not-match control. Correct only the member, category or name rule that diverges; do not add the entire calendar merely to make one test pass unless that is the approved policy.
Follow the consumer into generated and live state
Record whether Time Conditions uses Calendar mode and which match and non-match destinations it owns, whether Follow Me uses inverse matching, or whether Paging Pro created the expected scheduled action. Apply supported configuration changes and confirm the generated or scheduled state belongs to the same object.
For a call, prove that the dialed path actually entered that Time Condition and record the branch selected at the test instant. A correct calendar indicator does not establish that another inbound route, manual override, call flow or earlier destination did not own the result.
Correct one owner and retest the boundaries
Correct only the first demonstrated divergence: remote authorization, selected collection, synchronization, event data, timezone, recurrence, group membership, category rule, inverse setting, consumer destination, generated configuration or scheduler state. Preserve prior values, credential handling, fallback and rollback.
Retest before, during and after the event with one should-match and one should-not-match case. Confirm the intended call or scheduled action and the alternate branch. This workflow is derived from first-party documentation and was not reproduced on a customer or laboratory PBX.
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 ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.