Reputation: 15
i want to ask that i need to add event from my app and i select date from date picker and write event in text box and it hit in the calender ,default calender of iphone how could i do this is use framework eventkit
i use this code but not working
- (void)viewDidLoad
{
self.eventStore = [[EKEventStore alloc] init];
self.eventsList = [[NSMutableArray alloc] initWithArray:0];
// Get the default calendar from store.
self.defaultCalendar = [self.eventStore defaultCalendarForNewEvents];
// create an Add button
UIBarButtonItem *addButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"bell.png" ] style:UIBarButtonItemStylePlain target:self action:@selector(addEvent:)];
//UIBarButtonItem *addButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCompose target:self action:@selector(addEvent:)];
self.navigationItem.rightBarButtonItem = addButtonItem;
[addButtonItem release];
[super viewDidLoad];
}
-(IBAction) addEvent:(id)sender
{
self.eventStore = [[EKEventStore alloc] init];
EKEvent *event = [EKEvent eventWithEventStore:eventStore];
// event.title =@"Whatever you want your title to be";
event.title = @"a";
// NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
event.allDay = YES;
EKEventEditViewController *addController = [[EKEventEditViewController alloc] initWithNibName:nil bundle:nil];
addController.event = event;
addController.eventStore = self.eventStore;
[self presentModalViewController:addController animated:YES];
addController.editViewDelegate = self;
[addController release];
}
Upvotes: 0
Views: 3336
Reputation: 9801
First import the EventKitUI/EventKitUI.h, EventKit/EventKit.h frameworks in your header file. This is the code to add an event to Default iCal(iPhone calendar).
-(IBAction) addEvent:(id)sender
{
EKEventStore *eventStore = [[[EKEventStore alloc] init] autorelease];
EKEvent *events = [EKEvent eventWithEventStore:eventStore];
events.title = @"Title";
events.notes = @"Description";
events.location = @"Location";
events.startDate = [NSDate date];
events.endDate = [NSDate date];
events.availability = EKEventAvailabilityFree;
[events setCalendar:[eventStore defaultCalendarForNewEvents]];
NSError *err;
[eventStore saveEvent:events span:EKSpanThisEvent error:&err];
NSLog(@"Error From iCal : %@", [err description]);
}
Then use this code to view the saved event in EKEventEditViewController,
EKEventEditViewController *editViewController = [[EKEventEditViewController alloc] init];
editViewController.editViewDelegate = self;
editViewController.event = event3;
editViewController.eventStore = eventStore1;
[self presentModalViewController:editViewController animated:YES];
I have used these code and it is working for me. Thanks.
Upvotes: 3
Reputation: 14169
Do you implement the -eventEditViewController:didCompleteWithAction:
method?
If not, do something like the following:
- (void)eventEditViewController:(EKEventEditViewController *)controller didCompleteWithAction:(EKEventEditViewAction)action {
[self dismissModalViewControllerAnimated:YES];
EKEventStore *eventStore = [[[EKEventStore alloc] init] autorelease];
NSError *error = NULL;
[eventStore saveEvent:controller.event span:EKSpanThisEvent error:&error];
if (error != NULL)
NSLog(@"%@",[error localizedDescription]);
}
Upvotes: 0