> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.proplanum.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Automatic schedule from unassigned shifts

If you already know the basics of planning, you can use **automatic schedule generation** — it speeds the work up, takes labour law rules into account and helps lay out the staffing faster. Proplanum offers several generation methods; this article describes the method **based on unassigned shifts**: first you prepare a package of shifts with nobody assigned, then the system distributes them among employees.

${frame}[Preview](https://demo.proplanum.com/embed/cma3skg14393t13m0fwquee68?embed_v=2&utm_source=embed)

# How it works

For the system to lay out a schedule, it needs a basis — information on **which shifts** are to appear, in **which positions** and at **which hours**. An empty schedule tells the system nothing. So you first prepare a package of **unassigned** shifts (or load one from a template) and then run the generation, which will assign those shifts to particular people.

|| Remember: The method works best where shifts are fixed or vary only slightly — shift work, recurring hours, fixed positions. It copes well with different forms of employment and varying availability.

# Step 1: Prepare a package of unassigned shifts

Plan the shifts as the schedule is meant to look, but **without choosing an employee**. Every such shift goes into the **"Unassigned"** row at the top of the schedule.

1. Click an empty cell in the **"Unassigned"** row and the chosen day.
2. In the **"New shift"** window set the position and the work time (start, end, any breaks) — without choosing a person.
3. Repeat for every shift you want staffed.

![The Unassigned row with a package of shifts at the top of the schedule](https://storage.crisp.chat/users/helpdesk/website/-/3/1/2/4/3124ad20f50ccc00/ppen-w002_16jbj3v.png)

Instead of laying out the package from scratch every time, you can save it once as a template and load it for subsequent periods.

|| Tip: How to create and load shift templates is described in [Copying and schedule templates](https://help.proplanum.com/en/article/copying-and-schedule-templates-158j7x0/). When loading, choose the **"Load into unassigned"** option — every shift will then go into the "Unassigned" row. You load templates only onto **future periods that have not started**, so switch to the right period first.

# Step 2: Run the generation

1. In the toolbar on the right open the **"Generate"** menu and choose **"Assigning unassigned shifts"**.
2. The **"Automatic schedule configuration"** window opens. Set the generation conditions (described below).
3. Click **"Start generation"**.

![The Automatic schedule configuration window for assigning unassigned shifts](https://storage.crisp.chat/users/helpdesk/website/-/3/1/2/4/3124ad20f50ccc00/ppen-w003_1jvvsvs.png)

In the configuration window you have:

* **Generation mode** — **Economical** (faster) or **Optimal** (picks the staffing more precisely).
* **Constraints** — among others **"Do not exceed the hour limit"** (the system will not assign more hours than the limits and labour law allow), **"Respect unavailability"** (skips dates reported as unavailable), **"Allow multiple shifts per day"**.
* **Priority preferences** — tiles indicating what counts most (for example **Minimum costs**, **Rotation**, **Prioritise availability**).
* **Preference balance** — a slider weighting the chosen priorities.

After a moment the system will propose a schedule as a draft, distributing the shifts with regard to among others labour law, positions and skills, and leave and absences.

|| Remember: With different forms of employment the system staffs full-time employees first (to "make up" their contracted hours) and only then passes the remaining shifts to contractors.

# What if some shifts stay unassigned

If something is still left in the **"Unassigned"** row after generation, the system found no way to staff those shifts. The most common causes:

* labour law constraints,
* the full-time equivalent or working pattern of the people concerned,
* too few employees available (for example during the holiday season).

You can then:

* **assign the shift by hand** — hover over it, click **Edit** and choose an employee,
* **delete** the shift if it is not needed.

# Step 3: Publish the schedule

A generated schedule is a proposal in draft — you can keep editing it. Once it is ready, click **"Publish"** in the top right corner; the number of unpublished shifts is shown in brackets. Employees with active accounts will get a notification in the mobile app and by email.

|| Tip: The details of publishing and unpublishing are described in [Publishing schedule changes](https://help.proplanum.com/en/article/publishing-schedule-changes-13yt17e/).

Automatic generation really does speed planning up, but at the start give yourself a moment to learn how the system distributes the shifts. You can generate several times and correct it until it comes out best. You will find the other methods in [Planning using templates](https://help.proplanum.com/en/article/automatic-schedule-from-templates-deq1y1/) and [Demand-based planning](https://help.proplanum.com/en/category/schedule-planning-n4je6/).