Fiddling: Outlook Calendar Adapter for Blogwave 0.3
Seeing as Addy was kind enough to include sample adapter code with BlogWave 0.3, my immediate thought was that a Calendar might be cool. Can o' worms, that. I fiddled with this for the last few nights, and I think I've hit the 80/20 point, so I've cleaned up the UI, plastered massive warnings on it, and now it's ready to be seen by anyone not seriously interested in using it.
It's not designed for unattended use; it uses the simplest possible Outlook automation - no profile selection, no mess, no fuss, as long as the logged on user is the calendar source. Um, and it mostly works at night. Mostly.
Disclaimer: I strongly recommend against using this adapter, for any purpose, ever.
Notes:
- Private appointments might be published. If you're even remotely worried about information leakage, don't use this adapter!
- I've tried to filter out any non-normal-priority items, but there are other considerations, like:
- I couldn't easily work out how to access the Label colour (sorry, color) using C# (part of the information leakage issue), so labeling something as Personal doesn't stop it being published.
- it does check the sensitivity field for any non-normal value
- I couldn't spot an easy way of persisting custom data from the XML document I passed back to Blogwave; I might work this out at some point. This means that the published information is, well, barren of extra metadata, and/or formatting. I briefly mucked around with CDATA, but couldn't reliably get it to stick to the feed on its way out.
- Trying to access the Body property always seemed to trigger the Outlook Security Dialog. So, no body!
- Either Outlook's date selection filtering logic is fairly loose, or I'm not doing it right (more likely) - don't be surprised if something later than the actual date range shows up.
Items I thought about but didn't/couldn't/might implement later:
- Picking a non-default Calendar folder. (Easiest, lowest-hanging fruit, if there's another revision, this may well be in it). So you can put all the specific appointments you want published in a different folder, then syndicate it.
- Alternatively, work out how to tell "Personal" from "Important" from "Business", etc...
- Some type of support for formatting and/or additional data in the RSS <description/> entry. More metadata is needed to describe an appointment, I feel. (mental note: I didn't try attribution of the RSS items, cos I assumed that RSS.Net would either dislike it or destroy it - need to check that assumption).
- Utterly And Totally Enforced Date Range constraints. Another probably-will-do.
Download: OLCalendar.zip . Unzip into the BlogWave Adapters folder, restart Blogwave if it's running, and it should be good to go.