Using CygWin wget and Dropbox to Sync Yahoo! Calendar to Google
UPDATE: While this actually does work, unfortunately Google has a long-standing bug which keeps them from properly updating your calendar from a subscribed calendar.
Although I have tried, in vain, for years to tear my wife away from Yahoo!, I have been entirely unsuccessful. She just can’t part with that oh-so-familiar (and cluttered) UI. Nor can she bring herself to part ways with sub par features and overly aggressive in-your-face Flash ads. So, in quiet desperation, I have been forced to synchronize her Yahoo! Calendar with my Google Calendar in order to keep abreast of our household schedule.
Desperate to keep it’s user base from discovering the more responsive and feature rich offerings of it’s “competitors”, Yahoo, of course, adds difficulty and “bugs” to every compatibility feature that they offer. As such, sharing her Yahoo! calendar with Google never works correctly. There is some speculation on the web that Yahoo! is intentionally rejecting requests from Google in order to keep their user’s trapped using a calendar system in which they have invested many months or years. Accessing that calendar from Google would make “the switch” all the more painless.
I have resorted, until recently, to manually downloading the appropriate ICS file to my laptop and uploading it to Google. This works, but lacks the obvious…no automatic updates. I have to repeat the process periodically.
Now, I have been a long time user of Dropbox…it is superb at certain things, and I have tinkered with cygwin over the years for various tasks. However, it wasn’t until this morning that the solution to my problem came to me…use wget to download the appropriate ICS file to my Public Dropbox folder, then use the public link from dropbox as the source for a subscribed Google Calendar. Then schedule this to run periodically, and Voilla!!! automatically updated Yahoo! calendars in Google.
The first piece of the puzzle is a bash script which will download the ICS file to dropbox.
cyggetics.sh becomes…
wget -O /cygdrive/c/DropBoxPath/Public/ycal.ics http://calendar.yahoo.com/###YOUR#INFO#HERE###/ycal.ics?id=ID
The ICS link for your calendar is available from within the Yahoo! Calendar interface.
Then, I write a simple CMD script and schedule it to run hourly, or so, from my Windows 7 laptop.
CygGetICS.cmd becomes…
@echo off
C:
chdir C:\cygwin\bin
bash –login -i -c “/cygdrive/c/cyggetics.sh”
This tells the bash shell to execute the appropriate commands.
QED
Note: This obviously could be accomplished with an appropriate windows version of wget, but I found the cygwin approach making me think of all sorts of other possibilities.