Try it (note that this is a type of reminder, but you can just change it if you need to):
let eventStore = EKEventStore()
var yourReminderCalendar: EKCalendar?
func retrieveYourCalendar() {
let calendars = eventStore.calendarsForEntityType(EKEntityTypeReminder)
if(yourReminderCalendar == nil) {
for calendar in calendars {
if calendar.title == "Your Title" {
yourReminderCalendar = (calendar as EKCalendar)
break
}
}
if(yourReminderCalendar == nil) {
yourReminderCalendar = EKCalendar(forEntityType: EKEntityTypeReminder, eventStore: eventStore)
yourReminderCalendar!.title = "Your Title"
yourReminderCalendar!.source = eventStore.defaultCalendarForNewReminders().source
var error: NSError?
if(eventStore.saveCalendar(yourReminderCalendar, commit: true, error: &error)) {
println("reminder cal saved")
}
else {
}
}
}
}
Do you want to check authorization:
func verifyUserEventAuthorization() {
switch EKEventStore.authorizationStatusForEntityType(EKEntityTypeReminder) {
case .Authorized:
...
case .Denied:
...
case .NotDetermined:
eventStore.requestAccessToEntityType(EKEntityTypeReminder, completion:
{ [weak self](granted: Bool, error: NSError!) -> Void in
if granted {
...
}
else {
...
}
})
case .Restricted:
...
}
}
source
share