<!--
{
  "availability" : [
    "iOS: 5.0.0 -",
    "iPadOS: 5.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.8.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "EventKit",
  "identifier" : "/documentation/EventKit/EKEventStore/save(_:span:commit:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "EventKit"
    ],
    "preciseIdentifier" : "c:objc(cs)EKEventStore(im)saveEvent:span:commit:error:"
  },
  "title" : "save(_:span:commit:)"
}
-->

# save(_:span:commit:)

Saves an event or recurring events to the event store by either committing or batching the changes.

```
func save(_ event: EKEvent, span: EKSpan, commit: Bool) throws
```

## Parameters

`event`

The event to save.

`span`

The span that indicates whether to remove a single event or all future instances of the event in the case of a recurring event.

`commit`

To save the event immediately, pass <doc://com.apple.documentation/documentation/Swift/true>; otherwise, the change is batched until the [`commit()`](/documentation/EventKit/EKEventStore/commit()) method is invoked.

## Discussion

This method raises an exception if it’s passed an event from another event store.

When saving an event, it’s updated in the Calendar database. Any fields you didn’t modify are updated to reflect the most recent value in the database. If the event has been deleted from the database, it’s recreated as a new event.

> Handling Errors in Swift:
> In Swift, this method returns `Void` and is marked with the `throws` keyword to indicate that it throws an error in cases of failure. Call this method in a `try` expression and handle any errors in the `catch` clauses of a `do` statement, as described in [Error Handling](https://docs.swift.org/swift-book/LanguageGuide/ErrorHandling.html) in [The Swift Programming Language](https://docs.swift.org/swift-book/) and `About Imported Cocoa Error Parameters`.

## See Also

[`commit()`](/documentation/EventKit/EKEventStore/commit())

Commits all unsaved changes to the event store.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)
