snaggs
snaggs

Reputation: 5713

How to get EKEvent from EKEventStore by calendarItemExternalIdentifier in iOS?

I try to delete EKEvent and I need 1st fetch this event as Object. I have following example:

func deleteEvent(eventId:String) -> Int{

         var isDeleted:Bool = false

        var error: NSError?
        if let candidateTodelete:EKEvent = _eventStore.eventWithIdentifier(eventId){
            _eventStore.removeEvent(candidateTodelete, span: EKSpanThisEvent, error: &error)
            println("Error: \(error)")
            if error == nil{
                isDeleted = true
            }
        }

        let result:Int = (isDeleted) ? 1 : 0
        return result
     }

In my case over all code I use only calendarItemExternalIdentifier.

So my question is how to get EKEvent from EKEventStore with known calendarItemExternalIdentifier

please help,

Upvotes: 1

Views: 694

Answers (1)

snaggs
snaggs

Reputation: 5713

Ok, found solution lEventStore.calendarItemsWithExternalIdentifier:

private func getEKEventByExternalIdentifier(eventId:String) ->EKEvent?{

         var lEventStore = WmEventStore.getInstance.mEventStore!

        if let items = lEventStore.calendarItemsWithExternalIdentifier(eventId){
                    if items.count == 1 {

                        if let event:EKEvent = items[0] as? EKEvent{
                            return event
                        }
                        else{
                            return nil
                        }

                    }
                    else {
                        println("ERROR: we got to many events: \(items.count)")
                        return nil
                    }
        }
        else{
            return nil
        }
    }

Upvotes: 1

Related Questions