Changelog

View Source

All 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_atom instead of to_atom when 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 DTSTAMP field in events.
      • If not provided, it is initialized to the current UTC DateTime when serializing.
    • Add support for multiple comments in events. The comment fields is now comments and is an array
    • to_ics returns 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 options parameter in to_ics
    • Many fixes around serialization/deserialization when it came to escaping and parsing escaped entries, lists, and parameters
  • Expanded test suite, with fixtures and ics data in files