diff --git a/SoObjects/Appointments/SOGoAppointmentObject.m b/SoObjects/Appointments/SOGoAppointmentObject.m index 8389a474e..7bd227af4 100644 --- a/SoObjects/Appointments/SOGoAppointmentObject.m +++ b/SoObjects/Appointments/SOGoAppointmentObject.m @@ -103,21 +103,25 @@ static NSString *mailTemplateDefaultLanguage = nil; return [self contentAsString]; } -- (iCalEvent *)event { - NSString *iCalString; +- (iCalEvent *) event +{ iCalEvent *event; + iCalCalendar *calendar; + NSString *iCalString; iCalString = [self iCalString]; - if ([iCalString length] > 0) { - iCalCalendar *cal; + if (iCalString) + { + calendar = [iCalCalendar parseSingleFromSource: iCalString]; + if (calendar) + event = [self firstEventFromCalendar: calendar]; + else + event = nil; + } + else + event = nil; - [parser parseFromSource:iCalString]; - cal = [sax rootObject]; - [sax reset]; - event = [[cal events] lastObject]; - return event; - } - return nil; + return event; } /* iCal handling */ diff --git a/SoObjects/Appointments/SOGoTaskObject.m b/SoObjects/Appointments/SOGoTaskObject.m index f5ff1795a..462c4d306 100644 --- a/SoObjects/Appointments/SOGoTaskObject.m +++ b/SoObjects/Appointments/SOGoTaskObject.m @@ -255,11 +255,18 @@ static NSString *mailTemplateDefaultLanguage = nil; { iCalToDo *event; NSArray *events; + NSString *iCalString; - events = [calendar childrenWithTag: @"vtodo"]; - if ([events count]) - event = (iCalToDo *) [[events objectAtIndex: 0] - groupWithClass: [iCalToDo class]]; + iCalString = [self iCalString]; + if (iCalString) + { + events = [calendar childrenWithTag: @"vtodo"]; + if ([events count]) + event = (iCalToDo *) [[events objectAtIndex: 0] + groupWithClass: [iCalToDo class]]; + else + event = nil; + } else event = nil;