Well.. I'd go for a CiscoIPPhoneImageFile if possible for the actual display part.. it's the most flexible way and you could even have display areas that are links so that you can drill down into individual calendar items.
Then there's the question of which calendar to display... a users? If so, tie it to extension mobility? Or is it a shared calendar that shows room reservation?
Then you need to look into the Exchange 2003 SDK to see the various ways there are to access a calendar. Personally I'm particular to WebDAV because it has no dependencies on Exchange (it's basically regular HTTP POST requests.. so you might be able to use your favorite framework to send such requests.. e.g. the xmlhttp or the apache httpclient (with a little overriding.. that's the route I went since I'm using Java)) but there is a handful of different APIs that might be more or less suited to your environment and chosen programming language.
Then you use your chosen API to access the chosen calendar, and build your PNG image for display on the screen and return a CiscoIPPhoneImageFile element with a link to the PNG and whatever link areas you see fit.