github open-horizon-labs/obsidian-ics 1.14.4-beta1

pre-release5 hours ago

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:00
    • endUtime — Unix timestamp for the end, mirroring the existing utime
    • allDaytrue for all-day (VALUE=DATE) events
  • Nothing existing changed. time, endTime, utime and 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 endTime clock 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 uses endUtime and passes allDay through.
  • 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 endDateTime of Sep 15 00:00.

This release requires Obsidian 1.12.7 or later.

Refs #198

Don't miss a new obsidian-ics release

NewReleases is sending notifications on new releases.