The bedrock principle at the core of the elmcity project is: own your data, syndicate it into contexts that need it. This applies far more broadly than to calendars, but I’m focusing on calendars now because we all still struggle to make sense of various personal, professional, and public timelines, so everyone (I hope) can relate to the challenge and the opportunity.
For the sorts of calendars you see at elmcity.cloudapp.net, which represent schools, libraries, museums, music venues, sports clubs, and other organizations offering schedules of activities to which the public is invited, the application of the principle is as follows. Publish your calendar from a single canonical source as two streams of information. One is an HTML page for people to read and interact with on your own website. The other is an iCalendar (ICS) feed that can syndicate to other sites.
One popular way to publicize events, Facebook, doesn’t fit neatly into this model. For some organizations, a calendar on a Facebook page is the canonical source. I respect the choice to use Facebook in that way, and support it by enabling such calendars to syndicate from Facebook into other contexts. But I don’t recommend the choice.
Consider this link that appears on the Peterborough NH timeline for April 28:
Sat 09:00 AM Childhood Pop-Up Museum Peterborough Historical Society Museum and Archives
It’s nice that this event is able to show up in a public timeline for the Monadnock region, along with events from many other sources. But if you click the link … well, it depends. If you’re logged into Facebook you’ll see the details. Otherwise not.
The Peterborough Historical Society does publish the event on its own site, here it is, but there’s no iCalendar feed on the site. The only machine-readable calendar for the Peterborough Historical Society available on the web is the Society’s Facebook page. And while that page is on the web, it’s only fully available to the subset of the web formed by logged-in Facebook users.
What I want, and what I think everyone who promotes public events should want, is the inverse of that arrangement. I think we should put our public calendars on our own sites. And then, since Facebook is a wonderful tool for socializing our calendars — that is, discussing upcoming events, keeping track of who’s planning to attend — we ought to be able to syndicate from our own calendars into Facebook.
It’s doable, and I’ve prototyped a solution, but in light of an upcoming change in the way Facebook handles API access tokens I’m going to wait for the dust to settle before rolling it out. I’m told there may soon be a new mechanism that will simplify the authentication dance the elmcity service will need to perform in order to make this happen.
Meanwhile, though, I’ve implemented a variant of the idea. On Saturday a favorite local band, Jatoba, will be playing here in Keene at Waxy O’Connor’s. I found the event on the MonadnockNH music calendar, to which it had syndicated from two sources: Eventful.com and Waxy’s own calendar. I’m hoping some friends will want to join me there, and Facebook is a great way to alert them that I’m going. So I posted the event to my Facebook page.
Then I realized it was silly for me, or anyone, to have to retype data that’s available in machine-readable form. So I’ve expanded the elmcity service’s Add to calendar mechanism. Options were formerly Add to Google Calendar, Add to Hotmail Calendar, and Add to iCal (for generic iCalendar clients). Now there’s also Add to Facebook. When you see an event on an elmcity timeline that you’d like to socialize, it’s now just two clicks to pluck it from the timeline and announce it to your Facebook friends. It’s kinda cool, and it’s a nice warmup for the wholesale syndication I’m planning to do later.
Ownership of data and services based on data are separable concerns, and it’s crucial that we begin learning how to separate them. In this case the owner of the data about Jatoba’s appearance at Waxy O’Connor’s is Waxy O’Connor’s.
(An aside: You might argue that the owner of that data is really Jatoba, and that Waxy O’Connor’s could be syndicating from Jatoba’s site. That’s true. You might also argue that Waxy O’Connor’s doesn’t really own its calendar, Google does. That’s true too. Waxy O’Connor’s has no more of a contractual relationship with Google than it might with Facebook. But Waxy O’Connor’s does have a contractual relationship with its site provider, and that contract could include provision of a calendar service that puts Waxy O’Connor’s in charge of its own data. Likewise for Jatoba.)
(Another aside: Eventful and Waxy’s do not agree on the start time for Jatoba’s appearance. This is not uncommon. Eventful says 8PM, Waxy’s says 9PM. I’m going at 9PM because I regard Waxy’s as the more authoritative source in this case. I’m not sure where Eventful got its information, but if it were syndicating from Waxy’s or from Jatoba then we wouldn’t see this temporal drift.)
What Facebook can bring to the table, if we look at it the right way, is a service based on data owned by Waxy O’Connor’s — or by Jatoba. It’s the service, again, of socialization: announcing an event to a group, discussing the event with the group. Music promotion is interesting in that there are three ways that socialization might happen. A band might want to do it, and/or a venue, and/or a fan.
So, for example, an event that was syndicated from Waxy O’Connor’s site (or from Jatoba’s site, or from both), might want to be injected into a Waxy O’Connor’s Facebook Page, and/or a Jatoba Facebook Page, and/or the personal Facebook page of a fan like me. The latter option is available now. The former ones are coming soon.