---
title: "Get a schedule"
method: GET
path: "/v1/schedules/{id}"
tags: ["schedules"]
---

# Get a schedule

`GET /v1/schedules/{id}`

## Request

- Base URL: `https://api.brixsignage.com`
- URL: `https://api.brixsignage.com/v1/schedules/{id}`
- Auth: HTTP bearer

Retrieve one schedule, including its ordered blocks, with each block's time window, recurrence, content reference, and priority.

## Path parameters

- `id` string, required

## Response `200`

Success.

- object
  - `data` object, required
    - `id` string, required: Schedule id.
    - `spaceId` string, required
    - `nodeId` string, nullable, required: Home location (null = workspace root).
    - `name` string, required
    - `fallbackName` string, required: Label of the content played between blocks.
    - `fallbackMode` 'content' | 'off', required: Between blocks: play the fallback content, or turn the screens off.
    - `fallbackContentKind` 'media' | 'playlist' | 'app' | 'layout' | 'creative' | 'signage', nullable, required
    - `fallbackContentId` string, nullable, required
    - `playsSolely` boolean, required
    - `timeBasis` 'device' | 'cms', required: Whose clock the block times use: each screen's local time, or the workspace's.
    - `startsAt` string, nullable, required: `YYYY-MM-DD` or ISO-8601; null = no start bound.
    - `expiresAt` string, nullable, required
    - `approvalState` 'draft' | 'pending' | 'approved' | 'rejected', required
    - `createdAt` string, required: ISO-8601 timestamp (UTC).
    - `updatedAt` string, required: ISO-8601 timestamp (UTC).
    - `deletedAt` string, nullable, required: ISO-8601 timestamp (UTC).
    - `recalledAt` string, nullable, required: ISO-8601 timestamp (UTC).
    - `recalledBy` string, nullable, required
    - `approvedSnapshot` string, nullable, required: JSON of the blocks as last approved (approval workflow).
    - `importSourceId` string, nullable, required
    - `usedByScreenCount` integer, required: Screens assigned this schedule.
    - `fallbackContentRef` object, nullable, required
      - `kind` 'media' | 'playlist' | 'app' | 'layout' | 'creative' | 'signage', required
      - `id` string, required
    - `fallbackThumbnailUrl` string, nullable, required
    - `blocks` ScheduleBlock[], required
      - `id` string, required: Schedule block id.
      - `label` string, required
      - `daysOfWeek` integer[], required: 0 = Sunday … 6 = Saturday. Empty = every day.
      - `startTime` string, required: 24-hour `HH:MM`.
      - `endTime` string, required: 24-hour `HH:MM`; `00:00` = midnight. An end before the start wraps overnight.
      - `priority` integer, required: 0–1000; higher wins where blocks overlap.
      - `startDate` string, nullable, required: `YYYY-MM-DD`, or null for no start bound.
      - `endDate` string, nullable, required
      - `repeatEveryWeeks` integer, required: 1–52.
      - `refKind` 'media' | 'playlist' | 'app' | 'layout' | 'creative' | 'signage', required
      - `refId` string, required
      - `screensOff` boolean, required: The block turns the screens off instead of playing `ref`.
      - `contentName` string, required: Current name of the content, `Screens off`, or `(missing content)` when the ref no longer resolves.
      - `thumbnailUrl` string, nullable, required
      - `position` integer, required
    - `requiresApproval` boolean, required: The schedule's location requires approval before edits air.

## Other responses

- `401`: Missing, expired or revoked bearer token.
- `403`: The token lacks the permission this operation needs (see `x-brix-permission`).
- `404`: No such schedule in this workspace.
- `5XX`: Server error. The body carries a `requestId` to quote to support.

---

[API](https://skmtc.dev/brixsignage/apis/brix-api.md) · [All operations](https://skmtc.dev/brixsignage/apis/brix-api/llms.txt) · [OpenAPI document](https://skmtc.dev/brixsignage/apis/brix-api/revisions/02fd3665dc7d?raw)
