Alekcey Colione
Alekcey Colione

Reputation: 55

how can i check if event exist on calendar

i am using the great code from :

func addEventToCalendar(title: String, description: String?, startDate: NSDate, endDate: NSDate, completion: ((success: Bool, error: NSError?) -> Void)? = nil) {

    let eventStore = EKEventStore()

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

        if (granted) && (error == nil) {

            let event = EKEvent(eventStore: eventStore)

            event.title = title
            event.allDay = true
            event.startDate = startDate
            event.endDate = endDate
            event.notes = description
            event.calendar = eventStore.defaultCalendarForNewEvents

            do {
                try eventStore.saveEvent(event, span: .ThisEvent)
            } catch let e as NSError {
                completion?(success: false, error: e)
                return
            }
            completion?(success: true, error: nil)

        } else {
            completion?(success: false, error: error)
        }

    })
}

but how can i check if the event already exist?

Upvotes: 3

Views: 3023

Answers (1)

Alexey Pichukov
Alexey Pichukov

Reputation: 3405

For example you can check event on your calendar with the same settings as your event. You can use NSPredicate for this:

let startDate = yourStartDate
let endDate = yourEndDate
let predicate = eventStore.predicateForEventsWithStartDate(startDate, endDate: endDate, calendars: nil)
let existingEvents = eventStore.eventsMatchingPredicate(predicate)
for singleEvent in existingEvents {
    if singleEvent.title == yourEventTitle && singleEvent.startDate == yourStartDate {
        // Event exist
        ...
    }
}

Upvotes: 8

Related Questions