---
title: "enumerateEvents(matching:using:)"
framework: eventkit
role: symbol
role_heading: Instance Method
path: "eventkit/ekeventstore/enumerateevents(matching:using:)"
---

# enumerateEvents(matching:using:)

Finds all events that match a given predicate and calls a given callback for each event found.

## Declaration

```swift
func enumerateEvents(matching predicate: NSPredicate, using block: @escaping EKEventSearchCallback)
```

## Parameters

- `predicate`: A search predicate created with doc://com.apple.eventkit/documentation/EventKit/EKEventStore/predicateForEvents(withStart:end:calendars:).
- `block`: The closure to call for each event. The callback must match the signature defined by doc://com.apple.eventkit/documentation/EventKit/EKEventSearchCallback.

## Discussion

Discussion Only committed events are included in the enumeration. To include events saved using save(_:span:commit:) with the commit parameter set to false, call commit() first. This method is synchronous. For asynchronous behavior, run the method on another thread with dispatch_async or Operation.

## See Also

### Searching calendars

- [events(matching:)](eventkit/ekeventstore/events(matching:).md)
- [fetchReminders(matching:completion:)](eventkit/ekeventstore/fetchreminders(matching:completion:).md)
- [cancelFetchRequest(_:)](eventkit/ekeventstore/cancelfetchrequest(_:).md)
- [predicateForEvents(withStart:end:calendars:)](eventkit/ekeventstore/predicateforevents(withstart:end:calendars:).md)
- [predicateForReminders(in:)](eventkit/ekeventstore/predicateforreminders(in:).md)
- [predicateForCompletedReminders(withCompletionDateStarting:ending:calendars:)](eventkit/ekeventstore/predicateforcompletedreminders(withcompletiondatestarting:ending:calendars:).md)
- [predicateForIncompleteReminders(withDueDateStarting:ending:calendars:)](eventkit/ekeventstore/predicateforincompletereminders(withduedatestarting:ending:calendars:).md)
- [EKEventSearchCallback](eventkit/ekeventsearchcallback.md)
