FullScheduler — 🧑💼 Shift Planning for Contact Centers — FullScheduler
Docs, demos, API
🧑💼 Shift Planning for Contact Centers
Build weekly rosters, prevent overlaps, and approve swaps via resize/drop hooks.
Weekly plan with limits
const options: FullSchedulerOptions = {
startDate: weekStart(new Date()),
endDate: weekEnd(new Date()),
startHour: 0,
endHour: 24,
draggableEvents: true,
resizableEvents: true,
onEventDropped(d) {
violatesOvertime(d.event, d.newStartDateTime, d.newEndDateTime) ? d.decline() : d.accept()
},
onEventStartResized(r) { limitedShiftLength(r) ? r.accept() : r.decline() },
onEventEndResized(r) { limitedShiftLength(r) ? r.accept() : r.decline() },
}
Approvals
Use event.data.status = 'pending' | 'approved'. After the backend approves:
schedulerApi.configureEventsByParam('id', ev.id!, { data: { status: 'approved' } })
Tips
Snap to quarter-hour:
api.setThreshold(15)Color-code roles via
colorsor renderer
