I am glad to hear that you were able to achieve the desired result.
As for the accessing the RadScheduleView with the ParentOfType extension method, I am assuming that initially the control is not yet loaded in the visual tree. That said, it seems that you are accessing the RadScheduleView in order to get the viewmodel from its DataContext and check the appointments collection.
What I can suggest as an alternative is to to create a property inside the CustomAppointmentTemplateStyle class, which will hold the appointments collection instead. Then you can create the CustomAppointmentTemplateStyle object in code in a place where you also have access to the viewmodel and pass it the appointments. This way you would not need to wait for the RadScheduleView to load.
Progress is here for your business, like always. Read more
about the measures we are taking to ensure business continuity and help fight the COVID-19 pandemic.
Our thoughts here at Progress are with those affected by the outbreak.