Reputation: 1441
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
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