Fixing Facebook to Google Calendar synchronization
Note: It’s fixed now. The project itself is still pretty cool
I recently managed to sync my Facebook events to my Google Calendar (and thusly to my Android phone). At first the task seemed simple, because Facebook offers you a link to export your events in iCal format, but once imported to Google Calendar all you can see from the events is a “busy/free” block, like this
Of course it won’t do at all, as you want to be able to see all of the
event details!
After some fiddling (with Fiddler) I saw that
the iCal events had a field called CLASS
, which was set to PRIVATE
on all of my Facebook events.
Facebook is probably using that field to signify which events are public and which are invite-only, like mine where.
Google Calendar must be interpreting the private
as an event which is
sensitive and cannot be fully shown - only the “busy/free” field.
I didn’t have the intention to find which one is using this field
“correctly”, but something had to be done. After editing the iCal with
notepad and modifying this field to PUBLIC
, the events showed up fine,
So I knew what I had to do.
I created another Yii application called
“eventFix” that helps users
feed their Facebook events url and get a proxy url - one that goes
through my application which replaces all instances of CLASS:PRIVATE
to CLASS:PUBLIC
. I’m using it already!
If you’re worried about me sniffing your precious events, I can probably tell you that I don’t really care / have the db space for that. But if you’re uncomfortable using this applications for that reason, don’t.
I’m sure other people have encountered the same problem and came up with their own solutions, and I’m sure some of those are better than mine. I don’t care, I did it for the practice.
Have fun syncing!