Skip to content

Instantly share code, notes, and snippets.

@mchirico
Created September 6, 2014 12:36
Show Gist options
  • Save mchirico/d072c4e38bda61040f91 to your computer and use it in GitHub Desktop.
Save mchirico/d072c4e38bda61040f91 to your computer and use it in GitHub Desktop.
Example of creating and removing calendar entries in Swift. Also, shows how to list reminders
/*
You need to import EventKit
import EventKit
*/
@IBAction func buttonCalendar(sender: AnyObject) {
var eventStore : EKEventStore = EKEventStore()
// 'EKEntityTypeReminder' or 'EKEntityTypeEvent'
eventStore.requestAccessToEntityType(EKEntityTypeEvent, completion: {
granted, error in
if (granted) && (error == nil) {
println("granted \(granted)")
println("error \(error)")
var event:EKEvent = EKEvent(eventStore: eventStore)
event.title = "Test Title"
event.startDate = NSDate()
event.endDate = NSDate()
event.notes = "This is a note"
event.calendar = eventStore.defaultCalendarForNewEvents
eventStore.saveEvent(event, span: EKSpanThisEvent, error: nil)
println("Saved Event")
}
})
// This lists every reminder
var predicate = eventStore.predicateForRemindersInCalendars([])
eventStore.fetchRemindersMatchingPredicate(predicate) { reminders in
for reminder in reminders {
println(reminder.title)
}}
// What about Calendar entries?
var startDate=NSDate().dateByAddingTimeInterval(-60*60*24)
var endDate=NSDate().dateByAddingTimeInterval(60*60*24*3)
var predicate2 = eventStore.predicateForEventsWithStartDate(startDate, endDate: endDate, calendars: nil)
println("startDate:\(startDate) endDate:\(endDate)")
var eV = eventStore.eventsMatchingPredicate(predicate2) as [EKEvent]!
if eV != nil {
for i in eV {
println("Title \(i.title)" )
println("stareDate: \(i.startDate)" )
println("endDate: \(i.endDate)" )
if i.title == "Test Title" {
println("YES" )
// Uncomment if you want to delete
//eventStore.removeEvent(i, span: EKSpanThisEvent, error: nil)
}
}
}
}
@TamilRaja
Copy link

How to update and delete event from ekevent calendar in swift?

@ahmadsallam
Copy link

this error occurs when i try this code " Error getting shared calendar invitations for entity types 3 from daemon " ?
any help

@designablebits
Copy link

Thanks

@carolinecreid
Copy link

What about time zones? Does this take that into consideration?

@BincyOct2021
Copy link

how can i disable the edit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment