Evite to Google Calendar Greasemonkey Script
20 Aug 2006I've been using Google Calendar for a while now. It's not perfect, since I can't sync it with my home and work Outlook calendars. That would be perfect (have GCal do a bi-directional sync with Outlook), but in the interim, the fact that I can have my calendar send me SMS alerts and have it automagically pick up calendar items from GMail are enough to make it worthwhile for me.
The only annoying thing has been the fact that Evite (which is still really widely used) doesn't have a "add this event to your Google Calendar" link in their interface, and I'm guessing, probably never will, as GCal has some Evite-like functionality, and Evite probably views that potential loss of ad revenue as too big of a risk. I won't debate the validity of that argument, but simply say that I was getting frustrated at having to hand copy events from Evite to GCal.
I'd remember that I'd always want to write my own Greasemonkey script. For those unfamiliar with Greasemonkey, it's a Firefox extension that allows you to insert content/functionality into an existing website. For instance, until Gmail added a delete button (a ridiculous UI oversight), there were numerous Greasemonkey scripts that let you add your own delete button. Pretty cool stuff. There's thousands of scripts out there, most of which are just designed to increase the usability/functionality of some of the most popular web sites.
So I started hacking. It took me a while to get my brain back up-to-speed on Javascript, and then it took me even more time to work through all the hoops I needed to in order to get the info out of the Evite interface and into one that Google Calendar would like. After a few hours of hacking, my crude code was working. I had a nice link in the left-hand "tools box" on Evite, right under the "Add to Outlook" link that says "Add to Google Calendar." When you click it, you get a Google Calendar Add Event page, with the data pretty filled.
So, I thought I'd share the script, for those who have wanted to do the same thing. It's available right here:
Evite to Google Calendar Greasemonkey Script
If you take a look at the code, you'll notice is really, really, really hacky. I wasn't quite smart enough to come up with an elegant way of translating the human friendly Evite time to less human friendly Google Calendar URL time. I tried some of the built-in Javascript UTC time conversion functions, but they weren't having any of it. So I hacked my way around it.
I've already noticed one bug -- if you don't have a defined start and end time, it won't create the link at all. I'm not sure how I'll handle that (probably check to see if there's a "to", and if so, define the end time), but for now, it'll cover the majority of invites with a start and end time.
I think.
I'll gladly take any suggestions, improvements, bugfixes people want to send my way. Like I said, this is one of the hackiest hacks that ever hacked a hack, and it's very likely that much of what I did was stupider like a fox.
If you find it useful, please let me know. I'll at least use it until Evite decides to add it themselves.