---
title: EKObject
framework: eventkit
role: symbol
role_heading: Class
path: eventkit/ekobject
---

# EKObject

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

## Declaration

```swift
class EKObject
```

## Overview

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](eventkit/ekobject/haschanges.md)
- [isNew](eventkit/ekobject/isnew.md)
- [refresh()](eventkit/ekobject/refresh().md)
- [reset()](eventkit/ekobject/reset().md)
- [rollback()](eventkit/ekobject/rollback().md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Inherited By

- [EKAlarm](eventkit/ekalarm.md)
- [EKCalendar](eventkit/ekcalendar.md)
- [EKCalendarItem](eventkit/ekcalendaritem.md)
- [EKParticipant](eventkit/ekparticipant.md)
- [EKRecurrenceRule](eventkit/ekrecurrencerule.md)
- [EKSource](eventkit/eksource.md)
- [EKStructuredLocation](eventkit/ekstructuredlocation.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Common objects

- [EKCalendarItem](eventkit/ekcalendaritem.md)
- [EKSource](eventkit/eksource.md)
