                 s.delegate?.eventsAuthorizedForReminders?(events: s)
             }
         }
+    }
+}
+
+extension Events {
+    /// Begins a storage transaction.
+    open func begin() {
+        isCommitted = false
+    }
+    
+    /// Resets the storage transaction state.
+    open func reset() {
+        isCommitted = true
+    }
+    
+    /// Commits the storage transaction.
+    open func commit(_ completion: ((Bool, Error?) -> Void)) {
+        reset()
+        
+        var success = false
+        var error: Error?
+        
+        do {
+            try eventStore.commit()
+            success = true
+        } catch let e {
+            error = e
+        }
+        
+        completion(success, error)
     }
 }
 

            var error: Error?
            
            do {
                try s.eventStore.saveCalendar(calendar, commit: true)
                success = true
            } catch let e {
                error = e

            }
            
            do {
                try s.eventStore.removeCalendar(calendar, commit: s.isCommitted)
                success = true
            } catch let e {
                error = e
