Error getting Default Calendar for new events - Swift

I am having a problem trying to create a new event in my iOS Calendar app while using Swift.

This is what I have so far:

func addToCal(){
    let eventStore = EKEventStore()

    eventStore.requestAccessToEntityType(EKEntityTypeReminder) {
        (granted: Bool, err: NSError!) in
        if granted && !err {
            var event:EKEvent = EKEvent(eventStore: eventStore)
            event.title = self.eventTitle!.text
            event.startDate = self.eventData.startDateObj
            event.endDate = self.eventData.endDateObj
            event.calendar = eventStore.defaultCalendarForNewEvents
            eventStore.saveEvent(event, span: EKSpanThisEvent, error: nil)
            println("Saved Event")
        }
    }

      

This is the error I am getting:

Error getting default calendar for new events: Error Domain=EKCADErrorDomain Code=1013 "The operation couldn’t be completed. (EKCADErrorDomain error 1013.)"

      

I have checked my syntax and I am sure everything is correct, so can anyone help me figure out where I am going wrong?

Additional Information

  • iOS 8 Beta 5
  • Xcode 6 Beta 5
  • Problem occurs on iPad Mini w / Retina Display (real device)

Update

Changing EKEntityTypeReminder

to EKEntityTypeEvent

(Sorry, my mistake) doesn't actually throw an error, but now the event doesn't even appear in the calendar. I have checked the outputs granted

and err

, and I can see false

and nil

respectively.

+3


source to share


1 answer


I think your main problem was that you were not committing a new event to save. The following code is what I am using, and the main difference is that my code includes a commit and allows my error to be changed from "nil" if any. The conditional at the end just prints any save error messages or saves progress in the debug area.

let eventStore = EKEventStore()
let event = EKEvent(eventStore: eventStore)

event.title = "Your Event Title Here" // Sets event title
event.startDate = NSDate() // Sets event start date
event.endDate = event.startDate.dateByAddingTimeInterval(20000) // Sets event end date
event.calendar = eventStore.defaultCalendarForNewEvents // Selects default calendar

var saveError : NSError? = nil // Initially sets errors to nil
eventStore.saveEvent(event, span: EKSpanThisEvent, commit: true, error: &saveError) // Commits changes and allows saveEvent to change error from nil 

//// Following checks for errors and prints result to Debug Area ////
if saveError != nil {
    println("Saving event to Calendar failed with error: \(saveError!)")
} else {
    println("Successfully saved '\(event.title)' to '\(event.calendar.title)' calendar.")
}

      



Hope this helps!

-Gorowski

0


source







All Articles