A listing of what each Nuget package version represents.
- 4.2.0 - (2021-04-10) - Many bugbixes from the community
- Fix infinite loop with MaxDate for GetOccurrences #364
- Deserializes STANDARD and DAYLIGHT timezone infos #420
- BYWEEKNO & BYMONTHNO fix for ISO-8601 formatting #463
- Fixed bug where changing a property value appended the value instead of clearing it. #450
- Fixed
IsActive
regression #449 - Fixed bug where ordering of week numbers mattered for equality #513
- Target
netstandard20
andnet50
, unified build targets - Updated to NodaTime 3 and
netcoreapp3.1
for unit tests (later changed tonet50
) #449
- 4.1.11 - (2019-03-21) - Add some conditional debug symbols so VSTS doesn't choke on strong-named assemblies. Thanks, eriknuds #442
- 4.1.10 - (2019-01-31) - Strong-named assemblies. Thanks, josteink #159
- 4.1.9 - (2018-07-18) - Associate attachments with their events when VALUE is BINARY. Without the association, parameters such as FMTTYPE would be lost. PR 411
- 4.1.8 - (2018-06-12) -
PRODID
andVERSION
are unconditionally set when serializing a calendar so as not to mislead consumers about where the serialized output came from. Previous behavior would use the values that came from deserialization. #403 - 4.1.6 - (2018-06-01) - Target
net46
instead ofnet45
. It seems thatSystem.Reflection.TypeExtensions
, doesn't support framework versions below 4.6. Bummer. - 4.1.5 - (2018-05-28)
- 4.1.4 - (2018-05-24) - #392. .NET Standard (still) doesn't play nicely with .NET Framework applications, so I have also targeted .NET 4.6 (
net46
). As a consequence of that, I had to downgradeSystem.Reflection.TypeExtensions
to 4.1.0, because the original targeted version (4.3.0) was retargeted asnetstandard2.0
, rendering it incompatible with anetstandard1.3
library. - 4.1.2 - (2018-05-21) - #388. Bugfix: Specifying a time zone identifier in the
CalDateTime
constructor should override the backingDateTime
'sKind
property. If no time zone identifier is specified, then theKind
property shouldn't be changed. - 4.1.1 - (2018-05-21) - #387. Bugfix: Calling
CalDateTime.AsUtc
caches the UTC time, but the cache was not being reset if theTzId
property changed. - 4.1.0/4.0.7 - (2018-05-15) - #383. Add a read-only
AsDateTimeOffset
property toIDateTime
. Add a few docs toRecurrencePattern
. - 4.0.6 - (2017-11-28) - #344. Fix the VERSION property so it's 2.0 as RFC-5545 requires.
- 4.0.4 PR 341. Cache the UTC representation for
CalDateTime
s. This results in a 12-16% reduction in unit test runtime. - 4.0.3 #337. Fixed a bug in
SimpleDeserializer
where tab characters (\t
) were excluded from regex match. - 4.0.1 #335. Technically this should be 5.0, but given 4.0.0 only has 24 downloads, I've just done a minor version bump.
- Moved everything from Ical.Net.Collections into the Ical.Net assembly.
- Updated the
PRODID
stamp to say 4.0. - Fixed a bug with a missing nuget dependency
- 4.0.0:
DateTimeKind
is preserved during serialization round trips.Z
suffixed (i.e. UTC)DATE-TIME
s produce aDateTimeKind.Utc
, and everything else produces aDateTimeKind.Local
. Similarly, when creatingCalDateTime
s with ambiguous timezones, theDateTimeKind
is examined in an attempt to infer whether it's a UTC time or not. In order of importance, the way of determiningDateTimeKind
is: time zone id,DateTimeKind
on the incomingDateTime
, and then a fallback. This should improve interop with other ical libraries like Telerik. #331RRULE
'sUNTIL
property is now inclusive, and doesn't rely on UTC time comparisons. #320CalDateTime.ToTimeZone
produces the correct local time #330VEVENT
status should be uppercase during serialization. A subtle (but breaking) change, necessitating a major version bump. #318VTIMEZONE
s are once again serialized, this time pulling historic time zone data from NodaTime -- thanks beriniwlew! PR 304- Entry points are now consolidated into the right places, and make sense:
CalendarCollection.Load()
loads aCalendarCollection
Calendar.Load
loads aCalendar
.CalendarComponent.Load()
loads whatever type you're looking for.
- The ANTLR-based parser is gone. chescock's
SimpleDeserializer
is used everywhere.
- 3.0.15: .NET Standard version (aka v3 aka
net-core
) is missing System.Reflection.TypeExtensions dependency. #326 - 3.0.14: .NET Standard version (aka v3 aka
net-core
) is missing System.Runtime.Serialization.Primitives dependency. #324 - 3.0.13:
DTSTART
is not required forVTODO
components. PR 322 - 3.0.12: Several improvements rolled up:
- 3.0.11-net-core-beta: Targeting netstandard1.3 and net46
- 3.0.10-net-core-beta: Reverts a change made in 3.0.3 which allowed UTC timestamps to specify
TZID=UTC
instead of being suffixed withZ
. The spec requiresZ
suffixes, and broke many applications, including Outlook. #263 - 3.0.9-net-core-beta: Bugfixes:
PeriodList
now fully implementsIList<Period>
. Keep data structures in sync in GroupedList.Remove() #253. Fix for StackOverflow exception #257. UnitTests can now be run in VS test runner! - 3.0.8-net-core-alpha: Bugfix: Better CalDateTime equality and hashing, because time zones matter. #275
- 3.0.7-net-core-alpha: Bugfix: Fixed a small ordering bug when evaluating
EXDATE
s andRDATE
s #275 - 3.0.6-net-core-alpha: Bugfix:
CalendarEvent
'sEquals()
andGetHashCode()
were buggy in that they did not considerRecurrenceDates
andExceptionDates
properly. Both methods treated these properties as if they were a single collection. Now they are normalized by time zone when before determining whether complete set ofRDATE
s orEXDATE
s are the same. #275 - 3.0.4-net-core-alpha:
CalendarEvent
'sEquals()
andGetHashCode()
methods were asymmetric. Both now considerAttachment
s. In addition, several calendar components did not implementEquals()
andGetHashCode()
, namelyJournal
andTodo
. They both delegate toRecurringComponent
for the properties owned by that parent object, and extend the methods for the child properties that they respectively own. #271 - 3.0.3-net-core-alpha: Bringing in 2.2.34's changes: serializing
EXDATE
s andRDATE
s now includes time zone information when specified. UTC timestamps are now allowed to be specified either inZ
-suffixed form (which was mandatory before), OR explicitly with a time zone id (TZID=UTC
). This allows greater interop with third-party libraries like Telerik's RadSchedule. #259PeriodList
now implementsIList<Period>
. - 3.0.2-net-core-alpha: Fix nuspec file to declare NodaTime as dependency
- 3.0.1-alpha: Initial publishing of .NET Core release
- 2.3.6 - (2019-01-30) - Strong-named assemblies. Thanks, josteink #159
- 2.3.5:
VTIMEZONE
s are once again serialized, this time pulling historic time zone data from NodaTime -- thanks beriniwlew! PR 304 - 2.3.4:
DTSTART
is not required forVTODO
components. PR 322 - 2.3.3: Several improvements rolled up:
- 2.3.2: Reverts a change made in 2.2.34 which allowed UTC timestamps to specify
TZID=UTC
instead of being suffixed withZ
. The spec requiresZ
suffixes, and broke many applications, including Outlook. #263 - 2.3.0: PeriodList now implements
IList
#280 - 2.2.39: Bugfix: Better CalDateTime equality and hashing, because time zones matter. #275
- 2.2.38: Bugfix: Fixed a small ordering bug when evaluating
EXDATE
s andRDATE
s #275 - 2.2.37: Bugfix:
Event
'sEquals()
andGetHashCode()
were buggy in that they did not considerRecurrenceDates
andExceptionDates
properly. Both methods treated these properties as if they were a single collection. Now they are normalized by time zone when before determining whether complete set ofRDATE
s orEXDATE
s are the same. #275 - 2.2.35: Bugfix:
Event
'sEquals()
andGetHashCode()
methods were asymmetric. Both now considerAttachment
s. In addition, several calendar components did not implementEquals()
andGetHashCode()
, namelyJournal
andTodo
. They both delegate toRecurringComponent
for the properties owned by that parent object, and extend the methods for the child properties that they respectively own. #271 - 2.2.34: Serializing
EXDATE
s andRDATE
s now includes time zone information when specified. UTC timestamps are now allowed to be specified either inZ
-suffixed form (which was mandatory before), OR explicitly with a time zone id (TZID=UTC
). This allows greater interop with third-party libraries like Telerik's RadSchedule. #259 - 2.2.33: Bugfix for #235 when years have 53 weeks. Contains a new deserializer that's twice as fast as the default ANTLR implementation, and several other (smaller) performance enhancements. This will become the default deserializer in a future release. PR 246, PR 247
- 2.2.31: .NET's UTC offset parsing semantics don't match the RFC (which allows for
hhmmss
UTC offsets), so I extended the offset serializer to account for these differences. (#102, #236) - 2.2.30:
Event.Resources
is anIList
again. Event.Resources wasn't being deserialized, so I have reverted back to an IList to fix this. Sorry everyone. I'm intentionally violating my own semver rules. In the future, I'll call version n+1 "vNext" so I can more freely rev the major version number. - 2.2.29: Calling
GetOccurrences()
on a recurrable component should recompute the recurrence set. SpecifyingEXDATE
values that don't have aTimeOfDay
component should "black out" that day from a recurring component'sStartTime
.#223 - 2.2.25: Fix for Collection was modified exception, and better handling of recurrence ids when calling
Calendar.GetOccurrences
(#188) (#148) - 2.2.24: Performance enhancement for solidus-prefixed time zones (#204).
- 2.2.23: Bugfix for culture for geographic location serialization. RFC-5545 requires coordinates to use decimal points, not commas, regardless of culture. Correct:
1.2345
. Incorrect:1,2345
. (#202) - 2.2.22: Bugfix for
Event
serialization that always changed theDuration
to 0. Serialization shouldn't have side effects. (#199)
Changes weren't systematically tracked before 2.2.22.