API · v1 · stabil
CODEMETA OSDeveloper Center
Konsole öffnen
Entity · working_time_models

Working Time Model Schema

Schema-ID
working_time_model
Collection
working_time_models
Permissions
  • Lesenworking_time_model_view
  • Anlegenworking_time_model_create
  • Ändernworking_time_model_edit
  • Löschenworking_time_model_delete

Felder

Working Time Model Schema

working_time_models4 Permissions

Policy-Vorlage für Arbeitszeitberechnung (ADR 0036b)

namestringerforderlich
1–200 Zeichen
modelTypestringerforderlich

Basistyp. TRUST entfernt (BAG 2022 / EuGH CCOO — Zeiterfassungspflicht).

FIXEDFLEXTIMESHIFTANNUAL_HOURSKAPOVAZPROJECT_BASED
isDefaultbooleanoptional
Default: false
isActivebooleanoptional
Default: true
workingDaysnumber[]erforderlich
unique items
defaultWorkingHoursPerDaynumberoptional
0 – 24nullable
weeklyHoursTargetnumberoptional

Modell-Wochensoll (Stunden). Genutzt, wenn das Modell direkt in Wochenstunden definiert ist (z. B. „30h/Woche, Verteilung egal"). Wird durch `working_time_assignment.weeklyHours` pro Mitarbeiter übersteuerbar.

0 – 168nullable
monthlyHoursTargetnumberoptional

Modell-Monatssoll (Stunden). Genutzt für Mitarbeiter, deren Vertrag in Monatsstunden geführt wird (z. B. Minijob mit „40h/Monat"). Sollberechnung skaliert linear über die Periodenlänge.

0 – 744nullable
dailyHoursTargetsobject[]optional

Tagesindividuelles Stundensoll pro ISO-Wochentag (1=Mo..7=So). Fehlende Tage gelten als frei. Wenn gesetzt, überschreibt dieses Feld `defaultWorkingHoursPerDay` für den jeweiligen Tag und liefert das Wochensoll (Σ hours). Orthogonal zu `fixedSchedule` (das zusätzlich Start/Endzeit vorgibt).

max 7 Itemsnullable
daynumbererforderlich
1 – 7
hoursnumbererforderlich
0 – 24
planningDeadlineobjectoptional
nullable
dayOfWeeknumberoptional
1 – 7
weekOffsetnumberoptional
timestringoptional
Pattern
notesstringoptional
max 2000 Zeichennullable
flexWindowobjectoptional
nullable
startTimestringoptional
Pattern
endTimestringoptional
Pattern
coreHoursobjectoptional
nullable
startTimestringoptional
Pattern
endTimestringoptional
Pattern
breakWindowobjectoptional
nullable
startTimestringoptional
Pattern
endTimestringoptional
Pattern
fixedScheduleobject[]optional

Tagesfester Plan (nur bei modelType FIXED). Pro ISO-Wochentag.

nullable
daynumbererforderlich
1 – 7
startTimestringerforderlich
Pattern
endTimestringerforderlich
Pattern
breakMinutesnumberoptional
≥ 0Default: 0
breakStartTimestringoptional
Patternnullable
breakEndTimestringoptional
Patternnullable
shiftTypesobject[]optional

Schichttypen (nur bei modelType SHIFT).

nullable
idstringerforderlich
1–32 Zeichen
namestringerforderlich
1–100 Zeichen
startTimestringerforderlich
Pattern
endTimestringerforderlich
Pattern
breakMinutesnumberoptional
≥ 0Default: 0
breakStartTimestringoptional
Patternnullable
breakEndTimestringoptional
Patternnullable
prepTimeMinutesnumberoptional

Rüst-/Umkleidezeit (BAG-Rspr.), zählt als Arbeitszeit

≥ 0Default: 0
surchargePercentnumberoptional
≥ 0Default: 0
crossesMidnightbooleanoptional
Default: false
shiftRotationobjectoptional

Rotationsmuster für SHIFT-Modelle.

nullable
patternstring[]optional

Sequenz von shiftTypes[].id oder "OFF"

cycleWeeksnumberoptional
≥ 1Default: 1
annualHoursobjectoptional

Jahresarbeitszeitkonto (nur bei modelType ANNUAL_HOURS).

nullable
targetHoursnumbererforderlich

Jahressoll in Stunden (z.B. 1720)

≥ 0
monthlyBandwidthobjectoptional
nullable
minHoursnumberoptional
≥ 0
maxHoursnumberoptional
≥ 0
quarterlyBalancingRequiredbooleanoptional
Default: false
kappiRulesobjectoptional

KAPOVAZ-Regeln (Abrufarbeit, § 12 TzBfG).

nullable
minWeeklyHoursnumbererforderlich

§ 12 TzBfG: mind. 10h wenn nicht vereinbart

≥ 10
maxWeeklyHoursnumbererforderlich
≥ 0
callInNoticePeriodHoursnumberoptional

§ 12 TzBfG: mind. 4 Tage Vorlauf

≥ 96Default: 96
minConsecutiveHoursnumberoptional

§ 12 TzBfG: mind. 3h pro Einsatz

≥ 3Default: 3
projectRulesobjectoptional

Projektbasierte Arbeitszeit.

nullable
maxDailyHoursnumberoptional
0 – 10Default: 10
maxWeeklyHoursnumberoptional
0 – 48Default: 48
requiresProjectRefbooleanoptional

Zeitbuchung braucht Projekt-Referenz

Default: true
overtimeRulesobjectoptional
nullable
flexOvertimeAutoCreditbooleanoptional
Default: true
outsideFlexRequiresApprovalbooleanoptional
Default: true
outsideFlexMultipliernumberoptional
≥ 1Default: 1
weekendMultipliernumberoptional
≥ 1Default: 1
holidayMultipliernumberoptional
≥ 1Default: 1
overtimeSurchargePercentnumberoptional

Zuschlag auf Mehrarbeit über Soll (ADDITIVE oben drauf)

≥ 0
maxFlexBalanceMinutesnumberoptional
≥ 0nullable
monthlyCarryOverLimitMinutesnumberoptional
≥ 0nullable
breakRulesobjecterforderlich

Pausenregeln (ArbZG § 4). Gilt auf allen Modelltypen.

after6HoursMinutesnumberoptional

Pflichtpause bei >6h Arbeit (ArbZG: ≥30 Min)

≥ 0Default: 30
after9HoursMinutesnumberoptional

Pflichtpause bei >9h Arbeit (ArbZG: ≥45 Min)

≥ 0Default: 45
minSegmentMinutesnumberoptional

Mindestdauer einer einzelnen Pause (ArbZG: 15 Min)

≥ 0Default: 15
maxConsecutiveWorkMinutesnumberoptional

Max. ununterbrochene Arbeit ohne Pause (ArbZG: 6h = 360 Min)

≥ 0Default: 360
restPeriodobjecterforderlich

Ruhezeit zwischen Schichten (ArbZG § 5). Gilt für alle Modelle.

minHoursBetweenShiftsnumberoptional

Reguläre Mindestruhezeit in Stunden (ArbZG § 5 Abs. 1)

≥ 0Default: 11
reducedToHoursnumberoptional

Reduzierte Ruhezeit (ArbZG § 5 Abs. 2: bestimmte Branchen)

≥ 0Default: 10
reducedAllowedbooleanoptional

Ob reduzierte Ruhezeit (z.B. Gastgewerbe, Krankenhäuser) erlaubt ist

Default: false
maxWorkHoursobjecterforderlich

Höchstarbeitszeit (ArbZG § 3). Gilt für alle Modelle.

maxDailyHoursnumberoptional

Tageshöchstarbeitszeit (ArbZG: 8h regulär, 10h max)

0 – 10Default: 10
maxWeeklyHoursAveragednumberoptional

Wochenhöchstarbeitszeit im Durchschnitt (ArbZG: 48h)

0 – 48Default: 48
averagingPeriodMonthsnumberoptional

Ausgleichszeitraum für Wochendurchschnitt (ArbZG: 6 Monate)

1 – 12Default: 6
nightWorkLimitsobjectoptional

Nachtarbeitsgrenzen (ArbZG § 6). Nur bei Modellen mit Nachtschicht.

nullable
maxHoursPerNightnumberoptional

Max. Stunden pro Nachtschicht (ArbZG § 6 Abs. 2)

0 – 10Default: 8
averagingPeriodMonthsnumberoptional
≥ 1Default: 1
nightWindowStartstringoptional

Beginn Nachtzeitfenster (ArbZG § 2 Abs. 3)

PatternDefault: "23:00"
nightWindowEndstringoptional
PatternDefault: "06:00"
medicalExamRequiredbooleanoptional

Arbeitsmedizinische Untersuchungspflicht (§ 6 Abs. 3)

Default: false
partTimeobjectoptional

Teilzeit-Modifier. Konkreter Prozentsatz auf dem Assignment.

nullable
distributionModestringoptional
FEWER_HOURSFEWER_DAYSCUSTOM
Default: "FEWER_HOURS"
compressedWeekobjectoptional

Komprimierte Woche (z.B. 4×10h). Exklusiv zu partTime.

nullable
workDaysPerWeeknumbererforderlich
1 – 6
dailyHoursTargetnumbererforderlich
0 – 12
onCallobjectoptional

Rufbereitschaft. Exklusiv zu standby.

nullable
compensationModestringerforderlich
FLAT_RATEPER_HOUR
flatRateAmountCentsnumberoptional
≥ 0nullable
perHourAmountCentsnumberoptional
≥ 0nullable
responseTimeMinutesnumbererforderlich
≥ 0
nightSurchargePercentnumberoptional
≥ 0Default: 0
weekendSurchargePercentnumberoptional
≥ 0Default: 0
holidaySurchargePercentnumberoptional
≥ 0Default: 0
activationCountsAsWorkbooleanoptional
Default: true
standbyobjectoptional

Bereitschaftsdienst (am AG-bestimmten Ort). Exklusiv zu onCall.

nullable
countAsWorkPercentnumbererforderlich

z.B. 50 = halbe Stunde pro Stunde Bereitschaft

0 – 100
locationRequiredbooleanoptional
Default: true
surchargePercentnumberoptional
≥ 0Default: 0
jobSharingobjectoptional

Zwei MA teilen eine Vollzeitstelle. Partner-Zuordnung auf Assignment-Ebene.

nullable
splitModestringoptional
WEEKLY_ALTERNATINGDAILY_SPLITCUSTOM
Default: "WEEKLY_ALTERNATING"
bandwidthobjectoptional

Variable Wochenstunden innerhalb Min/Max-Korridor.

nullable
minWeeklyHoursnumbererforderlich
≥ 0
maxWeeklyHoursnumbererforderlich
≥ 0
referencePeriodWeeksnumbererforderlich
≥ 1Default: 26
travelTimeRulesobjectoptional

Reisezeit-Regeln (BAG 17.10.2018 – 5 AZR 553/17). MSP-relevant.

nullable
defaultCountAsWorkPercentnumberoptional
0 – 100Default: 100
excludeCommutebooleanoptional

Weg Wohnung↔Hauptarbeitsort zählt nicht als Arbeitszeit

Default: true
customerTripCountsFromDoorbooleanoptional

Anfahrt Kunde ab Haustür/Homeoffice (MSP-Praxis)

Default: true
maxDailyTravelMinutesnumberoptional

Optionale ArbZG-Anrechnungs-Obergrenze

≥ 0nullable
surchargeStackingModestringoptional

Wie Zeit-Zuschläge (Nacht/Wochenende/Feiertag) kombinieren. MAX = Maximum gewinnt (TV-Praxis); ADDITIVE = alle addieren.

MAXADDITIVE
Default: "MAX"
approvalStatestringoptional
DRAFTPENDING_WORKS_COUNCILAPPROVEDREJECTED
Default: "DRAFT"
submittedForApprovalAtdatetimeoptional
nullable
submittedBystringoptional
max 64 Zeichennullable
approvedAtdatetimeoptional
nullable
approvedBystringoptional
max 64 Zeichennullable
worksCouncilCaseRefstringoptional
max 200 Zeichennullable
rejectionReasonstringoptional
max 4000 Zeichennullable

Standard-Endpoints

Diese Resource folgt dem generischen CRUD-Vertrag der Plattform. Lesen Sie die Konventionen für Pagination, Idempotenz, Optimistic Locking und Audit. Die wichtigsten Endpoints:

  • GET /api/v1/working_time_models — Liste, paginiert + filterbar
  • GET /api/v1/working_time_models/<id> — Einzelne Entity
  • POST /api/v1/working_time_models — Anlegen
  • PATCH /api/v1/working_time_models/<id> — Teil-Update
  • DELETE /api/v1/working_time_models/<id> — Soft-Delete
  • GET /api/v1/working_time_models/<id>/timeline — Audit + Aktivitäten

Suche