Skip to content

Releases: ical-org/ical.net

v5.2.3

Choose a tag to compare

@axunonb axunonb released this 23 Jun 07:42
1344396

What's Changed

  • Chore(deps): Bump codecov/codecov-action from 6.0.0 to 6.0.1 by @dependabot[bot] in #949
  • Stop using culture-specific string handling by @minichma in #953

Full Changelog: v5.2.2...v5.2.3

v5.2.2

Choose a tag to compare

@axunonb axunonb released this 08 May 08:35
7bb83d3

Fixes

Alarm.GetOccurrences(...) and Alarm.Poll(...)now have an optionalendTime` parameter to limit the evaluation of occurrences.

This prevents potential performance issues when evaluating alarms with no end date or a very long recurrence pattern. If endTime is not provided, the methods will evaluate occurrences indefinitely until an exception is thrown or the system's maximum date is reached.

What's Changed

  • Deprecate RecurrenceRules and RecurrencePattern by @maknapp in #928
  • Chore(deps): Bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #931
  • Update encoding and line endings for consistency in #932
  • Chore(deps): Bump codecov/codecov-action from 5.5.2 to 6.0.0 by @dependabot[bot] in #935
  • chore(tests): Fix failing RecurrenceWikiTests in #941
  • Add alarm poll end time by @maknapp in #940
  • Bump release v5.2.2 in #945

Full Changelog: v5.2.1...v5.2.2

v5.2.1

Choose a tag to compare

@axunonb axunonb released this 09 Feb 10:54
6fae9bc

What's Changed

  • Fix: Stop TODO evaluation at given datetime by @maknapp in #915. Before: If a TODO had an RRULE without COUNT or UNTIL, IsCompleted() threw with ArgumentOutOfRangeException.
  • Chore(deps): Bump codecov/codecov-action from 5.5.1 to 5.5.2 in #919
  • Chore(deps): Bump actions/upload-artifact from 5 to 6 in #920
  • Chore: Update release notes for v5.2.1 #927

Full Changelog: v5.2.0...v5.2.1

v5.2.0

Choose a tag to compare

@axunonb axunonb released this 23 Dec 23:25
c0b8ffa

Implemented BYDAY with offset and limiting behavior

The following RRULE cases are now implemented

  1. YEARLY + BYMONTH + numeric BYDAY offsets. Pattern: FREQ=YEARLY;BYMONTH=6,9;BYDAY=2MO
  2. YEARLY + numeric BYDAY without BYMONTH. Pattern: FREQ=YEARLY;BYDAY=20MO
  3. YEARLY + BYMONTH + negative numeric BYDAY. Pattern: FREQ=YEARLY;BYMONTH=6,9;BYDAY=-1SU

Changes in Detail

  • Implement BYDAY with offset and limiting behavior in #887
  • chore: Eliminate nested if statements in GetAbsWeekDaysMonthly/Weekly by in #896
  • Bump version 5.2.0 in #897

Full Changelog: v5.1.4...v5.2.0

v5.1.4

Choose a tag to compare

@axunonb axunonb released this 13 Dec 18:01
5e8b5bc

Fix: Regression introduced in v5.1.3 affecting RRULE:FREQ=YEARLY when negative BYMONTHDAY or BYYEARDAY values are used. In certain combinations the evaluator could normalize negative positions incorrectly and skip valid occurrences (e.g., end‑of‑month or end‑of‑year instances). This has been fixed — please upgrade to v5.1.4.

Example of an affected rule (prior behavior could skip results):

DTSTART:20250101
RRULE:FREQ=YEARLY;BYYEARDAY=-1,1;BYMONTHDAY=-1,1

What's Changed

  • chore: Update GitHub Workflows in #891, #892, #893, #894
  • Fix regression introduced in v5.1.3 in #889 (see note above)
  • Bump version 5.1.4 in #895

Full Changelog: v5.1.3...v5.1.4

v5.1.3

Choose a tag to compare

@axunonb axunonb released this 01 Dec 08:14
454247d

What's Changed

  • Fix: Correct handling RRULE:FREQ=YEARLY combined with BYMONTH and BYWEEKNO. The previous implementation could skip occurrences in some scenarios.
  • Fix: Correct handling RRULE:FREQ=YEARLY when BYMONTH ist missing, e.g. RRULE:FREQ=YEARLY;INTERVAL=2;BYDAY=MO,TU. Now takes the month of DTSTART as a limiter. The previous implementation could show occurrences for wrong months.

Full Changelog: v5.1.2...v5.1.3

v5.1.2

Choose a tag to compare

@axunonb axunonb released this 13 Nov 14:29
831d3f0

Changes

  • Chore: Mark classes and interfaces using EXRULE as obsolete. Reasoning: EXRULE is marked as deprecated in RFC 5545. Neither Google Calendar nor Microsoft Outlook/Exchange support it (#873)
  • Feat: CalDateTime.Add(Duration) for empty Durations. The methods gets called frequently during recurrence evaluation. Here it brings a performance improvement of about 10% (#877).
  • Fix: FREQ=WEEKLY rules that include BYMONTH were only including weeks that start inside the given months. This fix checks the end of the week also to see if any part of the week is inside the given months (#880)

Details

  • Remove misleading FIXME comment in VTimeZoneInfo in #874
  • Mark classes and interfaces using EXRULE as obsolete in #873
  • Skip CalDateTime.Add(Duration) for Empty Durations in #877
  • Update logo image syntax in readme.md in #878
  • Fix weekly bymonth by @maknapp in #880
  • Bump version 5.1.2 in #881

Big Thanks to New Contributors

Full Changelog: v5.1.1...v5.1.2

v5.1.1

Choose a tag to compare

@axunonb axunonb released this 06 Oct 08:57
355580a

What's Changed in release v5.1.1

  • Fix: CalendarEvents with RecurrenceId were not properly evaluated in some scenarios.
  • Feat: RecurringComponents like CalendarEvent support RECURRENCE-ID with optional RANGE parameter for serialization and deserialization.
  • Wiki: Updated articles about recurrence evaluation

Changes in detail

  • Update iCal.NET logo to display correctly in nuget readme #847
  • Fix failing coverage action #850
  • Add logging infrastructure #851
  • Fix: Event with RECURRENCE-ID overrides occurrence from orginal event #864
  • Add wiki recurrence page by @NRG-Drink in #848
  • chore: Wiki sample: Get first occurences of all events in a Calendar #869
  • feat: RecurringComponent supports RECURRENCE-ID with optional RANGE parameter #870
  • Bump version 5.1.1 #872

Full Changelog: v5.1.0...v5.1.1

v5.1.0

Choose a tag to compare

@axunonb axunonb released this 16 Jul 07:47
97e3047

What's Changed

  • Chore:Make Publish workflow branch-agnostic in #817
  • Fix: Publish action in #818
  • Fix: Exception for Blazor WebAssembly and Self-Contained Assemblies using by @b-straub in #820
  • Fix: GetOccurrences(): Fix NPE when returning a ToDo's occurrences that don't have a duration by @minichma in #826
  • Fix: Evaluation of EXDATE when date-only while DTSTART is date-time by @minichma in #830
  • Feat: Use UTF-8 Encoding without BOM by default in all serializers when writing to a stream. This is expected by most iCalendar consumers, including Outlook and Google Calendar. #827
  • Fix: CalDateTime CTOR using ISO 8601 UTC string resolves to UTC in #833
  • Chore: Update GitHub Actions for Tests and Coverage in #837
  • Chore: Update license history in #839
  • Fix GetOccurrences(periodStart) to also include ongoing occurrences (beginning before periodStart by @minichma in #836
  • Fix GetOccurrences() not properly dealing with periodStart's timezone ID by @minichma in #842
  • Chore: Add release notes for v5.1.0 in #844

New Contributors

Full Changelog: v5.0.0...v5.1.0

v5.0.0

Choose a tag to compare

@axunonb axunonb released this 17 Jun 15:04
03448ed

What's Changed

New Contributors

  • @NRG-Drink made their first contribution in #803, and welcome to the ical-org team.

Changelog for latest changes: v5.0.0-pre.43...v5.0.0
Full Changelog for last GA release: v4.3.1...v5.0.0