When binding RadCalendar.AppointmentStyle to a view model property, the calendar doesn't use the initial value of the bound property. It will only update if you set the bound property after the view has loaded and let PropertyChanged notification do the work. See Ticket #1138902 for reproducible. Available in minor release 2018.1.405. It will also be available in the R2 2018 release.