With permission, access and manipulate the user’s calendar and reminder data. Monitor changes to the user’s Calendar database, and help users create new events.


The EventKit framework provides classes for accessing and manipulating calendar events and reminders.



class EKAlarm

An EKAlarm object represents an alarm in Event Kit. Use the init(absoluteDate:) and init(relativeOffset:) class methods to create an alarm and use the properties to set information about an alarm. In OS X Mountain Lion, you can specify an action to trigger when the alarm fires via the emailAddress, soundName, or url property.

class EKCalendar

An instance of the EKCalendar class represents a calendar in Event Kit. Use the properties in this class to get attributes about a calendar, such as its title and type. Use the init(for:eventStore:) method to create a calendar object.

class EKCalendarItem

The EKCalendarItem class is a an abstract superclass for calendar events and reminders. This class provides common properties and methods for accessing properties of calendar items such as the ability to set the calendar, title, and location as well as support for attaching notes, displaying attendees, setting multiple alarms, and specifying recurrence rules.

class EKEvent

An instance of the EKEvent class represents an event added to a calendar in the Event Kit framework.

class EKEventStore

An instance of the EKEventStore class represents the Calendar database. It is an application’s point of contact for accessing calendar and reminder data.

class EKObject

The EKObject class is an abstract superclass for all Event Kit classes whose instances are persistent. It 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.

class EKParticipant

An EKParticipant object represents a participant in a calendar event. A participant can be a person, group, room, or other resource.

class EKRecurrenceDayOfWeek

The EKRecurrenceDayOfWeek class represents a day of the week for use with an EKRecurrenceRule object. A day of the week can optionally have a week number, indicating a specific day in the recurrence rule’s frequency. For example, a day of the week with a day value of Tuesday and a week number of 2 would represent the second Tuesday of every month in a monthly recurrence rule, and the second Tuesday of every year in a yearly recurrence rule. A day of the week with a week number of 0 ignores its week number.

class EKRecurrenceEnd

The EKRecurrenceEnd class defines the end of a recurrence rule defined by an EKRecurrenceRule object. The recurrence end can be specified by a date (date-based) or by a maximum count of occurrences (count-based). An event which is set to never end should have its EKRecurrenceEnd set to nil.

class EKRecurrenceRule

The EKRecurrenceRule class is used to describe the recurrence pattern for a recurring event.

class EKReminder

An instance of the EKReminder class represents a reminder added to a calendar in the Event Kit framework.

class EKSource

An instance of the EKSource class represents the account that a calendar belongs to. You do not create instances of this class. You retrieve EKSource objects from an EKEventStore object. Use the sources property to get all the EKSource objects for an event store, and use the methods in this class to access properties of the source object.

class EKStructuredLocation

The EKStructuredLocation class specifies a geofence that can be used to trigger the alarm of a calendar item.


struct EKCalendarEventAvailabilityMask

A bitmask indicating the event availability settings that the calendar can support.

struct EKEntityMask

A bitmask of EKEntityType for specifying multiple entities at once.

See Also