Library to parse and manipulate ICS files based on RFC5545
$ dotnet add package ClosureOSS.Calendare.VSyntaxReaderThis C# library was specifically developed for reading and manipulating RFC5545 iCalendar (ICS) files, with a primary focus on server-side applications, such as calendar servers. The goal was to create a robust and permissive library that can handle the many quirks and non-compliant behaviors of various calendar clients in the wild.
Permissive Parsing: The library is built to be tolerant of malformed or non-standard ICS data, allowing it to successfully parse files from as many different clients as possible.
Timezone Handling: Accurate handling of timezones is crucial for international scheduling. This library includes a dedicated and robust system for processing timezone definitions to ensure events are displayed correctly for users across the globe.
Modern Feature Support: This includes support for the components VAvailability (RFC 7953), which is helpful for free/busy scheduling, and VPoll (RFC 9073), which enables calendar-based polling and voting features.
This library is not intended for client-side use, such as creating new events or managing a user's local calendar.
Installation is simple, just install via
dotnet add package ClosureOSS.Calendare.VSyntaxReader
Refer to the examples in the VSyntaxReader.Examples folder.
The test ICS files, in the ./data/ subdirectories, are largely derived from Ical.Net version 4 (circa February 2023). Ical.Net's test cases were originally created for the libical project.
Some test ICS files where originally created for DAViCal.
These files may have been altered after they were copied from Ical.Net or DAViCal.