<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.8.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 6.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "EventKit",
  "identifier" : "/documentation/EventKit/EKObject",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "EventKit"
    ],
    "preciseIdentifier" : "c:objc(cs)EKObject"
  },
  "title" : "EKObject"
}
-->

# EKObject

An abstract superclass for all EventKit classes that have persistent instances.

```
class EKObject
```

## Overview

`EKObject` provides fine control when saving and restoring property settings. For example, you can find out if a persistent object was modified locally and whether it needs to be saved. If the object has changed in the event store since it was fetched, you can refresh the local copy by keeping local changes or by removing local changes. You can also roll back the object to the state when it was first fetched.

## Topics

### Saving and Restoring State

[`hasChanges`](/documentation/EventKit/EKObject/hasChanges)

Returns whether this object or any of the objects it contains has uncommitted changes.

[`isNew`](/documentation/EventKit/EKObject/isNew)

A Boolean value that indicates whether this object has ever been saved.

[`refresh()`](/documentation/EventKit/EKObject/refresh())

Merges changes to this object with the latest saved values.

[`reset()`](/documentation/EventKit/EKObject/reset())

Returns this object to its saved state.

[`rollback()`](/documentation/EventKit/EKObject/rollback())

Rolls back the property values of this object to its original state when it was first fetched.



---

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)
