EvoHub Docs Sign in
EnglishEN

On-Call

Schedules and rotations

Use with AI
View as MarkdownThis page as plain text, for pasting into an AI tool Open in ClaudeAsk Claude questions about this page Open in ChatGPTAsk ChatGPT questions about this page
Connect to Cursor / VS Code / ClaudeSearch and read these docs from your AI tool (MCP server)

MCP server URL

https://docs-dev.evohub.io/mcp

Claude Code

claude mcp add --transport http evohub-docs-docs https://docs-dev.evohub.io/mcp

Claude (claude.ai and Claude Desktop): Settings → Connectors → Add custom connector, and paste the URL above.

Claude Desktop — claude_desktop_config.json

{
  "mcpServers": {
    "evohub-docs-docs": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://docs-dev.evohub.io/mcp"
      ]
    }
  }
}

Cursor — ~/.cursor/mcp.json

{
  "mcpServers": {
    "evohub-docs-docs": {
      "url": "https://docs-dev.evohub.io/mcp"
    }
  }
}

VS Code — .vscode/mcp.json

{
  "servers": {
    "evohub-docs-docs": {
      "type": "http",
      "url": "https://docs-dev.evohub.io/mcp"
    }
  }
}

A schedule answers one question: who is on call right now? Escalation policies point at schedules, so the person paged changes automatically as the rotation moves on. This page shows how to build schedules, layers and rotations.

How a schedule is put together

  • A schedule has a name and a timezone. Every hour on the schedule — handover times, shift windows, the calendar — is read on that clock.
  • A schedule has one or more layers. Each layer is a rotation: an ordered list of people who take turns.
  • Each layer has a priority. Lower numbers come first. When several layers cover the same moment, the layer with the lowest priority number is the one that answers "who is on call", and the others are the depth behind it (see Layers and escalation).
  • Overrides replace whoever the layers say is on call for a period of time. See Overrides and take over.

Create a schedule

Open Schedules

Go to On-Call → Schedules and click New Schedule.

Name it and pick a timezone

Enter a Schedule Name (for example "Platform On-Call") and choose the Timezone your team works in.

Add a layer

Open the schedule and click Add Layer. Fill in the fields described below and save.

Add people to the rotation

In the layer, use Add member… to add people in the order they take turns. Use the arrows to move someone earlier or later, and the remove button to take them out.

Only people who are allowed to respond to alerts can be added to a rotation.

Layer settings

Field What it does
Layer Name A label, such as "Primary" or "Backup".
Rotation Type Daily, Weekly, or Custom (every N days). Custom asks how many days each person holds the rota (Rotate every … days, 1 to 90).
Starts on The day the rota begins. The first person in the list holds it first. This can only be set when you add a layer.
When it is on call All day (around the clock, handing over at a set time) or A shift (part of the day, with other rotas covering the rest).
Hands over at For an all-day layer: the time of day the rota passes to the next person. Left empty, the handover happens at whatever time the rotation started.
Priority Lower comes first. Within one shift, the lowest priority is paged first and the next is the backup.

Shifts

Choose A shift to make a layer cover only part of the day:

  • Set the shift's start and end time, for example 08:00 to 16:00. An end time earlier than the start runs past midnight (22:00 to 06:00 is a night shift). The end time is exclusive, so 08:00–16:00 and 16:00–00:00 meet without overlapping.
  • Optionally pick Only on these days. With no days selected the shift runs every day. Days you leave out are off duty: nobody on this layer is paged then. This is which days the shift covers — not how often it changes hands.

A team working three eight-hour shifts uses one schedule with three layers whose windows do not overlap. Keep them in one schedule rather than three, so a single escalation step can target "whoever is on call now".

Once any layer on a schedule is a shift, the schedule shows a Coverage over a day bar. Hours that no layer covers are marked, with the message "Nobody is on call for part of the day". An alert arriving in an uncovered hour reaches no one on that schedule, and the alert's timeline says so ("No one was on call — this step reached nobody"). Leaving hours uncovered is allowed — just make sure it is intentional.

Read the schedule

The schedule page shows:

  • Currently On-Call: who holds the schedule right now and until when, on the schedule's clock.
  • A calendar of who is on call each day per layer, for 1W, 2W or 4W, with arrows to move between weeks and Today to jump back.
  • Layers, with their rotation type, shift window and members.
  • Overrides, with the active one highlighted.

On-Call → Schedules lists every schedule with On-Call Now for each. An active schedule that no escalation policy uses is flagged with No escalation policy, because nobody will be paged from it.

Change the schedule timezone

Click the timezone button next to the schedule name to open Schedule timezone. Changing it does not merely relabel the schedule: shift windows and handover times move by the difference between the two zones, and whoever is on call right now may change. Nothing is deleted. The dialog shows the same moment on both clocks before you save.

Layers and escalation

When an escalation step targets a schedule, it can target one specific layer or Any layer (round-robin):

  • A specific layer pages whoever that layer has on call at the moment the step runs.
  • Any layer (round-robin) uses the step's position in the policy to pick among the layers that are on duty at that moment, in priority order: step 1 pages the first layer, step 2 the second, and so on, wrapping around. On a schedule with a primary and a backup layer, step 1 reaches the primary and step 2 the backup. Layers that are off duty (outside their shift) are skipped, so a step never pages a rota that is not working.

Overrides always win: while an override is active, every step that targets the schedule reaches the override person.

Delete a schedule or layer

Use the trash icon on a layer to delete it, or the delete action in the schedules list to delete the whole schedule. Escalation steps that targeted a deleted schedule stop reaching anyone, so update your escalation policies first.

Last updated