To reproduce: please refer to the attached sample project. Edit some appointment by changing its name or time slot. In the AppointmentChanged event the changes are stored to database. However, if you restart the application you will notice that the changes are not saved at all. Workaround: call the IEditableObject.EndEdit method for the affected record before saving the changes to the database. private void RadScheduler1_AppointmentChanged(object sender, AppointmentChangedEventArgs e) { IEditableObject editableObject = e.Appointment.DataItem as IEditableObject; if (editableObject!=null) { editableObject.EndEdit(); } SaveChanges(); }