I’m working on a legacy ASP.NET MVC application that leverages a custom Kendo Scheduler view (
We’ve noticed a recurring issue when editing recurring event series. Kendo DatePickers in the custom popup editor or other views end up displaying incorrect or “sticky” values, even though the underlying
The CustomInput have multiple datefields like below, but all DateFields seems to be prefilled by the date cpart of the recurrence rule. This seems to also prefill all other DateFields in the page that use DatePicker component.

TestScheduler
, extending Scheduler<ISchedulerEvent>
).We’ve noticed a recurring issue when editing recurring event series. Kendo DatePickers in the custom popup editor or other views end up displaying incorrect or “sticky” values, even though the underlying
<input>
element shows the correct value.The CustomInput have multiple datefields like below, but all DateFields seems to be prefilled by the date cpart of the recurrence rule. This seems to also prefill all other DateFields in the page that use DatePicker component.
Observed Behavior
When editing a recurring series (with a RecurrenceRule
like below):
DTSTART;TZID=Europe/London:20240626T090000
DTEND;TZID=Europe/London:20240626T170000
RRULE:FREQ=WEEKLY;BYDAY=TU
Question
Is this behavior expected when
RecurrenceRule
is applied, i.e., does Kendo’s Scheduler reuse a sharedRecurrenceEditor
instance or observable model across views?
<div id="DivMainContent" class="content-region">
<div class="popup-box-head accent-colour-background clearfix">
<div class="box-title normal-text left">
Select Start and End Times
</div>
<div class="button-funcs right">
<a href="javascript:void(0);" title="Save" id="repair-manage-diary-difference-btnadd">
Save
</a> | <a href="javascript:void(0);" title="Close" class="close">Close</a>
</div>
</div>
<div class="popup-box-main fieldset start-end-popup">
<form action="/read/data" id="manage-diary-difference-new-frm" method="post"><input data-val="true" data-val-required="The DiaryDetailId field is required." id="DiaryDetailId" name="DiaryDetailId" type="hidden" value="152" /><input id="Timestamp" name="Timestamp" type="hidden" value="AAAAAAADEjI=" /><input id="TimestampString" name="TimestampString" type="hidden" value="AAAAAAADEjI=" /><input data-val="true" data-val-required="The Id field is required." id="OwnerDiary_Id" name="OwnerDiary.Id" type="hidden" value="25" /><input id="ParentCalendar_TimestampString" name="ParentCalendar.TimestampString" type="hidden" value="AAAAAAACldk=" /><input data-val="true" data-val-required="The CalendarId field is required." id="ParentCalendar_CalendarId" name="ParentCalendar.CalendarId" type="hidden" value="3" /><input data-val="true" data-val-required="The MondayWorking field is required." id="ParentCalendar_MondayWorking" name="ParentCalendar.MondayWorking" type="hidden" value="True" /><input data-val="true" data-val-required="The TuesdayWorking field is required." id="ParentCalendar_TuesdayWorking" name="ParentCalendar.TuesdayWorking" type="hidden" value="True" /><input data-val="true" data-val-required="The WednesdayWorking field is required." id="ParentCalendar_WednesdayWorking" name="ParentCalendar.WednesdayWorking" type="hidden" value="True" /><input data-val="true" data-val-required="The ThursdayWorking field is required." id="ParentCalendar_ThursdayWorking" name="ParentCalendar.ThursdayWorking" type="hidden" value="True" /><input data-val="true" data-val-required="The FridayWorking field is required." id="ParentCalendar_FridayWorking" name="ParentCalendar.FridayWorking" type="hidden" value="True" /><input data-val="true" data-val-required="The SaturdayWorking field is required." id="ParentCalendar_SaturdayWorking" name="ParentCalendar.SaturdayWorking" type="hidden" value="False" /><input data-val="true" data-val-required="The SundayWorking field is required." id="ParentCalendar_SundayWorking" name="ParentCalendar.SundayWorking" type="hidden" value="False" /> <div id="error-diary-difference-overlap">
<span id="error-lable-manage-diary-difference-overlap" class="k-invalid-msg-custom">
</span>
</div>
<div class="line clearfix">
<label for="day-selected" class="field-text">
Select Day
</label>
<div class="fieldform">
<input data-uid="c0a5911c-7f0b-4e73-ba95-eaa9f2f733f2" data-val="true" data-val-range="Please enter Day" data-val-range-max="6" data-val-range-min="0" id="SelectedDays" name="SelectedDays" type="text" value="5" /><script>
kendo.syncReady(function(){jQuery("[data-uid='c0a5911c-7f0b-4e73-ba95-eaa9f2f733f2']").kendoDropDownList({"change":NameSpace.RepairManageTimeSlots.ChangeWorkingDay,"dataSource":[{"Key":1,"Value":"Monday"},{"Key":2,"Value":"Tuesday"},{"Key":3,"Value":"Wednesday"},{"Key":4,"Value":"Thursday"},{"Key":5,"Value":"Friday"}],"animation":false,"dataTextField":"Value","height":300,"autoBind":true,"dataValueField":"Key","rounded":"null"});});
</script>
</div>
</div>
<div class="line clearfix">
<label for="start-time" class="field-text">
Start Time
</label>
<div>
<input data-val="true" data-val-required="Please enter Start time" id="StartTime" name="StartTime" type="text" value="00:00" /><script>
kendo.syncReady(function(){jQuery("#StartTime").kendoTimePicker({"format":"HH:mm","min":new Date(2025,9,14,0,0,0,0),"max":new Date(2025,9,14,0,0,0,0),"interval":15});});
</script>
<span class="field-validation-valid" data-valmsg-for="StartTime" data-valmsg-replace="true"></span>
</div>
</div>
<div class="line clearfix">
<label for="end-time" class="field-text">
End Time
</label>
<div>
<input data-val="true" data-val-required="Please enter end time" id="EndTime" name="EndTime" type="text" value="23:59" /><script>
kendo.syncReady(function(){jQuery("#EndTime").kendoTimePicker({"format":"HH:mm","min":new Date(2025,9,14,0,0,0,0),"max":new Date(2025,9,14,0,0,0,0),"interval":15});});
</script>
<span class="field-validation-valid" data-valmsg-for="EndTime" data-valmsg-replace="true"></span>
</div>
</div>
<div class="line clearfix">
<label for="effective-from" class="field-text">
Effective from
</label>
<div class="fieldform">
<input data-val="true" data-val-required="Please enter Effective from" endDatePicker="EffectiveToDate" id="EffectiveFromDate" name="EffectiveFromDate" type="text" value="Wed, Oct 15 2025" /><script>
kendo.syncReady(function(){jQuery("#EffectiveFromDate").kendoDatePicker({"change":NameSpace.RepairManageDiaryDifferences.startChangeCalendar,"open":Helpers.DatePicker.calendarOpen,"format":"ddd, MMM dd yyyy","parseFormats":["dd/MM/yyyy","ddd, MMM dd yyyy"],"min":new Date(1900,0,1,0,0,0,0),"max":new Date(2099,11,31,0,0,0,0)});});
</script>
<span class="field-validation-valid" data-valmsg-for="EffectiveFromDate" data-valmsg-replace="true"></span>
</div>
</div>
<div class="line clearfix">
<label for="effective-to" class="field-text">
Effective to
</label>
<div class="fieldform">
<input id="EffectiveToDate" name="EffectiveToDate" startDatePicker="EffectiveFromDate" type="text" value="Tue, Oct 21 2025" /><script>
kendo.syncReady(function(){jQuery("#EffectiveToDate").kendoDatePicker({"change":NameSpace.RepairManageDiaryDifferences.endChangeCalendar,"open":Helpers.DatePicker.calendarOpen,"format":"ddd, MMM dd yyyy","parseFormats":["dd/MM/yyyy","ddd, MMM dd yyyy"],"min":new Date(1900,0,1,0,0,0,0),"max":new Date(2099,11,31,0,0,0,0)});});
</script>
<span class="field-validation-valid" data-valmsg-for="EffectiveToDate" data-valmsg-replace="true"></span>
</div>
</div>
<div class="line clearfix">
<label for="effective-to-date" class="field-text">
Effective to date js
</label>
<div class="fieldform">
<input id="TestDate" name="TestDate" type="text" />
<script>
kendo.syncReady(function () {
jQuery("#TestDate").kendoDatePicker({
"format": "ddd, MMM dd yyyy",
"parseFormats": ["dd/MM/yyyy", "ddd, MMM dd yyyy"],
"min": new Date(1900, 0, 1, 0, 0, 0, 0),
"max": new Date(2099, 11, 31, 0, 0, 0, 0),
"change": function (e) {
console.log("On Change of date picker");
console.log(e);
e.preventDefaut();
var value = this.value();
console.log(value);
}
});
});
</script>
<span class="field-validation-valid" data-valmsg-for="TestDate" data-valmsg-replace="true"></span>
</div>
</div>
<div class="line clearfix">
<label for="notes" class="field-text">
Comments
</label>
<div class="fieldform">
<input id="Notes" name="Notes" type="text" value="" />
</div>
</div>
</form> </div>
</div>
<div id="DivMessage_AppointmentOutsite" style="display: none" class="content-region">
<div class="popup-box-head accent-colour-background clearfix">
<div class="box-title normal-text left">
Confirm
</div>
<div class="button-funcs right">
<a id="btnClose-appointmentOutside" href="javascript:void(0);" title="Close">Close</a>
</div>
</div>
<div id="message-content" class="popup-box-content">Message.</div>
<div class="YNButton clearfix" id="buttons-message">
<button id='btnOk-appointmentOutside' type="button" title="Ok" class="active-background active-text">
Ok
</button>
</div>
</div>
<div id='hiddenDiv1760456443763' style='display:none'></div>