Thanks - that's what I needed.
Unfortunately, the appointment in the DragDropState is not the correct appointment that I need to edit so I have to employ another hack to get it (this is due to the ScheduleView creating several copies of the appointment when using the dialog, which can be seen if a breakpoint is added to the CopyFrom method of the Appointment).
I've included the code below in case anyone else has the same issue:
public override void Drop(Telerik.Windows.Controls.DragDropState state)
var scheduleView = state.ServiceProvider.GetService<
<IAppointment>>() as RadScheduleView;
var appointments = scheduleView.AppointmentsSource as ObservableCollection<
// assume that we are dealing with the last added appointment
var lastAppointment = appointments.Last();