# Recurrence Rules

The [`recurrenceRule`](https://www.telerik.com/kendo-angular-ui-develop/components/scheduler/api/schedulermodelfields#recurrencerule) field defines when a repeating event occurs.

The field content is based on the [RFC5545 Internet Calendaring and Scheduling Core Object Specification (iCalendar) rule](https://tools.ietf.org/html/rfc5545#section-3.3.10) format. Each property is separated by a semicolon (`;`) character.

The following table lists all recurrence rules that are supported by the Scheduler:

| Recurrence Rule | Description                                                                                                                                                                                                                     | Value                                                | Example                                         |
| :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------- | :---------------------------------------------- |
| `FREQ`          | (Mandatory) Specifies the frequency of the occurrence.                                                                                                                                                                          | `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`     | `FREQ=DAILY`                                    |
| `INTERVAL`      | Specifies the intervals at which the recurrence rule repeats.                                                                                                                                                                   | A positive integer. Defaults to `1`.                 | `FREQ=DAILY;INTERVAL=4`                         |
| `UNTIL`         | Bounds the recurrence rule in an inclusive manner. If neither the `UNTIL`, nor the `COUNT` rule is present, the recurrence rule will be considered to repeat forever.                                                           | A valid `Date` string.                               | `FREQ=DAILY;UNTIL=2019-09-04T00:00:00.000Z`     |
| `COUNT`         | Defines the number of occurrences at which to range-bound the recurrence.                                                                                                                                                       | A positive integer number greater than `0`.          | `FREQ=DAILY;COUNT=2`                            |
| `BYHOUR`        | Defines a comma-separated list of hours of the day.                                                                                                                                                                             | An integer between `0` and `23`.                     | `FREQ=HOURLY;BYHOUR=2,4,6,8`                    |
| `BYDAY`         | Defines a comma-separated list of days of the week.                                                                                                                                                                             | `SU`, `MO`, `TU`, `WE`, `TH`, `FR`, `SA`             | `FREQ=DAILY;BYDAY=SA,SU`                        |
| `BYMONTHDAY`    | (Do not use it when the `FREQ` rule is set to `WEEKLY`.) Defines a comma-separated list of days of the month. Negative values represent backward counting.                                                                      | An integer between `1` and `31`, or `-31` to `-1`.   | `FREQ=DAILY;BYMONTHDAY=10,20,30`                |
| `BYYEARDAY`     | (Do not use it when the `FREQ` rule is set to `DAILY`, `WEEKLY`, or `MONTHLY`.) Defines a comma-separated list of days of the year. Negative values represent backward counting.                                                | An integer between `1` and `366`, or `-366` to `-1`. | `FREQ=YEARLY;BYYEARDAY=252`                     |
| `BYWEEKNO`      | (Use it only when the `FREQ` rule is set to `YEARLY`.) Defines a comma-separated list of [ordinals](https://en.wikipedia.org/wiki/Ordinal_number) which specify weeks of the year. Negative values represent backward counting. | An integer between `1` and `53`, or `-53` to `-1`.   | `FREQ=YEARLY;BYWEEKNO=36`                       |
| `BYMONTH`       | Defines a comma-separated list of months of the year.                                                                                                                                                                           | An integer between `1` and `12`.                     | `FREQ=YEARLY;BYMONTH=9`                         |
| `WKST`          | Specifies the day on which the workweek starts.                                                                                                                                                                                 | `SU`, `MO`, `TU`, `WE`, `TH`, `FR`, `SA`             | `FREQ=WEEKLY;BYDAY=TU,TH;INTERVAL=2;WKST=TH`    |
| `BYSETPOS`      | Defines a comma-separated list of values that corresponds to the `n`<sup>th</sup> occurrence within the set of recurrence instances.                                                                                            | A positive (`+n`) or negative (`-n`) integer.        | `FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2` |

## Suggested Links

* [Angular Scheduler Overview](https://www.telerik.com/kendo-angular-ui-develop/components/scheduler)
* [Data Binding](https://www.telerik.com/kendo-angular-ui-develop/components/scheduler/data-binding)
* [Editing](https://www.telerik.com/kendo-angular-ui-develop/components/scheduler/editing)
* [Timezones](https://www.telerik.com/kendo-angular-ui-develop/components/scheduler/timezones)
* [API Reference of the SchedulerComponent](https://www.telerik.com/kendo-angular-ui-develop/components/scheduler/api/schedulercomponent)
