Changelog
View SourceAll notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning.
v1.0.0
- First public release.
- Forked from the Elixir ICalendar library with extensive fixes including:
- Fixed atom table exhaustion vulnerability by using
to_existing_atominstead ofto_atomwhen processing untrusted ICS files. (#75 by @nixxquality) - Support for arbitrary calendar headers via options (e.g., METHOD for RSVP buttons). (#56 by @nickgartmann)
- Gmail compatibility: ORGANIZER field now uses semi-colon separator as required. (#70 by @maedhr)
- Added RECURRENCE-ID support for identifying specific instances of recurring events (RFC 5545 Section 3.8.4.4).
- Add support for the
DTSTAMPfield in events.- If not provided, it is initialized to the current UTC DateTime when serializing.
- Add support for multiple comments in events. The
commentfields is nowcommentsand is an array to_icsreturns iolists. This prevents unecessary (and slower) string creation when the common use case is to send the data into a file, across a socket, etc. which all consume ioslists natively.- Deserialization now produces a Calendar struct
- Calendar structs contain calendar metadata, such as the ical version, the product id, and method
- These same fields are serialized out, and this replaces the
optionsparameter into_ics
- These same fields are serialized out, and this replaces the
- Many fixes around serialization/deserialization when it came to escaping and parsing escaped entries, lists, and parameters
- Fixed atom table exhaustion vulnerability by using
- Expanded test suite, with fixtures and ics data in files