From 9941e2a04b9807dbc0a7f3dc0b4e07210a8e55f4 Mon Sep 17 00:00:00 2001 From: smizrahi Date: Tue, 7 Jan 2025 18:39:02 +0100 Subject: [PATCH] fix(calendar): Flatten cycle change: the day at 00:00 is now used to retrieve all occurrences. This change should resolve the issue where resource availability is not detected if the event is shorter than the occurrence duration in the resource. --- SoObjects/Appointments/SOGoAppointmentFolder.m | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/SoObjects/Appointments/SOGoAppointmentFolder.m b/SoObjects/Appointments/SOGoAppointmentFolder.m index e8b7997b9..48da557d0 100644 --- a/SoObjects/Appointments/SOGoAppointmentFolder.m +++ b/SoObjects/Appointments/SOGoAppointmentFolder.m @@ -1381,6 +1381,7 @@ firstInstanceCalendarDateRange: (NGCalendarDateRange *) fir // Calculate the occurrences for the given range records = [NSMutableArray array]; + ranges = [NSMutableArray arrayWithArray: [iCalRecurrenceCalculator recurrenceRangesWithinCalendarDateRange: recurrenceRange firstInstanceCalendarDateRange: firstRange @@ -1446,7 +1447,16 @@ firstInstanceCalendarDateRange: (NGCalendarDateRange *) fir max = [_records count]; ma = [NSMutableArray arrayWithCapacity: max]; - _r = [NGCalendarDateRange calendarDateRangeWithStartDate: [_r startDate] + NSCalendarDate *originalDate = [_r startDate]; + + // Adjust the start date to the beginning of the day to ensure it intersects with events where the new event starts after an existing event’s start time. + _r = [NGCalendarDateRange calendarDateRangeWithStartDate:[NSCalendarDate dateWithYear:originalDate.yearOfCommonEra + month:originalDate.monthOfYear + day:originalDate.dayOfMonth + hour:0 + minute:0 + second:0 + timeZone:originalDate.timeZone] endDate: [_r endDate]]; for (count = 0; count < max; count++)