Split shifts & rotating schedules
Model split working days, overnight shifts, and repeating rotations from a time-zone-aware anchor. The planner expands shift definitions into occurrences that can be used in availability and capacity analysis.
Loading interactive demo…
What you configure
- profiles.shifts
- Describe shift IDs, weekdays, start/end times, and effective boundaries.
- rotation
- Set an anchor date, cycleDays, and activeDays within the cycle.
- getShiftOccurrences
- Expand a resource's shifts over a requested interval.
Essential integration
This assumes the shared Quick start already provides premiumLicense and, for UI views, premiumCalendarOptions. Only the feature-specific setup is shown.
import { AdvancedResourcePlanner } from '@wts-calendar/core/advanced-resource-planning';
const planner = new AdvancedResourcePlanner({
license: premiumLicense,
timeZone: 'UTC',
resources: [
{ id: 'design', title: 'Design studio', capacity: 2 },
{ id: 'engineering', title: 'Engineering', capacity: 4 },
],
events: [
{
id: 'review',
title: 'Design review',
resourceId: 'design',
start: '2026-09-07T09:00:00Z',
end: '2026-09-07T10:30:00Z',
},
],
profiles: [
{
resourceId: 'design',
shifts: [
{
id: 'morning',
startTime: '08:00',
endTime: '12:00',
rotation: { anchor: '2026-09-07', cycleDays: 4, activeDays: [0, 1] },
},
{
id: 'evening',
startTime: '16:00',
endTime: '20:00',
rotation: { anchor: '2026-09-07', cycleDays: 4, activeDays: [0, 1] },
},
],
},
],
});
export const shifts = planner.getShiftOccurrences('design', '2026-09-07', '2026-09-15');
console.table(shifts);Behavior and lifecycle
- An end time earlier than the start denotes an overnight shift; 24:00 is supported.
- Shift expansion uses the calendar's named-zone and effective-boundary policies.
Limits and responsibilities
- You provide the rotation pattern; the planner does not automatically generate a staffing roster.
- Employment rules and organization-specific shift requirements must be modeled and validated by your application.
Premium
Enable this capability
- Optional module
- @wts-calendar/core/advanced-resource-planning
- Local capability ID
- advanced-resource-planning · enabled by package-wide Premium
Use the request form to describe your project and deployment origins. Pricing and terms are confirmed privately. A WTS license is separate from provider credentials; do not send passwords or production access tokens.
The live example uses a browser-visible deployment key restricted to this package and approved origins. It does not collect license keys or visitor credentials.