diff --git a/SoObjects/Appointments/SOGoAppointmentFolder.m b/SoObjects/Appointments/SOGoAppointmentFolder.m index e8e8fdae3..583764dc1 100644 --- a/SoObjects/Appointments/SOGoAppointmentFolder.m +++ b/SoObjects/Appointments/SOGoAppointmentFolder.m @@ -30,6 +30,7 @@ #import #import +#import #import #import #import @@ -995,7 +996,6 @@ firstInstanceCalendarDateRange: (NGCalendarDateRange *) fir NSCalendarDate *recurrenceId, *masterEndDate, *endDate; NSMutableDictionary *newRecord; NGCalendarDateRange *newRecordRange; - NSComparisonResult compare; NSNumber *dateSecs; id master; @@ -1026,13 +1026,13 @@ firstInstanceCalendarDateRange: (NGCalendarDateRange *) fir { master = [[[component parent] events] objectAtIndex: 0]; masterEndDate = [master endDate]; - endDate = [component endDate]; + endDate = [(iCalEvent*) component endDate]; } else { master = [[[component parent] todos] objectAtIndex: 0]; masterEndDate = [master due]; - endDate = [component due]; + endDate = [(iCalToDo*) component due]; } delta = [masterEndDate timeIntervalSinceDate: [master startDate]]; @@ -1046,7 +1046,7 @@ firstInstanceCalendarDateRange: (NGCalendarDateRange *) fir if (recordIndex > -1) { if ([dateRange containsDate: [component startDate]] || - [dateRange containsDate: endDate]) + (endDate && [dateRange containsDate: endDate])) { // We must pass nil to :container here in order to avoid re-entrancy issues. newRecord = [self _fixupRecord: [component quickRecordFromContent: nil container: nil]]; diff --git a/SoObjects/Appointments/iCalToDo+SOGo.m b/SoObjects/Appointments/iCalToDo+SOGo.m index 79ed39265..5bead5f4d 100644 --- a/SoObjects/Appointments/iCalToDo+SOGo.m +++ b/SoObjects/Appointments/iCalToDo+SOGo.m @@ -1,6 +1,6 @@ /* iCalToDot+SOGo.m - this file is part of SOGo * - * Copyright (C) 2008-2014 Inverse inc. + * Copyright (C) 2008-2017 Inverse inc. * * This file is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -188,7 +188,11 @@ - (NSTimeInterval) occurenceInterval { - return [[self due] timeIntervalSinceDate: [self startDate]]; + if ([self due]) + return [[self due] timeIntervalSinceDate: [self startDate]]; + else + // When no due date is defined, base recurrence calculation on a 60-minute duration + return 3600; } @end