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

# EKRecurrenceRule

A class that describes the pattern for a recurring event.

```
class EKRecurrenceRule
```

## Overview

After you create a recurrence rule, assign it to an event with the method of [`EKEvent`](/documentation/EventKit/EKEvent).

Recurrence rules can have an end, represented by an [`EKRecurrenceEnd`](/documentation/EventKit/EKRecurrenceEnd) object. The end can be based on a specific date or a maximum number of occurrences.

> Note:
> It is currently not possible to directly modify an `EKRecurrenceRule` or any of its properties. This functionality is achieved by creating a new `EKRecurrenceRule` and setting an event or reminder to use the newly created rule.

## Topics

### Creating a Basic Recurrence Rule

[`EKSpan`](/documentation/EventKit/EKSpan)

An object that indicates whether modifications should apply to a single event or all future events of a recurring event.

[`init(recurrenceWith:interval:end:)`](/documentation/EventKit/EKRecurrenceRule/init(recurrenceWith:interval:end:))

Initializes and returns a simple recurrence rule with a given frequency, interval, and end.

### Creating a Complex Recurrence Rule

[`init(recurrenceWith:interval:daysOfTheWeek:daysOfTheMonth:monthsOfTheYear:weeksOfTheYear:daysOfTheYear:setPositions:end:)`](/documentation/EventKit/EKRecurrenceRule/init(recurrenceWith:interval:daysOfTheWeek:daysOfTheMonth:monthsOfTheYear:weeksOfTheYear:daysOfTheYear:setPositions:end:))

Initializes and returns a recurrence rule with a given frequency and additional scheduling information.

### Accessing Recurrence Rule Properties

[`EKRecurrenceFrequency`](/documentation/EventKit/EKRecurrenceFrequency)

The frequency for recurrence rules.

[`calendarIdentifier`](/documentation/EventKit/EKRecurrenceRule/calendarIdentifier)

The identifier for the recurrence rule’s calendar.

[`recurrenceEnd`](/documentation/EventKit/EKRecurrenceRule/recurrenceEnd)

Indicates when the recurrence rule ends.

[`frequency`](/documentation/EventKit/EKRecurrenceRule/frequency)

The frequency of the recurrence rule.

[`interval`](/documentation/EventKit/EKRecurrenceRule/interval)

Specifies how often the recurrence rule repeats over the unit of time indicated by its frequency.

[`firstDayOfTheWeek`](/documentation/EventKit/EKRecurrenceRule/firstDayOfTheWeek)

Indicates which day of the week the recurrence rule treats as the first day of the week.

[`daysOfTheWeek`](/documentation/EventKit/EKRecurrenceRule/daysOfTheWeek)

The days of the week associated with the recurrence rule, as an array of [`EKRecurrenceDayOfWeek`](/documentation/EventKit/EKRecurrenceDayOfWeek) objects.

[`daysOfTheMonth`](/documentation/EventKit/EKRecurrenceRule/daysOfTheMonth)

The days of the month associated with the recurrence rule, as an array of `NSNumber` objects.

[`daysOfTheYear`](/documentation/EventKit/EKRecurrenceRule/daysOfTheYear)

The days of the year associated with the recurrence rule, as an array of `NSNumber` objects.

[`weeksOfTheYear`](/documentation/EventKit/EKRecurrenceRule/weeksOfTheYear)

The weeks of the year associated with the recurrence rule, as an array of `NSNumber` objects.

[`monthsOfTheYear`](/documentation/EventKit/EKRecurrenceRule/monthsOfTheYear)

The months of the year associated with the recurrence rule, as an array of `NSNumber` objects.

[`setPositions`](/documentation/EventKit/EKRecurrenceRule/setPositions)

An array of ordinal numbers that filters which recurrences to include in the recurrence rule’s frequency.

[`EK_LOSE_FRACTIONAL_SECONDS_DO_NOT_USE()`](/documentation/EventKit/EK_LOSE_FRACTIONAL_SECONDS_DO_NOT_USE())

A deprecated function.



---

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)
