/working-hours) in the dashboard. They are the foundation for two things:
- Follow-the-sun escalation — an escalation policy layer can carry a condition that gates whether the layer participates based on the time of day.
- Business-hours-aware metrics — the out-of-hours paging insight can classify pages against your organization’s real hours instead of a fixed convention.
What a set contains
Windows
Each window is a{ days, start, end } entry:
daysare ISO weekday numbers —1= Monday through7= Sunday.startandendare 24-hourHH:MMlocal times in the set’s timezone.- A window whose
endis at or before itsstartcrosses midnight into the following day.
The timezone lives on the set
A set’s timezone is part of the set — it is never inferred from an on-call schedule a layer happens to target. A “UK hours” condition means UK time whatever the layer pages, and that timezone correctly tracks daylight-saving transitions for you. This keeps a set’s meaning stable no matter where you use it.Layer conditions: follow-the-sun escalation
An escalation policy is an ordered chain of layers. Each layer may carry an optional working hours condition of the shape{ workingHoursId, when }, where when is either during or outside:
during— the layer participates only while the current instant falls inside the set’s windows.outside— the layer participates only while the current instant falls outside the set’s windows.
outside exists so a night-shift layer never needs a hand-authored mirror set. One “UK office hours” set drives both “during UK hours” and “outside UK hours” conditions.Skip semantics — never wait
When escalation reaches a layer whose condition does not hold, scaling.cloud skips that layer and proceeds to the next one immediately. There is no way to express “hold this page until working hours begin” — a page that has reached an escalation policy was already judged worth waking someone for, so scaling.cloud never makes it sleep.Evaluated at fire time
Conditions are evaluated at the instant escalation reaches the layer — the moment the escalation timer fires — never snapshotted when the incident was created. A page raised at 08:50 that escalates at 09:05 correctly reaches aduring-gated day layer. A skip-cascade (skip layer 2, check layer 3, and so on) evaluates wholly at that one firing instant.
The backstop — a page never silently dies
If every layer’s condition fails at an evaluation instant, the last layer is paged unconditionally. A page can never silently die to misconfiguration. Because of this backstop, the last layer may page its members outside their own hours — correct for a paging product, but worth knowing when you design the chain. When you save a policy whose layers are all conditional, scaling.cloud shows a non-blocking save-time advisory so the backstop behavior is legible. The advisory never prevents the save; the execution-time backstop is the guarantee.Resolution preview
Because skip-cascades make “who gets paged when” harder to read from the layer list alone, the policy detail page includes a “who would be paged right now” resolution preview. It evaluates every layer’s condition at the current instant and shows which layer the page would reach if an incident escalated now.Follow-the-sun example
To page the UK rotation during UK hours and the US rotation otherwise, author two sets and order two conditional layers:
At 14:00 London time, layer 1’s condition holds and the UK rotation is paged. At 22:00 London time it fails, so layer 1 is skipped and layer 2 — whose US hours are active — is paged. If neither holds, the backstop pages the last layer regardless.
For a step-by-step walkthrough, see Follow-the-sun escalation.
Org default working hours and insights
Your organization can designate one set as its default working hours from organization settings. This default is used by the out-of-hours paging insight: when a default is designated, the metric classifies pages against that set’s windows and timezone instead of the fixed 09:00–17:00 Monday–Friday convention. When no default is designated, the fixed convention remains the fallback. The default is classified against the set’s own timezone and windows, never the timezone of the schedule that was paged and never the gating set of the layer that dispatched the page — that would measure your skip logic rather than human disruption.The org default is an internal organization setting. It is not exposed on the public API or the Terraform provider — only the sets themselves and the layer conditions are.
Deleting a set
A set cannot be deleted while it is referenced, because removing it would change who gets paged:- A set referenced by an escalation policy layer condition cannot be deleted.
- A set designated as the organization default cannot be deleted.
Managing sets
Working hours sets are also available on the public API (full CRUD), through the Terraform provider asscaling_working_hours, and via the MCP server tools (create_working_hours, get_working_hours, list_working_hours, update_working_hours, delete_working_hours).
Next steps
Set up follow-the-sun escalation
Create two working hours sets, gate escalation layers with conditions, and read the resolution preview.