---
title: "uptimeify_status_page_maintenance"
description: "A planned maintenance announced on one or more status pages, optionally for some of their components. It starts and ends by itself at scheduled_for/scheduled_until and notifies subscribers as configured; creating it announces it right away when notify_on_schedule is true. It does not silence monitor alerts (that is uptimeify_maintenance_window). Ending a running maintenance early and cancelling an upcoming one are lifecycle actions outside this resource (dashboard, API or MCP); a cancelled maintenance refuses further changes, so change the configuration only after removing or replacing it. Import with the numeric id or the public id."
---

A planned maintenance announced on one or more status pages, optionally for some of their components. It starts and ends by itself at `scheduled_for`/`scheduled_until` and notifies subscribers as configured; creating it announces it right away when `notify_on_schedule` is true. It does not silence monitor alerts (that is `uptimeify_maintenance_window`). Ending a running maintenance early and cancelling an upcoming one are lifecycle actions outside this resource (dashboard, API or MCP); a cancelled maintenance refuses further changes, so change the configuration only after removing or replacing it. Import with the numeric id or the public id.

## Example Usage

```terraform
resource "uptimeify_status_page_maintenance" "db_upgrade" {
  title           = "Database upgrade"
  description     = "The API is read-only for about 30 minutes."
  scheduled_for   = "2026-11-03T22:00:00+01:00"
  scheduled_until = "2026-11-03T23:00:00+01:00"
  status_page_ids = [tonumber(uptimeify_status_page.main.id)]
  # Only these components show the maintenance; leave out for the whole page.
  component_ids = [uptimeify_status_page_component.api.component_id]

  reminder_minutes_before = 60
  notify_on_start         = true
}
```

## Schema

### Required

- `scheduled_for` (String) Start, RFC 3339 with offset. The configured spelling is kept while the instant is unchanged.
- `scheduled_until` (String) End, RFC 3339 with offset, after `scheduled_for`.
- `status_page_ids` (Set of Number) Numeric ids of the status pages that show the maintenance, 1 to 10.
- `title` (String) Public headline, 1 to 200 characters.

### Optional

- `component_ids` (Set of Number) Numeric ids of affected components (`component_id` of `uptimeify_status_page_component`), each on one of the pages. Unset: the whole page.
- `description` (String) What happens and what visitors notice, up to 5000 characters.
- `notify_on_complete` (Boolean) Notify subscribers when it ends. Default `true`.
- `notify_on_schedule` (Boolean) Announce to subscribers when saved and again when the start moves. Default `true`.
- `notify_on_start` (Boolean) Notify subscribers when it begins. Default `false`.
- `reminder_minutes_before` (Number) Remind subscribers this many minutes before the start, 5 to 10080. Unset: no reminder.

### Read-Only

- `cancelled_at` (String) When it was cancelled, if it was.
- `id` (String) Numeric maintenance id.
- `public_id` (String)
- `state` (String) `scheduled`, `in_progress`, `completed` or `cancelled`, derived from the clock at the last read.

## Import

Import is supported using the following syntax:

The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:

```shell
# Numeric id or public id of the maintenance.
terraform import uptimeify_status_page_maintenance.db_upgrade 42
```
