Home

History, things I've learned, what comes next

2018

I quit Facebook at the same time as a lot of other people in 2018. This was for the most part a relief, but I missed knowing what was going on in town.

I thought to myself, no problem! I made a bunch of the websites of the places I'm interested in. So, all I have to do is to make an automatic data export from those websites and i can collect the events somewhere for myself. I'll make it public so maybe it benefits others, as well. I figured if I start with this, the rest will follow. My motivation was (and still is) driven by a lot of things, but mostly I really just want to know what's up on Saturday.

2019

The first version was ready in 2019 and looked very function-first. It was using a standard calendar component. The idea was to present this as an infrastructure project and emphasise the data and not the presentation. Unsurprisingly, this aesthetics was popular with the activist-leaning artists and less popular with the marketing departments.
Version 1. Using the FullCalendar component for showing the events in the way we're used to

I was essentially trying to recreate a light-version of the semantic web. The semantic web is an idea from the early 2000's to describe web pages in a way it can be understood by computers. 

Behind the scenes, this was using the common protocol .ics / iCalendar. There was a small json file that announced the publicly available calendar sources. So if you know the website, you would also be able to find out the calendar source. The idea was that any web page that contains event should also have a .ics representation. The idea is similar to RSS feeds, but using the simpler .ics calendar format.

2020

I kind-of, sort of, worked for a while. I think a critical mass (for myself and my imagined audience) would be about 20 places, and I got close at times.

Some places did really believe in this (just like me) and paid their developers to export the data so that I could display it on my website (thank you, again to you who did!). Making an automated .ics export is about half a day of work for the average web developer. The problem was (as always with an open data approach) that not all places had the means to do this. Some didn't even have a website to pull the data from.

For the places without website, the option for them would then be to create a calendar especially for this purpose (using nextcloud, google calendar, or similar). Some places did this (thank you!). Filling in events is a lot of work, but I thought that if this takes off, this could potentially be a kind of replacement for having a website. This is similar to how social media plays that function as a kind of poor mans website sometimes. It could work, but anything that is based on continuous manual labor is hard to maintain long term.

2021-2022

Waag and Public Spaces started a project with similar goals in 2022. I thought, maybe they can get an infrastructure project similar to this off the ground. They made it into more of a formal protocol specification. I think I might have persuaded them to include .ics because it would make it easier for smaller places to participate. It's not the best format, but the most accessible for small spaces, I argued.

Open data has two problems:

1. With open data, how the data is defined (and is supposed to be interpreted) is decided by the sender. Information can be interpreted in various ways and the semantic web removes that agency from the reader. For example, if I want to tag an event as 'music' or 'art', it should be my concern, not only the creator of the event. Or rather, the categorisation needs to be context-specific. What is 'opera' in one context, is 'music' in another.

2. Nothing is 100% public, there only various publics and audiences. At this point I started to realise that 'publicdata.events' is a bit of a misnomer. I always had this nagging feeling that open data model is doomed. I partly chose to ignore it, since the alternative is complicated: Both distributed and decentralized — and also limited to an intended audience — is a form of a contradiction.

Both of these issues are solved in the model of the fediverse, in particular mobilizon. Now in 2025 this project seems to have matured.

2022-2023

I got a very generous "donation" of data from New Music Now. I was thrilled! I thought, now this will be enough of some form of a critical mass. They gave me access to all their event data and I used it on the previous version of publicdata.events that looked like this:
Version 2

To make this attractive I made this feature that I still think has potential (I might add it back later): You could select what places you are interested in and subscribe to a feed of these events in your own calendar. I thought that the combination of critical mass of data and this subscription would be enough. This step was partly funded by Stimuleringsfonds through the "bouwen aan talent" program.

What I had at this point was a website that would potentially be interesting for someone interested in music. Not bad, but not exactly centred around my own interest. I realised it is not that easy to adapt an existing archive. For this to work it needs to include *all* the places that *I* care about. 

I didn't manage to get all the data from all the places I care about by the means of open data, so I then tried my last ditch effort: To scrape websites. Scraping means getting data from websites and cleaning it up to usable data. I always thought to myself, this is the thing i can do if nothing else works. I was quite surprised to see that scraping did not work at all. It's pretty funny how I (with the inner image of myself in some kind of a heroic pose) been resisting scraping for years, for then to finally give in to the temptation and realising its completely useless.

As you can see in the screenshot above the events from Stedelijk Museum are scraped - that worked. But finding out what Stedelijk is up to is not that hard. The places I care about typically don't have very reliable websites. Some of them don't even have a website.

At this point i felt that I explored all avenues and it had also been a long moment of silence from Waag and Public Spaces so I felt this might never happen. Time to switch down to low-power mode on this project.

2024

Early in 2024 i tried pasting in a newsletter in ChatGPT asking it to extract titles and dates, and that worked surprisingly well. Obviously, I don't want to send any data to ChatGPT so I looked at self-hosted solutions. The during 2024 things developed quickly and it is now possible to get good-enough results from a locally hosted LLM. 

Suddenly, it's within reach for me - some guy - to be able to collect the data I wanted and make an overview for myself. It works, so the next question how can I use this to contribute. How can I share my collection of events in a way that has the necessary consent from all organisations? I think this project is transforming into FEFE: Funnel Emails into Fediverse Events.

When I get a newsletter, I automatically send one back asking "is this what you mean, do you want to publish it on mobilizon"? Perhaps this way me, and others, can share a collection of events based on interest.