If you keep a calendar on a Facebook Page, and wish to regard it as the authoritative source for the events on that calendar, then you can use the elmcity service to synthesize an iCalendar feed from that Facebook Page for use elsewhere. But what if you want things the other way around? That’s the question that came up during Saturday’s workshop1. Several folks asked whether calendars they maintain authoritatively elsewhere can syndicate into Facebook. It’s something I’ve been meaning to enable, so I looked into it today.

I’ve mocked up a simple mechanism that you’d use to identify an iCalendar feed and a Facebook Page that you control, and then tell the elmcity service it’s allowed to inject events from the iCalendar feed into your Facebook Page. My notion was that you’d only need to use this mechanism once, to hook things up. Thereafter the elmcity service would sync the iCalendar feed to the Facebook Page on some regular schedule.

In order to do that, though, the elmcity service would need to hold onto the access token that it got from Facebook. The needed permissions are: manage_pages (so the elmcity service can update the Facebook Page), create_event (so it can create events on the Facebook Page), and offline_access (so the elmcity service can keep updating the Facebook Page without asking you). The last of these, offline_access, is a very powerful privilege, arguably too powerful, and sure enough it’s going away in a few weeks.

What I think this means is that it will still be possible to sync from an iCalendar feed to a Facebook Page, but that the owner of the Facebook Page will need to be notified periodically (every 60 days, it seems) to reauthorize the service that does the synchronization. Have I got that right? If so it’ll be awkward, but I won’t really be able to complain. I agree that users should periodically review the powers they’ve granted to third-party apps and services.


1 Here’s the template for the workshop. If you’d like one to happen in your city or town, and if you’re somebody who can bring the right group of community leaders into the room, I’d like to hear from you.