Overview
Schedules define who is on-call and when. By creating rotation schedules, you ensure there’s always someone available to respond to incidents. EasyContact’s scheduling system supports flexible rotation patterns, multiple coverage layers, time-based restrictions, and temporary overrides.Rotation Management
Define daily or weekly rotations with automatic handoffs
Multi-Layer Coverage
Stack multiple layers for primary, secondary, and specialized coverage
Flexible Restrictions
Set active hours and days for each layer
Temporary Overrides
Handle vacations and swaps without changing the schedule
Understanding Schedules
A schedule consists of several key components:Rotation Type
- Daily Rotation
- Weekly Rotation
The on-call person changes every day at the specified handoff time.Best for:
- High-volume alert environments
- Distributing load evenly
- Teams that prefer short shifts
- Handoff time: 09:00
- Monday: Alice → Tuesday: Bob → Wednesday: Carol → …
Layers
Layers allow multiple rotation tracks within a single schedule. Each layer can have its own users and restrictions.Example: Multi-Layer Schedule
Example: Multi-Layer Schedule
Primary Layer (Priority 1)
- Users: Alice, Bob, Carol
- Rotation: Weekly
- Active: 24/7
- Users: Dave, Eve
- Rotation: Weekly
- Active: Saturday-Sunday only
Restrictions
Layers can be restricted to specific times or days:| Restriction Type | Description | Example |
|---|---|---|
| Time-based | Active during specific hours | 09:00 - 18:00 (business hours) |
| Day-based | Active on specific days | Monday - Friday (weekdays) |
| Overnight | Spans across midnight | 18:00 - 09:00 (night shift) |
Viewing Schedules
The Schedules list shows all your on-call schedules:| Column | Description |
|---|---|
| Schedule | Name and description |
| Rotation | Daily or Weekly badge |
| On-Call Now | Current on-call person(s) |
| Layers | Number of layers and total users |
| Timezone | Schedule’s timezone |
| Status | Active or Inactive |
On-Call Status
The “On-Call Now” column shows who’s currently responsible:- User avatar — The current on-call person
- Multiple avatars — Multiple layers active simultaneously
- Override badge — An override is in effect
Creating Schedules
Configure Basic Settings
In the Schedule Settings tab:
- Name — Descriptive name (e.g., “Platform Engineering On-Call”)
- Timezone — The timezone for handoff times
- Description — Optional explanation
- Rotation Type — Daily or Weekly
- Handoff Time — When rotation changes occur
- Handoff Day — For weekly, which day of the week
Add Rotation Layers
In the Rotation Layers tab:
- Click Add Layer
- Name the layer (e.g., “Primary”)
- Select users in rotation order
- Configure restrictions if needed
Setting Up Rotation Order
When selecting users for a layer, the order matters:- Check users in the order they should rotate
- The first user checked rotates first
- View the rotation order with numbered badges (#1, #2, #3…)
The rotation order determines who’s on-call first. Make sure to order users correctly when setting up the layer.
Configuring Layers
Adding a Layer
Configuring Time Restrictions
To limit when a layer is active:Configuring Day Restrictions
To limit which days a layer is active:Layer Priority
When multiple layers are active simultaneously:- Lower index = Higher priority
- The first layer (Primary) takes precedence
- All active layers are displayed in the on-call view
Schedule Detail View
Click on a schedule to see its detail page with:Calendar View
A monthly calendar showing:- Gray cells — Normal rotation coverage
- Blue cells — Override in effect
- Red cells — Coverage gap detected
On-Call Timeline
Shows daily coverage with:- Primary user (PRI badge)
- Secondary users (SEC badge)
- Override users (OVR badge)
- Layer assignments
- Time restrictions
Current On-Call
Displays who’s on-call right now:- User name and avatar
- Layer they’re covering
- Override indicator if applicable
- Time until next handoff
Coverage Gaps
Warnings for periods with no coverage:- Gap start and end times
- Duration in hours
- Total uncovered time in the analysis period
Active Overrides
List of current and upcoming overrides:- User who’s covering
- Override date range
- Reason (if provided)
- Quick delete option
Managing Overrides
Overrides let you temporarily change who’s on-call without modifying the rotation.Creating an Override
Override Behavior
- Overrides take highest priority over all layers
- Override applies to the entire schedule, not just one layer
- Multiple overrides can exist but shouldn’t overlap
- Past overrides remain for historical reference
Common Override Scenarios
Vacation Coverage
Vacation Coverage
When Alice is on vacation for a week:
- Create override for the full vacation period
- Assign to the backup person (e.g., Bob)
- Add reason: “Alice on PTO”
Shift Swap
Shift Swap
When Bob and Carol want to swap shifts:
- Create override for Bob’s shift, assign to Carol
- Create override for Carol’s shift, assign to Bob
- Add reason: “Shift swap agreed”
Emergency Coverage
Emergency Coverage
When the scheduled person is unavailable:
- Create immediate override starting now
- Assign to available team member
- Delete when original person returns
Deleting Overrides
- Find the override in the Active Overrides list
- Click the delete button (trash icon)
- Confirm deletion
Deleting an override immediately returns to the normal rotation. The original on-call person becomes active.
Understanding Coverage Gaps
Coverage gaps occur when no layer is active for a time period.How Gaps Happen
Missing Day Coverage
Missing Day Coverage
A layer is set to weekdays only, but no layer covers weekends.
Missing Time Coverage
Missing Time Coverage
One layer covers 09:00-18:00, another covers 22:00-06:00, but 18:00-22:00 is uncovered.
Empty Layers
Empty Layers
A layer has no users assigned during its active period.
Detecting Gaps
The schedule detail page automatically analyzes coverage:- Checks the next 30 days by default
- Shows gap periods with start/end times
- Calculates total uncovered hours
Fixing Gaps
- Add users to cover the gap period
- Extend layer restrictions to cover more time
- Add a new layer specifically for the gap period
- Create standing overrides if gaps are intentional
Timezone Handling
Schedules operate in a specific timezone:- Handoff times are in the schedule’s timezone
- Overrides use ISO format with timezone info
- Calendar view displays in the schedule’s timezone
Best Practices
Start Simple
Start Simple
Begin with a single layer covering 24/7. Add complexity (multiple layers, restrictions) only when needed.
Ensure Full Coverage
Ensure Full Coverage
After any change, check the calendar view and gap detection to verify there are no uncovered periods.
Use Meaningful Names
Use Meaningful Names
Name schedules and layers clearly:
- Schedule: “Backend Engineering On-Call”
- Layers: “Primary”, “Weekend Backup”, “Night Shift”
Plan for Absences
Plan for Absences
- Document the override process for your team
- Set up overrides in advance for known absences
- Have a backup plan for unexpected unavailability
Right-Size Rotations
Right-Size Rotations
- Daily rotations work well for 5+ person teams
- Weekly rotations suit smaller teams
- Consider alert volume when choosing rotation length
Review Regularly
Review Regularly
- Check schedules when team membership changes
- Verify coverage after organizational changes
- Archive inactive schedules to reduce clutter
Schedules in Escalation Policies
Schedules integrate with escalation policies as notification targets:- Add a schedule as an escalation target
- When the escalation level triggers:
- The current on-call person is determined
- That person receives the notification
- If no one is on-call (gap), the escalation continues to the next level
Example: Schedule in Escalation
Example: Schedule in Escalation
Level 1: Schedule “Backend On-Call”
- Notifies whoever is currently on-call
- 5-minute timeout
- If no acknowledgment, notifies entire team
- 10-minute timeout
- Final escalation to management
Troubleshooting
Wrong person showing as on-call
Wrong person showing as on-call
- Check the schedule’s timezone matches your expectation
- Verify the handoff time hasn’t passed
- Look for active overrides that might change assignments
- Check layer restrictions that might exclude the expected user
Coverage gaps appearing unexpectedly
Coverage gaps appearing unexpectedly
- Review all layer restrictions
- Ensure time restrictions don’t leave gaps
- Check day restrictions cover all days
- Verify layers have users assigned
Override not taking effect
Override not taking effect
- Verify the override start time has passed
- Check the override end time hasn’t passed
- Confirm the override is for the correct schedule
- Refresh the page to see latest data
Rotation not advancing
Rotation not advancing
- Check the rotation type (daily vs weekly)
- Verify the handoff time/day settings
- Confirm the schedule timezone is correct
- Ensure there are multiple users in the rotation
Notifications going to wrong person
Notifications going to wrong person
- Check escalation policy is using correct schedule
- Verify current on-call in schedule detail view
- Look for overrides that might redirect
- Check user’s notification settings
Quick Reference
Rotation Calculation
| Type | Changes | Example |
|---|---|---|
| Daily | Every day at handoff time | 09:00 daily |
| Weekly | Every week on handoff day at handoff time | Monday 09:00 |
Layer Priority
| Priority | Description |
|---|---|
| 1 (Primary) | First layer, highest priority |
| 2 (Secondary) | Backup when primary unavailable |
| 3+ | Additional specialized layers |
Coverage Status Colors
| Color | Meaning |
|---|---|
| Gray | Normal rotation coverage |
| Blue | Override active |
| Red | Coverage gap |