Wednesday, October 28, 2009

Google Calendar in Menu Bar OS X

Okay, so really, this post is almost exactly the same post as on theappleblog.com. However, their instructions won't get you the most functional calendar (the navigation is sketchy). So I thought I'd review how I was able to do this.

Do what? Well, today I got frustrated with the fact that iCal and Google calendar do not always play well. Specifically, on my Google calendar I have an all-day event every school day called "Assignments" which is a summary of what is due that day, and what lectures are being given. Because this event was created originally as a repeating event and later modified so that it was no longer a part of the series, it doesn't sync correctly with iCal. Actually, it did until about two days ago. Then something broke. So now, iCal merely has every "Assignment" event every school day, with nothing more than the generic template I used to set up the original event.

So, here was my setup: Google Calendar is my primary calendar. It syncs (along with GMail which no one told me is now push) with my iPhone. My Macbook Pro had iCal syncing with Google calendar. However, I don't like the interface of iCal, and didn't want to be bothered to browse to a new calendar each time I wanted to review my schedule. So I used iSlayer's Organized dashboard widget which seems to be the best way to access iCal quickly. And then to add events to iCal (which would then push to Google Calendar and then my phone) I would use a nice natural language parser widget QuickCal which recognizes phrases like "Dinner tomorrow with Jon at 3pm for 60 mins."

And then it all broke. To be honest, I had been having problems with the events I added through QuickCal making it from iCal to Google Calendar. It would give me an error and delete my event on the next sync. But as of two days ago, my repeating events refused to sync to iCal as separate events, so I threw it all out of the window. Now there's a gaping hole in my dashboard, and my dashboard is a whole lot less useful. Because this is what I have going on now.


Today I discovered the amazing world of Fluid and Site Specific Browsers. Basically, it is a stripped down browser window that is dedicated to one site. So now I have an icon for GMail, Google Reader, and Google Calendar. They even support badges. The only problem I have right now is that it lacks support for multitouch gestures.
So, that is all fine and dandy, and setting those up is pretty straight forward. Make sure you use "http://www.google.com/reader/" for your badges to work on reader. But I still hadn't solved the problem of having a quick reference to my schedule without going into Google Calendar. So here is how I made a menubar application for Google Calendar using the iPhone mobile version.

1. Download Fluid
2. Unpack, drag into your applications folder, and run.
3. Pick a name like "Menubar Cal" and use the URL "www.google.com/calendar/gp?source=mog&gl=us" (This is the only real step that differs from the link I used. The theappleblog article references a more generic mobile version that didn't give you any way to go back without right clicking and selecting back)
4. Use an icon from here.
5. Click create.
6. Launch your new creation.
7. Click on the "Menubar Cal" dropdown, and then "Convert to MenuExtra SSB..."
8. There you have it, a fully functional iPhone Google Calendar in your menu bar.

Tip for the Fluid apps: You may want to install a few userscripts by going clicking on the script icon in your app and then "Browse Userscripts.org" and searching for and installing:
-"Fluid Gmail Growl" - Gmail: Gives you grow notifications for new messages. Currently the only solution I have to get up to date gmail notifications since Google's notifier is quite laggy.
-"GMail without Ads" - Gmail: Self explanatory
-"Today's Date Dock Badge for Fluid" - Calendar (desktop verson): Adds a badge for the current date to your dock item.

You'll also want to go to Preferences for each app, and then Behavior Preferences, and check the checkbox for "Only hides the window" next to "Closing the Last Browser Window." This will let you Cmmd-W out of your Fluid apps, but keep the badges, growl notifications, and date badges coming.

Tip: Here are the URLS I used for my Fluid Apps:
http://www.gmail.com
http://www.google.com/calendar/render
http://www.google.com/reader/

UPDATE: I have now found a better solution. Instead use the URL "http://www.google.com/calendar/ig" which is the url for the iGoogle calendar widget. It displays a nice monthly calendar, shows you your agenda, formats your event notes with newlines (main complaint with the iphone version), and includes the equivalent of the QuickCal language parsing widget. Woot! Here's a screenshot.