# API diff: Ical.Net.dll > Report created with [Mono.ApiTools.NuGetDiff](https://github.com/mattleibow/Mono.ApiTools.NuGetDiff) ## Ical.Net.dll - Breaking Changes > Assembly Version Changed: 5.0.0.0 vs 4.3.1.0 ### Nullable Reference Types (NRT) Support iCal.NET v5.0.0 now enables [Nullable Reference Types (NRT)](https://learn.microsoft.com/en-us/dotnet/csharp/nullable-references) throughout the library. This means: - Reference type nullability is now explicitly annotated in all public APIs. - The compiler will provide warnings for possible null reference issues, helping you write safer and more robust code. - Consumers targeting .NET Core 3.0+, .NET Standard 2.1+, or .NET 5+ will benefit from improved static analysis and null-safety. ### Namespace Ical.Net #### Type Changed: Ical.Net.Calendar Removed interface: ```csharp IServiceProvider ``` Removed properties: ```csharp public RecurrenceEvaluationModeType RecurrenceEvaluationMode { get; set; } public RecurrenceRestrictionType RecurrenceRestriction { get; set; } ``` Removed methods: ```csharp public virtual void ClearEvaluation (); public void Dispose (); protected bool Equals (Calendar); public void Evaluate (DataTypes.IDateTime, DataTypes.IDateTime); public void Evaluate (DataTypes.IDateTime, DataTypes.IDateTime); public virtual CalendarComponents.FreeBusy GetFreeBusy (DataTypes.IDateTime, DataTypes.IDateTime); public virtual CalendarComponents.FreeBusy GetFreeBusy (DataTypes.Organizer, System.Collections.Generic.IEnumerable, DataTypes.IDateTime, DataTypes.IDateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime, DataTypes.IDateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime, DataTypes.IDateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime, System.DateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime, System.DateTime); ``` #### Type Changed: Ical.Net.CalendarCollection Removed methods: ```csharp public void ClearEvaluation (); protected bool Equals (CalendarCollection); public CalendarComponents.FreeBusy GetFreeBusy (DataTypes.IDateTime, DataTypes.IDateTime); public CalendarComponents.FreeBusy GetFreeBusy (DataTypes.Organizer, System.Collections.Generic.IEnumerable, DataTypes.IDateTime, DataTypes.IDateTime); public System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime); public System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime); public System.Collections.Generic.HashSet GetOccurrences (System.DateTime); public System.Collections.Generic.HashSet GetOccurrences (System.DateTime); public System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime, DataTypes.IDateTime); public System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime, DataTypes.IDateTime); public System.Collections.Generic.HashSet GetOccurrences (System.DateTime, System.DateTime); public System.Collections.Generic.HashSet GetOccurrences (System.DateTime, System.DateTime); ``` #### Type Changed: Ical.Net.CalendarExtensions Removed method: ```csharp public static int GetIso8601WeekOfYear (this System.Globalization.Calendar, System.DateTime, System.Globalization.CalendarWeekRule, System.DayOfWeek); ``` #### Type Changed: Ical.Net.CalendarObject Removed interface: ```csharp IServiceProvider ``` Removed methods: ```csharp public virtual T GetService (); public virtual T GetService (string); public virtual object GetService (string); public virtual object GetService (System.Type); public virtual void RemoveService (string); public virtual void RemoveService (System.Type); public virtual void SetService (object); public virtual void SetService (string, object); ``` #### Type Changed: Ical.Net.CalendarObjectBase Modified constructors: ```diff -public CalendarObjectBase () +protected CalendarObjectBase () ``` #### Type Changed: Ical.Net.CalendarObjectList Removed constructor: ```csharp public CalendarObjectList (ICalendarObject); ``` #### Type Changed: Ical.Net.CalendarParameter Removed interface: ```csharp IServiceProvider ``` Removed methods: ```csharp public virtual void AddValue (string); public virtual void RemoveValue (string); ``` #### Type Changed: Ical.Net.CalendarProperty Removed interface: ```csharp IServiceProvider ``` Removed methods: ```csharp public virtual void AddValue (object); public virtual void RemoveValue (object); ``` #### Type Changed: Ical.Net.FrequencyOccurrence Removed value: ```csharp None = -2147483648, ``` #### Type Changed: Ical.Net.FrequencyType Removed value: ```csharp None = 0, ``` Modified fields: ```diff -Daily = 4 +Daily = 3 -Hourly = 3 +Hourly = 2 -Minutely = 2 +Minutely = 1 -Monthly = 6 +Monthly = 5 -Secondly = 1 +Secondly = 0 -Weekly = 5 +Weekly = 4 -Yearly = 7 +Yearly = 6 ``` #### Type Changed: Ical.Net.ICalendarObject Removed interface: ```csharp IServiceProvider ``` #### Type Changed: Ical.Net.ICalendarProperty Removed interface: ```csharp IServiceProvider ``` #### Type Changed: Ical.Net.ICalendarPropertyListContainer Removed interface: ```csharp IServiceProvider ``` #### Type Changed: Ical.Net.IGetFreeBusy Removed methods: ```csharp public virtual CalendarComponents.FreeBusy GetFreeBusy (DataTypes.IDateTime, DataTypes.IDateTime); public virtual CalendarComponents.FreeBusy GetFreeBusy (DataTypes.Organizer, System.Collections.Generic.IEnumerable, DataTypes.IDateTime, DataTypes.IDateTime); ``` #### Type Changed: Ical.Net.IGetOccurrences Removed methods: ```csharp public virtual void ClearEvaluation (); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime, DataTypes.IDateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime, System.DateTime); ``` #### Type Changed: Ical.Net.IGetOccurrencesTyped Removed methods: ```csharp public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime, DataTypes.IDateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime, System.DateTime); ``` #### Type Changed: Ical.Net.LibraryMetadata Removed field: ```csharp public static string ProdId; ``` #### Type Changed: Ical.Net.RegexDefaults Modified fields: ```diff -public const int TimeoutMilliseconds = 200; +public const int TimeoutMilliseconds = 2000; ``` #### Type Changed: Ical.Net.VTimeZoneInfo Removed interface: ```csharp IServiceProvider ``` Removed properties: ```csharp public DataTypes.UtcOffset TZOffsetFrom { get; set; } public DataTypes.UtcOffset TZOffsetTo { get; set; } ``` Modified properties: ```diff -public virtual DataTypes.IDateTime DtStart { get; set; } +public virtual DataTypes.CalDateTime DtStart { get; set; } -public virtual System.Collections.Generic.IList ExceptionDates { get; ---set;--- } +public virtual DataTypes.ExceptionDates ExceptionDates { get; set; } -public virtual System.Collections.Generic.IList RecurrenceDates { get; ---set;--- } +public virtual DataTypes.RecurrenceDates RecurrenceDates { get; set; } -public virtual DataTypes.IDateTime RecurrenceId { get; set; } +public virtual DataTypes.CalDateTime RecurrenceId { get; set; } -public virtual DataTypes.IDateTime Start { get; set; } +public virtual DataTypes.CalDateTime Start { get; set; } ``` Removed methods: ```csharp public virtual void ClearEvaluation (); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime, DataTypes.IDateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime, System.DateTime); ``` #### Removed Type Ical.Net.IServiceProvider #### Removed Type Ical.Net.RecurrenceEvaluationModeType #### Removed Type Ical.Net.RecurrenceRestrictionType ### Namespace Ical.Net.CalendarComponents #### Type Changed: Ical.Net.CalendarComponents.Alarm Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed property: ```csharp protected System.Collections.Generic.IList Occurrences { get; set; } ``` Modified properties: ```diff -public virtual System.TimeSpan Duration { get; set; } +public virtual Ical.Net.DataTypes.Duration? Duration { get; set; } ``` Removed methods: ```csharp protected virtual void AddRepeatedItems (); public virtual System.Collections.Generic.IList GetOccurrences (IRecurringComponent, Ical.Net.DataTypes.IDateTime, Ical.Net.DataTypes.IDateTime); public virtual System.Collections.Generic.IList Poll (Ical.Net.DataTypes.IDateTime, Ical.Net.DataTypes.IDateTime); ``` #### Type Changed: Ical.Net.CalendarComponents.CalendarComponent Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.CalendarComponents.CalendarEvent Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed properties: ```csharp public Ical.Net.DataTypes.IDateTime DtStart { get; set; } protected bool EvaluationIncludesReferenceDate { get; } ``` Modified properties: ```diff -public virtual Ical.Net.DataTypes.IDateTime DtEnd { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime DtEnd { get; set; } -public virtual System.TimeSpan Duration { get; set; } +public virtual Ical.Net.DataTypes.Duration? Duration { get; set; } -public virtual Ical.Net.DataTypes.IDateTime End { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime End { get; set; } public virtual bool IsAllDay { get; ---set;--- } ``` Removed methods: ```csharp public virtual bool OccursAt (Ical.Net.DataTypes.IDateTime); public virtual bool OccursOn (Ical.Net.DataTypes.IDateTime); ``` #### Type Changed: Ical.Net.CalendarComponents.FreeBusy Removed interface: ```csharp Ical.Net.IServiceProvider ``` Modified properties: ```diff -public virtual Ical.Net.DataTypes.IDateTime DtEnd { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime DtEnd { get; set; } -public virtual Ical.Net.DataTypes.IDateTime DtStart { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime DtStart { get; set; } -public virtual Ical.Net.DataTypes.IDateTime End { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime End { get; set; } -public virtual Ical.Net.DataTypes.IDateTime Start { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime Start { get; set; } ``` Removed methods: ```csharp public static FreeBusy Create (Ical.Net.ICalendarObject, FreeBusy); public static FreeBusy CreateRequest (Ical.Net.DataTypes.IDateTime, Ical.Net.DataTypes.IDateTime, Ical.Net.DataTypes.Organizer, System.Collections.Generic.IEnumerable); public virtual Ical.Net.FreeBusyStatus GetFreeBusyStatus (Ical.Net.DataTypes.IDateTime); ``` #### Type Changed: Ical.Net.CalendarComponents.IAlarmContainer Removed method: ```csharp public virtual System.Collections.Generic.IList PollAlarms (Ical.Net.DataTypes.IDateTime, Ical.Net.DataTypes.IDateTime); ``` #### Type Changed: Ical.Net.CalendarComponents.ICalendarComponent Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.CalendarComponents.IRecurrable Removed interface: ```csharp Ical.Net.IServiceProvider ``` Modified properties: ```diff -public abstract System.Collections.Generic.IList ExceptionDates { get; ---set;--- } +public abstract Ical.Net.DataTypes.ExceptionDates ExceptionDates { get; set; } -public abstract System.Collections.Generic.IList RecurrenceDates { get; ---set;--- } +public abstract Ical.Net.DataTypes.RecurrenceDates RecurrenceDates { get; set; } -public abstract Ical.Net.DataTypes.IDateTime RecurrenceId { get; set; } +public abstract Ical.Net.DataTypes.CalDateTime RecurrenceId { get; set; } -public abstract Ical.Net.DataTypes.IDateTime Start { get; set; } +public abstract Ical.Net.DataTypes.CalDateTime Start { get; set; } ``` #### Type Changed: Ical.Net.CalendarComponents.IRecurringComponent Removed interface: ```csharp Ical.Net.IServiceProvider ``` Modified properties: ```diff -public abstract Ical.Net.DataTypes.IDateTime Created { get; set; } +public abstract Ical.Net.DataTypes.CalDateTime Created { get; set; } -public abstract Ical.Net.DataTypes.IDateTime LastModified { get; set; } +public abstract Ical.Net.DataTypes.CalDateTime LastModified { get; set; } ``` #### Type Changed: Ical.Net.CalendarComponents.IUniqueComponent Removed interface: ```csharp Ical.Net.IServiceProvider ``` Modified properties: ```diff -public abstract Ical.Net.DataTypes.IDateTime DtStamp { get; set; } +public abstract Ical.Net.DataTypes.CalDateTime DtStamp { get; set; } ``` #### Type Changed: Ical.Net.CalendarComponents.Journal Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed property: ```csharp protected bool EvaluationIncludesReferenceDate { get; } ``` Removed methods: ```csharp protected bool Equals (Journal); ``` #### Type Changed: Ical.Net.CalendarComponents.RecurringComponent Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed property: ```csharp protected bool EvaluationIncludesReferenceDate { get; } ``` Modified properties: ```diff -public virtual Ical.Net.DataTypes.IDateTime Created { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime Created { get; set; } -public virtual Ical.Net.DataTypes.IDateTime DtStart { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime DtStart { get; set; } -public virtual System.Collections.Generic.IList ExceptionDates { get; ---set;--- } +public virtual Ical.Net.DataTypes.ExceptionDates ExceptionDates { get; set; } -public virtual Ical.Net.DataTypes.IDateTime LastModified { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime LastModified { get; set; } -public virtual System.Collections.Generic.IList RecurrenceDates { get; ---set;--- } +public virtual Ical.Net.DataTypes.RecurrenceDates RecurrenceDates { get; set; } -public virtual Ical.Net.DataTypes.IDateTime RecurrenceId { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime RecurrenceId { get; set; } -public virtual Ical.Net.DataTypes.IDateTime Start { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime Start { get; set; } ``` Removed methods: ```csharp public virtual void ClearEvaluation (); protected bool Equals (RecurringComponent); public virtual System.Collections.Generic.HashSet GetOccurrences (Ical.Net.DataTypes.IDateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (Ical.Net.DataTypes.IDateTime, Ical.Net.DataTypes.IDateTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime, System.DateTime); public virtual System.Collections.Generic.IList PollAlarms (Ical.Net.DataTypes.IDateTime, Ical.Net.DataTypes.IDateTime); ``` #### Type Changed: Ical.Net.CalendarComponents.Todo Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed properties: ```csharp public Ical.Net.DataTypes.IDateTime DtStart { get; set; } protected bool EvaluationIncludesReferenceDate { get; } ``` Modified properties: ```diff -public virtual Ical.Net.DataTypes.IDateTime Completed { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime Completed { get; set; } -public virtual Ical.Net.DataTypes.IDateTime Due { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime Due { get; set; } -public virtual System.TimeSpan Duration { get; set; } +public virtual Ical.Net.DataTypes.Duration? Duration { get; set; } ``` Removed methods: ```csharp public virtual bool IsActive (Ical.Net.DataTypes.IDateTime); public virtual bool IsCompleted (Ical.Net.DataTypes.IDateTime); ``` #### Type Changed: Ical.Net.CalendarComponents.UniqueComponent Removed interface: ```csharp Ical.Net.IServiceProvider ``` Modified properties: ```diff -public virtual Ical.Net.DataTypes.IDateTime DtStamp { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime DtStamp { get; set; } ``` #### Type Changed: Ical.Net.CalendarComponents.VTimeZone Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed methods: ```csharp protected bool Equals (VTimeZone); ``` ### Namespace Ical.Net.Collections #### Type Changed: Ical.Net.Collections.MultiLinkedList`1 Removed method: ```csharp public virtual void SetNext (Ical.Net.Collections.IMultiLinkedList); ``` #### Removed Type Ical.Net.Collections.GroupedListEnumerator`1 ### Namespace Ical.Net.Collections.Interfaces #### Type Changed: Ical.Net.Collections.Interfaces.IValueObject`1 Removed methods: ```csharp public virtual void AddValue (T); public virtual void RemoveValue (T); ``` ### Namespace Ical.Net.DataTypes #### Type Changed: Ical.Net.DataTypes.AlarmOccurrence Removed constructor: ```csharp public AlarmOccurrence (Ical.Net.CalendarComponents.Alarm, IDateTime, Ical.Net.CalendarComponents.IRecurringComponent); ``` Removed interface: ```csharp System.IComparable ``` Modified properties: ```diff -public IDateTime DateTime { get; set; } +public CalDateTime DateTime { get; set; } ``` Removed methods: ```csharp public virtual int CompareTo (AlarmOccurrence); protected bool Equals (AlarmOccurrence); ``` #### Type Changed: Ical.Net.DataTypes.Attachment Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed methods: ```csharp protected bool Equals (Attachment); ``` #### Type Changed: Ical.Net.DataTypes.Attendee Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed methods: ```csharp protected bool Equals (Attendee); ``` #### Type Changed: Ical.Net.DataTypes.CalDateTime Modified base type: ```diff -Ical.Net.DataTypes.EncodableDataType +System.Object ``` Removed constructors: ```csharp public CalDateTime (); public CalDateTime (IDateTime); public CalDateTime (System.DateTime); public CalDateTime (string); public CalDateTime (System.DateTime, string); public CalDateTime (int, int, int, string); public CalDateTime (int, int, int, int, int, int); public CalDateTime (int, int, int, int, int, int, string, Ical.Net.Calendar); ``` Removed interfaces: ```csharp ICalendarDataType ICalendarParameterCollectionContainer IDateTime IEncodableDataType Ical.Net.ICopyable Ical.Net.IServiceProvider System.IComparable ``` Removed properties: ```csharp public System.DateTimeOffset AsDateTimeOffset { get; } public System.DateTime AsSystemLocal { get; } public Ical.Net.ICalendarObject AssociatedObject { get; set; } public bool HasDate { get; set; } public int Millisecond { get; } public long Ticks { get; } public System.TimeSpan TimeOfDay { get; } ``` Modified properties: ```diff -public System.DateTime Date { get; } +public System.DateOnly Date { get; } public bool HasTime { get; ---set;--- } public string TzId { get; ---set;--- } public System.DateTime Value { get; ---set;--- } ``` Removed methods: ```csharp public virtual IDateTime Add (System.TimeSpan); public virtual IDateTime AddDays (int); public virtual IDateTime AddHours (int); public virtual IDateTime AddMilliseconds (int); public virtual IDateTime AddMinutes (int); public virtual IDateTime AddMonths (int); public virtual IDateTime AddSeconds (int); public virtual IDateTime AddTicks (long); public virtual IDateTime AddYears (int); public virtual void AssociateWith (IDateTime); public virtual int CompareTo (IDateTime); public virtual bool GreaterThan (IDateTime); public virtual bool GreaterThanOrEqual (IDateTime); public virtual bool LessThan (IDateTime); public virtual bool LessThanOrEqual (IDateTime); public virtual System.TimeSpan Subtract (IDateTime); public virtual IDateTime Subtract (System.TimeSpan); public virtual IDateTime ToTimeZone (string); public static IDateTime op_Addition (CalDateTime, System.TimeSpan); public static bool op_Equality (CalDateTime, IDateTime); public static bool op_GreaterThan (CalDateTime, IDateTime); public static bool op_GreaterThanOrEqual (CalDateTime, IDateTime); public static CalDateTime op_Implicit (System.DateTime); public static bool op_Inequality (CalDateTime, IDateTime); public static bool op_LessThan (CalDateTime, IDateTime); public static bool op_LessThanOrEqual (CalDateTime, IDateTime); public static System.TimeSpan op_Subtraction (CalDateTime, IDateTime); public static IDateTime op_Subtraction (CalDateTime, System.TimeSpan); ``` #### Type Changed: Ical.Net.DataTypes.CalendarDataType Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed methods: ```csharp public virtual T GetService (); public virtual T GetService (string); public virtual object GetService (string); public virtual object GetService (System.Type); public virtual void RemoveService (string); public virtual void RemoveService (System.Type); public virtual void SetService (object); public virtual void SetService (string, object); ``` #### Type Changed: Ical.Net.DataTypes.EncodableDataType Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.DataTypes.FreeBusyEntry Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.DataTypes.GeographicLocation Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed methods: ```csharp protected bool Equals (GeographicLocation); ``` #### Type Changed: Ical.Net.DataTypes.ICalendarDataType Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.DataTypes.Organizer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed methods: ```csharp protected bool Equals (Organizer); ``` Modified methods: ```diff -public override virtual void CopyFrom (Ical.Net.ICopyable obj) +public override final void CopyFrom (Ical.Net.ICopyable obj) ``` #### Type Changed: Ical.Net.DataTypes.Period Removed constructors: ```csharp public Period (); public Period (IDateTime); public Period (IDateTime, IDateTime); public Period (IDateTime, System.TimeSpan); ``` Removed interface: ```csharp Ical.Net.IServiceProvider ``` Modified properties: ```diff -public virtual System.TimeSpan Duration { get; ---set;--- } +public virtual Duration? Duration { get; set; } -public virtual IDateTime EndTime { get; ---set;--- } +public virtual CalDateTime EndTime { get; set; } -public virtual IDateTime StartTime { get; ---set;--- } +public virtual CalDateTime StartTime { get; set; } ``` Removed method: ```csharp public virtual bool Contains (IDateTime); ``` #### Type Changed: Ical.Net.DataTypes.RecurrencePattern Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed properties: ```csharp public Ical.Net.RecurrenceEvaluationModeType EvaluationMode { get; set; } public Ical.Net.RecurrenceRestrictionType RestrictionType { get; set; } ``` Modified properties: ```diff -public int Count { get; set; } +public int? Count { get; set; } -public System.DateTime Until { get; set; } +public CalDateTime Until { get; set; } ``` Removed methods: ```csharp protected bool Equals (RecurrencePattern); ``` #### Type Changed: Ical.Net.DataTypes.RequestStatus Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.DataTypes.StatusCode Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.DataTypes.Trigger Removed constructor: ```csharp public Trigger (System.TimeSpan); ``` Removed interface: ```csharp Ical.Net.IServiceProvider ``` Modified properties: ```diff -public virtual IDateTime DateTime { get; set; } +public virtual CalDateTime DateTime { get; set; } -public virtual System.TimeSpan? Duration { get; set; } +public virtual Duration? Duration { get; set; } ``` Removed methods: ```csharp protected bool Equals (Trigger); ``` #### Type Changed: Ical.Net.DataTypes.UtcOffset Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.DataTypes.WeekDay Removed interface: ```csharp Ical.Net.IServiceProvider ``` Modified properties: ```diff -public virtual int Offset { get; set; } +public virtual int? Offset { get; set; } ``` #### Removed Type Ical.Net.DataTypes.IDateTime #### Removed Type Ical.Net.DataTypes.PeriodList ### Namespace Ical.Net.Evaluation #### Type Changed: Ical.Net.Evaluation.Evaluator Removed constructors: ```csharp protected Evaluator (Ical.Net.DataTypes.ICalendarDataType); protected Evaluator (Ical.Net.ICalendarObject); ``` Removed field: ```csharp protected System.Collections.Generic.HashSet MPeriods; ``` Removed properties: ```csharp protected Ical.Net.ICalendarObject AssociatedObject { get; set; } public System.Globalization.Calendar Calendar { get; } public System.DateTime EvaluationEndBounds { get; set; } public System.DateTime EvaluationStartBounds { get; set; } public System.Collections.Generic.HashSet Periods { get; } ``` Removed methods: ```csharp public virtual void Clear (); protected Ical.Net.DataTypes.IDateTime ConvertToIDateTime (System.DateTime, Ical.Net.DataTypes.IDateTime); public virtual System.Collections.Generic.HashSet Evaluate (Ical.Net.DataTypes.IDateTime, System.DateTime, System.DateTime, bool); protected void IncrementDate (ref System.DateTime, Ical.Net.DataTypes.RecurrencePattern, int); ``` #### Type Changed: Ical.Net.Evaluation.EventEvaluator Modified properties: ```diff protected Ical.Net.CalendarComponents.CalendarEvent CalendarEvent { get; ---set;--- } ``` #### Type Changed: Ical.Net.Evaluation.IEvaluator Removed properties: ```csharp public Ical.Net.ICalendarObject AssociatedObject { get; } public System.Globalization.Calendar Calendar { get; } public System.DateTime EvaluationEndBounds { get; } public System.DateTime EvaluationStartBounds { get; } public System.Collections.Generic.HashSet Periods { get; } ``` Removed methods: ```csharp public virtual void Clear (); public virtual System.Collections.Generic.HashSet Evaluate (Ical.Net.DataTypes.IDateTime, System.DateTime, System.DateTime, bool); ``` #### Type Changed: Ical.Net.Evaluation.RecurringEvaluator Removed methods: ```csharp protected System.Collections.Generic.HashSet EvaluateExDate (Ical.Net.DataTypes.IDateTime, System.DateTime, System.DateTime); protected System.Collections.Generic.HashSet EvaluateExRule (Ical.Net.DataTypes.IDateTime, System.DateTime, System.DateTime); protected System.Collections.Generic.HashSet EvaluateRDate (Ical.Net.DataTypes.IDateTime, System.DateTime, System.DateTime); protected System.Collections.Generic.HashSet EvaluateRRule (Ical.Net.DataTypes.IDateTime, System.DateTime, System.DateTime, bool); ``` #### Type Changed: Ical.Net.Evaluation.TodoEvaluator Removed methods: ```csharp public void DetermineStartingRecurrence (Ical.Net.DataTypes.PeriodList, ref Ical.Net.DataTypes.IDateTime); public void DetermineStartingRecurrence (Ical.Net.DataTypes.RecurrencePattern, ref Ical.Net.DataTypes.IDateTime); public void EvaluateToPreviousOccurrence (Ical.Net.DataTypes.IDateTime, Ical.Net.DataTypes.IDateTime); ``` #### Removed Type Ical.Net.Evaluation.PeriodListEvaluator #### Removed Type Ical.Net.Evaluation.TimeZoneEvaluator ### Namespace Ical.Net.Serialization #### Type Changed: Ical.Net.Serialization.CalendarSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.ComponentSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataMapSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.EventSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.GenericListSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.ISerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.IStringSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.ParameterSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.PropertySerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.SerializerBase Removed interface: ```csharp Ical.Net.IServiceProvider ``` ### Namespace Ical.Net.Serialization.DataTypes #### Type Changed: Ical.Net.Serialization.DataTypes.AttachmentSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.AttendeeSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.DataTypeSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.DateTimeSerializer Modified base type: ```diff -Ical.Net.Serialization.DataTypes.EncodableDataTypeSerializer +Ical.Net.Serialization.SerializerBase ``` Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.EncodableDataTypeSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.EnumSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.FreeBusyEntrySerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.GeographicLocationSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.IntegerSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.OrganizerSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.PeriodListSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.PeriodSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.RecurrencePatternSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed method: ```csharp public virtual void CheckMutuallyExclusive (string, string, T, TU); ``` #### Type Changed: Ical.Net.Serialization.DataTypes.RequestStatusSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.StatusCodeSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.StringSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.TriggerSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.UriSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.UtcOffsetSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.WeekDaySerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Removed Type Ical.Net.Serialization.DataTypes.TimeSpanSerializer ## Ical.Net.dll - All Changes > Assembly Version Changed: 5.0.0.0 vs 4.3.1.0 ### Namespace Ical.Net #### Type Changed: Ical.Net.Calendar Removed interface: ```csharp IServiceProvider ``` Removed properties: ```csharp public virtual RecurrenceEvaluationModeType RecurrenceEvaluationMode { get; set; } public virtual RecurrenceRestrictionType RecurrenceRestriction { get; set; } ``` Removed methods: ```csharp public virtual void ClearEvaluation (); public void Dispose (); protected bool Equals (Calendar other); public override bool Equals (object obj); public void Evaluate (DataTypes.IDateTime fromDate, DataTypes.IDateTime toDate); public void Evaluate (DataTypes.IDateTime fromDate, DataTypes.IDateTime toDate); public virtual CalendarComponents.FreeBusy GetFreeBusy (DataTypes.IDateTime fromInclusive, DataTypes.IDateTime toExclusive); public virtual CalendarComponents.FreeBusy GetFreeBusy (DataTypes.Organizer organizer, System.Collections.Generic.IEnumerable contacts, DataTypes.IDateTime fromInclusive, DataTypes.IDateTime toExclusive); public override int GetHashCode (); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime dt); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime dt); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime dt); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime dt); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime startTime, DataTypes.IDateTime endTime); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime startTime, DataTypes.IDateTime endTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime startTime, System.DateTime endTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime startTime, System.DateTime endTime); ``` Added methods: ```csharp public virtual CalendarComponents.FreeBusy GetFreeBusy (DataTypes.CalDateTime fromInclusive, DataTypes.CalDateTime toExclusive); public virtual CalendarComponents.FreeBusy GetFreeBusy (DataTypes.Organizer organizer, System.Collections.Generic.IEnumerable contacts, DataTypes.CalDateTime fromInclusive, DataTypes.CalDateTime toExclusive); public virtual System.Collections.Generic.IEnumerable GetOccurrences (DataTypes.CalDateTime startTime, Evaluation.EvaluationOptions options); public virtual System.Collections.Generic.IEnumerable GetOccurrences (DataTypes.CalDateTime startTime, Evaluation.EvaluationOptions options); ``` #### Type Changed: Ical.Net.CalendarCollection Removed methods: ```csharp public void ClearEvaluation (); protected bool Equals (CalendarCollection obj); public override bool Equals (object obj); public CalendarComponents.FreeBusy GetFreeBusy (DataTypes.IDateTime fromInclusive, DataTypes.IDateTime toExclusive); public CalendarComponents.FreeBusy GetFreeBusy (DataTypes.Organizer organizer, System.Collections.Generic.IEnumerable contacts, DataTypes.IDateTime fromInclusive, DataTypes.IDateTime toExclusive); public override int GetHashCode (); public System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime dt); public System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime dt); public System.Collections.Generic.HashSet GetOccurrences (System.DateTime dt); public System.Collections.Generic.HashSet GetOccurrences (System.DateTime dt); public System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime startTime, DataTypes.IDateTime endTime); public System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime startTime, DataTypes.IDateTime endTime); public System.Collections.Generic.HashSet GetOccurrences (System.DateTime startTime, System.DateTime endTime); public System.Collections.Generic.HashSet GetOccurrences (System.DateTime startTime, System.DateTime endTime); ``` Added methods: ```csharp public CalendarComponents.FreeBusy GetFreeBusy (DataTypes.Organizer organizer, System.Collections.Generic.IEnumerable contacts, DataTypes.CalDateTime fromInclusive, DataTypes.CalDateTime toExclusive); public System.Collections.Generic.IEnumerable GetOccurrences (DataTypes.CalDateTime startTime, Evaluation.EvaluationOptions options); public System.Collections.Generic.IEnumerable GetOccurrences (DataTypes.CalDateTime startTime, Evaluation.EvaluationOptions options); ``` #### Type Changed: Ical.Net.CalendarExtensions Removed method: ```csharp public static int GetIso8601WeekOfYear (this System.Globalization.Calendar calendar, System.DateTime time, System.Globalization.CalendarWeekRule rule, System.DayOfWeek firstDayOfWeek); ``` Added methods: ```csharp public static int GetIso8601WeekOfYear (this System.Globalization.Calendar calendar, DataTypes.CalDateTime time, System.DayOfWeek firstDayOfWeek); public static int GetIso8601WeeksInYear (this System.Globalization.Calendar calendar, int year, System.DayOfWeek firstDayOfWeek); public static int GetIso8601YearOfWeek (this System.Globalization.Calendar calendar, DataTypes.CalDateTime time, System.DayOfWeek firstDayOfWeek); ``` #### Type Changed: Ical.Net.CalendarObject Removed interface: ```csharp IServiceProvider ``` Removed methods: ```csharp public virtual T GetService (); public virtual T GetService (string name); public virtual object GetService (string name); public virtual object GetService (System.Type serviceType); public virtual void RemoveService (string name); public virtual void RemoveService (System.Type type); public virtual void SetService (object obj); public virtual void SetService (string name, object obj); ``` #### Type Changed: Ical.Net.CalendarObjectBase Modified constructors: ```diff -public CalendarObjectBase () +protected CalendarObjectBase () ``` Modified methods: ```diff -public virtual void CopyFrom (ICopyable c) +public virtual void CopyFrom (ICopyable obj) ``` #### Type Changed: Ical.Net.CalendarObjectList Removed constructor: ```csharp public CalendarObjectList (ICalendarObject parent); ``` Added constructor: ```csharp public CalendarObjectList (); ``` #### Type Changed: Ical.Net.CalendarParameter Removed interface: ```csharp IServiceProvider ``` Removed methods: ```csharp public virtual void AddValue (string value); public virtual void RemoveValue (string value); ``` Added methods: ```csharp public virtual bool AddValue (string value); public virtual bool RemoveValue (string value); ``` #### Type Changed: Ical.Net.CalendarProperty Removed interface: ```csharp IServiceProvider ``` Removed methods: ```csharp public virtual void AddValue (object value); public virtual void RemoveValue (object value); ``` Added methods: ```csharp public virtual bool AddValue (object value); public virtual bool RemoveValue (object value); ``` #### Type Changed: Ical.Net.FrequencyOccurrence Removed value: ```csharp None = -2147483648, ``` #### Type Changed: Ical.Net.FrequencyType Removed value: ```csharp None = 0, ``` Modified fields: ```diff -Daily = 4 +Daily = 3 -Hourly = 3 +Hourly = 2 -Minutely = 2 +Minutely = 1 -Monthly = 6 +Monthly = 5 -Secondly = 1 +Secondly = 0 -Weekly = 5 +Weekly = 4 -Yearly = 7 +Yearly = 6 ``` #### Type Changed: Ical.Net.ICalendarObject Removed interface: ```csharp IServiceProvider ``` #### Type Changed: Ical.Net.ICalendarProperty Removed interface: ```csharp IServiceProvider ``` #### Type Changed: Ical.Net.ICalendarPropertyListContainer Removed interface: ```csharp IServiceProvider ``` #### Type Changed: Ical.Net.IGetFreeBusy Removed methods: ```csharp public virtual CalendarComponents.FreeBusy GetFreeBusy (DataTypes.IDateTime fromInclusive, DataTypes.IDateTime toExclusive); public virtual CalendarComponents.FreeBusy GetFreeBusy (DataTypes.Organizer organizer, System.Collections.Generic.IEnumerable contacts, DataTypes.IDateTime fromInclusive, DataTypes.IDateTime toExclusive); ``` Added methods: ```csharp public virtual CalendarComponents.FreeBusy GetFreeBusy (DataTypes.CalDateTime fromInclusive, DataTypes.CalDateTime toExclusive); public virtual CalendarComponents.FreeBusy GetFreeBusy (DataTypes.Organizer organizer, System.Collections.Generic.IEnumerable contacts, DataTypes.CalDateTime fromInclusive, DataTypes.CalDateTime toExclusive); ``` #### Type Changed: Ical.Net.IGetOccurrences Removed methods: ```csharp public virtual void ClearEvaluation (); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime dt); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime dt); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime startTime, DataTypes.IDateTime endTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime startTime, System.DateTime endTime); ``` Added method: ```csharp public virtual System.Collections.Generic.IEnumerable GetOccurrences (DataTypes.CalDateTime startTime, Evaluation.EvaluationOptions options); ``` #### Type Changed: Ical.Net.IGetOccurrencesTyped Removed methods: ```csharp public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime dt); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime dt); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime startTime, DataTypes.IDateTime endTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime startTime, System.DateTime endTime); ``` Added method: ```csharp public virtual System.Collections.Generic.IEnumerable GetOccurrences (DataTypes.CalDateTime startTime, Evaluation.EvaluationOptions options); ``` #### Type Changed: Ical.Net.LibraryMetadata Removed field: ```csharp public static string ProdId; ``` Added property: ```csharp public static string ProdId { get; } ``` #### Type Changed: Ical.Net.RegexDefaults Modified fields: ```diff -public const int TimeoutMilliseconds = 200; +public const int TimeoutMilliseconds = 2000; ``` #### Type Changed: Ical.Net.VTimeZoneInfo Removed interface: ```csharp IServiceProvider ``` Removed properties: ```csharp public virtual DataTypes.UtcOffset TZOffsetFrom { get; set; } public virtual DataTypes.UtcOffset TZOffsetTo { get; set; } ``` Modified properties: ```diff -public virtual DataTypes.IDateTime DtStart { get; set; } +public virtual DataTypes.CalDateTime DtStart { get; set; } -public virtual System.Collections.Generic.IList ExceptionDates { get; ---set;--- } +public virtual DataTypes.ExceptionDates ExceptionDates { get; set; } -public virtual System.Collections.Generic.IList RecurrenceDates { get; ---set;--- } +public virtual DataTypes.RecurrenceDates RecurrenceDates { get; set; } -public virtual DataTypes.IDateTime RecurrenceId { get; set; } +public virtual DataTypes.CalDateTime RecurrenceId { get; set; } -public virtual DataTypes.IDateTime Start { get; set; } +public virtual DataTypes.CalDateTime Start { get; set; } ``` Added property: ```csharp public virtual Evaluation.IEvaluator Evaluator { get; } ``` Removed methods: ```csharp public virtual void ClearEvaluation (); public override bool Equals (object obj); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime dt); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime dt); public virtual System.Collections.Generic.HashSet GetOccurrences (DataTypes.IDateTime startTime, DataTypes.IDateTime endTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime startTime, System.DateTime endTime); ``` Added method: ```csharp public virtual System.Collections.Generic.IEnumerable GetOccurrences (DataTypes.CalDateTime startTime, Evaluation.EvaluationOptions options); ``` #### Removed Type Ical.Net.IServiceProvider #### Removed Type Ical.Net.RecurrenceEvaluationModeType #### Removed Type Ical.Net.RecurrenceRestrictionType #### New Type: Ical.Net.CollectionExtensions ```csharp public static class CollectionExtensions { // methods public static System.Collections.Generic.IEnumerable TakeWhileBefore (this System.Collections.Generic.IEnumerable sequence, DataTypes.CalDateTime periodEnd); public static System.Collections.Generic.IEnumerable TakeWhileBefore (this System.Collections.Generic.IEnumerable sequence, DataTypes.CalDateTime periodEnd); } ``` #### New Type: Ical.Net.DefaultTimeZoneResolver ```csharp public static class DefaultTimeZoneResolver { // methods public static NodaTime.DateTimeZone GetZone (string tzId); } ``` #### New Type: Ical.Net.TimeZoneResolvers ```csharp public static class TimeZoneResolvers { // properties public static System.Func Default { get; } public static System.Func TimeZoneResolver { get; set; } } ``` ### Namespace Ical.Net.CalendarComponents #### Type Changed: Ical.Net.CalendarComponents.Alarm Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed property: ```csharp protected virtual System.Collections.Generic.IList Occurrences { get; set; } ``` Modified properties: ```diff -public virtual System.TimeSpan Duration { get; set; } +public virtual Ical.Net.DataTypes.Duration? Duration { get; set; } ``` Removed methods: ```csharp protected virtual void AddRepeatedItems (); public virtual System.Collections.Generic.IList GetOccurrences (IRecurringComponent rc, Ical.Net.DataTypes.IDateTime fromDate, Ical.Net.DataTypes.IDateTime toDate); public virtual System.Collections.Generic.IList Poll (Ical.Net.DataTypes.IDateTime start, Ical.Net.DataTypes.IDateTime end); ``` Added methods: ```csharp public virtual System.Collections.Generic.IList GetOccurrences (IRecurringComponent rc, Ical.Net.DataTypes.CalDateTime fromDate, Ical.Net.Evaluation.EvaluationOptions options); public virtual System.Collections.Generic.IList Poll (Ical.Net.DataTypes.CalDateTime start, Ical.Net.Evaluation.EvaluationOptions options); ``` #### Type Changed: Ical.Net.CalendarComponents.CalendarComponent Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.CalendarComponents.CalendarEvent Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed properties: ```csharp public override Ical.Net.DataTypes.IDateTime DtStart { get; set; } protected override bool EvaluationIncludesReferenceDate { get; } ``` Modified properties: ```diff -public virtual Ical.Net.DataTypes.IDateTime DtEnd { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime DtEnd { get; set; } -public virtual System.TimeSpan Duration { get; set; } +public virtual Ical.Net.DataTypes.Duration? Duration { get; set; } -public virtual Ical.Net.DataTypes.IDateTime End { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime End { get; set; } public ---virtual--- Ical.Net.DataTypes.GeographicLocation GeographicLocation { get; set; } public virtual bool IsAllDay { get; ---set;--- } public ---virtual--- string Location { get; set; } public ---virtual--- string Status { get; set; } public ---virtual--- string Transparency { get; set; } ``` Added properties: ```csharp public Ical.Net.DataTypes.Duration EffectiveDuration { get; } public override Ical.Net.Evaluation.IEvaluator Evaluator { get; } ``` Removed methods: ```csharp public override bool Equals (object obj); public override int GetHashCode (); public virtual bool OccursAt (Ical.Net.DataTypes.IDateTime dateTime); public virtual bool OccursOn (Ical.Net.DataTypes.IDateTime dateTime); protected override void OnDeserialized (System.Runtime.Serialization.StreamingContext context); ``` #### Type Changed: Ical.Net.CalendarComponents.FreeBusy Removed interface: ```csharp Ical.Net.IServiceProvider ``` Modified properties: ```diff -public virtual Ical.Net.DataTypes.IDateTime DtEnd { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime DtEnd { get; set; } -public virtual Ical.Net.DataTypes.IDateTime DtStart { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime DtStart { get; set; } -public virtual Ical.Net.DataTypes.IDateTime End { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime End { get; set; } -public virtual Ical.Net.DataTypes.IDateTime Start { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime Start { get; set; } ``` Removed methods: ```csharp public static FreeBusy Create (Ical.Net.ICalendarObject obj, FreeBusy freeBusyRequest); public static FreeBusy CreateRequest (Ical.Net.DataTypes.IDateTime fromInclusive, Ical.Net.DataTypes.IDateTime toExclusive, Ical.Net.DataTypes.Organizer organizer, System.Collections.Generic.IEnumerable contacts); public virtual Ical.Net.FreeBusyStatus GetFreeBusyStatus (Ical.Net.DataTypes.IDateTime dt); ``` Added methods: ```csharp public static FreeBusy Create (Ical.Net.ICalendarObject obj, FreeBusy freeBusyRequest, Ical.Net.Evaluation.EvaluationOptions options); public static FreeBusy CreateRequest (Ical.Net.DataTypes.CalDateTime fromInclusive, Ical.Net.DataTypes.CalDateTime toExclusive, Ical.Net.DataTypes.Organizer organizer, System.Collections.Generic.IEnumerable contacts); public virtual Ical.Net.FreeBusyStatus GetFreeBusyStatus (Ical.Net.DataTypes.CalDateTime dt); ``` #### Type Changed: Ical.Net.CalendarComponents.IAlarmContainer Removed method: ```csharp public virtual System.Collections.Generic.IList PollAlarms (Ical.Net.DataTypes.IDateTime startTime, Ical.Net.DataTypes.IDateTime endTime); ``` Added method: ```csharp public virtual System.Collections.Generic.IList PollAlarms (Ical.Net.DataTypes.CalDateTime startTime, Ical.Net.DataTypes.CalDateTime endTime); ``` #### Type Changed: Ical.Net.CalendarComponents.ICalendarComponent Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.CalendarComponents.IRecurrable Removed interface: ```csharp Ical.Net.IServiceProvider ``` Modified properties: ```diff -public abstract System.Collections.Generic.IList ExceptionDates { get; ---set;--- } +public abstract Ical.Net.DataTypes.ExceptionDates ExceptionDates { get; set; } -public abstract System.Collections.Generic.IList RecurrenceDates { get; ---set;--- } +public abstract Ical.Net.DataTypes.RecurrenceDates RecurrenceDates { get; set; } -public abstract Ical.Net.DataTypes.IDateTime RecurrenceId { get; set; } +public abstract Ical.Net.DataTypes.CalDateTime RecurrenceId { get; set; } -public abstract Ical.Net.DataTypes.IDateTime Start { get; set; } +public abstract Ical.Net.DataTypes.CalDateTime Start { get; set; } ``` Added property: ```csharp public virtual Ical.Net.Evaluation.IEvaluator Evaluator { get; } ``` #### Type Changed: Ical.Net.CalendarComponents.IRecurringComponent Removed interface: ```csharp Ical.Net.IServiceProvider ``` Modified properties: ```diff -public abstract Ical.Net.DataTypes.IDateTime Created { get; set; } +public abstract Ical.Net.DataTypes.CalDateTime Created { get; set; } -public abstract Ical.Net.DataTypes.IDateTime LastModified { get; set; } +public abstract Ical.Net.DataTypes.CalDateTime LastModified { get; set; } ``` #### Type Changed: Ical.Net.CalendarComponents.IUniqueComponent Removed interface: ```csharp Ical.Net.IServiceProvider ``` Modified properties: ```diff -public abstract Ical.Net.DataTypes.IDateTime DtStamp { get; set; } +public abstract Ical.Net.DataTypes.CalDateTime DtStamp { get; set; } ``` #### Type Changed: Ical.Net.CalendarComponents.Journal Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed property: ```csharp protected override bool EvaluationIncludesReferenceDate { get; } ``` Added property: ```csharp public override Ical.Net.Evaluation.IEvaluator Evaluator { get; } ``` Removed methods: ```csharp protected bool Equals (Journal other); public override bool Equals (object obj); public override int GetHashCode (); ``` #### Type Changed: Ical.Net.CalendarComponents.RecurringComponent Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed property: ```csharp protected virtual bool EvaluationIncludesReferenceDate { get; } ``` Modified properties: ```diff -public virtual Ical.Net.DataTypes.IDateTime Created { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime Created { get; set; } -public virtual Ical.Net.DataTypes.IDateTime DtStart { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime DtStart { get; set; } -public virtual System.Collections.Generic.IList ExceptionDates { get; ---set;--- } +public virtual Ical.Net.DataTypes.ExceptionDates ExceptionDates { get; set; } -public virtual Ical.Net.DataTypes.IDateTime LastModified { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime LastModified { get; set; } -public virtual System.Collections.Generic.IList RecurrenceDates { get; ---set;--- } +public virtual Ical.Net.DataTypes.RecurrenceDates RecurrenceDates { get; set; } -public virtual Ical.Net.DataTypes.IDateTime RecurrenceId { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime RecurrenceId { get; set; } -public virtual Ical.Net.DataTypes.IDateTime Start { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime Start { get; set; } ``` Added property: ```csharp public virtual Ical.Net.Evaluation.IEvaluator Evaluator { get; } ``` Removed methods: ```csharp public virtual void ClearEvaluation (); protected bool Equals (RecurringComponent other); public override bool Equals (object obj); public override int GetHashCode (); public virtual System.Collections.Generic.HashSet GetOccurrences (Ical.Net.DataTypes.IDateTime dt); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime dt); public virtual System.Collections.Generic.HashSet GetOccurrences (Ical.Net.DataTypes.IDateTime startTime, Ical.Net.DataTypes.IDateTime endTime); public virtual System.Collections.Generic.HashSet GetOccurrences (System.DateTime startTime, System.DateTime endTime); public virtual System.Collections.Generic.IList PollAlarms (Ical.Net.DataTypes.IDateTime startTime, Ical.Net.DataTypes.IDateTime endTime); ``` Added methods: ```csharp public virtual System.Collections.Generic.IEnumerable GetOccurrences (Ical.Net.DataTypes.CalDateTime startTime, Ical.Net.Evaluation.EvaluationOptions options); public virtual System.Collections.Generic.IList PollAlarms (Ical.Net.DataTypes.CalDateTime startTime, Ical.Net.DataTypes.CalDateTime endTime); ``` #### Type Changed: Ical.Net.CalendarComponents.Todo Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed properties: ```csharp public override Ical.Net.DataTypes.IDateTime DtStart { get; set; } protected override bool EvaluationIncludesReferenceDate { get; } ``` Modified properties: ```diff -public virtual Ical.Net.DataTypes.IDateTime Completed { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime Completed { get; set; } -public virtual Ical.Net.DataTypes.IDateTime Due { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime Due { get; set; } -public virtual System.TimeSpan Duration { get; set; } +public virtual Ical.Net.DataTypes.Duration? Duration { get; set; } ``` Added property: ```csharp public override Ical.Net.Evaluation.IEvaluator Evaluator { get; } ``` Removed methods: ```csharp public virtual bool IsActive (Ical.Net.DataTypes.IDateTime currDt); public virtual bool IsCompleted (Ical.Net.DataTypes.IDateTime currDt); ``` Added methods: ```csharp public virtual bool IsActive (Ical.Net.DataTypes.CalDateTime currDt); public virtual bool IsCompleted (Ical.Net.DataTypes.CalDateTime currDt); ``` #### Type Changed: Ical.Net.CalendarComponents.UniqueComponent Removed interface: ```csharp Ical.Net.IServiceProvider ``` Modified properties: ```diff -public virtual Ical.Net.DataTypes.IDateTime DtStamp { get; set; } +public virtual Ical.Net.DataTypes.CalDateTime DtStamp { get; set; } ``` #### Type Changed: Ical.Net.CalendarComponents.VTimeZone Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed methods: ```csharp protected bool Equals (VTimeZone other); public override bool Equals (object obj); public override int GetHashCode (); ``` Modified methods: ```diff -public VTimeZone FromDateTimeZone (string tzId, System.DateTime earlistDateTimeToSupport, bool includeHistoricalData) +public VTimeZone FromDateTimeZone (string tzId, System.DateTime earliestDateTimeToSupport, bool includeHistoricalData) -public VTimeZone FromLocalTimeZone (System.DateTime earlistDateTimeToSupport, bool includeHistoricalData) +public VTimeZone FromLocalTimeZone (System.DateTime earliestDateTimeToSupport, bool includeHistoricalData) -public VTimeZone FromSystemTimeZone (System.TimeZoneInfo tzinfo, System.DateTime earlistDateTimeToSupport, bool includeHistoricalData) +public VTimeZone FromSystemTimeZone (System.TimeZoneInfo tzinfo, System.DateTime earliestDateTimeToSupport, bool includeHistoricalData) ``` ### Namespace Ical.Net.Collections #### Type Changed: Ical.Net.Collections.GroupedList`2 Modified methods: ```diff -public virtual int IndexOf (TItem item) +public virtual int IndexOf (TItem obj) -public virtual bool Remove (TItem obj) +public virtual bool Remove (TItem item) ``` #### Type Changed: Ical.Net.Collections.MultiLinkedList`1 Removed method: ```csharp public virtual void SetNext (Ical.Net.Collections.IMultiLinkedList next); ``` #### Removed Type Ical.Net.Collections.GroupedListEnumerator`1 ### Namespace Ical.Net.Collections.Interfaces #### Type Changed: Ical.Net.Collections.Interfaces.IValueObject`1 Removed methods: ```csharp public virtual void AddValue (T value); public virtual void RemoveValue (T value); ``` Added methods: ```csharp public virtual bool AddValue (T value); public virtual bool RemoveValue (T value); ``` ### Namespace Ical.Net.DataTypes #### Type Changed: Ical.Net.DataTypes.AlarmOccurrence Removed constructor: ```csharp public AlarmOccurrence (Ical.Net.CalendarComponents.Alarm a, IDateTime dt, Ical.Net.CalendarComponents.IRecurringComponent rc); ``` Added constructor: ```csharp public AlarmOccurrence (Ical.Net.CalendarComponents.Alarm a, CalDateTime dt, Ical.Net.CalendarComponents.IRecurringComponent rc); ``` Removed interface: ```csharp System.IComparable ``` Modified properties: ```diff -public IDateTime DateTime { get; set; } +public CalDateTime DateTime { get; set; } ``` Removed methods: ```csharp public virtual int CompareTo (AlarmOccurrence other); protected bool Equals (AlarmOccurrence other); public override bool Equals (object obj); public override int GetHashCode (); ``` #### Type Changed: Ical.Net.DataTypes.Attachment Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed methods: ```csharp protected bool Equals (Attachment other); public override bool Equals (object obj); public override int GetHashCode (); ``` #### Type Changed: Ical.Net.DataTypes.Attendee Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed methods: ```csharp protected bool Equals (Attendee other); public override bool Equals (object obj); public override int GetHashCode (); ``` #### Type Changed: Ical.Net.DataTypes.CalDateTime Modified base type: ```diff -Ical.Net.DataTypes.EncodableDataType +System.Object ``` Removed constructors: ```csharp public CalDateTime (); public CalDateTime (IDateTime value); public CalDateTime (System.DateTime value); public CalDateTime (string value); public CalDateTime (System.DateTime value, string tzId); public CalDateTime (int year, int month, int day, string tzId); public CalDateTime (int year, int month, int day, int hour, int minute, int second); public CalDateTime (int year, int month, int day, int hour, int minute, int second, string tzId, Ical.Net.Calendar cal); ``` Modified constructors: ```diff -public CalDateTime (int year, int month, int day, int hour, int minute, int second, string tzId = "NULL") +public CalDateTime (int year, int month, int day, int hour, int minute, int second, string tzId) ``` Added constructors: ```csharp public CalDateTime (CalDateTime value); public CalDateTime (System.DateOnly date); public CalDateTime (System.DateTime value, bool hasTime); public CalDateTime (string value, string tzId); public CalDateTime (System.DateOnly date, System.TimeOnly? time, string tzId); public CalDateTime (System.DateTime value, string tzId, bool hasTime); ``` Removed interfaces: ```csharp ICalendarDataType ICalendarParameterCollectionContainer IDateTime IEncodableDataType Ical.Net.ICopyable Ical.Net.IServiceProvider System.IComparable ``` Added interface: ```csharp System.IComparable ``` Added field: ```csharp public static const string UtcTzId = "UTC"; ``` Removed properties: ```csharp public virtual System.DateTimeOffset AsDateTimeOffset { get; } public virtual System.DateTime AsSystemLocal { get; } public override Ical.Net.ICalendarObject AssociatedObject { get; set; } public virtual bool HasDate { get; set; } public virtual int Millisecond { get; } public virtual long Ticks { get; } public System.TimeSpan TimeOfDay { get; } ``` Modified properties: ```diff -public virtual System.DateTime AsUtc { get; } +public final System.DateTime AsUtc { get; } -public virtual System.DateTime---System.DateOnly--- Date { get; } +public final +++System.DateTime+++System.DateOnly Date { get; } -public virtual int Day { get; } +public final int Day { get; } -public virtual System.DayOfWeek DayOfWeek { get; } +public final System.DayOfWeek DayOfWeek { get; } -public virtual bool HasTime { get; ---set;--- } +public final bool HasTime { get; set; } -public virtual int Hour { get; } +public final int Hour { get; } -public virtual bool IsUtc { get; } +public final bool IsUtc { get; } -public virtual int Minute { get; } +public final int Minute { get; } -public virtual int Month { get; } +public final int Month { get; } -public virtual int Second { get; } +public final int Second { get; } -public virtual string TimeZoneName { get; } +public final string TimeZoneName { get; } -public virtual string TzId { get; ---set;--- } +public final string TzId { get; set; } -public virtual System.DateTime Value { get; ---set;--- } +public final System.DateTime Value { get; set; } -public virtual int Year { get; } +public final int Year { get; } ``` Added properties: ```csharp public bool IsFloating { get; } public System.TimeOnly? Time { get; } public static CalDateTime UtcNow { get; } ``` Removed methods: ```csharp public virtual IDateTime Add (System.TimeSpan ts); public virtual IDateTime AddDays (int days); public virtual IDateTime AddHours (int hours); public virtual IDateTime AddMilliseconds (int milliseconds); public virtual IDateTime AddMinutes (int minutes); public virtual IDateTime AddMonths (int months); public virtual IDateTime AddSeconds (int seconds); public virtual IDateTime AddTicks (long ticks); public virtual IDateTime AddYears (int years); public virtual void AssociateWith (IDateTime dt); public virtual int CompareTo (IDateTime dt); public override void CopyFrom (Ical.Net.ICopyable obj); public virtual bool GreaterThan (IDateTime dt); public virtual bool GreaterThanOrEqual (IDateTime dt); public virtual bool LessThan (IDateTime dt); public virtual bool LessThanOrEqual (IDateTime dt); public virtual System.TimeSpan Subtract (IDateTime dt); public virtual IDateTime Subtract (System.TimeSpan ts); public virtual IDateTime ToTimeZone (string tzId); public static IDateTime op_Addition (CalDateTime left, System.TimeSpan right); public static bool op_Equality (CalDateTime left, IDateTime right); public static bool op_GreaterThan (CalDateTime left, IDateTime right); public static bool op_GreaterThanOrEqual (CalDateTime left, IDateTime right); public static CalDateTime op_Implicit (System.DateTime left); public static bool op_Inequality (CalDateTime left, IDateTime right); public static bool op_LessThan (CalDateTime left, IDateTime right); public static bool op_LessThanOrEqual (CalDateTime left, IDateTime right); public static System.TimeSpan op_Subtraction (CalDateTime left, IDateTime right); public static IDateTime op_Subtraction (CalDateTime left, System.TimeSpan right); ``` Modified methods: ```diff -public override bool Equals (object other) +public override bool Equals (object obj) ``` Added methods: ```csharp public CalDateTime Add (Duration d); public CalDateTime AddDays (int days); public CalDateTime AddHours (int hours); public CalDateTime AddMinutes (int minutes); public CalDateTime AddMonths (int months); public CalDateTime AddSeconds (int seconds); public CalDateTime AddYears (int years); public virtual int CompareTo (CalDateTime dt); public bool GreaterThan (CalDateTime dt); public bool GreaterThanOrEqual (CalDateTime dt); public bool LessThan (CalDateTime dt); public bool LessThanOrEqual (CalDateTime dt); public Duration Subtract (CalDateTime dt); public System.TimeSpan SubtractExact (CalDateTime dt); public CalDateTime ToTimeZone (string otherTzId); public static bool op_Equality (CalDateTime left, CalDateTime right); public static bool op_GreaterThan (CalDateTime left, CalDateTime right); public static bool op_GreaterThanOrEqual (CalDateTime left, CalDateTime right); public static bool op_Inequality (CalDateTime left, CalDateTime right); public static bool op_LessThan (CalDateTime left, CalDateTime right); public static bool op_LessThanOrEqual (CalDateTime left, CalDateTime right); ``` #### Type Changed: Ical.Net.DataTypes.CalendarDataType Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed methods: ```csharp public virtual T GetService (); public virtual T GetService (string name); public virtual object GetService (string name); public virtual object GetService (System.Type serviceType); public virtual void RemoveService (string name); public virtual void RemoveService (System.Type type); public virtual void SetService (object obj); public virtual void SetService (string name, object obj); ``` #### Type Changed: Ical.Net.DataTypes.EncodableDataType Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.DataTypes.FreeBusyEntry Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.DataTypes.GeographicLocation Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed methods: ```csharp protected bool Equals (GeographicLocation other); public override bool Equals (object obj); public override int GetHashCode (); ``` #### Type Changed: Ical.Net.DataTypes.ICalendarDataType Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.DataTypes.Organizer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed methods: ```csharp protected bool Equals (Organizer other); public override bool Equals (object obj); public override int GetHashCode (); ``` Modified methods: ```diff -public override virtual void CopyFrom (Ical.Net.ICopyable obj) +public override final void CopyFrom (Ical.Net.ICopyable obj) ``` #### Type Changed: Ical.Net.DataTypes.Period Removed constructors: ```csharp public Period (); public Period (IDateTime occurs); public Period (IDateTime start, IDateTime end); public Period (IDateTime start, System.TimeSpan duration); ``` Added constructors: ```csharp public Period (CalDateTime start, CalDateTime end); public Period (CalDateTime start, Duration duration); ``` Removed interface: ```csharp Ical.Net.IServiceProvider ``` Modified properties: ```diff -public virtual System.TimeSpan Duration { get; ---set;--- } +public virtual Duration? Duration { get; set; } -public virtual IDateTime EndTime { get; ---set;--- } +public virtual CalDateTime EndTime { get; set; } -public virtual IDateTime StartTime { get; ---set;--- } +public virtual CalDateTime StartTime { get; set; } ``` Added properties: ```csharp public virtual Duration? EffectiveDuration { get; } public virtual CalDateTime EffectiveEndTime { get; } ``` Removed method: ```csharp public virtual bool Contains (IDateTime dt); ``` Added method: ```csharp public virtual bool Contains (CalDateTime dt); ``` #### Type Changed: Ical.Net.DataTypes.RecurrencePattern Removed interface: ```csharp Ical.Net.IServiceProvider ``` Removed properties: ```csharp public Ical.Net.RecurrenceEvaluationModeType EvaluationMode { get; set; } public Ical.Net.RecurrenceRestrictionType RestrictionType { get; set; } ``` Modified properties: ```diff -public int Count { get; set; } +public int? Count { get; set; } -public System.DateTime Until { get; set; } +public CalDateTime Until { get; set; } ``` Removed methods: ```csharp protected bool Equals (RecurrencePattern other); public override bool Equals (object obj); public override int GetHashCode (); ``` #### Type Changed: Ical.Net.DataTypes.RequestStatus Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.DataTypes.StatusCode Removed interface: ```csharp Ical.Net.IServiceProvider ``` #### Type Changed: Ical.Net.DataTypes.Trigger Removed constructor: ```csharp public Trigger (System.TimeSpan ts); ``` Added constructor: ```csharp public Trigger (Duration ts); ``` Removed interface: ```csharp Ical.Net.IServiceProvider ``` Modified properties: ```diff -public virtual IDateTime DateTime { get; set; } +public virtual CalDateTime DateTime { get; set; } -public virtual System.TimeSpan? Duration { get; set; } +public virtual Duration? Duration { get; set; } ``` Removed methods: ```csharp protected bool Equals (Trigger other); public override bool Equals (object obj); public override int GetHashCode (); ``` #### Type Changed: Ical.Net.DataTypes.UtcOffset Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added method: ```csharp public override void CopyFrom (Ical.Net.ICopyable obj); ``` #### Type Changed: Ical.Net.DataTypes.WeekDay Removed interface: ```csharp Ical.Net.IServiceProvider ``` Modified properties: ```diff -public virtual int Offset { get; set; } +public virtual int? Offset { get; set; } ``` #### Removed Type Ical.Net.DataTypes.IDateTime #### Removed Type Ical.Net.DataTypes.PeriodList #### New Type: Ical.Net.DataTypes.Duration ```csharp public struct Duration { // constructors public Duration (int? weeks, int? days, int? hours, int? minutes, int? seconds); // properties public int? Days { get; } public bool HasDate { get; } public bool HasTime { get; } public int? Hours { get; } public int? Minutes { get; } public int? Seconds { get; } public int Sign { get; } public int? Weeks { get; } public static Duration Zero { get; } // methods public static Duration FromDays (int days); public static Duration FromHours (int hours); public static Duration FromMinutes (int minutes); public static Duration FromSeconds (int seconds); public static Duration FromTimeSpanExact (System.TimeSpan t); public static Duration FromWeeks (int weeks); public static Duration? Parse (string value); public override string ToString (); public System.TimeSpan ToTimeSpan (CalDateTime start); public System.TimeSpan ToTimeSpanUnspecified (); public static Duration op_UnaryNegation (Duration d); } ``` #### New Type: Ical.Net.DataTypes.ExceptionDates ```csharp public class ExceptionDates : Ical.Net.DataTypes.PeriodListWrapperBase { // methods public ExceptionDates Add (CalDateTime dt); public ExceptionDates AddRange (System.Collections.Generic.IEnumerable dates); } ``` #### New Type: Ical.Net.DataTypes.PeriodListWrapperBase ```csharp public abstract class PeriodListWrapperBase { // methods public void Clear (); public bool Contains (CalDateTime dt); public System.Collections.Generic.IEnumerable GetAllDates (); public bool Remove (CalDateTime dt); } ``` #### New Type: Ical.Net.DataTypes.RecurrenceDates ```csharp public class RecurrenceDates : Ical.Net.DataTypes.PeriodListWrapperBase { // methods public RecurrenceDates Add (CalDateTime dt); public RecurrenceDates Add (Period period); public RecurrenceDates AddRange (System.Collections.Generic.IEnumerable dates); public RecurrenceDates AddRange (System.Collections.Generic.IEnumerable periods); public bool Contains (Period period); public System.Collections.Generic.IEnumerable GetAllPeriods (); public bool Remove (Period period); } ``` ### Namespace Ical.Net.Evaluation #### Type Changed: Ical.Net.Evaluation.Evaluator Removed constructors: ```csharp protected Evaluator (Ical.Net.DataTypes.ICalendarDataType dataType); protected Evaluator (Ical.Net.ICalendarObject associatedObject); ``` Removed field: ```csharp protected System.Collections.Generic.HashSet MPeriods; ``` Removed properties: ```csharp protected virtual Ical.Net.ICalendarObject AssociatedObject { get; set; } public virtual System.Globalization.Calendar Calendar { get; } public virtual System.DateTime EvaluationEndBounds { get; set; } public virtual System.DateTime EvaluationStartBounds { get; set; } public virtual System.Collections.Generic.HashSet Periods { get; } ``` Removed methods: ```csharp public virtual void Clear (); protected Ical.Net.DataTypes.IDateTime ConvertToIDateTime (System.DateTime dt, Ical.Net.DataTypes.IDateTime referenceDate); public virtual System.Collections.Generic.HashSet Evaluate (Ical.Net.DataTypes.IDateTime referenceDate, System.DateTime periodStart, System.DateTime periodEnd, bool includeReferenceDateInResults); protected void IncrementDate (ref System.DateTime dt, Ical.Net.DataTypes.RecurrencePattern pattern, int interval); ``` Added methods: ```csharp public virtual System.Collections.Generic.IEnumerable Evaluate (Ical.Net.DataTypes.CalDateTime referenceDate, Ical.Net.DataTypes.CalDateTime periodStart, EvaluationOptions options); protected void IncrementDate (ref Ical.Net.DataTypes.CalDateTime dt, Ical.Net.DataTypes.RecurrencePattern pattern, int interval); ``` #### Type Changed: Ical.Net.Evaluation.EventEvaluator Modified properties: ```diff protected Ical.Net.CalendarComponents.CalendarEvent CalendarEvent { get; ---set;--- } ``` Removed method: ```csharp public override System.Collections.Generic.HashSet Evaluate (Ical.Net.DataTypes.IDateTime referenceTime, System.DateTime periodStart, System.DateTime periodEnd, bool includeReferenceDateInResults); ``` Added method: ```csharp public override System.Collections.Generic.IEnumerable Evaluate (Ical.Net.DataTypes.CalDateTime referenceDate, Ical.Net.DataTypes.CalDateTime periodStart, EvaluationOptions options); ``` #### Type Changed: Ical.Net.Evaluation.IEvaluator Removed properties: ```csharp public virtual Ical.Net.ICalendarObject AssociatedObject { get; } public virtual System.Globalization.Calendar Calendar { get; } public virtual System.DateTime EvaluationEndBounds { get; } public virtual System.DateTime EvaluationStartBounds { get; } public virtual System.Collections.Generic.HashSet Periods { get; } ``` Removed methods: ```csharp public virtual void Clear (); public virtual System.Collections.Generic.HashSet Evaluate (Ical.Net.DataTypes.IDateTime referenceDate, System.DateTime periodStart, System.DateTime periodEnd, bool includeReferenceDateInResults); ``` Added method: ```csharp public virtual System.Collections.Generic.IEnumerable Evaluate (Ical.Net.DataTypes.CalDateTime referenceDate, Ical.Net.DataTypes.CalDateTime periodStart, EvaluationOptions options); ``` #### Type Changed: Ical.Net.Evaluation.RecurrencePatternEvaluator Removed method: ```csharp public override System.Collections.Generic.HashSet Evaluate (Ical.Net.DataTypes.IDateTime referenceDate, System.DateTime periodStart, System.DateTime periodEnd, bool includeReferenceDateInResults); ``` Added method: ```csharp public override System.Collections.Generic.IEnumerable Evaluate (Ical.Net.DataTypes.CalDateTime referenceDate, Ical.Net.DataTypes.CalDateTime periodStart, EvaluationOptions options); ``` #### Type Changed: Ical.Net.Evaluation.RecurringEvaluator Removed methods: ```csharp public override System.Collections.Generic.HashSet Evaluate (Ical.Net.DataTypes.IDateTime referenceDate, System.DateTime periodStart, System.DateTime periodEnd, bool includeReferenceDateInResults); protected System.Collections.Generic.HashSet EvaluateExDate (Ical.Net.DataTypes.IDateTime referenceDate, System.DateTime periodStart, System.DateTime periodEnd); protected System.Collections.Generic.HashSet EvaluateExRule (Ical.Net.DataTypes.IDateTime referenceDate, System.DateTime periodStart, System.DateTime periodEnd); protected System.Collections.Generic.HashSet EvaluateRDate (Ical.Net.DataTypes.IDateTime referenceDate, System.DateTime periodStart, System.DateTime periodEnd); protected System.Collections.Generic.HashSet EvaluateRRule (Ical.Net.DataTypes.IDateTime referenceDate, System.DateTime periodStart, System.DateTime periodEnd, bool includeReferenceDateInResults); ``` Added methods: ```csharp public override System.Collections.Generic.IEnumerable Evaluate (Ical.Net.DataTypes.CalDateTime referenceDate, Ical.Net.DataTypes.CalDateTime periodStart, EvaluationOptions options); protected System.Collections.Generic.IEnumerable EvaluateExDate (Ical.Net.DataTypes.CalDateTime referenceDate, Ical.Net.DataTypes.CalDateTime periodStart); protected System.Collections.Generic.IEnumerable EvaluateExRule (Ical.Net.DataTypes.CalDateTime referenceDate, Ical.Net.DataTypes.CalDateTime periodStart, EvaluationOptions options); protected System.Collections.Generic.IEnumerable EvaluateRDate (Ical.Net.DataTypes.CalDateTime referenceDate, Ical.Net.DataTypes.CalDateTime periodStart); protected System.Collections.Generic.IEnumerable EvaluateRRule (Ical.Net.DataTypes.CalDateTime referenceDate, Ical.Net.DataTypes.CalDateTime periodStart, EvaluationOptions options); ``` #### Type Changed: Ical.Net.Evaluation.TimeZoneInfoEvaluator Removed method: ```csharp public override System.Collections.Generic.HashSet Evaluate (Ical.Net.DataTypes.IDateTime referenceDate, System.DateTime periodStart, System.DateTime periodEnd, bool includeReferenceDateInResults); ``` #### Type Changed: Ical.Net.Evaluation.TodoEvaluator Removed methods: ```csharp public void DetermineStartingRecurrence (Ical.Net.DataTypes.PeriodList rdate, ref Ical.Net.DataTypes.IDateTime referenceDateTime); public void DetermineStartingRecurrence (Ical.Net.DataTypes.RecurrencePattern recur, ref Ical.Net.DataTypes.IDateTime referenceDateTime); public override System.Collections.Generic.HashSet Evaluate (Ical.Net.DataTypes.IDateTime referenceDate, System.DateTime periodStart, System.DateTime periodEnd, bool includeReferenceDateInResults); public void EvaluateToPreviousOccurrence (Ical.Net.DataTypes.IDateTime completedDate, Ical.Net.DataTypes.IDateTime currDt); ``` Added method: ```csharp public override System.Collections.Generic.IEnumerable Evaluate (Ical.Net.DataTypes.CalDateTime referenceDate, Ical.Net.DataTypes.CalDateTime periodStart, EvaluationOptions options); ``` #### Removed Type Ical.Net.Evaluation.PeriodListEvaluator #### Removed Type Ical.Net.Evaluation.TimeZoneEvaluator #### New Type: Ical.Net.Evaluation.EvaluationException ```csharp public class EvaluationException : System.Exception, System.Runtime.Serialization.ISerializable { // constructors public EvaluationException (); public EvaluationException (string message); } ``` #### New Type: Ical.Net.Evaluation.EvaluationLimitExceededException ```csharp public class EvaluationLimitExceededException : Ical.Net.Evaluation.EvaluationException, System.Runtime.Serialization.ISerializable { // constructors public EvaluationLimitExceededException (); } ``` #### New Type: Ical.Net.Evaluation.EvaluationOptions ```csharp public class EvaluationOptions { // constructors public EvaluationOptions (); // properties public int? MaxUnmatchedIncrementsLimit { get; set; } } ``` #### New Type: Ical.Net.Evaluation.EvaluationOutOfRangeException ```csharp public class EvaluationOutOfRangeException : Ical.Net.Evaluation.EvaluationException, System.Runtime.Serialization.ISerializable { // constructors public EvaluationOutOfRangeException (string message); } ``` ### Namespace Ical.Net.Serialization #### Type Changed: Ical.Net.Serialization.CalendarSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` Removed method: ```csharp public override string SerializeToString (object obj); ``` #### Type Changed: Ical.Net.Serialization.ComponentSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataMapSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.EventSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.GenericListSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.ISerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.IStringSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.ParameterSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.PropertySerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.SerializerBase Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` Modified methods: ```diff -public virtual void RemoveService (string name) +public final void RemoveService (string name) -public virtual void RemoveService (System.Type type) +public final void RemoveService (System.Type type) -public virtual void SetService (object obj) +public final void SetService (object obj) -public virtual void SetService (string name, object obj) +public final void SetService (string name, object obj) ``` ### Namespace Ical.Net.Serialization.DataTypes #### Type Changed: Ical.Net.Serialization.DataTypes.AttachmentSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.AttendeeSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.DataTypeSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.DateTimeSerializer Modified base type: ```diff -Ical.Net.Serialization.DataTypes.EncodableDataTypeSerializer +Ical.Net.Serialization.SerializerBase ``` Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` Added method: ```csharp public virtual System.Collections.Generic.IReadOnlyList GetParameters (object value); ``` #### Type Changed: Ical.Net.Serialization.DataTypes.EncodableDataTypeSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.EnumSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` Modified methods: ```diff -public override string SerializeToString (object enumValue) +public override string SerializeToString (object obj) ``` #### Type Changed: Ical.Net.Serialization.DataTypes.FreeBusyEntrySerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.GeographicLocationSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.IntegerSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` Modified methods: ```diff -public override string SerializeToString (object integer) +public override string SerializeToString (object obj) ``` #### Type Changed: Ical.Net.Serialization.DataTypes.OrganizerSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.PeriodListSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.PeriodSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.RecurrencePatternSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` Removed method: ```csharp public virtual void CheckMutuallyExclusive (string name1, string name2, T obj1, TU obj2); ``` Added methods: ```csharp public virtual void CheckMutuallyExclusive (string name1, string name2, int? obj1, Ical.Net.DataTypes.CalDateTime obj2); public virtual void CheckRange (string name, int? value, int min, int max); public virtual void CheckRange (string name, int? value, int min, int max, bool allowZero); ``` #### Type Changed: Ical.Net.Serialization.DataTypes.RequestStatusSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.StatusCodeSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.StringSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.TriggerSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.UriSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.UtcOffsetSerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Type Changed: Ical.Net.Serialization.DataTypes.WeekDaySerializer Removed interface: ```csharp Ical.Net.IServiceProvider ``` Added interface: ```csharp System.IServiceProvider ``` #### Removed Type Ical.Net.Serialization.DataTypes.TimeSpanSerializer #### New Type: Ical.Net.Serialization.DataTypes.DurationSerializer ```csharp public class DurationSerializer : Ical.Net.Serialization.SerializerBase, Ical.Net.Serialization.ISerializer, Ical.Net.Serialization.IStringSerializer, System.IServiceProvider { // constructors public DurationSerializer (); public DurationSerializer (Ical.Net.Serialization.SerializationContext ctx); // properties public override System.Type TargetType { get; } // methods public override object Deserialize (System.IO.TextReader tr); public override string SerializeToString (object obj); } ```