Skip to main content
This guide covers legacy fields that are being phased out in favor of the newer Rules, Demands, Patterns, and Assignments system.

Breaking Changes

Employee Changes

contracts and periodRules on Employee are not deprecated — they remain fully supported today. The newer rules system is offered as an alternative for teams that prefer request-level, tag-scoped constraints instead of per-employee contracts.

Shift Changes

New field tags added to shifts for grouping in rules (e.g., EARLY, NIGHT).

New Features

Rules

Rules replace period rules and contracts with a more flexible system for counters and sequences.
Use shifts in rules (a list of shift tags, e.g. "shifts": ["EARLY"]) to apply constraints to specific shift types only.
See Rules documentation for complete examples.

Patterns

Define preferred or prohibited sequences of shifts across single or multiple days.
Pattern Example
See Patterns documentation for complete examples.

Demands

Specify staffing requirements independent of shift structure, allowing flexible coverage optimization.
Demand Example
See Demands documentation for complete examples.

Assignments

Granularly specify pre-defined shift assignments with optional locking.
Assignment Example
See Lock Plan documentation for complete examples.

Migration Checklist

1

Update shift definitions

Replace value with min and max properties:
2

Convert contracts to rules (optional)

contracts and periodRules remain fully supported on Employee — you do not need to migrate. If you’d rather define constraints once at the request level (tag-scoped, shared across employees), migrate contract-based constraints to the new Rule format with constraint and type fields.
3

Update employee references (optional)

If you migrated to request-level rules in the previous step, you can remove contracts and periodRules from employees. This is optional — both fields can be left in place and continue to work.
4

Rename blacklist to blocklist

Update any blacklist fields on shifts to blocklist.
5

Convert locked shifts to assignments

Replace employees and locked on shifts with the assignments array.