次のコードを使用して、イベントを iPhone のカレンダーに追加しています。
EKEventStore *eventStore = [[EKEventStore alloc] init];
EKEvent *event = [EKEvent eventWithEventStore:eventStore];
event.title = @"title";
event.startDate = [NSDate date];
event.endDate = somedate;
[event setCalendar:[eventStore defaultCalendarForNewEvents]];
[eventStore saveEvent:event span:EKSpanThisEvent error:&err];
そして、私が使用するイベントにアクセスするには、
EKEventStore *eventStore = [[EKEventStore alloc] init];
NSPredicate *predicate = [eventStore predicateForEventsWithStartDate:startDate endDate:endDate calendars:nil];
NSArray *eventsOfTheMonth = [eventStore eventsMatchingPredicate:predicate];
NSMutableArray *tempEKEvents = [NSMutableArray arrayWithCapacity:[eventsOfTheMonth count]];
for (EKEvent *event in eventsOfTheMonth) {
[tempEKEvents addObject:event];
}
}
何らかの理由で、iCal によって既にイベントが追加されている日に新しいイベントを追加したい場合、イベントが追加されません。ただし、アプリを介して追加された複数のイベントがある日であっても、イベントは他の日に追加されます。