Skip to content

Releases: KashCal/KashCal

v23.1.2

20 Feb 20:41

Choose a tag to compare

  • Fix XML entity decoding in calendar display names
  • Add configurable week numbers to month calendar grid
  • Week numbers respect "Start Week On" preference

v23.1.1

20 Feb 03:22

Choose a tag to compare

RFC compliance and other fixes

v23.0.0

17 Feb 14:48

Choose a tag to compare

What's New

  • Device Calendar Integration: See your phone's calendar in KashCal alongside iCloud, CalDAV, and ICS
  • Zoho CalDAV: Zoho calendar verified working
  • Multi-Home-Set: Support for CalDAV servers with multiple calendar-home-set URLs

Plus many bug fixes and performance improvements.

v22.5.15

15 Feb 05:28

Choose a tag to compare

Fix: False parse-failure counting for VTODO/VJOURNAL

CalDAV sync-collection returns hrefs for all resource types (VEVENT, VTODO, VJOURNAL), but KashCal only syncs VEVENTs. Non-event resources were falsely counted as parse errors, causing:

  • Sync token held for 3 retry cycles (wasted bandwidth)
  • Session status showed PARTIAL instead of SUCCESS
  • "⚠ N failed to parse" warnings in Sync History
  • Resources permanently "abandoned" after max retries

Fix: Detect VTODO/VJOURNAL/VFREEBUSY resources before counting parse errors. Non-event resources are now silently skipped.

Affected servers: Nextcloud, SOGo (any server with mixed VEVENT+VTODO calendars). iCloud unaffected (separates Reminders into filtered VTODO-only calendar).

v22.5.14

14 Feb 20:33

Choose a tag to compare

Changes

Features

  • Support multiple calendar-home-set URLs per RFC 4791 (#70)
  • Handle CalendarContract VIEW/EDIT intents for launcher compatibility

Fixes

  • Stop applying default reminders to CalDAV-synced events (#74)
  • Default "Start Week On" to system locale instead of Sunday

Tests

  • Add coverage for birthday sync, RRULE edge cases, ICS export, and location suggestions
  • Add coverage for first day of week system default (#71)
  • Add edge case coverage for CalendarContract intent parsing

v22.5.13

14 Feb 04:01

Choose a tag to compare

Batched concurrent multiget for large calendar sync
Zoho CalDAV compatibility fixes
Fix trimIndent() XML corruption in fetchEventsByHref (iCloud 400, Nextcloud 500)
Fix CalDAV sync trigger for non-iCloud accounts
Tests: 133+ new unit tests, Docker server integration tests, diagnostic tests

v22.5.9

13 Feb 04:13

Choose a tag to compare

Zoho CalDAV support and other fixes.

v22.5.7 - Multi-Server CalDAV Fix

11 Feb 23:09

Choose a tag to compare

Bug Fixes

  • Fix CalDAV account collision when same username exists on different servers (#69) — Two CalDAV accounts with the same username (e.g. "admin") but different server URLs no longer collide. Previously, adding a second server silently overwrote the first account. Now each server gets its own account row. Includes database migration and URL normalization for calendar-home-set URLs.

Improvements

  • Filter CalDAV calendars by supported-calendar-component-set (RFC 4791) — Only calendars that support VEVENT are shown. Task-only or journal-only collections are excluded.

v22.5.6

11 Feb 05:17

Choose a tag to compare

What's Changed

Shared calendar sync fix

  • fix: Retry with fresh etag on 412 conflict instead of silently discarding local changes. When another user edits a shared calendar event between pull and push, the PUT with the stale etag returns 412. PushStrategy now fetches a fresh etag and retries once before falling through to conflict resolution. Also protects against stale CDN reads overwriting just-pushed data.

CalDAV provider improvements

  • fix: Make getctag optional for Zoho CalDAV support (fixes #61)
  • fix: Fail visibly when credential save fails during account discovery (fixes #55)
  • fix: AIA certificate chain completion for ICS subscriptions (fixes #63)
  • fix: AIA URL extraction trims ASN.1 junk from DER-encoded certs (#63)
  • fix: Improve iCalendar parsing robustness

v22.5.3 - iCalendar parsing robustness

10 Feb 03:47

Choose a tag to compare

What's New

iCalendar Parsing Robustness (fixes #55)

  • Malformed properties no longer kill entire .ics file parsing — events are preserved
  • Events missing UID are assigned a generated UUID instead of being silently dropped
  • Missing DTSTART falls back to DTEND; swapped DTEND/DTSTART are auto-corrected
  • Malformed UTC offsets and day durations are preprocessed before parsing
  • IcsPatcher ensures correct UID on push to prevent sync mismatch

Bug Fixes

  • Pre-1970 dates no longer incorrectly show today's events (fixes #53)

Technical

  • Upgraded icaldav library to 3.2.0