# Maintenance windows

A maintenance window is planned work on a schedule. While it runs, the monitors it covers aren't checked, their alerts stay quiet, no incidents open, and the time doesn't count against uptime. If a monitor is still down when the window ends, you're alerted then.

Windows live on the **Maintenance** tab of the Incidents page: go to **Incidents**, then **Maintenance**.

## Creating a maintenance window

<Steps>

1. Go to **Incidents**, open the **Maintenance** tab, and click **New maintenance**.

2. Give the window a **Name**.

3. Under **Monitors**, choose what it covers:
   - **Choose monitors** picks tunnels and checks from a searchable list.
   - **All tunnels** or **All Uptime checks** covers every one in the project.
   - **A group…** covers the monitors in one [group](https://docs.tunnelhq.com/concepts/monitors/#groups).

4. Under **Repeat**, choose **Once**, **Every day**, or **Every week**. For a weekly window, pick the days, **Mon** to **Sun**.

5. Set **From** and **To**: a date and a time for a one-off window, or a time of day for one that repeats. **Time zone** starts as your browser's.

6. Click **Save maintenance**.

</Steps>

To start from one monitor, open its **⋯** menu and choose **Maintenance…** (on a phone, the **⋮** menu in the monitor's header). The form opens with that monitor already chosen.

:::tip[Monitors added later are covered]
**All tunnels**, **All Uptime checks**, and a group are rules, not lists: tunnels and checks added later, for example by a [subscription sync](https://docs.tunnelhq.com/import/#subscription-urls), are covered too. A monitor taken out of a group stops being covered.
:::

## What happens during a window

| | While the window runs |
| --- | --- |
| Checks | Paused for the monitors it covers |
| Alerts | Stay quiet |
| Incidents | None open |
| [Webhooks](https://docs.tunnelhq.com/webhooks/) | None sent |
| Uptime | The time doesn't count against it |

When the window ends, checks start again. If a monitor is still down then, you're alerted at that point, and `monitor.down` is sent to your webhooks.

### Mute or maintenance?

[Muting](https://docs.tunnelhq.com/alert-channels/#muting-alerts) holds one monitor's alerts while its checks keep running, so incidents still open and close and webhooks still fire. Use it when you want a record of what happened without being paged. Use a maintenance window for planned work: checks pause, no incident opens, no webhook is sent, and the time doesn't count against uptime.

## The Maintenance page

The page lists windows under **In progress**, **Upcoming**, and **Past**. Paused windows come last under Upcoming.

Each row shows:

- the window's name, and what it covers, such as "All tunnels in Larkspur VPN", "Group Frankfurt", or "2 tunnels and 1 check";
- when it runs, such as "Every Sunday, 02:00–03:00", "Every day, 01:00–01:30", or "Sat 1 Nov, 22:00 – Sun 2 Nov, 02:00". The time zone appears in brackets, such as "(UTC+05:00)", only when it differs from yours;
- where it stands: "Ends at 03:00", "Starts in 14 hours", "Paused", or "Ended".

A row's **⋮** menu has **Edit**, **Pause** (or **Resume**), and **Delete**. Delete asks you to confirm. Deleting a window that's running makes alerts start again at once.

## How a monitor shows a window

While a window covers a monitor:

- its row or card in the Tunnels and Uptime lists reads **Maintenance · 40m left**, counting down in minutes, hours, or days;
- its own page reads **In maintenance until 03:00** under its name, followed by the window's name, which links to the Maintenance page.

## Who can manage windows

Anyone in the project can see its windows. Creating, editing, pausing, or deleting one needs a role that can mute and pause monitors: Owner, Admin, and Manager by default (see [Roles](https://docs.tunnelhq.com/team/)). A window belongs to one project and can cover only that project's monitors.

Maintenance windows are managed in the dashboard only: the [REST API](https://docs.tunnelhq.com/api/), the [CLI](https://docs.tunnelhq.com/cli/), and the [MCP server](https://docs.tunnelhq.com/mcp/) don't include them.
