Just checked out this code, very helpful !
Concerning the "My background color changes and doesn't come back" comment, here is what I did :
Protected Sub Main_Calendar_DayRender(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DayRenderEventArgs) Handles Main_Calendar.DayRender
Dim onmouseoverStyle As String = "this.style.backgroundColor='#D4EDFF'"
Dim DayColor As String = "this.style.backgroundColor='#99CCCC'"
Dim BackColor As String = "this.style.backgroundColor='White'"
If e.Cell.BackColor = Drawing.Color.FromArgb(153, 204, 204) Then
If Not e.Day.IsWeekend Then
e.Cell.Attributes.Add("onmouseover", onmouseoverStyle)
e.Cell.Attributes.Add("onmouseout", DayColor)
End If
Else
If Not e.Day.IsWeekend Then
e.Cell.Attributes.Add("onmouseover", onmouseoverStyle)
e.Cell.Attributes.Add("onmouseout", BackColor)
End If
End If
End Sub
I created as many variables as different colors on the calendar.
Then, with an "if" statement, I check the color of the day. If it's blue, it will become blue again on "mouseout", or white otherwise.
Hope this helped.