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

# On-call schedules

A schedule decides who is on call at any given moment, so an alert can be assigned to a person rather than to a name someone hard-coded months ago.

A few things worth knowing before you build one:

* Only one user per schedule can be on-call at a time.
* A schedule notifies nobody on its own. Its members are only paged when the schedule is referenced by an escalation policy.
* To preserve the history of a schedule, any changes to schedules apply to current and future dates only. Shifts that are in the past cannot be deleted or modified.
* Schedules can be embedded into any calendar application that supports the iCal format.

<figure><img src="/files/wtLDOTqqhDJKdbmQBr0x" alt="A recurring on-call schedule in timeline view. A header shows who is on call now and who is next with the date their shift starts, alongside the schedule type and the escalation policy it is used in. Below, a month timeline lays out each person&#x27;s shift as a coloured band, with a separate row for overrides."><figcaption><p>Who is on call now, who is next, and which escalation policy the schedule feeds.</p></figcaption></figure>

## Create or modify a schedule

{% hint style="info" %}
**User role permissions required**

* [User role permissions](/users-and-access-management/user-roles-and-permissions.md) are required to create or modify a schedule.
* Stakeholder users cannot be added to a schedule.
  {% endhint %}

ilert offers two types of schedules - **recurring and static schedules**, which differ in the way a schedule is created and maintained. The schedule type cannot be changed after its creation.

| [Recurring schedule](/on-call-management-and-escalations/on-call-schedules/recurring-schedules.md)                                                | [Static schedule](/on-call-management-and-escalations/on-call-schedules/static-schedules.md)                                                                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <ul><li>Use if shifts are recurring.</li><li>Example: every team member is on-call for a week.</li><li>Shifts are created automatically</li></ul> | <ul><li>Use if you cannot plan your schedule beyond a specific time frame and want to schedule them manually on a regular basis.</li><li>Shifts are created manually by dragging and dropping users onto the calendar</li></ul> |

## Overrides

{% hint style="info" %}
**Responder role permissions required**

Overrides can be added by users with **Responder** role privileges. A responder can only add themselves as an override. Users with **User** privileges can add any user as an override.
{% endhint %}

Overrides are one-time changes to a schedule. Example uses of overrides include

* when a user becomes sick, goes on vacation, or would like to swap a shift with another user
* scheduling different shifts for holidays

An override leaves the underlying rotation untouched. Nothing about the recurring pattern changes; the override simply wins for the period it covers, then the normal schedule resumes.

### Add an override in the web app

Open the schedule and click **Schedule override**, or click directly on a shift in the timeline.

<figure><img src="/files/zGyouJlLgBz5GwjzEZcF" alt="The Schedule override dialog. A User dropdown labelled Choose user asks who should take your shifts, followed by Start and End datetime fields, each with shortcut links beneath them, and Save and Cancel at the bottom."><figcaption><p>Start and End are prefilled from the current time. The links beneath each field set common durations without typing a date.</p></figcaption></figure>

Pick the user taking the shift, then set the period. Rather than typing dates, use the shortcuts:

| Field     | Shortcuts                        |
| --------- | -------------------------------- |
| **Start** | `now`, `tomorrow`, `next week`   |
| **End**   | `+1 hour`, `+3 hours`, `+1 week` |

Click **Save**.

Overrides can themselves be overridden by a later override. To remove one, click the override on the timeline and then the red **×**.

You can also start an override from the schedules list, using the **Override** button on any schedule row.

{% embed url="<https://www.youtube.com/watch?v=FNJv-zAcyAE>" %}
A step-by-step walkthrough on YouTube
{% endembed %}

### Adding overrides in the mobile app

Open the **Who is on-call?** screen, then tap **Override shift** on the shift you want to cover. Pick the user taking over, set the start and end, and tap **Done**.

This is the reason overrides only need the Responder role: someone can hand off a shift from their phone at 2am without an administrator.

### On-call widget in the mobile app

The on-call widget in the navigation menu of the mobile app displays your current on-call status and quickly lets you take someone else's on-call.

<img src="/files/NUJAfPpMx7D89mUBaoQV" alt="The mobile app navigation menu, showing an on-call status row that reads Not on-call with the number of selected policies, and links to take on-call or change which policies count toward the status." data-size="original">

{% hint style="info" %}
The on-call status is based on the selected policy levels from the [My on-call shifts](/on-call-management-and-escalations/on-call-schedules/my-on-call-shifts.md) view. Therefore, the status **Not on-call** means that you are not on-call in any of the selected policies, but you could be on-call in other policies. Click on the **Select policies** link to modify your policy selection
{% endhint %}

## FAQ

### What happens if there is a gap in a schedule?

If an alert occurs during a time with no coverage in your schedule, then the alert will be escalated immediately to the next escalation level, without waiting for the escalation timeout. If no one is on-call on the entire escalation policy, no one will be notified.

### Can I choose my own shift color?

Yes. Open the user menu in the top right, go to **About me**, and set **Shift color**.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ilert.com/on-call-management-and-escalations/on-call-schedules.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
