---
title: "save(_:span:)"
framework: eventkit
role: symbol
role_heading: Instance Method
path: "eventkit/ekeventstore/save(_:span:)"
---

# save(_:span:)

Saves changes to an event permanently.

## Declaration

```swift
func save(_ event: EKEvent, span: EKSpan) 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.

## Discussion

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. note: 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 in The Swift Programming Language and About Imported Cocoa Error Parameters.

## See Also

### Accessing calendar events

- [event(withIdentifier:)](eventkit/ekeventstore/event(withidentifier:).md)
- [calendarItem(withIdentifier:)](eventkit/ekeventstore/calendaritem(withidentifier:).md)
- [calendarItems(withExternalIdentifier:)](eventkit/ekeventstore/calendaritems(withexternalidentifier:).md)
- [remove(_:span:)](eventkit/ekeventstore/remove(_:span:).md)
- [remove(_:span:commit:)](eventkit/ekeventstore/remove(_:span:commit:).md)
- [remove(_:commit:)](eventkit/ekeventstore/remove(_:commit:).md)
- [save(_:span:commit:)](eventkit/ekeventstore/save(_:span:commit:).md)
- [save(_:commit:)](eventkit/ekeventstore/save(_:commit:).md)
