The same event, typed again and again
Meetup, Eventbrite, LinkedIn, your own website, a community directory, three WhatsApp groups. Same data, six forms, six chances to make a typo.
Open specification Β· Draft 0.1
OpenTechEvents (OTE) is an open, free specification to describe tech community events β meetups, conferences, workshops, online or in person β in a single format that directories, calendars and tools can read automatically.
No platform to sign up for. No tool to install. It's just a file you publish.
events.json{
"specVersion" : "0.1.0",
"id" : "https://pyalmeria.dev/2026-06-async",
"name" : "PyAlmerΓa β Intro to async/await",
"startDate" : "2026-06-11T18:30:00",
"timezone" : "Europe/Madrid",
"attendanceMode" : "hybrid",
"location" : {
"venue" : { "name" : "El Cable", "city" : "AlmerΓa" },
"online" : { "url" : "https://meet.example/pyalmeria" }
},
"tags" : ["python", "async"]
}
You organise one event. Then you announce it five times, by hand, in five different formats β and you still miss half the people who would have come.
Meetup, Eventbrite, LinkedIn, your own website, a community directory, three WhatsApp groups. Same data, six forms, six chances to make a typo.
Event directories want to list you. But they'd have to scrape your site or wait for you to open a pull request. So most of the time, they just don't.
Venue moved. Speaker cancelled. New date. Now go update every single platform β or live with the stale copies out there.
There is no shortage of information about your events. What's missing is interoperability.
You describe your events in a simple JSON file and publish it at a stable URL. Anything that speaks OTE β directories, calendars, bots, websites β can then read it without asking you for anything.
A feed with your events at a URL you control, e.g. tucomunidad.dev/events.json.
Aggregators, directories and converters pick it up automatically β and turn it into RSS, iCalendar or schema.org.
Attendees subscribe by topic or city and get your events in the tools they already use β no extra platform.
A valid event needs little more than a name, a start date, a time zone and where it happens. Optional modules β CFP, speakers, price, accessibility β cover the rest when you need them.
Careful, because we'd rather be straight with you: that draft β the core fields and the optional modules alike β has not been agreed yet. It's there to show the shape of the thing and to open the debate, and it will change. What we're asking you to adopt today is the idea, and to come and break it before it sets.
Read the data model{
"specVersion" : "0.1.0",
"id" : "https://pyalmeria.dev/2026-06-async",
"name" : "PyAlmerΓa β Intro to async/await",
"startDate" : "2026-06-11T18:30:00",
"timezone" : "Europe/Madrid",
"attendanceMode" : "online",
"location" : {
"online" : { "url" : "https://meet.example/pyalmeria" }
}
}
Everything is public and in the open β including what's still undecided. The spec is at version 0.x: expect it to change, and expect your feedback to be what changes it.
Adopting OTE is a couple of hours of work, once. Here's what it buys you.
Write the event once. Let tooling push it to directories, calendars and feeds instead of you copy-pasting it into yet another form.
Directories and aggregators can pick up your events the moment you publish them. Your meetup shows up where people are actually looking.
Your events live at your URL, in an open format. If a platform shuts down, changes its API or its pricing, your history and your feed are still yours.
Every new tool built on OTE β an .ics export, a website widget, a Telegram bot β works for you without you lifting a finger.
Change the date in one place and every consumer that re-reads your feed gets the correction. No more zombie listings with the old venue.
The spec is in draft. Early adopters decide what it looks like β if something doesn't fit your community, it can still be changed.
Three steps. The first one is the only one that takes real work, and it's a text file.
Create a JSON file with your events and host it anywhere you already publish β your site, GitHub Pages, a gist. If your events live in a Google Calendar or Meetup, a converter can generate the feed for you.
https://tucomunidad.dev/events.json{
"specVersion" : "0.1.0",
"kind" : "feed",
"title" : "PyAlmerΓa events",
"feedUrl" : "https://tucomunidad.dev/events.json",
"updatedAt" : "2026-05-29T08:00:00Z",
"events" : [ /* your events here */ ]
}
Add one line to the <head> of your website so tools can find the feed on their own β the same way RSS readers do.
<link rel ="alternate"
type ="application/ote+json"
href ="https://tucomunidad.dev/events.json">
Open an issue with your feed URL. We'll validate it, list your community on this page, and aggregators will start picking up your events.
Communities and events already exposing their data in this format.
The spec is brand new, so this list is still short. Be one of the first β early adopters get a say in what the standard becomes.
Be the firstDirectories, aggregators and people reusing feeds published in this format. Every one of them is a place your events can reach for free.
Building a directory, a newsletter or a bot? Consume OTE feeds and get listed here.
Add your projectWhat exists today, and what's up for grabs. Claim one by opening an issue.
Every community that publishes an OTE feed makes the format more useful for every other community β and for everyone trying to find your events.