As I've posted before, I will be going to the Microsoft PDC this year. Of course you want to prepare for such an event an make a rough draft planning for the sessions you're going to follow, because otherwise you might get lost in the 200+ session that are available.
Microsoft is helping us with this by providing a list of all sessions and abstracts at Session List. However this list is not extremely useful as it does not offer you a way to choose and select sessions you like . But they do offer the possibility on that URL to download the whole list as an Excel file.
Then I remembered a posting of Bert Ertman on the sucking JavaOne planner tools. I this posting he describes how he created a tool to convert an excel file to a vcs calender.
So I thought I'd use the famous .NET pattern of embrace & extend, and reuse his code (of course converted to C# ), to make a PDC 2005 version of the tool.
So what are the steps to get your schedule organized:
- Download the Session list excel file. This way you are guaranteed to have the latest updates.
- Download my tool (Binary, Source Code)
- Open the session list excel file and read through all the session that are listed. Throw away all lines for sessions you don't like, so you can reduce the number of sessions to import up front.
- Save the reduced list as xml using Excel.
- Run the PDC2005Planner tool and give the path to the xml file as a parameter. This will result in a file in the same location, but with a vcs extension.
- Use File->Import/Export in Outlook and choose to import a vcs file. Complete the wizard.
Completing step six will result in something like the picture below:
Now you have all the sessions you are interested in as appointments in Outlook, so you can go and Synchronize them to your PDA using ActiveSync.
So what's the "extend" part of this tool? First of all it's now in a cool .NET language . It would be a bad thing if people going to the PDC would need to have java on their system…
Second, I've improved the vCalender output in the sense that now the Room appears a the location, instead of in the summary. Furthermore, I've added the provided session descriptions and speakers to the description field of the meeting. Finally, I've placed all meetings in the category PDC2005, so that they can all be easily selected and removed from the Calendar of Outlook if you want to.
Technically, I've improved the tool by using a XmlDocument and then select all needed XmlNodes using XPath, instead of looping through all nodes in an XmlReader style approach, as was done in the java version. This reduced the code base a lot. One could argue that this approach is less scalable, because now the whole XmlDocument needs to be loaded. This might be true, but we are not dealing with > 10MB files here, and it is a client tool…
One session appointment now looks like the image below:
Some details on how the tool works:
- A session object represents the data of one session, and can serialize to a vCal event
- The Schedule class is responsible for creating the whole calender from a list of sessions
- The schedule also contains a function to loop through all relevant excel sheet rows and process each row into a session
- No extra stuff is needed, just the plain .NET framework
So happy planning and see you at the PDC!
Doesn’t quite work?
Error:System.FormatException: String was not recognized as a valid DateTime.
at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
at System.DateTime.Parse(String s, IFormatProvider provider, DateTimeStyles styles)
at System.DateTime.Parse(String s, IFormatProvider provider)
at RaimondB.Tools.PDC2005.Session.set_StartDate(String value)
at RaimondB.Tools.PDC2005.Schedule.ProcessRow(XmlNode row)
at RaimondB.Tools.PDC2005.Schedule.ProcessSchedule(XmlDocument doc)
at RaimondB.Tools.PDC2005.Program.Main(String args)