What is RecurrenceRule in the Schedule control?
The RecurrenceRule is a string value, that contains the details of the recurrence appointments like repeat type - daily/weekly/monthly/yearly, how many times it needs to be repeated, the interval duration and also the time period to render the appointment, etc.,
RecurrenceRule has the following properties and based on this property value, the recurrence appointments are rendered in the Schedule control with its respective time period.
S. No | Property Name | Purpose |
1 | FREQ | Maintains the Repeat type value of the appointment. (Example: Daily, Weekly, Monthly, Yearly, Every week day) Example: FREQ=DAILY;INTERVAL=1 |
2 | INTERVAL | Maintains the interval value of the appointments. For example, when you create the daily appointment at an interval of 2, the appointments are rendered on the days Monday, Wednesday and Friday. (creates the appointment on all days by leaving the interval of one day gap) Example: FREQ=DAILY;INTERVAL=1 |
3 | COUNT | It holds the appointment’s count value. For example, when the recurrence appointment count value is 10, it means 10 appointments are created in the recurrence series. Example: FREQ=DAILY;INTERVAL=1;COUNT=10 |
4 | UNTIL | This property is used to store the recurrence end date value. For example, when you set the end date of appointment as 6/30/2014, the UNTIL property holds the end date value when the recurrence actually ends. Example: FREQ=DAILY;INTERVAL=1;UNTIL=8/25/2014 |
5 | BYDAY | It holds the “DAY” values of an appointment to render. For example, when you create the weekly appointment, select the day(s) from the day options (Monday/Tuesday/Wednesday/Thursday/Friday/Saturday/Sunday). When Monday is selected, the first two letters of the selected day “MO” is stored in the “BYDAY” property. When you select multiple days, the values are separated by commas. Example: FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE;COUNT=10 |
6 | BYMONTHDAY | This property is used to store the date value of the Month while creating the Month recurrence appointment. For example, when you create a Monthly recurrence appointment in the date 3, it means the BYMONTHDAY holds the value 3 and creates the appointment on 3rd day of every month. Example: FREQ=MONTHLY;BYMONTHDAY=3;INTERVAL=1;COUNT=10 |
7 | BYMONTH | This property is used to store the index value of the selected Month while creating the yearly appointments. For example, when you create the yearly appointment in the Month June, it means the index value for June month is 6 and it is stored in the BYMONTH field. The appointment is created on every 6th month of a year. Example: FREQ=YEARLY;BYMONTHDAY=16;BYMONTH=6;INTERVAL=1;COUNT=10 |
8 | BYSETPOS | This property is used to store the index value of the week. For example, when you create the monthly appointment in second week of the month, the index value of the second week (2) is stored in BYSETPOS. Example: FREQ=MONTHLY;BYDAY=MO;BYSETPOS=2;UNTIL=8/11/2014 |
9 | WKST | This property is used to store the start day value of a week. For example, when you render the workweek the “WKST” value is Monday. |
10 | EXDATE | EXDATE is used to hold the modified appointment date details (date value). For example, when you change the recurrence appointment under the date “6/19/2014”, then this date is added to the recurrence rule EXDATE field. “EXDATE” is also used to differentiate the edited occurrence of the recurrence series for some internal process while doing the “Edit Series or Delete series”. Example: FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;COUNT=10;EXDATE=6/18/2014,6/20/2014;RECUREDITID=1651 |
11 | RECUREDITID | This property contains Parent Id value of the edited appointment. It is used to communicate edited appointment occurrence with the parent recurrence appointment series. For example, when you edit the particular occurrence of the recurrence appointment series, the “RECUREDITID” is added to that appointment depicting its parent Id. Example: FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;COUNT=10;EXDATE=6/18/2014,6/20/2014;RECUREDITID=1651 |
Find the following RecurrenceRules possibilities available in the Schedule control while creating the recurrence appointment.
Possibility Type | Description | Examples |
Daily | Appointment is created with Ends Never | FREQ=DAILY; INTERVAL=1
|
Appointment is created with Ends After | FREQ=DAILY; INTERVAL=1; COUNT=5 | |
Appointment is created with Ends On | FREQ=DAILY; INTERVAL=1; UNTIL=12/26/2014 | |
Appointment is created with Every (Interval) | FREQ=DAILY; INTERVAL=2; COUNT=10 | |
Weekly | Appointment is created with Ends Never | FREQ=WEEKLY; INTERVAL=1; BYDAY=MO, WE, FR |
Appointment is created with Ends After | FREQ=WEEKLY; INTERVAL=1; BYDAY=TH; COUNT=10 | |
Appointment is created with Ends On | FREQ=WEEKLY; INTERVAL=1; BYDAY=MO; UNTIL=2/23/2015 | |
Appointment is created with selecting multiple day | FREQ=WEEKLY; INTERVAL=2; BYDAY=MO, WE, FR; COUNT=10 | |
Every Day | Appointment is created with Ends Never | FREQ=WEEKLY; BYDAY=MO, TU, WE, TH, FR |
Appointment is created with Ends After | FREQ=WEEKLY; BYDAY=MO, TU, WE, TH, FR; COUNT=10 | |
Appointment is created with Ends On | FREQ=WEEKLY; BYDAY=MO, TU, WE, TH, FR; UNTIL=2/16/2015 | |
Every day edited Appointment Ends On | FREQ=WEEKLY; BYDAY=MO, TU, WE, TH, FR; UNTIL=2/16/2015; EXDATE=12/16/2014; RECUREDITID=66 | |
Monthly | Appointment is created with selected date Ends Never | FREQ=MONTHLY; BYMONTHDAY=15; INTERVAL=1 |
Appointment is created with selected date and Ends After | FREQ=MONTHLY; BYMONTHDAY=16; INTERVAL=1; COUNT=10 | |
Appointment is created with selected date and Ends On | FREQ=MONTHLY; BYMONTHDAY=17; INTERVAL=1; UNTIL=2/25/2015 | |
Appointment is created with selected day Ends Never | FREQ=MONTHLY; BYDAY=FR; BYSETPOS=2; INTERVAL=1 | |
Appointment is created with selected day and Ends After | FREQ=MONTHLY; BYDAY=WE; BYSETPOS=4; INTERVAL=1; COUNT=10 | |
Appointment is created with selected day and Ends On | FREQ=MONTHLY; BYDAY=FR; BYSETPOS=4; INTERVAL=1; UNTIL=3/6/2015 | |
Yearly | Appointment is created with selected date and month Ends Never | FREQ=YEARLY; BYMONTHDAY=15; BYMONTH=12; INTERVAL=1 |
Appointment is created with selected date and month Ends After | FREQ=YEARLY; BYMONTHDAY=10; BYMONTH=12; INTERVAL=1; COUNT=10 | |
Appointment is created with selected date and month Ends On | FREQ=YEARLY; BYMONTHDAY=12; BYMONTH=12; INTERVAL=1; UNTIL=2/20/2015 | |
Appointment is created with selected day and month Ends Never | FREQ=YEARLY; BYDAY=FR; BYMONTH=12; BYSETPOS=3; INTERVAL=1 | |
Appointment is created with selected day and month Ends After | FREQ=YEARLY; BYDAY=TU; BYMONTH=12; BYSETPOS=3; INTERVAL=1; COUNT=10 | |
Appointment is created with selected day and month Ends On | FREQ=YEARLY; BYDAY=WE; BYMONTH=12; BYSETPOS=4; INTERVAL=1; UNTIL=3/4/2015 | |
Hi Laurel,
We have internally processed
in JS1 scheduler with value 5 to denote the “last” option in “repeat By” field
– which needs to be actually assigned with “-1”. We will change it as per the
iCal specifications in our next upcoming SP2 release.
In the mean-time, we would like to
request you to have a look at our JS2 recurrence editor, on which the iCal
specifications are followed and works as per your expectation specifying “-1”
value for “last” option in the “Repeat on” field.
Sample link - https://aspnetmvc.syncfusion.com/Schedule/RecurrenceRuleGenerator#/material
Regards,
Velmurugan
Hi, can you provide the RecurrenceRule to support for monthly recurring appointments on the last day of every month in the Flutter Calendar. Thanks, I can't find the solution in the docs.
Why is there is no BYSETPOS=-1?