# Bell schedule card

> Canonical HTML: https://screenrig.ai/docs/cards/bell-schedule/

The current period, the time left and what is next, from a list of periods and the wall clock in the screen's zone. A schedule can apply to chosen weekdays (a late-start Wednesday); the day's periods are listed with the current one marked.

Category: Schools. Tags: Schools and campuses, Schedules, Countdowns and timers, Clocks and calendars.

## Previews

![Bell schedule](/cards/bell-schedule/v1/screenshots/canvas-bloom.webp?sha=81a750730952fdf5caf2752a0f2cc488481f259cd47ba3ef9ca983e1688825f9)

Canvas

![Bell schedule](/cards/bell-schedule/v1/screenshots/corner-bloom.webp?sha=e99232a080d31d755e6a90e515a7d8c76bcae50cc191c253da86fbf1d5a81eb5)

Corner

![Bell schedule](/cards/bell-schedule/v1/screenshots/chip-bloom.webp?sha=0abcf5a98fba5cbc385107a2f47cca05c8c9671a7addd56709b53571c88754af)

Chip

## Views and forms

Views: canvas, corner, chip. Canvas forms: landscape, portrait, square, strip.

[Card views, themes and publishing](/docs/cards/). [Browse the gallery](/apps/#cards).

## Data and privacy

This card uses its configured properties and live card data.

## Properties

For theme, background, accent and position, see [Common properties](/docs/cards/#common-properties).

Set static properties in `params`. Bind `data` to a project card data key for live values; that document holds only dynamic properties. Without a data key, put the complete configuration in `params`. Nested rows describe the contents of their parent property.

### Static properties

| Name | Type | Default | Values and limits | Description |
| --- | --- | --- | --- | --- |
| `title` | string | `"Bell schedule"` | maxLength: `40` | The heading when the day's schedule has no name of its own. |
| `hour12` | boolean | `false` |  |  |
| `timeZone` | string, null | `null` |  |  |

### Dynamic properties

| Name | Type | Default | Values and limits | Description |
| --- | --- | --- | --- | --- |
| `schedules` | array | `[]` | minItems: `0`; maxItems: `8` | The schedules. Today uses the one that lists today's weekday in `days`, else the first with no `days`. With none for today the board says there are no bells. |
| `schedules[].name` | string |  | maxLength: `30` | Shown as the heading: Regular day, Late start, Exams. |
| `schedules[].days` | array | `[]` | maxItems: `7` | ISO weekdays (1 Monday to 7 Sunday) this schedule applies to; none means every day not listed by another schedule. |
| `schedules[].periods` | array |  | minItems: `0`; maxItems: `16`; Required |  |
| `schedules[].periods[].name` | string |  | minLength: `1`; maxLength: `30`; Required |  |
| `schedules[].periods[].start` | string |  | pattern: `"^\\d{1,2}:\\d{2}$"`; Required | HH:MM, 24-hour, in the screen's zone. |
| `schedules[].periods[].end` | string |  | pattern: `"^\\d{1,2}:\\d{2}$"`; Required | HH:MM, 24-hour; 24:00 is midnight. Must be after the start. |
| `footnote` | string | `""` | maxLength: `120` | A line for the foot of the board: an assembly, a changed bell. |

## Canvas example

Add this item to a playlist page’s `primitives`. [Publish the playlist and assign a screen](/docs/cards/#publish-a-card-canvas).

```json
{
  "id": "bell-schedule",
  "primitive": "card",
  "card": "bell-schedule",
  "major": 1,
  "params": {
    "theme": "neomustard"
  },
  "rect": {
    "x": 0,
    "y": 0,
    "width": 1920,
    "height": 1080
  },
  "layer": 0,
  "content_fit": "fill",
  "data": "bell-schedule-main"
}
```

## Write live data

Create this document before showing the card, then replace it to update the screen without republishing. Use the same project as the playlist. Supply your API authorization through the environment; see [API authentication](/docs/authentication/).

```console
curl --request PUT "https://api.screenrig.ai/api/card-data/bell-schedule-main" \
  --header "Authorization: Bearer $SCREENRIG_TOKEN" \
  --header "ScreenRig-Project: $SCREENRIG_PROJECT" \
  --header "Content-Type: application/json" \
  --data '{"document":{"schedules":[],"footnote":""}}'
```
