Skip to content

ical-rs overhaul#164

Merged
lennart-k merged 28 commits into
mainfrom
feat/ical-rewrite
Jan 19, 2026
Merged

ical-rs overhaul#164
lennart-k merged 28 commits into
mainfrom
feat/ical-rewrite

Conversation

@lennart-k
Copy link
Copy Markdown
Owner

@lennart-k lennart-k commented Jan 7, 2026

This PR integrates a complete overhaul of my ical-rs fork.
This new ical-rs version is much stricter in parsing input data but also more aware of it, which is a crucial step towards JSCalendar support.

Breaking changes:

  • The new implementation would fail at parsing invalid objects already inserted into a calendar.
    • State breaking change in release notes
    • Perform healthcheck on startup to let users know something's going wrong
    • Hence, the release from this PR MUST be reversible in case issues arise.

Logic outsourced to the ical-rs library:

  • Recurrence expansion
  • Birthday/Anniversary event generation
  • Parsing calendar objects
  • date,date-time,timezone-related data types
  • Expanding imported calendars into calendar objects
  • Merging calendar objects into calendar exports

Todos:

  • Remove todo!()
  • Make object_id extrinsic
  • Remove object_id from ETag
  • Fix calendar-query compfilter
  • Strategy to deal with invalid objects when updating (Option to skip them. On startup, broken objects are listed)
  • Useful error messages when uploading invalid data

Other improvements:

  • Support for proprietary timezone identifiers (looking at Microsoft)
  • Less broken implementation of recurrence expansion

Other todos that don't need to be in this PR:

  • Unique UID in addressobjects table (This must be in a later version since it's a
  • ETag generation
  • Implement retrieval of partial calendar objects with prop filters
  • remove wrapper types AddressObject/CalendarObject
  • Make sure this is highly performant

@lennart-k lennart-k added this to the v1.0.0 milestone Jan 7, 2026
@lennart-k lennart-k self-assigned this Jan 7, 2026
@lennart-k lennart-k added enhancement New feature or request architecture Decisions about the architecture labels Jan 7, 2026
@lennart-k lennart-k marked this pull request as ready for review January 19, 2026 14:05
@lennart-k lennart-k merged commit 92a3418 into main Jan 19, 2026
15 checks passed
@lennart-k lennart-k deleted the feat/ical-rewrite branch April 26, 2026 09:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

architecture Decisions about the architecture enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant