1) You've now learned the importance of checking data before trying to use it.
2) Calendar seems to be a web control. If this is for ASP.NET you should really ask in the ASP.NET forum. There are of course some people that visit here that do some ASP.NET, but you have to hope they come by and see this.
3) The only thing I can suggest is doing a pop-up message letting you know when it is returning a null value so you might see what situations are causing it. Or if in a user enviroment have prompt them to reselect the date. If the object allows an escape or delete key that could be a problem. On the off chance you might make sure the Calendar object has focus before getting the date. I don't know that it will actually do anything, but couldn't hurt. Or...
From a VB.NET Windows Form perspective:
4) Use a DateTimePicker or a MonthCalendar if possible to return your date instead. I've never had that kind of problem with either of those.
-I hate Microsoft!
-Forever and always forward.
-My kingdom for a edit button!