> For the complete documentation index, see [llms.txt](https://docs.spike.sh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.spike.sh/oncall-schedules/create-on-call-schedule.md).

# Create On-call schedule

Step-by-step guide to setting up an on-call schedule in Spike to define who's on-call, and when, across your team.

## Key components

Every on-call schedule is built from layers (covered on the next page). Each layer has four components:

1. **Team members**: the people who will be on-call
2. **Rotation**: how long each on-call shift lasts
3. **Handoff**: the time of day when the shift rotates to the next person
4. **Slots**: optional time windows within a shift (covered separately)

## Create a schedule

{% hint style="info" %}
Not sure where to start? Spike offers [on-call templates](https://spike.sh/templates/oncall-templates) with pre-built schedule configurations.
{% endhint %}

Go to the [On-call section](https://app.spike.sh/on-calls) and click **New schedule**.

<figure><img src="https://1743514643-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Ln3jS1bJTTsE3yoEcOu%2Fuploads%2Fgit-blob-351c5fc5bdf68d1a830bc13bf98648946d1e04e2%2Foncall-create-schedule-new-button-1.png?alt=media" alt="New schedule button in the on-call section"><figcaption><p>New schedule button in the on-call section.</p></figcaption></figure>

### Step 1. Add members

Add at least one member. The order determines the rotation sequence. The first member goes on-call first.

{% hint style="info" %}
Use the live preview calendar while creating the schedule to see how the rotation looks.
{% endhint %}

<figure><img src="https://1743514643-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Ln3jS1bJTTsE3yoEcOu%2Fuploads%2Fgit-blob-5a3bee26878aa2b9f24511ccae894da838b98146%2Foncall-create-schedule-members-1.png?alt=media" alt="Adding members to an on-call schedule"><figcaption><p>Adding members to an on-call schedule.</p></figcaption></figure>

You can rearrange the member order at any time, including while editing an existing schedule.

{% embed url="<https://www.youtube.com/watch?v=ECDlUwC3oKc&ab_channel=Spike>" %}

### Step 2. Select rotation

Choose a rotation type that works for your team.

<figure><img src="https://1743514643-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Ln3jS1bJTTsE3yoEcOu%2Fuploads%2Fgit-blob-277cf3379c7f3e03a8cca0a78d20a045034c21ee%2Foncall-create-schedule-rotation-1.png?alt=media" alt="Selecting rotation type for an on-call schedule"><figcaption><p>Selecting rotation type for an on-call schedule.</p></figcaption></figure>

### Step 3. Set handoff time

Handoff time is when the current person's shift ends and the next person's begins.

<figure><img src="https://1743514643-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Ln3jS1bJTTsE3yoEcOu%2Fuploads%2Fgit-blob-f9477a6b4565c3d30ca006b1369982f9bc6daef9%2Foncall-create-schedule-handoff-1.png?alt=media" alt="Setting handoff time for an on-call schedule"><figcaption><p>Setting handoff time for an on-call schedule.</p></figcaption></figure>

Here's what a completed daily rotation schedule looks like: 2 members, rotating daily, with handoff at 11:00 AM. Each member is on-call for 24 hours at a time.

<figure><img src="https://1743514643-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Ln3jS1bJTTsE3yoEcOu%2Fuploads%2Fgit-blob-69e1be261b3372099241da644b824c651bafa872%2Foncall-create-schedule-form-1.png?alt=media" alt="Completed daily on-call schedule form"><figcaption><p>Completed daily on-call schedule form.</p></figcaption></figure>

The calendar shows who's on-call at any given time. Use it to plan coverage across upcoming dates.

<figure><img src="https://1743514643-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Ln3jS1bJTTsE3yoEcOu%2Fuploads%2Fgit-blob-71861e63db9d49129290e269f41a6b513980c8fd%2Foncall-create-schedule-calendar-1.png?alt=media" alt="On-call calendar showing coverage after creating a schedule"><figcaption><p>On-call calendar showing coverage after creating a schedule.</p></figcaption></figure>

## Add to an escalation policy

A schedule only works if it's added to an [escalation policy](/escalations/introduction-to-escalations.md). Without this, alerts won't route to the person who's on-call.

Add the schedule to your escalation policy the same way you'd add any team member. You can add it at any step in the policy.

<figure><img src="https://1743514643-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Ln3jS1bJTTsE3yoEcOu%2Fuploads%2Fgit-blob-0816817f2ed56bfe3b77935856e7ff39bc1ce8a6%2Foncall-create-schedule-escalation-1.png?alt=media" alt="On-call schedule added to an escalation policy"><figcaption><p>On-call schedule added to an escalation policy.</p></figcaption></figure>

{% hint style="success" %}
Add the schedule at the first step of your escalation policy to route alerts directly to whoever is on-call.
{% endhint %}
