Rotierenden Schichtplan erstellen
Ein Zyklus mit 4 Arbeits- und 4 Ruhetagen ergibt vom 1. bis 16. Januar 2026 genau 8 Arbeitstage, den 1. bis 4. und den 9. bis 12. Januar, sowie 8 Ruhetage. Jedes Datum ist als Dienst oder frei markiert. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Startdatum
- 2026-01-01
- Enddatum
- 2026-01-16
- Arbeitstage am Stück
- 4
- Freie Tage
- 4
- Zyklusversatz
- 0
- Name des Mitarbeiters
- Alex Rivera
- Zykluslänge
- 8
- Muster
- 4-on/4-off
- Tage gesamt
- 16
- Diensttage
- 8
Ein Planer für rotierende Schichten wandelt ein einfaches Zyklusmuster—etwa vier aufeinanderfolgende Arbeitstage gefolgt von vier Ruhetagen—in einen tagesgenauen Dienstplan für eine Person über jedes inklusive Kalenderfenster um. Betriebsleiter, Standortverantwortliche und Entgeltteams brauchen wiederholt dieselben Antworten: welche Daten sind Dienst, welche frei, wie viele Arbeitstage fallen in den Monat und wo sitzt der Zyklus, wenn das Eintrittsdatum mitten in der Rotation beginnt. Diese Fähigkeit akzeptiert ISO-Start- und Enddaten, positive Länge des Arbeitsblocks, Länge des Ruheblocks und einen optionalen Phasenversatz und expandiert dann eine deterministische modulare Folge ohne Wochenendregeln, Feiertage oder Multi-Crew-Optimierung.
So funktioniert ein rotierender Schichtzyklus
Ein rotierendes Muster besteht aus einem Block aufeinanderfolgender Arbeitstage und einem Block Ruhetage, die sich unabhängig vom Wochentag wiederholen. Bei 4 an, 4 aus dauert ein Zyklus 8 Tage, deshalb hat derselbe Wochentag nicht immer denselben Status. Für jedes Datum zählt der Planer die Tage ab dem ersten Datum des Zeitraums, addiert den Versatz und ermittelt die Stelle im Zyklus: Liegt sie im Arbeitsblock, ist Dienst, sonst frei. Vom 1. bis 16. Januar 2026 ergibt das 8 Arbeitstage und 8 Ruhetage.
Wann Sie ihn nutzen und typische Fehler
Geeignet ist er für den Dauerbetrieb, Dienstpläne vor Ort oder eine Vorschau für die Lohnabrechnung. Der häufigste Fehler ist ein vergessener Versatz, wenn jemand mitten in der Rotation einsteigt, wodurch sich alle späteren Daten verschieben. Wochenenden und Feiertage werden nicht übersprungen; wenden Sie solche Regeln danach an. Der Zeitraum darf höchstens 366 Tage umfassen, und null Ruhetage bedeuten Dienst an jedem Tag. Geplant wird jeweils eine Person, nicht mehrere Schichtgruppen.
Wo die Expansion des rotierenden Dienstplans Nutzen stiftet
Standortleiter, die einen 4-an/4-aus-Monat planen, brauchen eine schnelle Liste, an welchen Kalendertagen eine Fachkraft arbeitet, bevor der Aushang veröffentlicht wird. Content- und SEO-Landings, die auf rotierenden Schichtplan oder 4-an/4-aus-Roster zielen, profitieren von einem live kostenlosen Rechner, dessen Ausgaben bytegleich dem bezahlten Automatisierungspfad auf der gemeinsamen lib entsprechen. Halten Sie Anfragen innerhalb der Obergrenze von dreihundertsechsundsechzig Tagen; für mehrjährige Personalplanung rufen Sie den Endpunkt einmal pro Jahresfenster auf und fügen Ergebnisse clientseitig zusammen.
Bevorzugen Sie diese Fähigkeit, wenn die Frage reine Zyklusexpansion für eine Person ist; Multi-Crew-Fairness, Tarifregeln, Skill-Mixe und Abwesenheitskalender brauchen ein volleres Workforce-Management-Produkt. Fehlgeschlagene Validierung ist kostenlos, sodass explorative Clients ungültige Offsets und schlechte Daten sicher testen können.
Häufige Fragen
Wie lang darf der Datumsbereich sein?
Längere Planungshorizonte sollten in mehrere Aufrufe geteilt werden.
Überspringt der Planer Wochenenden oder Feiertage?
Nein. Jeder gregorianische Kalendertag im inklusiven Bereich erhält on oder off nur aus dem reinen Zyklus. Feiertags- und Wochenendausnahmen gehören in Ihre HR-Schicht.
Was, wenn die Person mitten in einer Rotation beginnt?
Geben Sie einen Versatz im Zyklus an. Null bedeutet, dass das erste Datum der erste Arbeitstag eines Blocks ist; ein höherer Wert verschiebt die Abfolge, damit der Plan dort ansetzt, wo die Person bereits steht.
Kann ich andere Zyklen als 4 an, 4 aus planen?
Ja. Legen Sie fest, wie viele aufeinanderfolgende Arbeits- und Ruhetage den Zyklus bilden, von 1 bis 90 Arbeitstagen und 0 bis 90 Ruhetagen. Zwei an, zwei aus oder sieben an, sieben aus funktionieren genauso.
Wie viele Arbeitstage zeigt der Plan?
Er zählt sie für Sie. Vom 1. bis 16. Januar 2026 ergeben sich bei 4 an, 4 aus 8 Arbeitstage und 8 Ruhetage, ein Arbeitsanteil von 0,5, und jedes Datum wird einzeln aufgeführt.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/biz/rotating-shift \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_date":"2026-01-01","end_date":"2026-01-16","on_days":4,"off_days":4}'const res = await fetch("https://api.kit.forhosting.com/biz/rotating-shift", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_date": "2026-01-01",
"end_date": "2026-01-16",
"on_days": 4,
"off_days": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/rotating-shift",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_date": "2026-01-01",
"end_date": "2026-01-16",
"on_days": 4,
"off_days": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/rotating-shift", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_date":"2026-01-01","end_date":"2026-01-16","on_days":4,"off_days":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_date":"2026-01-01","end_date":"2026-01-16","on_days":4,"off_days":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/rotating-shift", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"start_date": "2026-01-01",
"end_date": "2026-01-16",
"on_days": 4,
"off_days": 4
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.rotating_shift",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Ungültige Bereiche, unmögliche Kalendertage und Zyklusfelder außerhalb des zulässigen Bereichs scheitern mit invalid_input und werden nie berechnet.
Was ein rotierender Dienst-/Ruhezyklus für eine Person bedeutet
Rotierende Schichtmuster wie vier Dienst und vier frei, zwei und zwei oder sieben und sieben sind in Dauerbetrieben üblich, in denen die Abdeckung gleichmäßig über Kalendertage rollen muss, ohne immer dieselben Wochentage festzuschreiben. Das Modell hier ist bewusst einfach und transparent: Jeder Zyklus ist ein Block aufeinanderfolgender Arbeitstage, gefolgt von einem Block aufeinanderfolgender Ruhetage; das Paar wiederholt sich ab dem Start des angeforderten Fensters. Was es liefert, ist eine reproduzierbare Einzelpersonen-Expansion, die Sie in Tabellen, Stempeluhren-Importe oder Entgeltvorschauen exportieren können, ohne die modulare Arithmetik in jedem Client neu zu implementieren. Tag null des Zyklus ist der erste Tag eines Dienstblocks, wenn cycle_offset null ist. Für jeden Tagesindex i ab start_date (nullbasiert) ist day_in_cycle der Rest von i plus cycle_offset geteilt durch cycle_length, wobei cycle_length on_days plus off_days ist. Ist dieser Rest streng kleiner als on_days, ist der Tag on; sonst off. Klassisches 4-an/4-aus nutzt daher on_days vier und off_days vier, einen Acht-Tage-Zyklus und eine langfristige Arbeitsquote von einem Halben. 2-an/2-aus nutzt zwei und zwei. Ein 5-an/2-aus-Muster nutzt fünf und zwei und ergibt eine Quote nahe fünf Siebtel—nützlich, wenn Sie mehr Arbeitsdichte als eine reine Halbzeitrotation wünschen. off_days auf null setzt jeden Tag im Fenster auf Dienst und eignet sich gelegentlich als Basisplan ständiger Verfügbarkeit. Dieses Werkzeug weist keine mehreren benannten Crews zu, überspringt keine Feiertage, kodiert keine Nacht- versus Tagschicht-Labels jenseits des binären on/off-Status und gleicht Stunden nicht gegen gesetzliche Höchstgrenzen aus—diese Schichten gehören in Ihr HR-System.
Eingabevertrag, Antwortform und Validierungsregeln
Senden Sie per POST einen JSON-Body mit vier Pflichtfeldern und zwei optionalen. start_date und end_date müssen echte gregorianische Kalenderzeichenketten im strikten Format YYYY-MM-DD sein; der Bereich ist an beiden Enden inklusiv und end_date darf start_date nicht vorausgehen. Die inklusive Spanne darf höchstens dreihundertsechsundsechzig Tage betragen, damit die Antwortgröße für Browser und API-Clients begrenzt bleibt. on_days ist eine positive Ganzzahl von eins bis neunzig; off_days ist eine Ganzzahl von null bis neunzig. cycle_offset ist standardmäßig null und muss, wenn angegeben, zwischen null und cycle_length minus eins liegen, damit eine Eintrittsphase mitten im Zyklus nicht über das Zyklusende hinaus zeigt. worker_name ist ein optionales Label mit höchstens einhundertzwanzig Zeichen, das bei Erfolg zurückgegeben wird, wenn vorhanden. Aliasnamen sind aus Ergonomiegründen akzeptiert: from oder begin für start_date, to oder until für end_date, work_days für on_days, rest_days für off_days, offset oder phase für cycle_offset sowie name oder employee für worker_name. Bei Erfolg liefert der Body die normalisierten Daten und Zyklusparameter, pattern als kurze Zeichenkette wie four-on slash four-off, total_days, days_on, days_off, work_ratio half-up auf sechs Dezimalen gerundet, ein roster-Array von Objekten mit date, day_in_cycle und status on oder off sowie parallele on_dates- und off_dates-Arrays zum schnellen Filtern. Das Feld formula stellt die Modulregel im Klartext für Audit-Spuren dar. Unmögliche Daten wie der einunddreißigste April, eine negative Spanne, eine Spanne über dem Maximum, ein null oder nicht ganzzahliges on_days oder ein cycle_offset gleich oder größer als cycle_length scheitern mit invalid_input unter Nennung des Feldes; diese Fehler verbrauchen kein vorausbezahltes Guthaben. Der Preis erfolgreicher Aufrufe ist pauschal $0.002 mit Einheit item.
Wo die Expansion des rotierenden Dienstplans Nutzen stiftet
HR-Onboarding-Abläufe können das Eintrittsdatum als start_date mit einem cycle_offset ungleich null übergeben, damit die neue Person in die bestehende Rotation mitten im Zyklus einsteigt statt bei Tag null neu zu starten. Entgelt-Vorprozessoren zählen days_on in einem Abrechnungszeitraum, um erwartete Regelstunden zu prüfen, bevor Überstundenregeln greifen. Personal-Simulatoren vergleichen work_ratio über Kandidatenmuster—2-an/2-aus versus 4-an/4-aus versus 5-an/2-aus—ohne jedes Mal eigene Skripte zu schreiben. Integrationsteams betten die API in interne Werkzeuge ein, damit Planer modulare Tabellen nie von Hand abtippen.
Integrationsbeispiele
Monatliche 4-an/4-aus-Aushänge
Expandieren Sie einen klassischen 4-on/4-off-Zyklus über einen Kalendermonat und veröffentlichen Sie die on_dates-Liste einer Fachkraft, ohne die Tabelle von Hand zu bauen.
Eintritt mitten im Zyklus ausrichten
Setzen Sie cycle_offset so, dass der erste Tag der neuen Person in die bestehende Rotationsphase einsteigt statt das Muster bei Tag null zurückzusetzen.
Vorabprüfung der Entgelt-Tageszählung
Zählen Sie days_on in einem Abrechnungsfenster für eine rotierende Person und vergleichen Sie erwartete Regeltage, bevor Überstunden- oder Zulagenregeln greifen.
Technische Fragen
Wie erstelle ich einen 4-an/4-aus-Dienstplan?
Senden Sie start_date und end_date im Format YYYY-MM-DD, on_days 4 und off_days 4. Optional platziert cycle_offset den ersten Tag mitten im Zyklus. Die API liefert einen tagesgenauen Dienstplan mit status on oder off.
Was bedeutet cycle_offset?
Es ist die Phase des Zyklus an start_date, von 0 bis cycle_length-1. Null bedeutet, start_date ist der erste Tag eines Dienstblocks. Nutzen Sie einen Offset ungleich null, wenn das Fenster mitten in der Rotation startet.
Was kostet der Planer für rotierende Schichten?
Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingaben werden nicht berechnet.