ClosureOSS.Calendare.VSyntaxReader
0.1.0-beta-0005
dotnet add package ClosureOSS.Calendare.VSyntaxReader --version 0.1.0-beta-0005
NuGet\Install-Package ClosureOSS.Calendare.VSyntaxReader -Version 0.1.0-beta-0005
<PackageReference Include="ClosureOSS.Calendare.VSyntaxReader" Version="0.1.0-beta-0005" />
<PackageVersion Include="ClosureOSS.Calendare.VSyntaxReader" Version="0.1.0-beta-0005" />
<PackageReference Include="ClosureOSS.Calendare.VSyntaxReader" />
paket add ClosureOSS.Calendare.VSyntaxReader --version 0.1.0-beta-0005
#r "nuget: ClosureOSS.Calendare.VSyntaxReader, 0.1.0-beta-0005"
#:package ClosureOSS.Calendare.VSyntaxReader@0.1.0-beta-0005
#addin nuget:?package=ClosureOSS.Calendare.VSyntaxReader&version=0.1.0-beta-0005&prerelease
#tool nuget:?package=ClosureOSS.Calendare.VSyntaxReader&version=0.1.0-beta-0005&prerelease
Library to parse and manipulate ICS files based on RFC5545
Why
This 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.
Install
Installation is simple, just install via
dotnet add package ClosureOSS.Calendare.VSyntaxReader
Scope
Supported RFC's
- Internet Calendaring and Scheduling Core Object Specification (iCalendar)
- Parameter Value Encoding in iCalendar and vCard
- Scheduling Extensions to CalDAV
Partial supported RFC's
- Calendar Availability defines VAVAILABILITY component
- Event Publishing Extensions to iCalendar for the participant, location and resource component
- New Properties for iCalendar
RFC's under consideration
- currently none
Not supported RFC's
- Non-Gregorian Recurrence Rules in the Internet Calendaring and Scheduling Core Object Specification (iCalendar) extends RRULE with RSCALE and SKIP
Credits
Testcases (ICS files)
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.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- LinkDotNet.StringBuilder (>= 2.4.1)
- NodaTime (>= 3.2.2)
- NodaTime.Serialization.SystemTextJson (>= 1.3.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
0.1.0-beta-0005 | 121 | 9/4/2025 |