I guess you want to implement this functionality in web service scenario. If so I would suggest using the appointment insert method of your custom provider. Instead of inserting the appointment in the standard way you have to do the following things:
- Retrieve the appointment recurrence rule, parse it and find all occurring appointments. This could be achieved using the RecurrenceRule class and its methods as shown in the code snippet
RecurrenceRule rule = RecurrenceRule.TryParse(appointmentToInsert.RecurrenceRule);
IEnumerable<DateTime> ocurrences = rule.Occurrences;
//iterate through the collection and add each of those date time objects as separate appointment record
- In order to be able to edit and delete the entire series of appointment I would suggest adding an additional column to appointment data table. It should indicate the recurrence series id and once an appointment is edited you will edit only this appointment instance or find all appointments from the current recurrence series and modify all of them. The tricky part is to know on the server whether the user wants to edit only the current occurrence or the entire series. In order to send this information to the server please use this help article.
- An easy way to determine whether the user want to edit the entire series or the current occurrence only is to use the OnClientAppointmentEditing client-side event as shown here.
- The last thing in this scenario is to make all appointments part of this series an master appointment in the get appointments method.
apt.RecurrenceState = RecurrenceState.Master;
Please note that this is custom scenario which is not supported by the RadScheduler control so you might face some unexpected behavior .
Out of the box the RadScheduler handles the recurring appointments in quite different way using the master appointment recurrence rule. Only the master appointment is added as separate record in the data base and its occurrences are generated on the fly.
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.