Batch work schedule generation is the process of producing a complete dated staffing plan from one set of inputs rather than drafting each assignment by hand. In SAP HR, the term covers creating work schedules through transaction PT01 and running rule-based generation programs that apply period work schedules, public holiday calendars, average weekly workdays, monthly working hours, annual working time, and personnel data to many employees at once. The "batch" part is what saves time: instead of slotting names into individual cells for every day, the system fills a table from a roster, a starting date, and a date range. From the outside, the input shape is simple — a list of employees, a list of shift names, a starting date, and a number of days. From the inside, the SAP HR engine layers in work schedule rules, public holidays, and contracted-hours policies. A browser-based generator operates at a much smaller scale, but it shares the same four-input shape and the same goal: turn a roster into dated assignments without manually editing each cell.

What Batch Work Schedule Generation Means in HR Systems
Inside SAP HR, work schedule generation sits on top of a configuration tree: work schedule rules, period work schedules, daily work schedules, and personnel data assigned to each employee. When the system runs in batch, it reads that configuration, applies the active public holiday calendar, and writes dated planned working time back into the time management cluster. Tools like PT01, the work schedule generator, and the regeneration programs in time evaluation all share this batch philosophy — one input set, many dated outputs.
The same philosophy shows up outside SAP HR. A team that needs a quick first-pass rota for a week or a month can hand the same four inputs to a browser tool and get a transparent table on the page, ready for review and download. The browser version skips the SAP configuration stack but keeps the batch habit: produce many rows from one input set, never copy a person into a cell by hand.
Generate a Batch Schedule in Your Browser
The Shift Schedule Generator accepts exactly those four inputs and produces a full dated table plus a CSV download. It is designed for a quick first-pass draft when a team needs transparent rotation rather than a hidden optimization model, and when the reader wants to inspect every row before applying real workforce rules.
The verified input limits are:
- 2 to 50 unique employee names, with one name per line, trimmed and capped at 60 characters, and rejected if they duplicate case-insensitively (so "Alex" and "alex" cannot both appear)
- 1 to 4 shift names, with one shift per line, also trimmed and length-bounded
- A start date in YYYY-MM-DD form between 2000-01-01 and 2099-12-31 that survives a UTC round trip, so impossible values such as 2023-02-29 or 2026-04-31 are rejected before any row is built
- A range of 1 through 31 days, with dates advancing by whole UTC days so local daylight-saving transitions cannot skip or repeat a displayed date
The employee count must be at least the shift count, which prevents the generator from assigning the same person to two different shifts on the same date.
Build a Round-Robin Draft
The how-to below maps directly to the three verified operating steps of the generator.
- Enter employees and shifts. Type at least two unique employee names, one per line, in the employees box. Type one to four shift names, one per line, in the shifts box. Each line is trimmed on the way in.
- Pick a start date and a range. Use YYYY-MM-DD, for example 2026-03-02, and choose a number of days between 1 and 31. The page validates the date against a real UTC calendar so impossible values are rejected before any row is built.
- Generate the schedule. Click the generate action. The tool walks every slot in date order, then in the order the shifts were typed, and assigns the next employee in round-robin order. Editing any input afterwards clears the old result.
- Review every dated assignment and total. Inspect the table on the page. Each row shows the date, the shift, and the assigned employee. The footer counts assignments per employee so balance can be checked at a glance.
- Download the CSV. The CSV uses Date, Shift, and Employee headers, quotes every cell, and doubles embedded quotation marks. Editing the inputs clears the previous download.
- Apply real rules outside the tool. Layer availability, qualifications, breaks, rest periods, overtime caps, and any legal or union rules onto the draft in a separate workforce system before publishing it.
The Round-Robin Assignment Rule
Shifts are visited in date order, then in the exact order they were entered. Each successive slot moves to the next employee, wrapping to the first employee after the end of the list. For three employees and two daily shifts, the visible sequence on the page is Alice, Bob, Cara, Alice, Bob, Cara, and so on. This guarantees that assignment totals differ by no more than one over the generated range, which is the simplest form of balanced rotation.
The exact formula used per slot is (dayIndex × shiftCount + shiftIndexWithinDay) modulo employeeCount, where dayIndex starts at 0 on the chosen start date and shiftIndexWithinDay starts at 0 for the first shift typed. Working through one example with three employees (Alice, Bob, Cara) and two shifts:
- Day 0, shift 0: (0 × 2 + 0) mod 3 = 0 → Alice
- Day 0, shift 1: (0 × 2 + 1) mod 3 = 1 → Bob
- Day 1, shift 0: (1 × 2 + 0) mod 3 = 2 → Cara
- Day 1, shift 1: (1 × 2 + 1) mod 3 = 0 → Alice
Running the same validated inputs again produces the same rows, which makes the result easy to review and reproduce. Control characters and spreadsheet-formula prefixes are rejected before the CSV is exported, so the downloaded file cannot accidentally run as a formula when opened.
Where the Browser Draft Differs From SAP HR
A short comparison helps set expectations before the generator is opened.
| Dimension | SAP HR work schedule generation | Shift Schedule Generator |
|---|---|---|
| Input shape | Work schedule rules, period work schedules, daily work schedules, holiday calendars, personnel data | Employees, shifts, start date, day range |
| Where it runs | Inside the SAP HR server and client | Inside the current browser tab |
| Compliance and labor rules | Applied by the engine from configuration | Not applied; the draft is intentional |
| Determinism | Depends on rule resolution and active calendar | Same validated inputs always produce the same table |
| Output scale | Full enterprise workforce over any horizon | Up to 31 days, 4 shifts, 50 employees |
| Export | Cluster tables, B2 tables, integration back to PA | CSV download of the visible rows |
| Data location | Stored in the SAP HR database | Stays in the browser tab; nothing uploaded |
The two tools are not interchangeable. The browser generator is a quick, transparent first pass for small rosters. SAP HR remains the system of record for actual work schedules.
Turn the Draft Into a Compliant Roster
Balanced assignment counts alone do not prove that a roster is safe, fair in every relevant sense, legal, adequately staffed, or suitable for a particular workplace. Use the CSV as a draft and add the layers that the generator intentionally skips:
- Availability and time off. Mark each person who cannot work a displayed assignment and reassign that row in the spreadsheet or in a dedicated workforce system.
- Qualifications and certifications. Confirm that every shift has at least one person with the required credentials for that role.
- Breaks, handoffs, and rest periods. Insert unpaid breaks, shift handovers, and mandatory rest gaps so consecutive work patterns do not violate local rules.
- Labor cost and overtime caps. Sum hours per employee and check that no one breaches overtime or contracted-hours limits.
- Union, accessibility, and jurisdiction rules. Apply any collective bargaining, seniority, accommodation, or regional rules in the system of record.
For readers who also manage breaks during long shifts, the break reminder guide shows how to time those intervals separately from the roster itself.
Reproducibility and Local Processing
All names and schedule calculations stay in the current browser tab. The generator never uploads the employee list, stores it in an account, or sends it to a scheduling service. Editing any input clears the old result, and the temporary download URL is revoked after the CSV is saved or when the page closes, so a stale file cannot appear to match newer inputs.
This narrow contract is visible and testable: validate bounded unique inputs, verify a real UTC start date, fill every slot in round-robin order, keep assignment totals within one, show the complete result without truncation, and export exactly those rows as safely quoted CSV. Anything outside that contract — public holidays, average weekly workdays, monthly working hours, annual working time, seniority, contracted hours, fatigue risk, accessibility needs, and jurisdiction-specific labor rules — is the responsibility of the system that consumes the draft. If a person cannot work a displayed assignment, edit the downloaded sheet or move the row into a dedicated workforce system with the necessary constraints; the generator never silently claims that a simple rotation resolved those real-world requirements.