April 10, 2017

What's Wrong With Calendars?

Keeping track of what events are going on in your area is hard. If you're as embedded within the community as I am, you'll generally hear about regular meetup groups when they start, but their visibility can quickly drop if you don't actively seek them out, so you don't know any detail of the topics being covered, nor how active they are. If you're outside the community, discovering that it exists can be near impossible.

When I first moved to Liverpool in 2008 it wasn't too tricky, as there were really only LivLUG and GeekUp available. Three years later as the community grew the list had somewhat filled out and now there are more than ever.

Navigating through this to find the meetups that interest you isn't easy. It's beneficial to the individual meetups if the people most interested in them can find and join them, and the more we can cross-pollinate between different groups and ideas the more it helps the whole community.

As I wrote years back in the blog post Gardening Liverpool's Digital Community:

Events are a way to engineer serendipity - give lots of people with different backgrounds and skills and ideas a reason to mix and get chatting to each other, and interesting stuff will result. I don't think you can, nor should you try to, be more specific than that. Ignite Liverpool is a perfect example of this although I don't think we'll ever know if it's succeeded.

Every now and then someone comes along who wants to help solve the problems. Usually that's in the form of creating a new website where people can add their events. After all, building new websites is fun and there are lots of off-the-shelf parts to make your MVP pretty easy. If you're lucky you'll also get an ical format export for free, so people can add all the events to their calendar.

They tend to get disappointed when I don't enthusiastically embrace the extra work they've given all us event-organisers and ask them if their site can import an ical feed.

If nothing else, hopefully this blog post will serve as at least a partial explanation of my lack of enthusiasm. If you're reading this after I've pointed you here because you've built one of said systems, hello! Sorry to have rained on your parade, but stick around and maybe between us we can make events better for everyone.

Aggregating Events

Collating events together in (yet another ;-) one place is great, but giving event organisers more work to do in just entering their event details into (yet another) web form doesn't help.

Copying information from one place to another and doing things automatically is what computers are really good at. We should use them for that. We've already been here once, with blog posts; we solved that with syndication: RSS and Atom feeds. We need to do the same with events.

There's already an obvious format to use: ical. As ever, Jon Udell has already laid some of the groundwork.

Jon's Elm City project looked to solve just this problem. It also spawned a wiki with details on how to publish and (just as importantly) validate ical feeds.

Sadly Jon has retired the Elm City site, but calagator looks like a good starting point if you want to deploy an aggregator of your own.

The easiest way to generate an ical feed is from a Google Calendar. However, their interface fails to surface one of the key attributes of the ical format: the URL. If we want to share event details widely, it's vital that there's a way to refer people back to the source to get more information (and RSVP or book tickets if applicable).

For the "coming this week" section of the DoES Liverpool #weeknotes we work round it by including the URL in the event description, and the #weeknotes generator script assumes that's the case (and relies on a human checking things over to catch the odd time when it isn't).

It would be good to find a way to generate ical feeds including URLs as easily as Google allows you to generate ones without them.

Add a simple embeddable HTML widget to show an aggregated calendar, and that would let the DoES Liverpool website show a calendar built from the aggregated view of the various meetup.com groups and a Google calendar to mop up any others.

Other Useful Tools

It feels to me that a collection of small tools, all using common, standard data formats for interchange, would be more flexible and useful than integrated do-everything websites.

Being able to collate entries from a collection of ical feeds, and similarly split them up based on keywords or times/dates, etc. would let us wrangle calendars into whatever shapes suits.

Then taking a set of events in as an ical feed and output an HTML file or a collection of HTML files from a template to put on a website... or generating plain text to include in a newsletter... or a set of slides to preview upcoming events in the downtime before/after the presenter at a current event...

We could further enhance things by adding a bit of extra metadata to the meetup's website.

Just like there's RSS autodiscovery, we could take the same approach for pointing machines at our event calendar. Then browser's could—in time—make it easier for people to add it to their calendar and (more commonly, I'd expect) make it easier for related calendar programs to find and consume the calendars.

For some scenarios—I'm thinking particularly of the case where we generate a slide deck to preview/promote upcoming events, and want to include the event logo and maybe a brief description of the meetup it's part of—where some general information about the meetup itself, rather than the specific event, is useful then maybe we could extend/reuse the Twitter and Facebook "card" metadata.

So, those are the sorts of areas that I think are ripe for development. I'm slowly picking at them and collecting anything I build for it over in this calherder github repo.

Posted by Adrian at April 10, 2017 10:29 AM | TrackBack

This blog post is on the personal blog of Adrian McEwen. If you want to explore the site a bit further, it might be worth having a look at the most recent entries or look through the archives or categories over on the left.

You can receive updates whenever a new post is written by subscribing to the recent posts RSS feed or


Some of these issues were thought about in the design of http://talks.cam.ac.uk/ which aims to help address some of the problems of discovery etc relating to a bunch of series of talks in an area. There's some background in the docs and it's all open source if anyone wants to work from it.

I don't think talks.cam really solves the problems you highlight, but linking for the record :)

Posted by: Laura James at April 11, 2017 09:59 PM
Post a comment

Remember personal info?

Note: I'm running the MT-Keystrokes plugin to filter out spam comments, which unfortunately means you have to have Javascript turned on to be able to comment.