---
title: "uptimeify_im_schedule"
description: "Ressource uptimeify_im_schedule: Beispiel, alle Attribute, Import."
---

<Callout>Die Beschreibungen auf dieser Seite kommen direkt aus dem Provider-Schema und sind deshalb englisch.</Callout>

An on-call schedule on an escalation tier (created via `POST /api/im/tiers/{tierId}/schedules`). Rotation members must be members of the tier's team. The tier's own default schedule belongs to `uptimeify_im_escalation_tier`. Import with the numeric schedule id.

## Beispiel

```terraform
# Weekly rotation, handover Monday 09:00 Berlin time.
resource "uptimeify_im_schedule" "weekly" {
  tier_id  = uptimeify_im_escalation_tier.first.tier_id
  name     = "Weekly on-call"
  timezone = "Europe/Berlin"

  rotation_mode         = "explicit"
  rotation_repeats      = "weekly"
  starts_on_day_of_week = 1
  starts_on_time        = "09:00"

  rotations = [
    { members = [uptimeify_im_team_member.alice.user_id] },
    { members = [uptimeify_im_team_member.bob.user_id] },
  ]
}
```

## Schema

### Pflichtfelder

- `name` (String) 1 to 120 characters.
- `tier_id` (Number) Escalation tier (`uptimeify_im_escalation_tier.x.tier_id`). Changing it replaces the schedule.
- `timezone` (String) IANA zone the handovers and weekly windows are read in, e.g. `Europe/Berlin`.

### Optional

- `auto_rotation_size` (Number) For mode `auto`: members per generated rotation group.
- `custom_repeat_unit` (String) For `custom`: `minutes`, `hours`, `days`, `weeks` or `months`.
- `custom_repeat_value` (Number) For `custom`: how many units.
- `effective_from` (String) Start of validity. RFC3339 timestamp; unset = unbounded. The API answers in UTC with milliseconds, another spelling of the same instant is kept as written.
- `effective_until` (String) End of validity. RFC3339 timestamp; unset = unbounded. The API answers in UTC with milliseconds, another spelling of the same instant is kept as written.
- `rotation_mode` (String) `none` (default), `auto` or `explicit`. `auto` and `explicit` need `rotation_repeats` and `starts_on_time`.
- `rotation_repeats` (String) `daily`, `weekly`, `biweekly`, `monthly` or `custom`; must be unset for mode `none`.
- `rotations` (Attributes List) Ordered rotation groups (at most 50). Every member must be a member of the team. (siehe [verschachteltes Schema](#verschachteltes-schema-für-rotations))
- `round_robin_size` (Number) Members on call at the same time. Default `1`.
- `starts_on_date_of_month` (Number) Handover day 1-31 for monthly and custom-months rotations.
- `starts_on_day_of_week` (Number) Handover weekday (ISO 1-7) for weekly, biweekly and custom-weeks rotations.
- `starts_on_time` (String) Handover time `HH:mm`; required unless mode `none`.
- `weekly_schedules` (Attributes List) Weekly windows the schedule covers. Empty (default) = around the clock. (siehe [verschachteltes Schema](#verschachteltes-schema-für-weekly_schedules))

### Nur lesbar

- `id` (String) Numeric schedule id.
- `team_id` (Number) Team of the tier.

### Verschachteltes Schema für `rotations`

Required:

- `members` (List of String) User ids in order, at most 200, no duplicates.


### Verschachteltes Schema für `weekly_schedules`

Required:

- `days` (List of Number) ISO weekdays, 1 = Monday to 7 = Sunday.
- `from` (String) `HH:mm`.
- `until` (String) `HH:mm` or `24:00`.

## Import

Import geht so:

Mit [`tofu import` bzw. `terraform import`](https://developer.hashicorp.com/terraform/cli/commands/import), zum Beispiel:

```shell
# Numeric schedule id
terraform import uptimeify_im_schedule.weekly 78
```
