How to add an event in the device calendar using swift?

前端 未结 6 1664
孤城傲影
孤城傲影 2020-12-07 17:27

I would be interested in knowing how to add a calendar event in the device, but using swift. I know there are some examples made in Objective-C, but at the moment nothing in

6条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-07 18:28

    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

提交回复
热议问题