Multi-day events now work the way people expect: shown on every day they cover, with their real start and end available to templates
Two things made a six-week holiday look like a one-day event. Show ongoing — the setting that puts a multi-day event on each day it spans — was off by default, so unless you'd found that toggle, long events appeared only on their start day. And for anyone writing their own dataviewjs or Templater snippets, the event object only offered time and endTime, which are clock times: an all-day event running Aug 3 → Sep 14 was indistinguishable from a zero-length event (both 00:00 / 00:00), with no way to recover the end date.
- "Show ongoing" is now on by default for newly added calendars. Existing calendars are untouched — there's no migration, so nothing in your current daily notes changes. If your multi-day events still only appear on their start day, switch it on for that calendar in settings.
- Four new fields on the event object, so the full extent of any event is available:
startDateTime/endDateTime— full ISO 8601 with UTC offset, e.g.2026-08-03T00:00:00+02:00endUtime— Unix timestamp for the end, mirroring the existingutimeallDay—truefor all-day (VALUE=DATE) events
- Nothing existing changed.
time,endTime,utimeand the imported markdown output are all byte-identical, so current templates keep working untouched. - Fixed calendar settings dialogs leaking toggles between calendars. The dialog edited its format settings in place instead of on a copy, so adding a calendar could quietly change the defaults used by every calendar you added afterwards — even if you cancelled the dialog — and editing a calendar applied your toggles before you pressed Save.
- Fixed the Full Calendar example in the README, which rebuilt each event's end from the
endTimeclock string and so collapsed every multi-day event onto its start day. If you copied that snippet, this is likely why long events looked like single-day events in your calendar view — it now usesendUtimeand passesallDaythrough. - Added a "Multi-day events" section to the README showing how to render a date range, including the one detail that trips people up: for all-day events DTEND is exclusive, so an event through Sep 14 has an
endDateTimeof Sep 15 00:00.
This release requires Obsidian 1.12.7 or later.
Refs #198