Uptimeify Docs

Schedule-Vorschau

Die Schichten und Abdeckungslücken berechnen, die die gespeicherte Rotation eines Schedules in den nächsten vier Wochen ergibt, ohne etwas zu schreiben.

POST /api/im/schedules/:id/preview

Rechnet die gespeicherte Konfiguration des Schedules (Kadenz, Rotationsgruppen, Wochenfenster, Gültigkeitszeitraum) mit derselben Schichtberechnung durch, die der Alarmierungs-Worker verwendet, für die nächsten vier Wochen ab jetzt, und liefert die Schichten und die Lücken, in denen niemand Bereitschaft hat. Es wird nichts gespeichert.

Standardmäßig fließen die gespeicherten Overrides des Schedules ein. Mit overrides probierst du stattdessen andere Override-Fenster aus. Team-Overrides und all_teams-Overrides, die an anderen Schedules angelegt wurden, sind nicht Teil der Vorschau.

Authentifizierung

Basis-IM-Zugriff: eine IM-berechtigte Rolle (admin, editor oder responder) oder ein organisationsweiter API-Token, und Incident Management für die Organisation aktiviert. Eine Team-Rolle ist nicht nötig.

Anfrage (Request Body)

Der Body ist optional.

FeldTypErforderlichBeschreibung
overridesarrayNeinBis zu 500 Override-Fenster, die für diese Vorschau die gespeicherten Overrides ersetzen. Jeweils: { userId, startsAt, endsAt, type?, coveredByUserIds? }, type online (Standard) oder offline, coveredByUserIds nur bei offline. [] zeigt die Vorschau ganz ohne Overrides.

Beispiel (cURL)

curl -X POST "$BASE_URL/api/im/schedules/7/preview" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

Antwort (Response)

200 OK

{
  "from": "2026-10-09T12:00:00.000Z",
  "to": "2026-11-06T12:00:00.000Z",
  "timezone": "Europe/Berlin",
  "shifts": [
    {
      "userId": "u_abc123",
      "layerIndex": 0,
      "startsAt": "2026-10-09T12:00:00.000Z",
      "endsAt": "2026-10-12T07:00:00.000Z",
      "isOverride": false
    },
    {
      "userId": "u_def456",
      "layerIndex": 0,
      "startsAt": "2026-10-12T07:00:00.000Z",
      "endsAt": "2026-10-19T07:00:00.000Z",
      "isOverride": false
    }
  ],
  "gaps": [
    { "from": "2026-11-02T07:00:00.000Z", "to": "2026-11-06T12:00:00.000Z" }
  ]
}
  • layerIndex nummeriert die gleichzeitigen Bereitschaftsplätze (0 bis roundRobinSize - 1); Override-Schichten liegen auf höheren Indizes. isOverride ist true für eine Schicht, die aus einem Override stammt.
  • gaps listet jeden Abschnitt des Fensters, in dem keine Schicht jemanden abdeckt. Ein Schedule ohne Rotationsgruppen hat eine Lücke über das ganze Fenster.

Häufige Fehler

  • 401 Unauthorized (unauthorized) wenn du nicht authentifiziert bist
  • 403 Forbidden (imAccessDenied) bei einem kunden-gescopten Token, oder wenn deine Session keine IM-berechtigte Rolle hat
  • 403 Forbidden (imNotEnabled) wenn Incident Management für die Organisation nicht aktiviert ist
  • 404 Not Found (imScheduleNotFound) wenn :id nicht existiert oder zu einer anderen Organisation gehört
  • 400 Bad Request (invalidRequestBody) wenn :id keine positive Ganzzahl ist, overrides kein Array ist oder mehr als 500 Einträge hat, ein Eintrag keine userId oder kein gültiges startsAt vor endsAt hat, oder sich die gespeicherte Konfiguration nicht in Schichten umrechnen lässt (die Meldung nennt den Grund)

Auf dieser Seite