         scheduleNotification(content: content, identifier: .badge(badgeNumber), at: date)
     }
     
-    private func scheduleNotification(body: String, at date: Date, includeSound: Bool = true) {
-        os_log("Scheduling local notification at %@", type: .debug, date as NSDate)
+    private func scheduleNotification(body: String, at date: Date? = nil, includeSound: Bool = true) {
+        if let date = date {
+            os_log("Scheduling local notification at %@", type: .debug, date as NSDate)
+        } else {
+            os_log("Scheduling immediate local notification", type: .debug)
+        }
         
         let content = UNMutableNotificationContent()
         content.body = body

        scheduleNotification(content: content, identifier: .text, at: date)
    }
    
    private func scheduleNotification(content: UNNotificationContent, identifier: NotificationManagerIdentifier, at date: Date) {
        let dateComponents = Calendar.current.dateComponents([.era, .year, .month, .day, .hour, .minute, .second], from: date)
        let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)
        
        let request = UNNotificationRequest(identifier: identifier.description, content: content, trigger: trigger)
        let center = UNUserNotificationCenter.current()

        }
    }
    
    private func scheduleNotificationForNextReviewCount(resourceRepository: ResourceRepositoryReader, deliveredNotification notification: UNNotification) throws -> Bool {
        guard try resourceRepository.hasReviewTimeline() else {
            return false
        }
