The key here is to call DataBind() in the EventMove event handler. You need to send a fresh set of events after every change.
The general EventMove handler scheme is as follows:
if (changeIsToBeMade) {
updateTheDatabase();
DayPilotCalendar1.DataSource = loadEvents();
DayPilotCalendar1.DataBind();
DayPilotCalendar1.Update(); // required for CallBacks
}
else {
// do nothing
}
The BeforeEventRender is than called for every event in the DataSource.