Auto Shift Planner

Auto Shift Planner is a free and user-friendly application that can design and automatically generate highly detailed employee shift schedules based on rules and preferences.

View the Project on GitHub

The application usage is intuitive nonetheless here are some clarifications and advices:


For a standard workflow proceed as follows:

  1. Define the start and end times. These values ​​do not necessarily have to coincide with the opening or closing time. They indicate the time when employee attendance may be required.

  2. Add or remove employees and input their weekly hours to perform. Each employee is characterized by a name and the amount of weekly hours he or she has to work.

  3. Define which constraints you want to activate and their specific values when available.
    • Hours per week:
      • the employee must in any case carry out exactly the weekly amount of hours allocated. The violation of this constraint leads to a worsening of the hardscore.
    • Maximum hours per day:
      • the maximum amount of working hours that the employee can perform in one day. The amount assigned may be less. The violation of this constraint leads to a worsening of the hardscore.
    • Maximum shifts per day:
      • the maximum amount of shifts that could be attributed to one employee per day. The violation of this constraint leads to a worsening of the hardscore.
    • Shift lenght:
      • minimum and maximum duration of a single work shift. The violation of this constraint leads to a worsening of the hardscore.
    • Eventual break length:
      • the duration of the break between a shift and the next one must correspond exactly to the set value. The time span between two shifts taking place on a single day is considered a break. The violation of this constraint leads to a worsening of the hardscore.
    • Minimum employees per period:
      • the minimum number of employees present for each period. By period we mean the half-hour time frame that can be assigned to one or more employees. A period is a collection of all time units (rectangles) on a given day and at a certain time. For example, a period is the Monday time interval from eight to eight and a half and contains a time unit (rectangle) for each employee. The violation of this constraint leads to a worsening of the hardscore.
    • Minimum overnight rest:
      • the minimum amount of night-time rest, usually doe to legal requirements or company agreements, to which the employee is entitled between one working day and the next. For example, if this value is set to 12, the employee who finishes his work shift at 8 pm should not resume service before 8 am the next day. The violation of this constraint leads to a worsening of the hardscore.
    • Mandatory shifts:
      • the application takes into account the time units (squares) that are defined as mandatory (contain white ellipses) and provides for the assignment of the working hours. Usually it is not necessary to define all the time units (squares) involved in the work shift as mandatory because the work shift will be assigned also in accordance with the other rules in force. The violation of this constraint leads to a worsening of the hardscore.
    • Uniformly distributed employees:
      • for every period the application tries to minimize the number of employees present. The violation of this constraint leads to a worsening of the softscore. Since employees must be assigned to periods, softscore can not reach 0. The lower softscore value is the fair distribution of employees between periods. Enabling “Uniformly distributed employees” check (the only soft score constraint) will slow down the solving speed. Avoid this constraint check if not needed.
  4. Proceed to the editor page and mark only the time units (squares) desired as prohibited or mandatory. The application will automatically generate the best possible solution compatible with the preset constraints.

  5. Press the solve button. During the first minute the application will make a first pass trying to setup the proposed solution. After the first minute the application changes algorithm providing the final polishing of the result within the first two minutes. Normally the hardscore value should be zero. This ensures that all hardscore constraints are met. The softscore value must be as low as possible even if the minimum value depends on the individual cases and can never be zero. Within the first three minutes a satisfactory softscore value should be achieved.

back to Main page