Release date: October 9, 2026
Features
- The Scheduler onAfterEventRender event provides access to the rendered event element and its event data [tutorial]
Improvements
Scheduler
- Speed up hourly time-header preparation by skipping redundant date calculations. (883) [demo]
- Reduce floating event label rendering work outside the visible viewport. (884) [demo]
General
- Speed up plain-text HTML escaping across components. (883)
- Reduce DayPilot.Date timestamp access and allocation overhead. (883)
Fixes
Scheduler
- Fixed an error when calling scrollToResource() (core). (873)
- Fixed errors when dispose() is called while deferred setScrollX() or setScrollY() requests are pending (Angular). (873)
- Fixed an error when dispose() is called while a scrollToResource() request is pending (core). (873)
- Fixed zero values of scrollX and scrollY being ignored when passed to update() (core). (874)
- Fixed pending setScrollX() and setScrollY() requests being lost during an unrelated update of a plain
configobject (Angular). (874) - Report non-array event and resource loading responses as errors and include the original request with parsing errors. (876) [demo]
- Prevent completed Angular scroll-position requests from overriding subsequent scrolling. (877)
- Prevent delayed row-header scrolling from overwriting a newer grid scroll position. (877)
- Cancel pending touch callbacks on disposal and preserve other instances' touch interactions. (877)
- Preserve time-header label vertical alignment when entering and leaving floating mode, including custom border widths. (879)
- Preserve event padding and vertical alignment in floating labels, including zero padding overrides. (879)
- Preserve interactive HTML content and input state when event labels enter and leave floating mode. (879)
- Preserve custom time-header content, component state and input focus when scrolling, and release floating content correctly during updates and disposal. (879) [demo]
- Honor scrollDelayFloats when refreshing existing event labels while initializing newly rendered labels immediately. (879)
- Persist replacement row data passed to rows.update() across full refreshes and keep row lookups current. (880)
- Correct the TypeScript
rows.each()callback signature to receive a Row and returnvoid. (880) - Refresh viewport geometry and event rendering when the container width changes immediately after initialization. (881)
Calendar
- Report non-array event and column loading responses as errors and include the original request with parsing errors. (876)
Month
- Report non-array event loading responses as errors and include the original request with parsing errors. (876)
General
- Fix DayPilot.Date accepting invalid strings that match inherited property names, such as
constructorand__proto__. (875) - Fix incorrect DayPilot.Date results when parsing the same ISO string with different
readLocalsettings. (875) - Route malformed JSON responses through DayPilot.ajax() error callbacks and reject DayPilot.Http promises. (876)
- Fix DatePicker input handling before the first opening and keep typed dates synchronized when the popup is open. (881) [demo]
- Reject malformed date and time fields that would create invalid DayPilot.Date objects. (881)
- Fix Angular ESM packages throwing
"DayPilot is not defined"when bundled with esbuild. (882)
NPM Packages
The NPM package version for this release is 6.1.0:
DayPilot