import EventKit

//EKEntityType.Event: 캘린더 이벤트, EKEntityType.Reminder: 미리 알림

var eventStore = EKEventStore()

let status = EKEventStore.authorizationStatusForEntityType(EKEntityType.Event)
switch (status) {
case .NotDetermined:
    print("캘린더 접근 요청")
    requestCalendarAccess()
case .Restricted,
     .Denied:
    print("캘린더 접근 거부")
case .Authorized:
    print("캘린더 접근 성공")
    requestCalendarEntity()
}

func requestCalendarAccess() {
    /// 최초에만 사용자 에게 캘린더 접근 허용 여부를 묻는다.
    eventStore.requestAccessToEntityType(.Event) { (granted, error) in
        if granted {
            print("YES!!")
        } else {
            print("NO!!")
        }
    }
}

func requestCalendarEntity() {
    eventStore.requestAccessToEntityType(.Event, completion: {
        (granted, error) in

        if (granted) && (error == nil) {
            /// 캘린더 목록 가져오기
            let calenders = self.eventStore.calendarsForEntityType(EKEntityType.Event)
            for calender in calenders  {
                print(calender.title)
            }

            /// 기본 캘린더에 신규 이벤트 추가
            let event:EKEvent = EKEvent(eventStore: self.eventStore)
            event.title = "Test Title"
            event.startDate = NSDate()
            event.endDate = NSDate()
            event.notes = "This is a note"
            event.calendar = self.eventStore.defaultCalendarForNewEvents
            do {
                try self.eventStore.saveEvent(event, span: .ThisEvent)
            } catch {
            }

            /// 신규 캘린더 추가
            let calender = EKCalendar(forEntityType: .Event, eventStore: self.eventStore)
            calender.title = "나만의 달력"

            let sources = self.eventStore.sources

            for source in sources {
                if source.sourceType == .Local {
                    calender.source = source
                }
            }
            do {
                try self.eventStore.saveCalendar(calender, commit: true)
            } catch {

            }
        }
    })
}


저작자 표시 비영리 변경 금지
신고

'iOS > 참고' 카테고리의 다른 글

iOS bundle Seed Id 얻어오기  (0) 2016.07.12
iOS 스와이프로 뒤로 가기 처리  (0) 2016.07.12
iOS 캘린더 사용하기  (0) 2016.07.12
iOS WebView 서버 로그 보려면  (0) 2016.07.12
iOS9 에서 http 사용하기  (0) 2016.03.14
[ios] javascript -> ios 호출하기  (0) 2015.11.17
Posted by 까칠코더.


티스토리 툴바