The scheduler shows events in a month, a week, a day or an agenda. Events are plain data with ISO times; overlapping ones share the width, events across midnight show in both days, and all-day events run across the top as bars.
It never changes your events itself. Drag an event, or its bottom edge, and eventChange reports the new times; choose time on the grid, and slotSelect reports it. rangeChange tells you which days are shown, so you can load their events.
Everything a pointer does, the keyboard does too: the grid is one tab stop, the arrow keys move through days and times, and Alt with the arrows moves an event.
A week to plan
With editable and selectable, drag events to move them, drag their bottom edge to resize them, and drag across empty time to add one. The example updates its events from the outputs.
A month and an agenda
Events across days run as bars; a busy day shows how many more there are. views offers only the month and the agenda of the next agendaDays.
A day of rooms
nuiSchedulerEvent draws each booking with its room and host. slotMinutes="15" makes finer rows.