Premium

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.

Feature-specific TypeScript
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.

Request Premium pricing

Share the details we need to respond to your request.

Optional for this inquiry, but required before deployment. Add one origin per line without a page path. Registered HTTP localhost origins are allowed for development.

Don’t include license keys, passwords, or confidential information.