     }
     
     /**
+     Creates a predicate for the reminders Array of calendars that
+     are incomplete and have a given start and end date.
+     - Parameter starting: A Date.
+     - Parameter ending: A Date.
+     - Parameter calendars: An optional Array of [EKCalendar].
+     */
+    open func predicateForIncompleteReminders(starting: Date, ending: Date, calendars: [EKCalendar]? = nil) -> NSPredicate {
+        return eventStore.predicateForIncompleteReminders(withDueDateStarting: starting, ending: ending, calendars: calendars)
+    }
+    
+    /**
+     Creates a predicate for the reminders Array of calendars that
+     are completed and have a given start and end date.
+     - Parameter starting: A Date.
+     - Parameter ending: A Date.
+     - Parameter calendars: An optional Array of [EKCalendar].
+     */
+    open func predicateForCompletedReminders(starting: Date, ending: Date, calendars: [EKCalendar]? = nil) -> NSPredicate {
+        return eventStore.predicateForCompletedReminders(withCompletionDateStarting: starting, ending: ending, calendars: calendars)
+    }
+}
+
+extension Reminders {
+    /**
      A method for retrieving reminder calendars in alphabetical order.
      - Parameter completion: A completion call back
      */

    /**
     A delegation method that is executed when a new Reminders list is created
     - Parameter reminders: A reference to the Reminders.
     - Parameter list: A reference to the calendar created
     - Parameter created: A boolean describing if the operation succeeded or not.
     */
    @objc
    optional func reminders(reminders: Reminders, list: EKCalendar, created: Bool)
    
    /**
     A delegation method that is executed when a new Reminders list is created
     - Parameter reminders: A reference to the Reminder.
     - Parameter list: A reference to the calendar created
     - Parameter deleted: A boolean describing if the operation succeeded or not.
     */
    @objc
    optional func reminders(reminders: Reminders, list: EKCalendar, deleted: Bool)
    
    /**
     A delegation method that is executed when a new Reminders list is created

     A method for retrieving events with a predicate in date sorted order.
     - Parameter predicate: A NSPredicate.
     - Parameter completion: A completion call back.
     - Returns: A fetch reminders request identifier.
     */
    @discardableResult
    open func reminders(matching predicate: NSPredicate, completion: @escaping ([EKReminder]) -> Void) -> Any {
        return eventStore.fetchReminders(matching: predicate, completion: { [completion = completion] (reminders) in
            DispatchQueue.main.async { [completion = completion] in
                completion(reminders ?? [])
            }
