On-Call Schedules
On-call schedules define who is reachable at any given moment. Each schedule contains one or more layers — a list of technicians that rotate at a fixed interval.
Schedule Overview
A schedule is the foundation of your on-call coverage. It answers the question: "Who is on call right now?"
Every schedule has:
- A timezone — all rotation calculations happen in this timezone
- One or more layers — concurrent rotations (e.g., primary + backup)
- An optional team assignment
- An optional end date for temporary schedules
Schedule Layers
Each layer is an independent rotation within a schedule. Layers run simultaneously — if you have two layers, two technicians are on call at the same time from different user groups.
| Layer Field | Description |
|---|---|
| Name | A label for this rotation (e.g., Primary, Backup, Weekend) |
| Rotation Type | Daily, Weekly, or Custom |
| Rotation Length | For Custom type: hours per shift (e.g., 12 for 12-hour shifts) |
| Start Time | Time of day the rotation hands off (in schedule timezone) |
| Users | The ordered list of technicians in this rotation |
| Restriction | Optional: limit this layer to specific hours or days |
Rotation Types
Daily rotation — Each technician is on call for 24 hours before handing off to the next person in the list. Best for teams with 5+ members or high-volume environments.
Weekly rotation — Each technician covers a full week (168 hours). The most common pattern for MSPs with small teams. Provides continuity and reduces context switching.
Custom rotation — Specify any shift length in hours. Use this for 12-hour shifts, 48-hour rotations, or any other schedule that doesn't fit daily/weekly.
How Rotation Is Calculated
The current on-call user is calculated by:
- Taking the elapsed time since the schedule's start date
- Dividing by the rotation length in hours
- Taking the remainder modulo the number of users in the layer
- Selecting that index from the user list
For example, a weekly rotation with three users (Alice, Bob, Carol) that started on March 1:
- March 1–7: Alice
- March 8–14: Bob
- March 15–21: Carol
- March 22–28: Alice (repeats)
Layer Restrictions
Restrictions limit when a layer is active:
Time-of-day restriction — Layer is only active between specific hours. Use this to create a business-hours layer (e.g., 8am–6pm) alongside a 24/7 layer.
Day-of-week restriction — Layer is only active on specific days. Use this to create a weekday layer and a separate weekend layer with different rotations.
When a layer is outside its restriction window, it is inactive and does not contribute to on-call coverage for that period.
Creating a Schedule
- Click Schedules in the left sidebar.
- Click New Schedule.
- Enter the schedule name and select the timezone.
- Optionally assign a team.
- Set the start date. Rotation calculations start from this date.
- Click Add Layer and configure at least one layer.
- Click Save.
Managing Schedules
Editing a Schedule
- Click the schedule name in the Schedules list.
- Click Edit in the schedule detail view.
- Modify any fields — including adding or removing layers.
- Click Save.
Viewing Current On-Call
- The Schedules list shows the current on-call user for each schedule in a summary card.
- The On-Call Now page shows every active schedule with current user, email, phone, and shift end time.
Schedule Templates
If you manage multiple clients with similar rotation patterns, save time with schedule templates:
- Open an existing schedule.
- Click Save as Template.
- Give the template a name.
To apply a template to a new schedule:
- Click New Schedule.
- Click Use Template and select your saved template.
- Adjust dates and user assignments as needed.
- Click Save.
Schedule Gaps Detection
The Coverage Gap Alert timer runs daily at 8am UTC and checks every active schedule for the next 7 days. If any schedule has a window with no active layer, administrators receive an email alert listing:
- Schedule name
- Gap start and end time
- Suggested fix (add users to a layer or extend rotation coverage)
Follow-the-Sun Scheduling
For distributed teams across time zones, create a follow-the-sun schedule:
- Create a single schedule.
- Add three layers — one per region (e.g., US, EU, APAC).
- Set a time-of-day restriction on each layer matching that region's business hours:
- US layer: 09:00–18:00 America/New_York
- EU layer: 09:00–18:00 Europe/London
- APAC layer: 09:00–18:00 Asia/Tokyo
- Populate each layer with technicians in that region.
- The schedule's timezone should be UTC so restrictions translate consistently.
Each technician covers their regional hours; the schedule automatically hands off at each boundary.
Exporting Schedules
Schedule data is available via the On-Call API (GET /api/schedules) and through the Bridge API for external calendar integration. See Integrations for details on connecting to Google Calendar or Outlook.