Skip to content
⌛️ An employee scheduling script
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


An employee scheduling script.



After 7 years of retail and countless excuses from management about the difficulty of creating a schedule, I decided to try to ease the process.

What Is

===================== is designed to give a comprehensive starting point for a schedule. It randomly assigns shifts to employees based on their available days and hours neatly exports the data to an excel file for further manipulation.

Currently, is simply a python script and can be run from the command line. I plan on porting to a web app for use in the future.

What Is Not

========================= is not meant to be interactive scheduling software. Its purpose is simply to give you a starting point to build on. It will randomly assign shifts to employees while adhering to days off, hours per week, and some other nuanced shift constraints. While the process is not interactive, a well-formatted excel schedule is produced which you are free to manipulate to your will.

How to use


Short version: run the executable and follow the prompts.

Long version: To run the app from the source, you must have python 2.7.* and the xlwt library. I have also packaged the app up into a .exe using pyinstaller, which you can simply download and run, if that's easier. will output your .xls schedule in the same directory as the program itself. Look for "schedule.xls".

Once you have the app running, the process is relatively intuitive. You are first walked through the week and asked for how many shifts in a given day, along with the shift times. The times can take most any format, and will let you know if they are unreadable. I recommend 9a, or 9:30a for 9:00 AM and 9:30 AM, respectively.

After times are taken down, the app asks for the names, total hours, shifts off, and days off for each employee.

The app will log any unassigned shift at the bottom of the schedule, under "unassigned." You are free to adjust these shifts according to your need. It's your schedule now!

You can’t perform that action at this time.