UK and Irish time issues, and displaying a third day in Konfabulator PIM Overview widget

Nov 30th, 2005   2:22 am

The title says it all really, but I’ve recently wanted to use Konfabulator‘s PIM Overview widget for more than just displaying my Tasks. I’ve found, though, that it was completely unusable for my Appointments (from Outlook), up to v1.1.4 at least. So I dug deeper, such is the beauty of open-source and widgets.

The first problem was that the code was passing a US format date (mm/dd/yyyy) rather than the date my Outlook expected (dd/mm/yyyy), being on a UK/Irish localised machine. So I’ve fixed that in Patch 1 below. The second problem is PIM Overview’s handling of daylight savings time. The date being sent back from the start date query, on a given Appointment, to Outlook, for an all-day appointment/event was in GMT. Outlook handle’s all-day appointments by setting the start date to midnight. Midnight in BST is actually 23:00 the day before in GMT, and for that reason PIM Overview was displaying the event on the day previous to it’s intended day.

So the hack was to add an hour to it. It’s not glamorous, and it will break as soon as we come out of DST, but I needed something that works now, you can take it or leave it! Hopefully Yahoo! will fix this up before then. So in Patch 1, I’ve change the date format from US to UK, where it was hard-coded in the initial Outlook appointment query, and I’ve added an hour to compensate for the broken DST handling. I don’t have time to fix up proper date format and DST issues (so it really is a short-term hack only), but I see there is a good deal of Time Zone handling in there already, so I’m hoping that’ll be fixed soon, and this patch can be ignored.

I didn’t stop there… I wanted to display 2 days ahead (rather than just Today and Tomorrow), or 3 days in total. There was no easy way to do this, so I just hacked the code (essentially copying existing code for the new 3rd day), which is in Patch 2. You can easily go further if you so desire. I don’t have time to add this as a configurable number of days, but it should be easy enough to do, if I do ever get some time.. in the mean time Patch 2 just adds the 3rd day.

Patch Downloads
First, and foremost, if you don’t know how to use diff/patch, you probably shouldn’t try this at home! I can give you Windows versions of the packaged Widget (with hacks) if you email me. Secondly, these patches are against v1.1.4 of the widget. The 2 patches are available for download:

  • Patch 1 – Fix All-day event and DST time issues. Apply this patch to Content/PIMp.kon
  • Patch 2 – Add 3rd day to Event/Appointment view. Apply this patch to Content/outlook.js