Note: If your app is crashing with This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCalendarsUsageDescription key with a string value explaining to the user how the app uses this data.
, you'll need to add NSCalendarsUsageDescription
to your info.plist. Can follow the example here.
Swift 5.0 Version
import Foundation
import EventKit
let eventStore : EKEventStore = EKEventStore()
// 'EKEntityTypeReminder' or 'EKEntityTypeEvent'
eventStore.requestAccess(to: .event) { (granted, error) in
if (granted) && (error == nil) {
print("granted (granted)")
print("error (error)")
let event:EKEvent = EKEvent(eventStore: eventStore)
event.title = "Test Title"
event.startDate = Date()
event.endDate = Date()
event.notes = "This is a note"
event.calendar = eventStore.defaultCalendarForNewEvents
do {
try eventStore.save(event, span: .thisEvent)
} catch let error as NSError {
print("failed to save event with error : (error)")
}
print("Saved Event")
}
else{
print("failed to save event with error : (error) or access not granted")
}
}
Reference : https://gist.github.com/mchirico/d072c4e38bda61040f91
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…