Last active
March 28, 2020 19:02
-
-
Save butaji/0c4ef90c87cf18668de888a69731aa2e to your computer and use it in GitHub Desktop.
Read events from all calendars
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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