# Entdecken und Kalender

Öffentliche Events finden, filtern und als Kalender abonnieren.

## Hinweise für KI-Agenten

- API-Basisadresse: `https://api.eventwerk.eu/api/v1`
- OpenAPI 3.1: `https://api.eventwerk.eu/openapi.json` und `/api/v1/openapi.json`. Daraus lassen sich Clients und Typprüfungen generieren.
- Anmeldung: `Authorization: Bearer ew_...`
- Schlüssel: Einstellungen unter `/dashboard/einstellungen`, nur mit Eventwerk Plus und nur für Eigentümer. Der volle Schlüssel wird nur einmal angezeigt. Name und Zeitpunkt der letzten Nutzung werden geführt und ausgegeben.
- Zeiten: Alle Zeitpunkte kommen in UTC mit Suffix `Z`. Die Zeitzone des Events steht getrennt in `timezone` als IANA-Name, Standard `Europe/Vienna`. Clients rechnen selbst um.
- Paginierung: Die Event- und Anmeldelisten liefern `{items, has_more, next_cursor}` mit `limit` (Standard 50, höchstens 200), `cursor` und `updated_since`.
- Grenzen: 200 Anfragen pro Minute je Schlüssel. Der Zähler liegt im Speicher je Instanz, ist hinter mehreren Instanzen ein Vielfaches und beginnt nach einem Deploy neu. Bei Überschreitung antwortet die API mit 429, `rate_limited` und `Retry-After`.
- Gastgrenzen: Anmelde-Link 20 je Stunde je IP-Adresse, Anmeldung 60 je Stunde je IP-Adresse und 3 je Stunde je E-Mail-Adresse und Event.
- Fehler: JSON mit `code` und `message`, optional mit `details`.

Die Entdeckung zeigt veröffentlichte Events mit Sichtbarkeit public. Private Events erscheinen dort nicht, bleiben aber über den direkten Link erreichbar.

## Entdecken

Unter `/entdecken` suchen Gäste nach Titel und Beschreibung und filtern nach Kategorie, Format, Preis und Zeitraum. Die Ansicht wechselt zwischen Liste und Karte.

| Filter | Werte |
| --- | --- |
| q | Suchbegriff, höchstens 200 Zeichen. |
| category | konferenz, workshop, meetup, webinar, networking oder sonstiges. |
| mode | offline, online oder hybrid. |
| price | free oder paid. |
| from, to | Zeitpunkt als RFC 3339. |
| page, per_page | Seite ab 1, Seitengröße 1 bis 50, Standard 12. |
| sort | date oder distance. distance benötigt Koordinaten. |

Ein Event erscheint nur, wenn es veröffentlicht ist, die Sichtbarkeit public hat und der Beginn nicht mehr als einen Tag zurückliegt. Der angezeigte Preis stammt aus der günstigsten aktiven Ticketart.

> **Hinweis:** Für die Kartenansicht ermittelt Eventwerk Koordinaten aus der Adresse. Ohne Adresse erscheint das Event nur in der Liste.

## Kalender

Die Kalenderseite `/kalender` zeigt öffentliche Termine im Monatsüberblick. Der Monat lässt sich über `?monat=YYYY-MM` wählen.

- Das Kalender-Abo für alle öffentlichen Events liegt unter `/api/public/discover/calendar.ics`.
- Das Kalender-Abo einer Organisation liegt unter `/api/public/organizers/<slug>/calendar.ics`.
- Das Kalender-Abo der Entdeckung unterstützt dieselben Filter wie die Entdeckung.
- Beide Abos brauchen keine Anmeldung.

## Veranstalterseite

Jede Organisation hat eine öffentliche Seite unter `/veranstalter/<slug>`. Sie zeigt die kommenden öffentlichen Events und einen Kalender-Link. Den Slug ändern Sie in den Einstellungen; er muss eindeutig sein.

> **Warnung:** Eine eigene Domain für Eventseiten ist angekündigt, aber noch nicht gebaut. Veranstalterseiten laufen derzeit unter der Eventwerk-Adresse.
