# How to build a shift schedule

> The location grid, templates, drag and drop, copying a period, 2/2 and 5/2 rotations, auto-fill, open shifts, checks, hours and labour cost.

Источник: https://jecheck.io/en/docs/schedule/build-schedule

The schedule is built per location in **Staff → Shift schedule**. Every change is a draft at first: employees don't see it until you publish the schedule (see [Publishing the schedule](/docs/schedule/publish)).

## The schedule grid

At the top, pick a location and a period: a week, two weeks or a month; the **Back** and **Forward** arrows move the period, **Today** returns to the current one. Rows are the employees linked to the location, columns are days. You can search for an employee and filter by position.

- A separate **Open shifts** row holds shifts without an employee — employees will pick them up in the app.
- If an employee works at another location that day, it shows in their row.
- Vacations, sick leave (and requests awaiting a decision), as well as "can't" and "want to work" from the employee's availability are shown in the cells.
- Below the grid are the day totals: hours, number of people on shift, open shifts and coverage of staffing needs.

## How to add a shift

1. **Click an empty cell.** The **New shift** window opens.
2. **Set the time.** **Start**, **End** and **Break**. If the end is earlier than the start, the shift ends the next day (a night shift). The payable hours are shown below the time.
3. **Choose the employee and position.** You can leave the shift without an employee — then it is an **open shift** that any suitable employee can pick up. **Position on shift** comes from the company's list of positions.
4. **Add a note.** The **Note for employee** is visible to them in the schedule, for example "goods delivery at 10:00".
5. **Save.** The shift appears in the grid as a draft.

Templates are faster: turn on the **brush** with the template you need — clicking an empty cell places a shift from the template right away.

## Drag and drop and copying

- Drag a shift to another day or another employee — it moves with the same time.
- Hold **Ctrl** or **Alt** while dragging to copy the shift.
- **More → Copy period forward** copies all the location's shifts for the displayed period to the following periods: set **Starting from** and **How many times in a row** (up to 12). Days of approved vacations and sick leave are skipped. You can tick **Clear shifts in the target period first**. Copies are drafts.
- **More → Clear period** deletes the period's drafts and marks published shifts for deletion — they disappear for employees after publishing.

## 2/2, 5/2, 1/3 rotations

**More → Rotation (2/2, 5/2…)** places shifts for one employee in a cycle:

1. **Choose the employee and pattern.** Ready patterns 2/2, 5/2, 1/3, 3/3 or **Custom** — a string of 1s and 0s, where 1 is a working day and 0 a day off (for example, `1,1,1,0,0`), a cycle of up to 62 days.
2. **Set the dates.** **From (first working day)** and **To** — no more than a year.
3. **Choose the shift.** A template or your own start, end and break.
4. **Click "Place shifts".** Days where the employee already has a shift or an approved absence are skipped.

## Auto-fill from staffing needs

**More → Auto-fill from staffing needs** covers the uncovered hours of the location's staffing needs (set them in [Settings](/docs/schedule/setup)). For each gap, a location employee is picked who:

- has a suitable position (main or additional);
- has no vacation, sick leave or absence request that day and is within their hire and termination dates;
- hasn't marked "can't" at that time and has no overlapping shift;
- keeps at least the minimum rest between shifts and doesn't exceed the weekly hour limit.

Among suitable employees, the one with fewer hours that week is chosen; those who marked "want to work" go first. If no one fits and **If no suitable employee — create an open shift** is ticked, an open shift is created. Breaks in created shifts are 30 minutes for shifts of 6 hours or more and 60 minutes from 10 hours. All shifts are drafts.

## Schedule checks

Shifts that break rules are highlighted; hover to see the reason. Checks warn but don't prevent saving:

- overlap with another shift of the employee (including at another location);
- rest between shifts below the minimum;
- shift longer than the maximum;
- weekly hours over the limit — from the employee card or the company rules;
- an absence or absence request that day;
- the employee marked "can't" on that day or hours;
- the shift's position isn't among the employee's positions;
- the date is outside the employment period (before hire or after termination);
- an expired HACCP document (health certificate, training) — if the HACCP module is launched in the company.

## Hours, labour cost and budget

Above the grid: hours in the schedule, employees on shift, open shifts, shifts with warnings and the number of unpublished changes. Those with the **Sees payroll** right also see the labour cost estimate: based on the employee's rate on the shift day (hourly — hours × rate, salary — a share of the monthly norm, per shift — the shift rate). If the location has a weekly budget, the estimate is compared with it.

## Printing and Excel

**More → Print schedule** opens a printable schedule with "Approved" and "Acknowledged" signature lines; periods longer than 14 days print in compact form. **More → Download Excel** exports the grid with hours.

> [!NOTE]
> Once the payroll is approved, the month is closed: shifts in that month can't be created, changed or deleted until the approval is cancelled in **Payroll**.

## Frequently asked questions

### Why isn't an employee in the location's schedule?

The schedule shows only employees linked to the location who don't have **Hide from schedule** turned on in their card. Link the employee to the location in its team — see [Locations and teams](/docs/team/locations).

### Auto-fill says there are no staffing needs

Set the location's staffing needs first: **Settings → Staffing needs**.

### Can I place a shift if the schedule warns about a violation?

Yes. Checks only warn — the decision is the manager's.
