Just as an update, I was able to get my requested functionality working.
Basically, in the ConflictCheckingDragDropBehavior class, I can access the special slots using this code to get the ScheduleView:
RadScheduleView scheduleViewControl = (RadScheduleView)state.ServiceProvider.GetService<
I can then use the special slots collection to find if the dragged appointment goes over a special slot. Followed by my custom handling of whether the appointment can be dropped or not.
It still would be cleaner to know if the slot is a special slot or read only slot without having to use the service provider, but for now, this will work for me. Hopefully others can use this also.