New to Telerik UI for ASP.NET AJAXStart a free 30-day trial

Populating the Recurrence Rule

The recurrence editor can be populated either from a RecurrenceRule object or from a string.

C#
	     
	
RecurrenceEditor1.RecurrenceRule = new DailyRecurrenceRule(1, range);
// or
RecurrenceEditor1.RecurrenceRuleText = storedRule;
				

The following examples show how different rules can be generated in FormCrated event of the Scheduler.

HourlyRecurence:

C#
	     
	
protected void RadScheduler1_FormCreated(object sender, SchedulerFormCreatedEventArgs e)
{
	if (e.Container.Mode == SchedulerFormMode.AdvancedInsert)
	{
		RecurrenceEditor recurrenceEditor = e.Container.FindControl("RecurrenceEditor") as RecurrenceEditor;
		  //Creating a hourly Recurrence rule
		int interval = 1;
		RecurrenceRange range = new RecurrenceRange();
		range.Start = DateTime.Now;
		range.EventDuration = TimeSpan.FromMinutes(30);
		range.MaxOccurrences = 3;
		recurrenceEditor.RecurrenceRule = new HourlyRecurrenceRule(interval, range);

	}
}

DailyRecurence:

C#
//Creating a daily Recurrence rule
int interval = 1;
RecurrenceRange range = new RecurrenceRange();
range.Start = DateTime.Now;
range.EventDuration = TimeSpan.FromHours(1);
range.MaxOccurrences = 3;
recurrenceEditor.RecurrenceRule = new DailyRecurrenceRule(interval, range);
//RecurrenceDay rd = RecurrenceDay.WeekDays;
//recurrenceEditor.RecurrenceRule = new DailyRecurrenceRule(rd, range);

WeeklyRecurence:

C#
//Creating a Weekly Recurrence rule
int interval = 2;
RecurrenceRange range = new RecurrenceRange();
range.Start = DateTime.Now;
range.EventDuration = TimeSpan.FromMinutes(30);
range.MaxOccurrences = 3;
RecurrenceDay recurrenceDay = RecurrenceDay.Wednesday;
//To set multiple recurrence days, a bitwise mask should be used
//RecurrenceDay recurrenceDay = RecurrenceDay.Monday | RecurrenceDay.Wednesday | RecurrenceDay.Friday;
recurrenceEditor.RecurrenceRule = new WeeklyRecurrenceRule(interval, recurrenceDay, range);
//DayOfWeek startDayOfWeek = DayOfWeek.Tuesday;
//recurrenceEditor.RecurrenceRule = new WeeklyRecurrenceRule(interval, recurrenceDay, range, startDayOfWeek);

MonthlyRecurence:

C#
//Creating a monthly Recurrence rule
int interval = 1;
int dayOrdinal = 2;
RecurrenceRange range = new RecurrenceRange();
range.Start = DateTime.Now;
range.EventDuration = TimeSpan.FromMinutes(30);
range.MaxOccurrences = 3;
recurrenceEditor.RecurrenceRule = new MonthlyRecurrenceRule(dayOrdinal, interval, range);
//RecurrenceDay DayOfWeekMask = RecurrenceDay.Monday;
//recurrenceEditor.RecurrenceRule = new MonthlyRecurrenceRule(dayOrdinal, DayOfWeekMask, interval, range);

YearlyRecurence:

C#
//Creating a yearly Recurrence rule
int dayOrdinal = 2;
RecurrenceRange range = new RecurrenceRange();
range.Start = DateTime.Now;
range.EventDuration = TimeSpan.FromMinutes(30);
range.MaxOccurrences = 3;
RecurrenceMonth month = RecurrenceMonth.June;
recurrenceEditor.RecurrenceRule = new YearlyRecurrenceRule(month, dayOrdinal, range);
//RecurrenceDay dayOfWeek = RecurrenceDay.Monday;
//recurrenceEditor.RecurrenceRule = new YearlyRecurrenceRule(dayOrdinal, month, dayOfWeek, range);

The recurrence rule can be created and directly added as a property of an Appointment as shown in the code:

C#
protected void RadButton1_Click(object sender, EventArgs e)
{
	Appointment newAppointment = new Appointment();
	newAppointment.Subject = RadTextBox1.Text;
	newAppointment.Start = DateTime.Now;
	newAppointment.End = DateTime.Now.Add(TimeSpan.FromHours(1));
	int interval = 1;
	RecurrenceRange range = new RecurrenceRange();
	range.Start = newAppointment.Start;
	range.EventDuration = newAppointment.End-newAppointment.Start;
	range.MaxOccurrences = 3;
	RecurrenceRule newDayly = new DailyRecurrenceRule(interval, range);
	newAppointment.RecurrenceRule = newDayly.ToString();

	RadScheduler1.InsertAppointment(newAppointment);
	RadScheduler1.Rebind();
}