OpenT8-Spezifikation
Version 0.1.0
Die Schlüsselwörter "MUSS/MÜSSEN" (Englisch: "MUST"), "ERFORDERLICH" (Englisch: "REQUIRED"), "EMPFOHLEN" (Englisch: "RECOMMENDED"), "SOLLTE" (Englisch: "SHOULD"), "SOLLTE NICHT" (Englisch: "SHOULD NOT") und "KANN" (Englisch: "MAY") in diesem Dokument sind so zu interpretieren, wie sie in ihrer englischen Übersetzung in RFC2119 und RFC8174 spezifiziert sind, und nur dann, wenn sie, wie hier, in Großbuchstaben geschrieben sind.
Dieses Spezifikation ist lizenziert unter der Apache License, Version 2.0.
Einführung
OpenT8 definiert ein Standard-Datenformat zur Repräsentation von Stundenplandaten, unabhängig von ihrer Herkunft. Basierend auf dem JSON-Standard kann dieses Format mit nahezu jeder Programmiersprache leicht erzeugt und gelesen werden. Mit Hilfe des OpenT8 Document Schema können Dokumente im OpenT8-Format auf ihre syntaktische Korrektheit hin validiert werden.
OpenT8 kann zum Austausch von Stundenplandaten zwischen Diensten oder Anwendungen genutzt werden, als Quelle für die grafische Anzeige von Stundenplänen oder als Antwortformat für API-Anfragen (z.B. für RESTful Web-Services).
Definitionen
OpenT8-Dokument
Ein OpenT8-Dokument ist eine in sich geschlossene Ressource, die einen Stundenplan oder Dienstplan definiert und beschreibt. Es MÜSSEN mindestens die Felder opent8
, info
und schedule
enthalten sein. Ein OpenT8-Dokument verwendet die OpenT8-Spezifikation und ist mit ihr konform.
Teilnehmer
Teilnehmer (Englisch: attendee) sind Personen (Englisch: person), die Gruppen, Kursen, Veranstaltungen, Aufsichten oder Ereignissen zugeordnet werden. Die Art der Teilnahme wird dabei jeweils durch ihre Rolle (Englisch: role) unterschieden (z.B. Lehrer:in, Erzieher:in, Schüler:in, etc.).
Hier ein Beispiel für die Kursteilnahme eines Lehrers:
"persons": [
{
"id": "Leo",
"code": "Leo",
"lastName": "Schnitzewitz",
"middleName": "Alexander",
"firstName": "Leopold",
"namePrefix": "Dr.",
"nameQualifier": "von",
"birthdate": "1969-07-20"
}
],
"roles": [
{
"id": "LK",
"code": "LK",
"key": "DE.LEHR",
"name": {
"singular": "Lehrer:in",
"plural": "Lehrer:innen"
}
}
],
"courses": [
{
"id": "DE-1A",
"code": "DE",
"name": "Deutsch",
"subject": {
"refId": "DE"
},
"attendees": [
{
"refId": "Leo",
"role": {
"refId": "LK"
}
}
]
}
]
Gruppen
Gruppen (Englisch: group) sind organisatorische Einheiten für Teilnehmer. Sie repräsentieren beispielsweise Klassen, Jahrgänge, Betreuungsgruppen und können durch Gruppentypen kategorisiert werden.
Hier ein Beispiel für zwei Klassen der ersten Jahrgangsstufe:
"groups": [
{
"id": "1a",
"code": "1a",
"name": "Klasse 1a",
"groupType": {
"refId": "KL"
}
},
{
"id": "1b",
"code": "1b",
"name": "Klasse 1b",
"groupType": {
"refId": "KL"
}
}
],
"groupTypes": [
{
"id": "KL",
"code": "KL",
"key": "DE.KLAS",
"name": {
"singular": "Klasse",
"plural": "Klassen"
}
}
]
Kurse
Ein Kurs (Englisch: course) besteht in der Regel aus einer Serie von Veranstaltungen zu einem bestimmten Fach (Englisch: subject). Einem Kurs können Teilnehmer (z.B. Lehrer:innen, Schüler:innen etc.) und Gruppen (z.B. Klassen, Jahrgänge, etc.) zugeordnet werden.
Hier ein Beispiel für einen Kurs:
"courses": [
{
"id": "DE-1A",
"code": "DE",
"name": "Deutsch",
"subject": {
"refId": "DE"
},
"groups": [
{
"refId": "1a"
}
],
"attendees": [
{
"refId": "Leo",
"role": {
"refId": "LK",
}
}
]
},
]
Planelemente
Planelemente (Englisch: schedule element) sind die zentralen Objekte, um die sich alles andere gruppiert. Planelemente sind mit Hilfe von zeitlichen Ausdrücken verplant und repräsentieren die sichtbaren Einträge in einem Stundenplan.
Planelemente sind unterschiedlich ausgeprägt.
Veranstaltungen
Veranstaltungen (Englisch: lesson) repräsentieren den eigentlichen Unterricht. Eine Veranstaltung MUSS immer mit einem Kurs verknüpft sein. Veranstaltungen umfassen nicht nur ursprünglich geplante Veranstaltungen sondern auch aktuelle Vertretungen (in diesem Fall gibt es eine korrespondierende Fehlstelle mit Verweis auf diese Veranstaltung).
Hier ein Beispiel für die Veranstaltungen eines Musikkurses. Dieser findet jede Woche am Mittwoch und am Donnerstag zu jeweils unterschiedlichen Unterrichtszeiten statt:
"scheduleElements": [
{
"type": "lesson",
"id": "MU-1A",
"code": "MU",
"course": {
"refId": "MU-1A"
},
"rooms": [
{
"refId": "200"
}
],
"temporalExpressions": [
{
"type": "weekly",
"startTimepoint": "2023-09-06T11:00:00",
"endTimepoint": "2023-09-06T11:45:00"
},
{
"type": "weekly",
"startTimepoint": "2023-09-07T12:20:00",
"endTimepoint": "2023-09-07T13:05:00"
}
]
}
]
Aufsichten
Aufsichten (Englisch: supervision) repräsentieren Zeiten zwischen Unterricht (z.B. in der Pause). Aufsichten umfassen nicht nur ursprünglich geplante Aufsichten sondern auch aktuelle Aufsichtsvertretungen (in diesem Fall gibt es eine korrespondierende Fehlstelle mit Verweis auf diese Aufsicht).
Hier ein Beispiel für eine Pausenhofaufsicht (montags, mittwochs und freitags, zwei Wochen lang):
"scheduleElements": [
{
"type": "supervision",
"id": "aufsicht-1",
"code": "Aufsicht",
"name": "Pausenaufsicht",
"attendees": [
{
"refId": "Leo",
"role": {
"refId": "ERZ"
}
}
],
"areas": [
{
"refId": "Hof"
}
],
"temporalExpressions": [
{
"type": "weekly",
"startTimepoint": "2023-09-04T08:45:00",
"endTimepoint": "2023-09-04T09:05:00",
"validFrom": "2023-09-04T00:00:00",
"validTo": "2023-09-15T00:00:00"
},
{
"type": "weekly",
"startTimepoint": "2023-09-06T08:45:00",
"endTimepoint": "2023-09-06T09:05:00",
"validFrom": "2023-09-04T00:00:00",
"validTo": "2023-09-15T00:00:00"
},
{
"type": "weekly",
"startTimepoint": "2023-09-08T08:45:00",
"endTimepoint": "2023-09-08T09:05:00",
"validFrom": "2023-09-04T00:00:00",
"validTo": "2023-09-15T00:00:00"
}
]
}
]
Ereignisse
Ereignisse (Englisch: event) sind Termine, die nicht durch Veranstaltungen oder Aufsichten repräsentiert werden können (z.B. Meetings, Prüfungen, etc.).
Hier ein Beispiel für ein Meeting:
"scheduleElements": [
{
"type": "event",
"id": "meet-1",
"code": "Meeting",
"name": "Abstimmung zur Einschulung",
"attendees": [
{
"refId": "Max",
"role": {
"refId": "LEH"
}
},
{
"refId": "Eli",
"role": {
"refId": "LEH"
}
}
],
"rooms": [
{
"refId": "LeZi"
}
],
"temporalExpressions": [
{
"type": "onetime",
"startTimepoint": "2023-09-01T08:00:00",
"endTimepoint": "2023-09-01T10:00:00"
}
]
}
],
"eventTypes": [
{
"id": "KL",
"code": "KL",
"name": {
"singular": "Konferenz",
"plural": "Konferenzen"
}
}
]
Ferien und Feiertage
Ferien bzw. Feiertage (Englisch: holiday) repräsentieren Tage, an denen kein Unterricht stattfindet.
Hier die Weihnachtsferien 2023/2024 als Beispiel:
"scheduleElements": [
{
"type": "holiday",
"id": "WeiFe",
"code": "WeiFe",
"name": "Weihnachtsferien",
"holidayType": "school",
"temporalExpressions": [
{
"type": "onetime",
"startTimepoint": "2023-12-23T00:00:00",
"endTimepoint": "2024-01-05T00:00:00"
}
]
}
]
Mitteilungen
Mitteilungen (Englisch: announcement) erlauben die Anzeige von zusätzlichen Informationen direkt im Stundenplan.
Hier ein Beispiel für einen Hinweis zum Feueralarm:
"scheduleElements": [
{
"type": "announcement",
"id": "alarm-1",
"code": "alarm",
"name": "Feueralarmübung",
"description": "Feueralarmübung am Morgen",
"color": "#E55604",
"temporalExpressions": [
{
"type": "onetime",
"startTimepoint": "2023-12-23T08:00:00",
"endTimepoint": "2024-01-05T08:25:00"
}
]
}
]
Fehlstellen
Fehlstellen (Englisch: gap) repräsentieren Veranstaltungen oder Aufsichten, die nicht wie geplant stattfinden können. Eine Fehlstelle definiert neben der Zeit die Gründe (Englisch: reason) für die Planänderung (z.B. Lehrer fehlt/ist freigestellt oder Raum ist nicht verfügbar) und die Auflösung (Englisch: resolution). Die Auflösung kann entweder eine Vertretung (Englisch: substitution) oder der Ausfall (Englisch: cancellation) sein.
Hier ein Beispiel für einen Lehrerausfall. Der Unterricht wird durch einen Erzieher vertreten:
"scheduleElements": [
{
"type": "gap",
"id": "G-1",
"code": "G-1",
"description": "Das ist eine Fehlstelle",
"reference": {
"type": "lesson",
"refId": "DE-1A"
},
"reasons": [
{
"type": "absence",
"id": "A-1",
"code": "Krank",
"description": "Lehrer ist krank",
"reference": {
"type": "attendee",
"refId": "Max"
}
}
],
"resolutions": [
{
"type": "substitution",
"id": "V-1",
"code": "Ersatz",
"description": "Der Erzieher springt ein",
"reference": {
"type": "lesson",
"refId": "Vertretung-1"
}
}
],
"temporalExpressions": [
{
"type": "onetime",
"startTimepoint": "2023-09-04T08:00:00",
"endTimepoint": "2023-09-04T08:45:00"
}
]
},
{
"type": "lesson",
"id": "Vertretung-1",
"code": "Vertretung",
"description": "Das ist eine Vertretung",
"attendees": [
{
"refId": "Leo",
"role": {
"refId": "EZ"
}
}
],
"rooms": [
{
"refId": "102"
}
],
"temporalExpressions": [
{
"type": "onetime",
"startTimepoint": "2023-09-04T08:00:00",
"endTimepoint": "2023-09-04T08:45:00"
}
]
}
]
Räume, Gebäude, Campus und Aufsichtsbereiche
Planelemente können mit Standorten verknüpft werden. Für Veranstaltungen und Ereignisse sind dies Räume (Englisch: room), für Aufsichten sind dies Aufsichtsbereiche (Englisch: supervision area). Räume können für ein Gebäude (Englisch: building) zusammengefasst, Gebäude wiederum für einen Campus (Englisch: campus) zusammengefasst werden. Auch Aufsichtsbereiche können für einen Campus zusammengefasst werden.
Hier ein Beispiel für zwei Räume mit Verweis auf das gleiche Gebäude:
"rooms": [
{
"id": "100",
"code": "100",
"name": "Raum 100",
"building": {
"refId": "HG"
}
},
{
"id": "101",
"code": "101",
"name": "Raum 101",
"building": {
"refId": "HG"
}
}
]
Zeitliche Ausdrücke
Zeitliche Ausdrücke (Englisch: temporal expression) erlauben eine flexible zeitliche Planung von Planelementen.
Die folgenden zeitlichen Ausdeücke werden unterstützt:
Einmalig
Einmalige (Englisch: one time) Ausdrücke repräsentieren einen einmaligen Termin, definiert durch ein Startzeitpunkt und einem Endzeitpunkt. Ein einmaliger Termin kann auch mehrtägig sein (z.B. Sommerferien).
Hier ein Beispiel für einen einmaligen Termin.
"temporalExpressions": [
{
"type": "onetime",
"startTimepoint": "2023-09-04T08:00:00",
"endTimepoint": "2023-09-04T08:45:00"
}
]
Wöchentlich
Wöchentlich (Englisch: weekly) Ausdrücke repräsentieren sich wöchentlich wiederholendende Termine, beginnend mit einem konkretem Termin, definiert durch ein Startzeitpunkt und einem Endzeitpunkt. Standardmäßig findet dieser Termin in jeder Woche innerhalb des Gültigkeitszeitraum des Stundenplans statt. Es können jedoch optional einzelne Wochen deaktiviert werden, so dass ein Wochenmuster entsteht (z.B. 14-tägig, jede dritte Woche, etc.).
Hier ein Beispiel für einen wöchentlichen Termin, der jedoch nur in bestimmten Kalenderwochen stattfindet:
"temporalExpressions": [
{
"type": "weekly",
"startTimepoint": "2023-09-08T11:00:00",
"endTimepoint": "2023-09-08T11:45:00",
"weeks": [
"2023:36,38,40,42,44,46,48,50",
"2024:1-4"
]
}
]
Kombination
Zeitliche Ausdrücke können miteinander kombiniert und sowohl positiv (findet statt) als auch negativ (findet nicht statt) definiert werden. Die Kombination aus positiven und negativen zeitlichen Ausdrücken erlaubt die Repräsentation von zeitlichen Ausnahmen (z.B. Immer Montags von 8:00 bis 8:45, nur nicht im Juli und im August).
Hier ein Beispiel für einen zeitlichen Ausdruck, bestehend aus einem wöchentlichen Termin, der jedoch an einem bestimmten Tag nicht stattfindet:
"temporalExpressions": [
{
"type": "weekly",
"startTimepoint": "2023-09-08T11:00:00",
"endTimepoint": "2023-09-08T11:45:00",
"operation": "include"
},
{
"type": "onetime",
"startTimepoint": "2023-09-22:00:00",
"endTimepoint": "2023-09-22T00:00:00",
"operation": "exclude"
}
]
Zeitrahmen
Planelemente werden u.a. durch konkrete Uhrzeiten definiert. Ein Zeitrahmen (Englisch: time frame) erlaubt eine Abbildung der Planelemente auf ein Stundenraster (z.B. 1. Stunde, 2. Stunde, Pause, etc.), das eine zeitlich abstrahierte Darstellung des Stundenplans ermöglicht.
Hier ein Beispiel für einen Zeitrahmen in einer Grundschule (Jahrgangsstufe 1):
"timeFrames": [
{
"id": "default",
"code": "Unterricht",
"name": "Unterrichtsraster",
"scopeOfWeek": [
"mon",
"tue",
"wed",
"thu",
"fri"
],
"timeSlots": [
{
"code": "1",
"label": "1. Stunde",
"startTime": "08:00:00",
"endTime": "08:45:00"
},
{
"code": "2",
"label": "2. Stunde",
"startTime": "09:05:00",
"endTime": "09:50:00"
},
{
"code": "3",
"label": "3. Stunde",
"startTime": "10:10:00",
"endTime": "10:55:00"
},
{
"code": "4",
"label": "4. Stunde",
"startTime": "11:00:00",
"endTime": "11:45:00"
},
{
"code": "5",
"label": "5. Stunde",
"startTime": "12:20:00",
"endTime": "13:05:00"
}
]
}
]
Spezifikation
Versionierung
Die OpenT8-Spezifikation wird nach dem Schema major.minor.patch
versioniert. Der Major-Minor-Teil der Versionsnummer (z. B. 0.1
) MUSS den Funktionssatz der Spezifikation bezeichnen. Die Patch-Versionen betreffen Fehler in diesem Dokument oder stellen Klarstellungen zu diesem Dokument bereit, nicht zum Funktionsumfang. Werkzeuge, die OpenT8 in der Version 0.1
unterstützen, MÜSSEN mit allen 0.1.*
Versionen von OpenT8 kompatibel sein. Die Patch-Version SOLLTE von den Werkzeugen NICHT berücksichtigt werden, so dass zum Beispiel kein Unterschied zwischen 0.1.0
und 0.1.1
gemacht wird.
Ein OpenT8-Dokument enthält stets ein obligatorisches Feld opent8
, das die verwendete Version der OpenT8-Spezifikation angibt.
Format
Ein OpenT8-Dokument, das mit der OpenT8-Spezifikation konform ist, ist selbst ein JSON-Objekt, das im JSON-Format dargestellt werden kann.
Bei allen Feldnamen in der Spezifikation wird zwischen Groß- und Kleinschreibung unterschieden.
Das Schema sieht zwei Arten von Feldern vor: Fest definierte Felder, die einen deklarierten Namen haben, und freie Felder, deren Namen aber einem bestimmten Muster (Englisch: pattern) entsprechen MÜSSEN. Zusatzfelder MÜSSEN innerhalb des enthaltenen JSON-Objekts eindeutige Namen haben.
JSON Schema
JSON Schema ist eine Spezifikation zur Definition von JSON-Datenstrukturen. Ein JSON-Schema wird selbst deklarativ durch JSON ausgedrückt. Das OpenT8 Document Schema ist ein JSON-Schema für OpenT8-Dokumente.
Datums- und Zeitangaben
Die Formatierung der Datums- und Zeitangaben in OpenT8 sind, wie von JSON Schema vorgegeben, durch RFC 3339, Abschnitt 5.6 spezifiziert.
Beispiele:
date-time
: Datum und Zeit zusammen, z.B.2023-11-13T20:20:39
oder2023-11-13T20:20:39+00:00
.time
: Nur Uhrzeit, z.B.20:20:39
oder20:20:39+00:00
.date
: Nur Datum, z.B.2023-11-13
.
Kalenderwochen
Kalenderwochen werden durch ein JSON-Array mit formatierten Strings repräsentiert. Jeder formatierte String definiert die Menge der gewünschten Kalenderwochen für genau ein benanntes Jahr. Der Syntax lautet:
<Jahr>:(<Kalenderwoche>|<Kalenderwoche>-<Kalenderwoche>)[,(<Kalenderwoche>|<Kalenderwoche>-<Kalenderwoche>)]
Eine Kalenderwoche ist nach ISO 8601 wie folgt definiert:
- Kalenderwochen haben 7 Tage, beginnen an einem Montag und werden über das Jahr fortlaufend nummeriert.
- Die Kalenderwoche 1 eines Jahres ist diejenige, die den ersten Donnerstag enthält.
- Je nach Jahr kann es entweder 52 oder 53 Kalenderwochen geben.
Statt einzelner Kalenderwochen (z.B. 10
) können auch Kalenderwochenbereiche (z.B. 10-12
) definiert werden.
Ein Beispiel, bei dem für das Jahr 2023 die Kalenderwochen 36,38,40,42,44,46,48 und 50, sowie für das Jahr 2024 die ersten 4 Wochen markiert sind:
Farbwerte
Die Formatierung der Farbwerte in OpenT8 orientiert sich am hexadezimale Farbsystem, so wie es auch im HTML-Standard definiert ist.
Eine hexadezimale Farbe wird angegeben mit: #RRGGBB, wobei die hexadezimalen Ganzzahlen RR (Rot), GG (Grün) und BB (Blau) die Komponenten der Farbe angeben.
Beispiele:
#ff0000
ist rot#00ff00
ist grün#0000ff
ist blau#ff8000
ist organge
Schema
OpenT8-Objekt
Dies ist das Wurzelobjekt eines OpenT8-Dokuments und enthält folgende Felder:
opent8
-
Definiert die Versionsnummer der OpenT8-Spezifikation. Dieses Feld ist ERFORDERLICH.
info
-
Metadaten zum Stundenplan. Dieses Objekt ist ERFORDERLICH.
persons
-
Eine Liste von Personen. Es MUSS ein JSON-Array mit
person
-Objekten sein. roles
-
Eine Liste von Teilnehmerrollen. Es MUSS ein JSON-Array mit
role
-Objekten sein. groups
-
Eine Liste von Gruppen. Es MUSS ein JSON-Array mit
group
-Objekten sein. groupTypes
-
Eine Liste von Gruppentypen. Es MUSS ein JSON-Array mit
groupType
-Objekten sein. rooms
-
Eine Liste von Räumen. Es MUSS ein JSON-Array mit
room
-Objekten sein. buildings
-
Eine Liste von Gebäuden. Es MUSS ein JSON-Array mit
building
-Objekten sein. campuses
-
Eine Liste von Campus. Es MUSS ein JSON-Array mit
campus
-Objekten sein. supervisionAreas
-
Eine Liste von Aufsichtsbereichen. Es MUSS ein JSON-Array mit
supervisionArea
-Objekten sein. eventTypes
-
Eine Liste von Ereignistypen. Es MUSS ein JSON-Array mit
eventType
-Objekten sein. timeFrames
-
Eine Liste von Zeitrahmen. Es MUSS ein JSON-Array mit
timeFrame
-Objekten sein. subjects
-
Eine Liste von Fächern. Es MUSS ein JSON-Array mit
subject
-Objekten sein. courses
-
Eine Liste von Kursen. Es MUSS ein JSON-Array mit
course
-Objekten sein. schedule
-
Die eigentliche zeitliche Verplanung. Dieses Objekt ist ERFORDERLICH.
Dieses Objekt KANN erweitert werden.
info-Objekt
Das info
-Objekt enthält Metadaten zum Stundenplan:
title
-
Der Titel oder die Bezeichnung des Stundenplans. Dieses Feld ist ERFORDERLICH.
description
-
Eine kurze Beschreibung des Stundenplans
summary
-
Eine Zusammenfassung des Stundenplaninhalts.
publishedAt
-
Zeitpunkt der Veröffentlichung des Stundenplans.
publishedFrom
-
Wem gehört der Stundenplan?
language
-
Die Ausgabesprache des Stundenplans. Dies MUSS ein ISO 639-1 Sprachcode sein.
source
-
Quelle der Stundenplandaten.
Dieses Objekt KANN erweitert werden.
Beispiel:
"info": {
"title": "Stundenplan 2023/2024",
"description": "Stundenplan für das Schuljahr 2023/2024",
"summary": "Der aktuelle Stundenplan inklusive Aufsichten und Vertretungen.",
"version": "201",
"publishedAt": "2023-09-01T12:00:00",
"publishedFrom": "Meine-Schule, Berlin",
"language": "de",
"source": {
"name": "MyTimeTableApp",
"version": "1.0"
}
}
source-Objekt
Das source
-Objekt enthält Informationen zum Dienst, zur Anwendung oder zum Werkzeug, mit dessen Hilfe die Stundenplandaten erzeugt wurden:
name
-
Name des Dienstes, der Anwendung oder des Werkzeugs, mit dessen Hilfe die Stundenplandaten erzeugt wurden. Dieses Feld ist ERFORDERLICH.
version
-
Versionsnummer des Dienstes, der Anwendung oder des Werkzeugs, mit dessen Hilfe die Stundenplandaten erzeugt wurden.
url
-
Eine URL, unter der sich weitere Informationen finden lassen.
Dieses Objekt KANN erweitert werden.
schedule-Objekt
Das schedule
-Objekt enthält die eigentliche zeitliche Verplanung:
validFrom
-
Definiert den Startzeitpunkt (RFC 3339) des Gültigkeit des Stundenplans. Dieses Feld ist ERFORDERLICH.
validTo
-
Definiert den Endzeitpunkt (RFC 3339) des Gültigkeit des Stundenplans. Dieses Feld ist ERFORDERLICH.
defaultTimeFrame
-
Verweis auf den Standardzeitrahmen. Dies MUSS ein
reference
-Objekt sein. scheduleElements
-
Eine Liste von Planelementen. Es MUSS ein JSON-Array mit
lesson
-Objekten,supervision
-Objekten,event
-Objekten,holdiay
-Objekten,announcement
-Objekten und/odergap
-Objekten sein.
Dieses Objekt KANN erweitert werden.
person-Objekt
Das person
-Objekt repräsentiert einen Teilnehmer einer Gruppe, eines Kurses, einer Veranstaltungen, einer Aufsichten oder eines Ereignisses:
id
-
Eindeutige Identifikation des Teilnehmers. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel des Teilnehmers. Dieses Feld ist ERFORDERLICH.
lastName
-
Nachname des Teilnehmers.
middleName
-
Mittelname des Teilnehmers.
firstName
-
Vorname des Teilnehmers.
namePrefix
-
Namenspräfix (z.B. "von") des Teilnehmers.
nameQualifier
-
Titel (z.B. "Dr.") des Teilnehmers.
nameSuffix
-
Namenszusatz (z.B. "Jr.") des Teilnehmers.
birthdate
-
Geburtsdatum des Teilnehmers.
color
-
Ein Farbwert (Hex-Kodierung) für den Teilnehmer.
timeFrame
-
Der Zeitrahmen des Teilnehmers. Dies MUSS ein
reference
-Objekt, das auf eintimeFrame
-Objekt verweist, sein. Diese Angabe macht nur Sinn, wenn sie vom Standardzeitrahmen des Stundenplans abweicht.
Dieses Objekt KANN erweitert werden.
role-Objekt
Das role
-Objekt repräsentiert einen Rolle, mit der Teilnehmer kategorisiert werden können:
id
-
Eindeutige Identifikation der Teilnehmerrolle. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel der Teilnehmerrolle. Dieses Feld ist ERFORDERLICH.
key
-
Ein standardisierter, optionaler Schlüssel. Es wird EMPFOHLEN, diese Werte, wann immer möglich zu verwenden, um eine Kategorisierung der Rolle unabhängig von der Datenquelle zu gewährleisten.
Folgende Werte sind definiert:
Wert Beschreibung DE.KIND
Kind DE.SCHÜ
Schüler:in DE.STUD
Student:in DE.LEHR
Lehrkraft DE.DOZN
Dozent:in DE.ERZI
Erzieher:in DE.EZBE
Erziehungsberechtigte:r name
-
Name oder Bezeichnung der Teilnehmerrolle. Dies MUSS ein JSON-Objekt mit folgenden Feldern sein:
singular
: Der Name oder die Bezeichnung im Singular. Dieses Feld ist ERFORDERLICH.plural
: Der Name oder die Bezeichnung im Plural. Dieses Feld ist ERFORDERLICH.
description
-
Eine kurze Beschreibung der Teilnehmerrolle.
color
-
Ein Farbwert (Hex-Kodierung) für die Teilnehmerrolle.
Dieses Objekt KANN erweitert werden.
group-Objekt
Das group
-Objekt repräsentiert eine Gruppe, der man Teilnehmer zuordnen kann:
id
-
Eindeutige Identifikation der Gruppe. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel der Gruppe. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung der Gruppe.
description
-
Eine kurze Beschreibung der Gruppe.
color
-
Ein Farbwert (Hex-Kodierung) für die Gruppe.
attendees
-
Eine Liste von Teilnehmern und ihren Rollen. Dies MUSS ein Array mit Objekten sein, welche folgende Felder besitzen:
refId
: Dies MUSS ein Verweis auf das Feldid
eines vorhandenenattendee
-Objektes sein. Dieses Feld ist ERFORDERLICH.role
: Verweis auf eine Teilnehmerrolle. Dies MUSS einreference
-Objekt sein. Dieses Feld ist ERFORDERLICH.
groupType
-
Typ der Gruppe. Dies MUSS ein
reference
-Objekt, das auf eingroupType
-Objekt verweist, sein. timeFrame
-
Der Zeitrahmen des Teilnehmers. Dies MUSS ein
reference
-Objekt, das auf eintimeFrame
-Objekt verweist, sein. Diese Angabe macht nur Sinn, wenn sie vom Standardzeitrahmen des Stundenplans abweicht.
Dieses Objekt KANN erweitert werden.
groupType-Objekt
Das groupType
-Objekt repräsentiert einen Gruppentyp, mit dem Gruppen kategorisiert werden können:
id
-
Eindeutige Identifikation des Gruppentyps. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel des Gruppentyps. Dieses Feld ist ERFORDERLICH.
key
-
Ein standardisierter, optionaler Schlüssel. Es wird EMPFOHLEN, diese Werte, wann immer möglich zu verwenden, um eine Kategorisierung der Gruppe unabhängig von der Datenquelle zu gewährleisten.
Folgende Werte sind definiert:
Wert Beschreibung DE.KITA
KiTa-Gruppe DE.KIGA
KiGa-Gruppe DE.HORT
Hortgruppe DE.KLAS
Klasse DE.JAHR
Jahrgang name
-
Name oder Bezeichnung des Gruppentyps. Dies MUSS ein JSON-Objekt mit folgenden Feldern sein:
singular
: Der Name oder die Bezeichnung im Singular. Dieses Feld ist ERFORDERLICH.plural
: Der Name oder die Bezeichnung im Plural. Dieses Feld ist ERFORDERLICH.
description
-
Eine kurze Beschreibung des Gruppentyps.
color
-
Ein Farbwert (Hex-Kodierung) für den Gruppentyps.
Dieses Objekt KANN erweitert werden.
room-Objekt
Das room
-Objekt repräsentiert einen Raum, in dem Unterricht oder ein anderweitiges Ereignis stattfindet:
id
-
Eindeutige Identifikation des Raums. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel des Raums. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung des Raums.
description
-
Eine kurze Beschreibung des Raums.
color
-
Ein Farbwert (Hex-Kodierung) für den Raum.
building
-
Das Gebäude, in dem sich der Raum befindet. Dies MUSS ein
reference
-Objekt, das auf einbuilding
-Objekt verweist, sein.
Dieses Objekt KANN erweitert werden.
building-Objekt
Das building
-Objekt repräsentiert ein Gebäude, in dem sich Räume befinden:
id
-
Eindeutige Identifikation des Gebäudes. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel des Gebäudes. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung des Gebäudes.
refId
: Dies MUSS ein Verweis auf das Feldid
eines vorhandenenattendee
-Objektes sein. Dieses Feld ist ERFORDERLICH.role
: Die Teilnehmerrolle. Dies MUSS einreference
-Objekt sein, das auf ein vorhandenesattendeeRole
-Objekt verweist. Dieses Feld ist ERFORDERLICH.
description
-
Eine kurze Beschreibung des Gebäudes.
color
-
Ein Farbwert (Hex-Kodierung) für das Gebäude.
campus
-
Der Campus, auf dem sich das Gebäude befindet. Dies MUSS ein
reference
-Objekt, das auf eincampus
-Objekt verweist, sein.
Dieses Objekt KANN erweitert werden.
campus-Objekt
Das campus
-Objekt repräsentiert einen Campus, auf dem sich Gebäude und/oder Aufsichtsbereiche befinden:
id
-
Eindeutige Identifikation des Campus. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel des Campus. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung des Campus.
description
-
Eine kurze Beschreibung des Campus.
color
-
Ein Farbwert (Hex-Kodierung) für den Campus.
Dieses Objekt KANN erweitert werden.
supervisionArea-Objekt
Das supervisionArea
-Objekt repräsentiert ein Aufsichtsbereich, für den Aufsichten verplant werden können:
id
-
Eindeutige Identifikation des Aufsichtsbereichs. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel des Aufsichtsbereichs. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung des Aufsichtsbereichs.
description
-
Eine kurze Beschreibung des Aufsichtsbereichs.
color
-
Ein Farbwert (Hex-Kodierung) für den Aufsichtsbereich.
campus
-
Der Campus, auf dem sich der Aufsichtsbereich befindet. Dies MUSS ein
reference
-Objekt, das auf eincampus
-Objekt verweist, sein.
Dieses Objekt KANN erweitert werden.
subject-Objekt
Das subject
-Objekt repräsentiert ein Fach, das mit Kursen verknüpft werden kann:
id
-
Eindeutige Identifikation der Fachs. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel der Fachs. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung des Fach.
description
-
Eine kurze Beschreibung des Fachs.
color
-
Ein Farbwert (Hex-Kodierung) für das Fach.
Dieses Objekt KANN erweitert werden.
course-Objekt
Das course
-Objekt repräsentiert einen Kurs, in dem sich Gruppen und/oder Teilnehmer treffen und der Veranstaltungen zugeordnet werden kann:
id
-
Eindeutige Identifikation des Kurses. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel des Kurses. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung des Kurses.
description
-
Eine kurze Beschreibung des Kurses.
color
-
Ein Farbwert (Hex-Kodierung) für den Kurs.
groups
-
Eine Liste von Gruppen. Dies MUSS ein Array mit
reference
-Objekten sein, die wiederum auf ein vorhandenesgroup
-Objekt verweisen. attendees
-
Eine Liste von Teilnehmern und ihren Rollen. Dies MUSS ein Array mit Objekten sein, welche folgende Felder besitzen:
refId
: Dies MUSS ein Verweis auf das Feldid
eines vorhandenenattendee
-Objektes sein. Dieses Feld ist ERFORDERLICH.role
: Die Teilnehmerrolle. Dies MUSS einreference
-Objekt sein, das auf ein vorhandenesattendeeRole
-Objekt verweist. Dieses Feld ist ERFORDERLICH.
Dieses Objekt KANN erweitert werden.
timeFrame-Objekt
Das timeFrame
-Objekt definiert einen Zeitrahmen, mit dessen Hilfe sich die Uhrzeiten der Planelemente auf ein abstrahiertes Raster (z.B. !. Stunde, 2. Stunde, Pause, etc.) abbilden:
id
-
Eindeutige Identifikation des Zeitrahmens. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel des Zeitrahmens. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung des Zeitrahmens.
description
-
Eine kurze Beschreibung des Zeitrahmens.
color
-
Ein Farbwert (Hex-Kodierung) für den Zeitrahmen.
scopeOfWeek
-
Die Menge der Wochentage, die bei einer wöchenlichen Darstellung des Stundenplans berücksichtigt werden sollen (z.B. nur Montag bis Samstag). Dieses Feld ist ERFORDERLICH.
Folgende Werte sind definiert:
Wert Beschreibung mon
Montag tue
Dienstag wef
Mittwoch thu
Donnerstag fri
Freitag sat
Samstag sun
Sonntag startOfWeek
-
Der Wochentag, mit dem bei einer wöchenlichen Darstellung des Stundenplans begonnen werden soll. Der Standardwert ist
mon
.Folgende Werte sind definiert:
Wert Beschreibung mon
Montag tue
Dienstag wef
Mittwoch thu
Donnerstag fri
Freitag sat
Samstag sun
Sonntag timeSlots
-
Eine Liste von benannten Zeitfenstern, welche die Abstraktion des Zeitrahmens definieren. Dies MUSS ein Array mit
timeSlot
-Objekten sein. Dieses Feld ist ERFORDERLICH.
Dieses Objekt KANN erweitert werden.
timeSlot-Objekt
Das timeSlot
-Objekt definiert ein benanntes Zeitfenster für einen Zeitrahmen (z.B. 1. Stunde von 8:00 bis 8:45):
code
-
Kürzel des Zeitfensters. Dieses Feld ist ERFORDERLICH.
label
-
Kennzeichnung des Zeitfenster.
color
-
Ein Farbwert (Hex-Kodierung) für das Zeitfenster.
startTime
-
Die Startuhrzeit (RFC 3339) des Zeitfenster. Dieses Feld ist ERFORDERLICH.
endTime
-
Die Enduhrzeit (RFC 3339) des Zeitfenster. Dieses Feld ist ERFORDERLICH.
Dieses Objekt KANN erweitert werden.
lesson-Objekt
Das lesson
-Objekt repräsentiert eine Veranstaltung, die einem Kurs zugeordnet ist und zeitlich verplant wird:
type
-
MUSS den Wert
lesson
haben. Dieses Feld ist ERFORDERLICH. id
-
Eindeutige Identifikation der Veranstaltung. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel der Veranstaltung. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung der Veranstaltung.
description
-
Eine kurze Beschreibung der Veranstaltung.
color
-
Ein Farbwert (Hex-Kodierung) für die Veranstaltung.
course
-
Der zugeordnete Kurs. Dies MUSS ein
reference
-Objekt, das auf eincourse
-Objekt verweist, sein. Dieses Feld ist ERFORDERLICH. groups
-
Eine Liste von Gruppenreferenzen. Dies MUSS ein Array mit
reference
-Objekten sein. attendees
-
Eine Liste von Teilnehmerreferenzen. Dies MUSS ein Array mit
attendeeRef
-Objekten sein. rooms
-
Eine Liste von Raumreferenzen. Dies MUSS ein Array mit
reference
-Objekten sein. temporalExpressions
-
Eine Liste von zeitlichen Ausdrücken. Es MUSS ein JSON-Array mit
oneTimeExpression
-Objekten und/oderweeklyExpression
-Objekten sein.
Dieses Objekt KANN erweitert werden.
supervision-Objekt
Das supervision
-Objekt repräsentiert eine Aufsicht, die einem oder mehren Aufsichtsbereichen zugeordnet ist und zeitlich verplant wird:
type
-
MUSS den Wert
supervision
haben. Dieses Feld ist ERFORDERLICH. id
-
Eindeutige Identifikation der Veranstaltung. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel der Veranstaltung. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung der Veranstaltung.
description
-
Eine kurze Beschreibung der Veranstaltung.
color
-
Ein Farbwert (Hex-Kodierung) für die Veranstaltung.
attendees
-
Eine Liste von Teilnehmerreferenzen. Dies MUSS ein Array mit
attendee
-Objekten sein. areas
-
Eine Liste von Aufsichtsbereichsreferenzen. Dies MUSS ein Array mit
reference
-Objekten sein. temporalExpressions
-
Eine Liste von zeitlichen Ausdrücken. Es MUSS ein JSON-Array mit
oneTimeExpression
-Objekten und/oderweeklyExpression
-Objekten sein.
Dieses Objekt KANN erweitert werden.
event-Objekt
Das event
-Objekt repräsentiert ein Termin, dass sich nicht durch eine Veranstaltung ausdrücken lässt (z.B. eine Prüfung oder ein Meeting):
type
-
MUSS den Wert
event
haben. Dieses Feld ist ERFORDERLICH. id
-
Eindeutige Identifikation des Termins. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel des Termins. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung des Termins.
description
-
Eine kurze Beschreibung des Termins.
color
-
Ein Farbwert (Hex-Kodierung) für den Termin.
eventType
-
Die Typisierung des Termins. Dies MUSS ein
reference
-Objekt, das auf eineventType
-Objekt verweist, sein. attendees
-
Eine Liste von Teilnehmerreferenzen. Dies MUSS ein Array mit
attendee
-Objekten sein. rooms
-
Eine Liste von Raumreferenzen. Dies MUSS ein Array mit
reference
-Objekten sein. temporalExpressions
-
Eine Liste von zeitlichen Ausdrücken. Es MUSS ein JSON-Array mit
oneTimeExpression
-Objekten und/oderweeklyExpression
-Objekten sein.
Dieses Objekt KANN erweitert werden.
eventType-Objekt
Das eventType
-Objekt repräsentiert einen Ereignistyp, mit dem Ereignisse kategorisiert werden können:
id
-
Eindeutige Identifikation des Ereignistyps. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel des Ereignistyps. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung des Ereignistyps. Dies MUSS ein JSON-Objekt mit folgenden Feldern sein:
singular
: Der Name oder die Bezeichnung im Singular. Dieses Feld ist ERFORDERLICH.plural
: Der Name oder die Bezeichnung im Plural. Dieses Feld ist ERFORDERLICH.
description
-
Eine kurze Beschreibung des Ereignistyps.
color
-
Ein Farbwert (Hex-Kodierung) für den Ereignistyps.
Dieses Objekt KANN erweitert werden.
holiday-Objekt
Das holiday
-Objekt repräsentiert schulfreie Zeit (Feiertage oder Schulferien):
type
-
MUSS den Wert
holiday
haben. Dieses Feld ist ERFORDERLICH. id
-
Eindeutige Identifikation der schulfreie Zeit. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel der schulfreie Zeit. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung der schulfreie Zeit.
description
-
Eine kurze Beschreibung der schulfreie Zeit.
color
-
Ein Farbwert (Hex-Kodierung) für die schulfreie Zeit.
holidayType
-
Die Typisierung des Termins. Mögliche Werte sind:
Wert Beschreibung public
Feiertag school
Schulferien custom
Benutzerdefinierte Freizeit temporalExpressions
-
Eine Liste von zeitlichen Ausdrücken. Es MUSS ein JSON-Array mit
oneTimeExpression
-Objekten und/oderweeklyExpression
-Objekten sein.
Dieses Objekt KANN erweitert werden.
announcement-Objekt
Das announcement
-Objekt repräsentiert eine freie Mitteilung im Stundenplan:
type
-
MUSS den Wert
announcement
haben. Dieses Feld ist ERFORDERLICH. id
-
Eindeutige Identifikation der Mitteilung. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel der Mitteilung. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung der Mitteilung.
description
-
Eine kurze Beschreibung der Mitteilung.
color
-
Ein Farbwert (Hex-Kodierung) für die Mitteilung.
priority
-
Die Priorität der Mitteilung.
Folgende Werte sind definiert:
Wert Beschreibung important
Wichtig alarm
Alarm temporalExpressions
-
Eine Liste von zeitlichen Ausdrücken. Es MUSS ein JSON-Array mit
oneTimeExpression
-Objekten und/oderweeklyExpression
-Objekten sein.
Dieses Objekt KANN erweitert werden.
gap-Objekt
Das gap
-Objekt repräsentiert eine Fehlstelle im Stundenplan:
type
-
MUSS den Wert
gap
haben. Dieses Feld ist ERFORDERLICH. id
-
Eindeutige Identifikation der Fehlstelle. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel der Fehlstelle. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung der Fehlstelle.
description
-
Eine kurze Beschreibung der Fehlstelle.
reference
-
Verweis auf eine Veranstaltung oder eine Aufsicht. Dies MUSS ein JSON-Objekt mit folgenden Feldern sein:
-
type
: Die Typisierung des FeldesrefId
. Dieses Feld ist ERFORDERLICH.Mögliche Werte sind:
Wert Beschreibung lesson
Veranstaltung, die nicht wie geplant stattfinden kann. supervision
Aufsicht, die nicht wie geplant stattfinden kann. -
refId
: Dies MUSS ein Verweis auf das Feldid
eines vorhandenenlesson
-Objektes oder eines vorhandenensupervision
-Objektes sein, jeweils in Abhängigkeit vom Wert in Feldtype
. Dieses Feld ist ERFORDERLICH.
-
reasons
-
Eine Liste von Gründen. Es MUSS ein JSON-Array mit
absence
-Objekten und/oderstash
-Objekten sein. resolutions
-
Eine Liste von Auflösungen. Es MUSS ein JSON-Array mit
substitution
-Objekten und/odercancellation
-Objekten sein. temporalExpressions
-
Eine Liste von zeitlichen Ausdrücken. Es MUSS ein JSON-Array mit
oneTimeExpression
-Objekten und/oderweeklyExpression
-Objekten sein.
Dieses Objekt KANN erweitert werden.
absence-Objekt
Das absence
-Objekt definiert eine Abwesenheit:
type
-
MUSS den Wert
absence
haben. Dieses Feld ist ERFORDERLICH. id
-
Eindeutige Identifikation der Abwesenheit. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel der Abwesenheit. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung der Abwesenheit.
description
-
Eine kurze Beschreibung der Abwesenheit.
reference
-
Referenz zu einer Person, einer Gruppe oder einem Raum. Dies MUSS ein JSON-Objekt mit folgenden Feldern sein:
-
type
: Die Typisierung des FeldesrefId
. Dieses Feld ist ERFORDERLICH.Mögliche Werte sind:
Wert Beschreibung person
Eine teilnehmende Person (z.B. der Lehrer) ist abwesend. group
Eine Gruppe is abwesend. room
Der Raum steht nicht zur Verfügung. -
refId
: Dies MUSS ein Verweis auf das Feldid
eines vorhandenenperson
-Objektes, eines vorhandenengroup
-Objektes oder eines vorhandenenroom
-Objektes sein, jeweils in Abhängigkeit vom Wert in Feldtype
. Dieses Feld ist ERFORDERLICH.
-
Dieses Objekt KANN erweitert werden.
stash-Objekt
Das stash
-Objekt definiert eine Freistellung:
type
-
MUSS den Wert
stash
haben. Dieses Feld ist ERFORDERLICH. id
-
Eindeutige Identifikation der Freistellung. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel der Freistellung. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung der Freistellung.
description
-
Eine kurze Beschreibung der Freistellung.
reference
-
Referenz zu einer Person. Dies MUSS ein JSON-Objekt mit folgenden Feldern sein:
-
type
: Die Typisierung des FeldesrefId
. Dieses Feld ist ERFORDERLICH.Mögliche Werte sind:
Wert Beschreibung person
Eine teilnehmende Person (z.B. der Lehrer) ist freigestellt. -
refId
: Dies MUSS ein Verweis auf das Feldid
eines vorhandenenperson
-Objektes sein. Dieses Feld ist ERFORDERLICH.
-
Dieses Objekt KANN erweitert werden.
substitution-Objekt
Das substitution
-Objekt definiert eine Vertretung:
type
-
MUSS den Wert
substitution
haben. Dieses Feld ist ERFORDERLICH. id
-
Eindeutige Identifikation der Vertretung. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel der Vertretung. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung der Vertretung.
description
-
Eine kurze Beschreibung der Vertretung.
reference
-
Verweis auf eine Veranstaltung oder eine Aufsicht. Dies MUSS ein JSON-Objekt mit folgenden Feldern sein:
-
type
: Die Typisierung des FeldesrefId
. Dieses Feld ist ERFORDERLICH.Mögliche Werte sind:
Wert Beschreibung lesson
Neue Veranstaltung als Vertretung. supervision
Neue Aufsicht als Vertretung. -
refId
: Dies MUSS ein Verweis auf das Feldid
eines vorhandenenlesson
-Objektes oder eines vorhandenensupervision
-Objektes sein, jeweils in Abhängigkeit vom Wert in Feldtype
. Dieses Feld ist ERFORDERLICH.
-
Dieses Objekt KANN erweitert werden.
cancellation-Objekt
Das cancellation
-Objekt definiert einen Unterrichtsausfall:
type
-
MUSS den Wert
cancellation
haben. Dieses Feld ist ERFORDERLICH. id
-
Eindeutige Identifikation des Unterrichtsausfalls. Dieses Feld ist ERFORDERLICH.
code
-
Kürzel des Unterrichtsausfalls. Dieses Feld ist ERFORDERLICH.
name
-
Name oder Bezeichnung des Unterrichtsausfalls.
description
-
Eine kurze Beschreibung des Unterrichtsausfalls.
behaviour
-
Mögliches Verhalten
leaveRoom
: Den Unterrichtsraum verlassenstayInRoom
: Im Unterrichtsraum bleiben
Dieses Objekt KANN erweitert werden.
oneTimeExpression-Objekt
Das oneTimeExpression
-Objekt definiert einen einmaligen zeitlichen Ausdruck:
type
-
MUSS den Wert
oneTime
haben. Dieses Feld ist ERFORDERLICH. startTimepoint
-
Startzeitpunkt (RFC 3339) des zeitlichen Ausdrucks. Dieses Feld ist ERFORDERLICH.
endTimepoint
-
Endzeitpunkt (RFC 3339) des zeitlichen Ausdrucks. Dieses Feld ist ERFORDERLICH.
operation
-
Soll der zeitliche Ausdruck hinzugefügt oder abgezogen werden?
include
: Findet statt (das ist der Standardwert)exclude
: Findet nicht statt
Das folgende Beispiel zeigt ein oneTimeExpression
-Objekt, das sich über mehrere Tage erstreckt:
"temporalExpressions": [
{
"type": "onetime",
"startTimepoint": "2023-12-23T12:00:00",
"endTimepoint": "2024-01-05T12:00:00"
}
]
weeklyExpression-Objekt
Das weeklyExpression
-Objekt definiert einen sich wöchentlich wiederholenden zeitlichen Ausdruck:
type
-
MUSS den Wert
weekly
haben. Dieses Feld ist ERFORDERLICH. startTimepoint
-
Startzeitpunkt (RFC 3339) des zeitlichen Ausdrucks. Dieses Feld ist ERFORDERLICH.
endTimepoint
-
Endzeitpunkt (RFC 3339) des zeitlichen Ausdrucks. Dieses Feld ist ERFORDERLICH.
weeks
-
Eine Liste von Kalenderwochen, an denen dieser zeitliche Ausdruck sich wiederholt. Ist dieses Feld nicht definiert, dann wiederholt sich dieser zeitliche Ausdruck in jeder Woche innerhalb der Gültigkeit.
validFrom
-
Definiert den Startzeitpunkt (RFC 3339) des Gültigkeit der wöchentlich Wiederholung. Ist dieses Feld nicht definiert, dann gilt der Startzeitpunkt der Gültigkeit des
schedule
-Objektes. validTo
-
Definiert den Endzeitpunkt (RFC 3339) des Gültigkeit der wöchentlich Wiederholung. Ist dieses Feld nicht definiert, dann gilt der Endzeitpunkt der Gültigkeit des
schedule
-Objektes. operation
-
Soll der zeitliche Ausdruck hinzugefügt oder abgezogen werden?
inlcude
: Findet statt (das ist der Standardwert)exclude
: Findet nicht statt
Das folgende Beispiel zeigt ein weeklyExpression
-Objekt, bei dem für das Jahr 2023 die Kalenderwochen 36,38,40,42,44,46,48 und 50, sowie für das Jahr 2024 die ersten 4 Wochen markiert sind:
"temporalExpressions": [
{
"type": "weekly",
"startTimepoint": "2023-09-08T10:30:00",
"endTimepoint": "2023-09-08T11:15:00",
"weeks": [
"2023:36,38,40,42,44,46,48,50",
"2024:1-4"
]
}
]
reference-Objekt
Das reference
-Objekt definiert einen generischen Verweis auf ein anderes Objekt. Der Typ des Objekt hängt vom Kontext ab:
refId
: Dies MUSS ein Verweis auf das Feldid
eines vorhandenen Objektes sein. Dieses Feld ist ERFORDERLICH.
attendee-Objekt
Das attendee
-Objekt definiert einen Verweis auf ein person
-Objekt verbunden mit einer Rolle:
refId
: Dies MUSS ein Verweis auf das Feldid
eines vorhandenenperson
-Objektes sein. Dieses Feld ist ERFORDERLICH.role
: Verweis auf eine Teilnehmerrolle. Dies MUSS einreference
-Objekt sein. Dieses Feld ist ERFORDERLICH.
Erweiterung der Spezifikation
Die OpenT8-Spezifikation kann an bestimmten Stellen um zusätzliche Daten erweitert werden.
Die Eigenschaften der Erweiterungen sind als freie Felder implementiert, denen immer ein x-
vorangestellt werden MUSS (z.B. x-external-id
). Der Wert kann eine Zeichenfolge, eine Zahl, ein boolescher Wert, Null, ein Objekt oder ein Array sein.
Die Erweiterungen können von den verfügbaren Werkzeugen unterstützt werden oder auch nicht. Idealerweise können diese Werkzeuge erweitert werden, um die gewünschte Unterstützung hinzuzufügen (z.B. bei Open Source-Projekten).
Beispiel: