Facebook Events in Google Calendar, iCal etc

Despite all the extraneous quizzes and horoscope notifications that you get nowadays on Facebook, it still remains one of the better platforms for creating and organising events.
Whenever an event popped up I would manually add it into my calendar (iCal or Google Calendar, depending on the mood). This was a rather tedious task, and inevitably events get forgotten. This post by Tarek and this post was brought to my attention and goes through how to add the Facebook events to your calendar.
The problem is that the calendar programs we love can’t read the private events, and just shows the event as “busy”.
This complicated PHP script method fixes it, but it seems daunting and scary at best.
There is a better way though, and that is through the magic of Yahoo Pipes.

1. Go to your facebook events page and click on “Export Events” at the bottom of the page. (apparently in the new facebook layout as of Feb 2010, this isn’t there, will try to find a way around it once my facebook moves to the move layout)
2. right-click on the fancy link facebook has given us and “copy” the link.

3. Create an account at Yahoo Pipes and “create a pipe”.
4. From the left bar, drag the “Fetch Feed” module and paste your facebook event url in.
5. drag the Operators>”Regex” Module and connect the Fetch Feed and Regex module by drawing a line from the circles at the edges of the module.
6. In the Regex Module, clicking on the the “in:” field, should show the option of “item.class“. click it.
7. Enter “PRIVATE” in the ‘replace:’ field and “PUBLIC” in the ‘with:’ field.

8. Join the Regex module to the Pipe output.
9. Save and ‘run pipe’.

10. Click on ‘More Options’ and right click on ‘Get as iCal’
11. paste the URL into your favourite calendar application!
12. Profit?

    • Ian
    • May 31st, 2010 5:32pm

    Brilliant post – I have been searching for a fix for this for a while now.

    Thank you very much!

    • Steve
    • July 14th, 2010 7:45pm

    Thanks for this but there’s one problem I’ve found. I sync my Google calendar with my iPhone calendar, and although the Facebook events show in my Google calendar using this method they won’t show on my iPhone. However if I duplicate the entry in Google it will then show, but I end up with two entries in Google and the annoying process of having to manually duplicate all Facebook entries. Any ideas how to fix this?


    • Steve
    • July 19th, 2010 8:00pm

    Works a treat, thank you so much!

    • andrew
    • March 14th, 2011 3:35am

    this is amazing – was looking for days and this solved it. thanks. havent used pipes before – is there a danger my event information can be accessed publicly now?

      • artr
      • March 14th, 2011 11:10pm

      not really, unless you share the pipes link or the facebook link you should be fine.

    • Anthony K
    • March 29th, 2011 1:19pm

    Thank you so much for publishing this workaround! I tried another way myself for a while, but had problems.

    Much appreciated

    • Brian
    • May 12th, 2011 4:06am

    Completed all step but when I click on “Get as ICal” is asks me so save a file (no url). I saves the file, then uploaded that file to Google Calendar but only the current events load. New events created after all these steps don’t add to the google calendar.

      • artr
      • May 12th, 2011 9:54am

      Hey Brian, Rather than left clicking on the link, you need to right click and copy the url that’s given, then paste it in to Google Calendar/Yahoo Pipes. Hope that helps.

    • Brian
    • May 13th, 2011 1:30am

    Ok so that link worked but no events show up on my calendar. I see the active calendar in google but no events on the calendar

      • artr
      • May 24th, 2011 12:18am

      Yeah, private events don’t show up any more. Even with the pipes hack. :(

      • artr
      • May 29th, 2011 12:24pm

      Try replacing the “webcal://” at the beginning of the facebook url with “http://”

    • Steve
    • June 21st, 2011 8:37pm

    Pipes work when replacing webcal:// with http:// as events show in Pipes, but they still won’t show in Google calendar despite it listed. Anyone had any luck with this?

    • Steve
    • June 21st, 2011 8:40pm

    Ignore me it’s working now!

    • Dean
    • September 12th, 2011 12:33am

    How would you use Pipes to change the timezone of the events in the Facebook ical before it gets sent to Google? Because all of the times are wrong

      • artr
      • September 12th, 2011 11:16am

      I’ve been trying to fix the timezone problem but all my attempts so far have looked like they work for a bit and then it turns out it doesn’t.

      Also facebook appends timezones to their events in a weird and wonderful (read: randomly unpredictable) way. Will post an update when I figure it out.

        • Chad
        • October 26th, 2011 7:36am

        Very cool! Didn’t know about Yahoo Pipes. Did you ever figure out why Yahoo Pipes messes-up the dates? I’m guessing that Google isn’t picking up the timezone and interpreting all dates as GMT.

    • Tester
    • October 1st, 2011 4:33am

    Did not work.

    Possible reason: “item.class” was not available as a choice. The choices were:

    item (greyed out)

    Here is the error message I got when I tried to run the pipe:

    Did not work. Got this error message:

    No pipe results for Facebook events.

    This Pipe ran successfully but encountered some problems:

    warning Error fetching site feed from http://www.facebook.com/ical/ No link discovered in response

    • Steve
    • January 13th, 2012 9:02pm

    This method has stopped working, However a genius has created this which works perfectly:


    • Anonymous
    • January 26th, 2012 5:45pm

    Still works!

    All the information have been extracted by the fetch module. Since the item.class has since been remove, there is no need for the regex module anymore. Just link the fetch module to the pipe output.

    • Graham
    • March 7th, 2012 6:14am

    I got this to work but I manually input “item.class” since it was not an option.

    Thanks for this workaround. Quite simple.

  1. No trackbacks yet.