To reproduce: Add a Resource to RadScheduler: Resource res = new Resource(); res.Id = new EventId(199); res.Name = "John Doe"; radScheduler1.Resources.Add(res); Create a new appointment and set the resource: Appointment app = new Appointment(); app.Start = DateTime.Now; app.End = app.Start.AddHours(1); app.BackgroundId = 3; app.ResourceId = new EventId(199); radScheduler1.Appointments.Add(app); Subscribe to the CollectionChangedEvent: void Appointments_CollectionChanged(object sender, Telerik.WinControls.Data.NotifyCollectionChangedEventArgs e) { if (e.Action == Telerik.WinControls.Data.NotifyCollectionChangedAction.ItemChanged) { Debug.WriteLine("Property Changed = " + e.PropertyName); } } Run the application, open the appointment and click ok. You will notice that the event will fire. It should not fire since the EventId is the same. Workaround: Create a custom appointment following this article: http://www.telerik.com/help/winforms/scheduler-appointments-and-dialogs-adding-a-custom-field-to-the-editappointment-dialog.html and override the ResourceId property: public class App : Appointment { public override EventId ResourceId { get { return base.ResourceId; } set { if (!Object.Equals(this.ResourceId, value)) { base.ResourceId = value; } } } }