     
     /// Fetches events that were saved to disk.
     internal func savedEvents(since now: TimeInterval = Date().timeIntervalSince1970) -> [SavedEvent] {
+        guard let cachesPath = appendSentryDirToPath(cachesDirectory()) else { return [] }
+        guard let documentsPath = appendSentryDirToPath(documentDirectory()) else { return [] }
+        
+        let cachedEvents = loadSavedEventsFromPath(cachesPath, since: now)
+        deleteEmptyFolderAtPath(cachesPath)
+        let documentsEvents = loadSavedEventsFromPath(documentsPath, since: now)
+        deleteEmptyFolderAtPath(documentsPath)
+        
+        return cachedEvents + documentsEvents
+    }
+    
+    // MARK: - Private Helpers
+    private func loadSavedEventsFromPath(_ path: String, since now: TimeInterval) -> [SavedEvent] {
         do {
-            guard let path = directory() else { return [] }
-            
             #if swift(>=3.0)
                 return try FileManager.default
                     .contentsOfDirectory(atPath: path)

     - Throws: Will throw upon failure to serializing to JSON
     - Returns: Serialized string
     */
    private func serializedString(_ event: Event) throws -> String? {
        let serializedEvent = event.serialized
        #if swift(>=3.0)
            if JSONSerialization.isValidJSONObject(serializedEvent) {

        return []
    }
    
    private func deleteEmptyFolderAtPath(_ path: String) {
        do {
            #if swift(>=3.0)
                guard try FileManager.default.contentsOfDirectory(atPath: path).count == 0 else { return }
                try FileManager.default.removeItem(atPath: path)
            #else
                guard try NSFileManager.defaultManager().contentsOfDirectoryAtPath(path).count == 0 else { return }
                try NSFileManager.defaultManager().removeItemAtPath(path)
            #endif
        } catch let error as NSError {
            SentryLog.Debug.log(error.localizedDescription)
        }
    }
    
    private func appendSentryDirToPath(_ path: String?) -> String? {
        guard let path = path else {
            return nil
        }
        
        guard let serverURLString = dsn.url.absoluteString else {
            return nil
