Draft 0.x The spec is not stable yet: fields can still change, be renamed or be dropped. The core of v0.1 is being decided right now. Follow the discussion

Open specification Β· Draft 0.1

Publish your event once. Let it show up everywhere.

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 already know the problem

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.

πŸ“‹

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.

πŸ•³οΈ

Directories can't find you

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.

πŸ”

Every change means doing it all over

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.

One file. That's the whole idea.

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.

1

You publish

A feed with your events at a URL you control, e.g. tucomunidad.dev/events.json.

2

Tools read it

Aggregators, directories and converters pick it up automatically β€” and turn it into RSS, iCalendar or schema.org.

3

People find you

Attendees subscribe by topic or city and get your events in the tools they already use β€” no extra platform.

The minimum is genuinely minimal

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.

  • Plain JSON. No SDK, no account, no server required β€” a static file is enough.
  • Designed to map cleanly onto RSS, iCalendar and schema.org/Event.
  • Works the same for a recurring meetup, a multi-day conference or an online workshop.
  • Open licence, no usage restrictions β€” in the spirit of RSS and iCal.

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
Minimal valid event
{
  "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" }
  }
}

Read the full specification

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.

What you get out of it

Adopting OTE is a couple of hours of work, once. Here's what it buys you.

⏱️

Stop doing data entry

Write the event once. Let tooling push it to directories, calendars and feeds instead of you copy-pasting it into yet another form.

πŸ“£

Reach beyond your own bubble

Directories and aggregators can pick up your events the moment you publish them. Your meetup shows up where people are actually looking.

πŸ”“

Own your data

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.

🧩

Free integrations, forever

Every new tool built on OTE β€” an .ics export, a website widget, a Telegram bot β€” works for you without you lifting a finger.

βœ…

Accurate everywhere

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.

🌱

Shape the standard

The spec is in draft. Early adopters decide what it looks like β€” if something doesn't fit your community, it can still be changed.

How to adopt it

Three steps. The first one is the only one that takes real work, and it's a text file.

  1. 1 Publish an OTE feed

    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 */ ]
    }
  2. 2 Make it discoverable

    Add one line to the <head> of your website so tools can find the feed on their own β€” the same way RSS readers do.

    In your site's <head>
    <link rel="alternate"
          type="application/ote+json"
          href="https://tucomunidad.dev/events.json">
  3. 3 Tell us, and get listed

    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.

Who publishes in OTE

Communities and events already exposing their data in this format.

Who consumes OTE data

Directories, aggregators and people reusing feeds published in this format. Every one of them is a place your events can reach for free.

Ecosystem of tools

What exists today, and what's up for grabs. Claim one by opening an issue.

Frequently asked questions

A standard is worth exactly as much as the number of people using it

Every community that publishes an OTE feed makes the format more useful for every other community β€” and for everyone trying to find your events.