BGS
BGS

Reputation: 1441

adding event does not show up in iPhone calendar

Trying programistically add an event to iPhone calendar. I get no errors, however, nothing gets added to the calendar either. savedEventId(below) returns (null) here is the code:

Methods

Adding event :

if(accessGranted){
EKEvent *event = [EKEvent eventWithEventStore:store];
event.startDate =[NSDate date];
event.endDate = [event.startDate dateByAddingTimeInterval:60*60]; 
[event setCalendar:[store defaultCalendarForNewEvents]];
NSError *err = nil;
[store saveEvent:event span:EKSpanThisEvent commit:YES error:&err];
NSString *savedEventId = event.eventIdentifier;
}

getting access to calendar

in viewDidLoad:

store = [[EKEventStore alloc] init];
accessGranted=FALSE;
[self.store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
        accessGranted=TRUE;
    }];

in .h file

    #import <EventKit/EventKit.h>

    @interface

    EKEventStore *store;
    BOOL accessGranted;

    @property(nonatomic, retain) EKEventStore *store;

in .m file

@synthesize store; 

Upvotes: 0

Views: 1330

Answers (1)

Woodstock
Woodstock

Reputation: 22926

Try this code instead:

EKEventStore *store = [[EKEventStore alloc] init];
[store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
    if (!granted) { return; }
    EKEvent *event = [EKEvent eventWithEventStore:store];
    event.title = @"Event Title";
    event.startDate = [NSDate date]; //today
    event.endDate = [event.startDate dateByAddingTimeInterval:60*60];  //set 1 hour meeting
    [event setCalendar:[store defaultCalendarForNewEvents]];
    NSError *err = nil;
    [store saveEvent:event span:EKSpanThisEvent commit:YES error:&err];
    NSString *savedEventId = event.eventIdentifier;  //this is so you can access this event later
}];

Remember to:

  • request access to the user's calendar via "requestAccessToEntityType:completion:"

  • commit your event

Upvotes: 1

Related Questions