Skip to content
SBC-Standard The data standard for libraries

venue.set

Command
venue.set
Area
display (venue)
Profile
optional
Response
ok, with the next opening day as calculated

Everything the display needs to know about the library – and what is not tied to an individual person. The data applies until it is changed: a controlling program sends it once at start-up and after that only when something changes.

This is how the display knows what to show when nobody is standing in front of it – and how it can form sentences nobody would otherwise have to supply: "Open until 6 pm today", "Next open on Tuesday, 18 August".

Request#

{"v":1,"cmd":"venue.set",
 "name":"St Mary's Library",
 "hours":[{"day":2,"from":"15:00","to":"18:00"},
          {"day":7,"from":"10:00","to":"12:00"}],
 "closures":[{"from":"2026-12-24","to":"2027-01-06","reason":"Christmas break"}],
 "extras":[{"date":"2026-09-19","from":"10:00","to":"16:00","reason":"Parish fair"}],
 "events":[{"from":"2026-10-31T18:00:00+01:00","title":"Reading night",
            "note":"Free entry, no booking required."}]}
Field Required Content
name no name of the library
hours no regular opening hours
closures no periods during which the library is closed
extras no individual days on which it opens in addition
events no forthcoming events

hours – the opening hours#

Field Content
day weekday per ISO 8601: 1 Monday to 7 Sunday
from, to time of day as HH:MM in local time

A weekday may appear more than once – for a midday break, say 10:00–12:30 and 15:00–18:00.

closures and extras – the exceptions#

closures override hours, extras override closures. This covers the usual case of being closed over a holiday period but opening on a single day within it after all.

Field Content
closures[].from, closures[].to first and last day of the closure; without to: that day only
closures[].reason occasion, e.g. "Christmas break"
extras[].date the additional opening day
extras[].from, extras[].to its opening hours
extras[].reason occasion

events – events#

Field Content
from, to start and end as points in time
title name
note one line of addition

The display chooses how many of them it shows and from when. It drops past events itself – the controlling program therefore does not have to revise the list daily.

Response#

{"v":1,"ok":true,"result":{"next_open":"2026-08-18"}}

next_open is the day the display has calculated from hours, closures and extras. It is the simplest check that the deposited times really add up to what the library means.

Complete, not incremental#

Every request replaces the existing library data completely. An empty list clears that part; a field that is absent leaves it unchanged.

Relation to the session#

Library data and session data differ in their lifetime:

Kind Applies Command
session data while the person is standing there session.*
library data until it is changed venue.set

If the display knows the library data, session.close needs neither dates.next_open nor event: it already knows both. A controlling program that does not support venue.set, or that meets a display without venue, keeps sending the data there.

This page was translated automatically from the German original. If anything reads oddly or looks wrong, please let us know — the German edition prevails.