About Brainberg
Brainberg is an open-source event aggregator for the European tech scene: meetups, hackathons, conferences, workshops, maker events. We pull from a handful of mainstream platforms and community sites and merge them into one searchable, filterable event calendar and map.
Why does this exist?
Having attended numerous conferences, meetups, and hackathons across Europe, I (Pwuts) noticed that I often had to find out about them through word of mouth or random Twitter posts. There were also many occasions where I found out about an event only after it had already happened, which left me wishing for a place on the internet with an up-to-date overview of all the events that I might be interested in.
As it turns out, this information vacuum is experienced by many. Not being aware of events near you that you'd otherwise attend is a specific kind of unrealised/lost value. You miss out on new insights and networking opportunities, both of which I personally enjoy a lot.
To address this, I wanted to create something that makes it easier for people to discover tech events happening around them and across Europe, ensuring they'll never have to feel the pain of "oh, I didn't know that was happening?" again.
Now, a few days into the project, I am very excited and surprised to see how many events there are in the first place. I can personally see plenty of interesting meetups, workshops, and conferences that I wouldn't have known about if it wasn't for this project. I hope you have the same experience. :)
Publish your events on Brainberg
If your organisation or community runs a site listing events, we can pull them in automatically, as long as your site exposes the data in a machine-readable format. Any of the formats below works; pick the one that fits your stack.
Supported formats
We ingest from a single page per source, so whatever format you use, it has to surface multiple events in one place we can fetch. In decreasing order of preference:
- Schema.org Microdata on a listing page. Mark each event card with
itemscope+itemtype="https://schema.org/Event"and additempropon nested elements. Invisible<meta content=...>tags are fine. This works well if your listing cards already render the data visually. Spec: schema.org/Event. - Schema.org JSON-LD, multiple events on one page. One or more
<script type="application/ld+json">blocks with@type: Event(or a subtype likeEducationEvent) on a single listing or events page. Also earns your site Google event rich-result eligibility on any detail pages that carry the same block. - Detail-page-only JSON-LD:individual event pages each carrying a JSON-LD block, but no listing aggregating them. This works too, but we'll need either a
sitemap.xml, an RSS feed, or a listing URL that links to each detail page so we can discover them. Mention what you have when you get in touch. For reference: this is the pattern dev.events uses. - iCal feed (
.ics) at a stable URL (RFC 5545 standard). Same story: we'll configure it per-source when we add you.
Fields we actually use
Per event, the more of these you expose the better:
name- event titledescription- a plain-text or HTML description of the eventstartDate/endDate- ISO timestamps with timezoneeventAttendanceMode- online, offline, or mixed (enum reference)location- venue name and address, orgeocoordsorganizer- name and URLimage- cover image URLurl- canonical detail pageidentifier- a stable unique ID (UUID, database ID, slug). Helps us dedup against the same event from other sources.
See schema.org/Event for the full spec.
Scope
Brainberg lists events for a European audience — either physically located in a European country or online events relevant to European attendees. Non-European in-person events are filtered out.
How to get added
Open an issue on GitHub with the URL of your structured data (listing page, feed, or sample detail page) and we'll wire it up. If you need a hand adding JSON-LD to your pages, happy to help with a worked example.
Source on GitHub: Pwuts/brainberg