Shift Assignment Generator
Build a fair draft shift schedule from employee names, CSV availability, fixed assignments, skipped dates, and a date range. Copy the result, export a regular CSV, or export a Microsoft Shifts worksheet CSV.
Shift schedule inputs
Paste CSV text or upload CSV files. Only employee names are required, but availability columns make the schedule smarter.
Headers: name, workEmail, role, maxShifts, preferredShifts, unavailableDates, preferredDates, fixedAssignments. workEmail helps prepare Microsoft Shifts imports.
Headers: shiftName, startTime, endTime, peopleNeeded.
Use this for stat holidays, closure days, or dates that should not receive shifts.
Shift schedule
The schedule will show filled shifts, unfilled shifts, skipped dates, and employee totals.
CSV templates
Download starter files with clear headers.
How to use it
Step-by-step setup for a simple random shift schedule.
- Download the templates. Start with the employee, shift, and skip date CSV templates so the headers are already correct.
- Fill the employee CSV. Add
name. Optionally addworkEmail,role,maxShifts,preferredShifts,unavailableDates,preferredDates, andfixedAssignments. - Use pipe-separated dates. For multiple dates, use values like
2026-06-03|2026-06-04. Fixed assignments useYYYY-MM-DD:Shift Name. - Fill the shift CSV. Add each shift name, optional start/end times, and how many people are needed for that shift.
- Add skipped dates. Use the skip dates CSV for stat holidays, closure days, or dates outside the schedule.
- Generate and review warnings. The tool fills fixed assignments first, avoids unavailable dates, balances totals, and flags unfilled shifts.
- Copy or export. Copy the schedule, copy the employee summary, export a regular CSV, or export a Microsoft Shifts worksheet CSV for the official Shifts Excel import template.
Helpful guides
Plain-language setup notes for CSV shift scheduling.
Shift Assignment Generator FAQ
What is the quickest way to use this tool?
Download the employee and shift CSV templates, fill in names and shift times, choose a date range, and select Generate schedule. You can add availability, preferences, fixed shifts, and skipped dates later when you need more control.
Is employee data uploaded?
No. This is a static browser tool. CSV files, employee names, availability, and generated schedules are processed locally in your browser and are not sent to a server.
Which employee CSV columns are required?
Only name is required to generate a schedule. Add workEmail if you want to prepare a Microsoft Shifts export. The other columns are optional: role, maxShifts, preferredShifts, unavailableDates, preferredDates, and fixedAssignments.
How do I enter multiple dates or fixed shifts?
Use the date format YYYY-MM-DD. Separate multiple dates with a pipe character, like 2026-06-03|2026-06-04. For fixed shifts, use YYYY-MM-DD:Shift Name, such as 2026-06-04:Morning.
How do I handle vacations, unavailable days, or holidays?
Put employee vacation or unavailable dates in the unavailableDates column. Put company-wide holidays or closed days in the skip dates CSV. The generator will avoid those dates where possible.
What happens when there are not enough available employees?
The tool fills as many shifts as possible and shows warnings for unfilled slots, fixed assignment conflicts, or people blocked by availability rules.
How does the Microsoft Shifts export work?
Generate the schedule, select Export Microsoft Shifts CSV, then use those rows to fill the Shifts worksheet in Microsoft's official Excel import template. Microsoft Shifts expects an Excel workbook, so treat this CSV as helper data for the template.
How many CSV rows are supported?
There is no strict row limit coded into the tool. For the best browser performance, keep employee and shift CSV files under about 5,000 rows. Very large files may slow down because processing happens locally in your browser.
Buy Me a Coffee
SpinRandomTool is built and maintained by The Print Lab Chronicles. Your support helps fund updates, testing, new tools, and better guides.
Support on Buy Me a Coffee