# Changelog
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## v1.1.2
- Fixes
- Fix parsing of Timezones and unknown components with CR/LF line endings
## v1.1.1
- Fixes
- Fix parsing ICal files with CR/LF line endings (@pedrogarrett)
- Support "line folding" multiline entries as per the RFC for all line entries
## v1.1.0
- Improvements
- `ICal.Timezone`: a struct that represents `VTIMEZONE` calendar components
- `ICal.Todo`: a struct that represents `VTODO` calendar components
- `ICal.Journal`: a struct that represents `VJOURNAL` calendar components
- `ICal.RequestStatus`: a struct that represents the `rstatus`, or request status, of a component
- Added request status support to `ICal.Event`
- Dates with local times are represented with `NaiveDateTime`s
- Arbitrary lists of components can be serialized with `ICal.to_ics` without being in an `%ICal{}`
- Fixes
- `ICal.Deserialize.to_integer` wraps integer parsing for safety in more cases
- Correct placement of the `:` separator in custom properties with parameters
- Preserve `priority` and `sequence` properties
- Parse dates in ICS as Elixir `Date`s, rather than "upgrade" them to `DateTime`s
- Janitorial
- Improved documentation layout
- More unit tests
## 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](https://github.com/lpil/icalendar/pull/75) by @nixxquality)
- Support for arbitrary calendar headers via options (e.g., METHOD for RSVP buttons). ([#56](https://github.com/lpil/icalendar/pull/56) by @nickgartmann)
- Gmail compatibility: ORGANIZER field now uses semi-colon separator as required. ([#70](https://github.com/lpil/icalendar/pull/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