Skip to main content

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

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
Example:
  • 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.
Primary Layer (Priority 1)
  • Users: Alice, Bob, Carol
  • Rotation: Weekly
  • Active: 24/7
Weekend Layer (Priority 2)
  • Users: Dave, Eve
  • Rotation: Weekly
  • Active: Saturday-Sunday only
Result: During weekdays, only the primary layer is active. On weekends, both layers provide coverage, with primary taking precedence.

Restrictions

Layers can be restricted to specific times or days:
Restriction TypeDescriptionExample
Time-basedActive during specific hours09:00 - 18:00 (business hours)
Day-basedActive on specific daysMonday - Friday (weekdays)
OvernightSpans across midnight18:00 - 09:00 (night shift)
Combine restrictions to create complex coverage patterns. For example, a “Weekend Nights” layer could be active Saturday-Sunday, 20:00-08:00.

Viewing Schedules

The Schedules list shows all your on-call schedules:
ColumnDescription
ScheduleName and description
RotationDaily or Weekly badge
On-Call NowCurrent on-call person(s)
LayersNumber of layers and total users
TimezoneSchedule’s timezone
StatusActive 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

1

Open Create Dialog

Click the Create Schedule button
2

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
3

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
4

Save Schedule

Click Create to save your schedule

Setting Up Rotation Order

When selecting users for a layer, the order matters:
  1. Check users in the order they should rotate
  2. The first user checked rotates first
  3. 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

1

Click Add Layer

In the Rotation Layers tab, click Add Layer
2

Name the Layer

Enter a descriptive name (e.g., “Primary”, “Weekend Coverage”, “Night Shift”)
3

Select Users

Check users in the desired rotation order
4

Set Restrictions (Optional)

Configure when this layer should be active

Configuring Time Restrictions

To limit when a layer is active:
1

Enable Time Restriction

Toggle on the time restriction option
2

Set Hours

  • Start Time — When the layer becomes active
  • End Time — When the layer becomes inactive
3

Handle Overnight

For overnight shifts (e.g., 18:00 - 08:00), the system automatically handles the day transition

Configuring Day Restrictions

To limit which days a layer is active:
1

Enable Day Restriction

Toggle on the day restriction option
2

Select Days

Click on the days when this layer should be active (Monday through Sunday)

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
Ensure at least one layer covers all time periods to avoid coverage gaps.

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
Click any day to see detailed on-call information.

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

1

Open Override Dialog

On the schedule detail page, click Add Override
2

Select User

Choose who will be on-call during this period
3

Set Date Range

  • Start — When the override begins
  • End — When the override ends
4

Add Reason (Optional)

Document why this override exists (e.g., “Alice on vacation”)
5

Save Override

Click Create to activate the 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

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”
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”
When the scheduled person is unavailable:
  • Create immediate override starting now
  • Assign to available team member
  • Delete when original person returns

Deleting Overrides

  1. Find the override in the Active Overrides list
  2. Click the delete button (trash icon)
  3. 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

A layer is set to weekdays only, but no layer covers weekends.
One layer covers 09:00-18:00, another covers 22:00-06:00, but 18:00-22:00 is uncovered.
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

  1. Add users to cover the gap period
  2. Extend layer restrictions to cover more time
  3. Add a new layer specifically for the gap period
  4. Create standing overrides if gaps are intentional
Coverage gaps mean incidents during those periods won’t have an on-call responder. Always resolve gaps for critical schedules.

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
For global teams, create separate schedules per region, each in the appropriate timezone, and use escalation policies to chain them together.

Best Practices

Begin with a single layer covering 24/7. Add complexity (multiple layers, restrictions) only when needed.
After any change, check the calendar view and gap detection to verify there are no uncovered periods.
Name schedules and layers clearly:
  • Schedule: “Backend Engineering On-Call”
  • Layers: “Primary”, “Weekend Backup”, “Night Shift”
  • Document the override process for your team
  • Set up overrides in advance for known absences
  • Have a backup plan for unexpected unavailability
  • Daily rotations work well for 5+ person teams
  • Weekly rotations suit smaller teams
  • Consider alert volume when choosing rotation length
  • 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:
  1. Add a schedule as an escalation target
  2. When the escalation level triggers:
    • The current on-call person is determined
    • That person receives the notification
  3. If no one is on-call (gap), the escalation continues to the next level
Level 1: Schedule “Backend On-Call”
  • Notifies whoever is currently on-call
  • 5-minute timeout
Level 2: Team “Backend Engineering”
  • If no acknowledgment, notifies entire team
  • 10-minute timeout
Level 3: User “Engineering Manager”
  • Final escalation to management

Troubleshooting

  1. Check the schedule’s timezone matches your expectation
  2. Verify the handoff time hasn’t passed
  3. Look for active overrides that might change assignments
  4. Check layer restrictions that might exclude the expected user
  1. Review all layer restrictions
  2. Ensure time restrictions don’t leave gaps
  3. Check day restrictions cover all days
  4. Verify layers have users assigned
  1. Verify the override start time has passed
  2. Check the override end time hasn’t passed
  3. Confirm the override is for the correct schedule
  4. Refresh the page to see latest data
  1. Check the rotation type (daily vs weekly)
  2. Verify the handoff time/day settings
  3. Confirm the schedule timezone is correct
  4. Ensure there are multiple users in the rotation
  1. Check escalation policy is using correct schedule
  2. Verify current on-call in schedule detail view
  3. Look for overrides that might redirect
  4. Check user’s notification settings

Quick Reference

Rotation Calculation

TypeChangesExample
DailyEvery day at handoff time09:00 daily
WeeklyEvery week on handoff day at handoff timeMonday 09:00

Layer Priority

PriorityDescription
1 (Primary)First layer, highest priority
2 (Secondary)Backup when primary unavailable
3+Additional specialized layers

Coverage Status Colors

ColorMeaning
GrayNormal rotation coverage
BlueOverride active
RedCoverage gap