We are launching a couple of new features and improvements that let you fine-tune several aspects of the calendaring experience: control over the built-in event validation, tools for overriding the default event order, built-in support for locked events that cannot be moved and means to control the time grid granularity in the scheduler.
Validating events on drag & drop
The event calendar ships with built-in validation against disabled days, times and ranges. We are adding the
invalidateEvent with the new option of
'start-end that only checks against the start & end of the newly placed event and lets you create them even with invalid ranges inside eg. a task that overlaps with a lunch break, or a multi-day task that starts on Friday and ends on Thursday the next week with the weekend disabled. By passing
'strict' no overlap is tolerated and the event will be thrown back accordingly. This is supported in both the scheduler and calendar view.
Custom event order
eventOrder option you can override the default order of the labels, agenda items and scheduler all-day events. It expects a function that compares two events and returns an order. This way any custom ordering logic can be implemented that makes sense in the context of the calendar. Eg. show all PROPOSED vacations at the top before ACCEPTED time off. See it in action for the event calendar and scheduler.
Drag & drop can be enabled or disabled on the whole instance of the calendar. With the new
editable property of the event object you can lock specific events that will stay locked even if drag & drop is enabled for all other events. This is especially helpful for fixed events and comes in real handy if user permissions and roles are in the mix. Available for for both the calendar view and scheduler.
Control over the granularity of the time grid
With the recent additions of
endTime to the schedule view configuration it is possible to only show the relevant hours in the time grid. We are adding two new options for controlling the cell steps and labels.
timeLabelStep can be configured in the same place as start/end.