EKEvent with eventWithIdentifier on iOS

If I want to retrieve EKEvent from EKEventStore with eventWithIdentifier method for previously saved event but I always get null.

This is the code for adding event:

  • install mobileprovision file - Xcode 6
  • iOS Notification Trigger: fortnightly and/or quarterly
  • How to Fetch/Create calender by O365-iOS-Connect?
  • ios - get in between dates (in actual date, not number of days)
  • Infinitely scrolling in both directions of UICollectionView with sections
  • iOS Calendar Access Permission Dialog, force it to appear?
  • EKEventStore *eventStore = [[EKEventStore alloc] init];
    EKEvent *newEvent = [EKEvent eventWithEventStore:eventStore];
    newEvent.title = @"Test";
    newEvent.availability = EKEventAvailabilityFree;
    newEvent.startDate = startDate;
    newEvent.endDate = endDate;
    [newEvent addAlarm:[EKAlarm alarmWithRelativeOffset:-15*60]];
    
    newEvent.calendar = [eventStore defaultCalendarForNewEvents];
    
    NSError *err;
    BOOL success = [eventStore saveEvent:newEvent span:EKSpanThisEvent commit:YES error:&err];
    
    if (success) {
        if ([newEvent respondsToSelector:@selector(calendarItemIdentifier)]) {
            [[NSUserDefaults standardUserDefaults] setObject:newEvent.calendarItemIdentifier forKey:self.showId];
            NSLog(@"Event ID: %@",newEvent.calendarItemIdentifier);
        }
        else {
            [[NSUserDefaults standardUserDefaults] setObject:newEvent.UUID forKey:self.showId];
            NSLog(@"Event ID: %@",newEvent.UUID);
        }
    }
    

    And code for removing event:

    EKEventStore *eventStore = [[EKEventStore alloc] init];
    
    NSError *err;
    BOOL success = YES;
    
    NSLog(@"Event ID: %@",[[NSUserDefaults standardUserDefaults] objectForKey:self.showId]);
    
    EKEvent *existingEvent = [eventStore eventWithIdentifier:[[NSUserDefaults standardUserDefaults] objectForKey:self.showId]];
    NSLog(@"Existing event: %@",existingEvent);
    if (existingEvent != nil) {
        success = [eventStore removeEvent:existingEvent span:EKSpanThisEvent error:&err];
    }
    if (success) {
        [[NSUserDefaults standardUserDefaults] removeObjectForKey:self.showId];
    }
    

    Why I cannot remove previously added event from calendar with the same event id ?

    This code was tested on iOS 5 (iPad 1) and iOS 6 (new iPad)…

    2 Solutions Collect From Internet About “EKEvent with eventWithIdentifier on iOS”

    I am using newEvent.eventIdentifier instead of newEvent.calendarItemIdentifier and so far, using [store eventWithIdentifier:_project.event_identifier], I can retrieve, delete and edit an existing event. you should try.

    The documentation warns that “If the calendar of an event changes, its identifier most likely changes as well.” Did anything change about the event between the time you stored the eventIdentifer and when you attempted to delete it?