Thanks for the reply, I originally used SpecialDays but because of the complexity of the highlighting it was much quicker and simpler to use the ElementRender event (I display 6 months worth of calendar and potentially hundreds of days of highlighting and multiple highlights per day)
The issue is not how to render the days but why the SelectionChanging changing event does not return the date that has caused the event to fire, rather it returns the date that is already selected. This would seem to make the event completely useless as there is no mechanism for determining whether the date about to be selected is valid or useful which is the main reason for a SelectionChanging event.
I just happen to be using it to select from the database information based on the upcoming selection but it could be just as likely that I might want to stop a user from selecting that date based on other logic and cancel the changing event. This would seem to me to be an error in the design of the SelectionChanging event.
I have got around the problem in what I consider a not very elegant but workable way, by determining the cell that was clicked and getting the date from that, see below
DateTime selDate = this.RadCalendar1.FocusedDate;
Point mouseLoc = this.RadCalendar1.PointToClient(Cursor.Position);
Telerik.WinControls.RadElement selElement = this.RadCalendar1.ElementTree.GetElementAtPoint(mouseLoc);
if (selElement != null && (CalendarCellElement)selElement is CalendarCellElement)
CalendarCellElement selCell = (CalendarCellElement)selElement;
selDate = selCell.Date;
This is now working OK.