Skip to content

Availability

Availability entries describe time ranges that are working, blocked, break, or holiday periods. They can apply globally or to specific resources.

For the full precedence model between availability, calendars, and conflict policies, see the Scheduling Rules overview.

grid.eventSchedulerAvailability = [
{
id: 'business-hours',
kind: 'working',
title: 'Business hours',
startDateTime: '2026-06-08T08:00:00.000Z',
endDateTime: '2026-06-08T18:00:00.000Z',
},
{
id: 'room-a-maintenance',
resourceId: 'room-a',
kind: 'blocked',
title: 'Maintenance',
reason: 'Projector replacement',
startDateTime: '2026-06-08T13:00:00.000Z',
endDateTime: '2026-06-08T15:00:00.000Z',
},
];
grid.eventScheduler = {
view: 'resourceTimeline',
weekStartDate: '2026-06-08',
nonWorkingTime: {
enabled: true,
workingDays: [1, 2, 3, 4, 5],
workingHours: { start: '08:00', end: '19:00' },
className: 'outside-shift-hours',
},
};

Use nonWorkingTime.workingHours when the whole scheduler shares one operating window. Slots outside the configured windows are marked as closed/outside working hours and receive the scheduler non-working background. They also expose data-event-scheduler-non-working="true" and data-event-scheduler-availability-reason="Outside working hours" so apps can inspect or customize the cells without replacing the renderer.

Use named calendars when working hours differ by calendar or resource:

grid.eventScheduler = {
view: 'week',
weekStartDate: '2026-06-08',
calendars: {
primaryCalendarId: 'hospital-weekday',
className: 'outside-shift-hours',
calendars: [{
id: 'hospital-weekday',
name: 'Hospital weekday',
timeZone: 'UTC',
workingDays: [1, 2, 3, 4, 5],
workingHours: { start: '08:00', end: '19:00' },
holidays: [],
hoursPerDay: 8,
}],
},
};

eventSchedulerAvailability and eventScheduler.calendars can be used together. They are resolved with these rules:

  • kind: 'blocked', kind: 'holiday', and kind: 'break' entries are unavailable windows. Events that overlap them receive blocked-time conflicts.
  • kind: 'working' entries are dated working windows. If matching working availability exists for a resource on a date, the event must be fully covered by those working intervals or it receives an outside-availability conflict.
  • Calendars are the fallback for outside-availability checks when no matching dated kind: 'working' availability exists for that resource/date.

Use calendars for the recurring baseline, such as weekday hours, weekend crews, and resource calendars. Use availability for dated changes, such as extra opening hours, PTO, maintenance, one-off breaks, or temporary closures.

Timeline cells expose availability data attributes so apps can style or inspect availability state without replacing the scheduler renderer.