Skip to content

Instantly share code, notes, and snippets.

@butaji
Last active March 28, 2020 19:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save butaji/0c4ef90c87cf18668de888a69731aa2e to your computer and use it in GitHub Desktop.
Save butaji/0c4ef90c87cf18668de888a69731aa2e to your computer and use it in GitHub Desktop.
Read events from all calendars
import Cocoa
import EventKit
var meetings = [String: String]()
let eventStore = EKEventStore()
switch EKEventStore.authorizationStatus(for: EKEntityType.event) {
case .authorized: break
case .denied:
print("Access denied")
case .notDetermined:
eventStore.requestAccess(to: .event, completion:
{(granted: Bool, error: Error?) -> Void in
if granted {
print("Access Granted")
} else {
print("Access denied")
}
})
break
default:
print("Have no idea what happen")
}
func convertNSDatetoString(date: Date) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM'-'dd' @ 'hh:mm"
let dateString = dateFormatter.string(from: date)
return dateString
}
let calendars = eventStore.calendars(for: .event)
for calendar in calendars {
let oneWeekAgo = Date(timeIntervalSinceNow: -7*24*3600)
let today = Date()
let predicate = eventStore.predicateForEvents(withStart: oneWeekAgo, end: today, calendars: [calendar])
let events = eventStore.events(matching: predicate)
for event in events {
let temp = convertNSDatetoString(date: event.startDate)
meetings[event.title] = temp + " " + (event.location ?? "")
}
}
print(meetings)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment