# Event anlegen

Titel, Zeit, Ort, Sichtbarkeit und Serien richtig setzen.

## 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`.

Ein Event braucht einen Titel, einen Beginn und eine Zeitzone. Alle weiteren Angaben sind optional, beeinflussen aber die öffentliche Darstellung und die Entdeckung.

## Wege zum Event

- Ohne Anmeldung: `/erstellen` legt ein Event samt Organisation an und sendet einen Anmelde-Link.
- Im Dashboard: `/dashboard/events/new` legt ein Event in der bestehenden Organisation an.
- Über die API: `POST https://api.eventwerk.eu/api/v1/events` mit einem API-Schlüssel.

## Felder

| Feld | Pflicht | Bedeutung |
| --- | --- | --- |
| title | ja | Titel, höchstens 200 Zeichen. |
| start_at | ja | Beginn als RFC-3339-Zeitpunkt, zum Beispiel 2026-11-12T18:00:00+01:00. |
| timezone | ja | IANA-Zeitzone, Standard Europe/Vienna. |
| location_type | nein | offline, online oder hybrid. Standard offline. |
| visibility | nein | public oder private. Standard private. |
| status | nein | draft oder published. Standard draft. |
| end_at | nein | Ende als RFC-3339-Zeitpunkt. Darf nicht vor dem Beginn liegen. |
| description | nein | Freitext, Zeilenumbrüche bleiben erhalten. |
| location_name | nein | Name des Ortes. |
| location_address | nein | Adresse. Daraus werden Koordinaten für die Karte ermittelt. |
| online_url | nein | Adresse für Online- oder Hybrid-Veranstaltungen. |
| capacity | nein | Gesamtkapazität des Events, null bedeutet unbegrenzt. |
| category | nein | konferenz, workshop, meetup, webinar, networking oder sonstiges. |
| tags | nein | Höchstens 10 Schlagworte mit je höchstens 40 Zeichen. |

## Sichtbarkeit und Status

- `draft`: Das Event ist nicht öffentlich erreichbar.
- `published` und `private`: Das Event ist über den direkten Link `/e/<slug>` erreichbar, erscheint aber nicht in Entdeckung und Kalender.
- `published` und `public`: Das Event erscheint zusätzlich in `/entdecken`, im Kalender und auf der Veranstalterseite.

## Veröffentlichen über Oberfläche und API

- Über die Oberfläche ohne Konto: `/erstellen` legt einen Entwurf an. Veröffentlicht wird das Event erst nach der Bestätigung des Anmelde-Links.
- Im Dashboard: Beim Anlegen und Bearbeiten wählen Sie den Status selbst. `published` ist sofort wirksam.
- Über die API: `POST https://api.eventwerk.eu/api/v1/events` mit `status: published` veröffentlicht das Event sofort. Eine Bestätigung per E-Mail ist nicht nötig.

> **Hinweis:** Der Unterschied ist beabsichtigt. Die Bestätigung per E-Mail schützt nur die Anlage ohne Konto, ein API-Schlüssel handelt im Namen der Organisation.

## Ohne Anmeldung anlegen

1. Formular unter `/erstellen` ausfüllen und eine E-Mail-Adresse angeben.
2. Eventwerk legt Nutzer, Organisation und Event als Entwurf an und sendet einen Anmelde-Link.
3. Nach der Bestätigung des Links wird das Event veröffentlicht.
4. Die Anlage ist auf fünf Versuche pro Stunde und Absender-IP begrenzt.

## Serien

Ein Event kann zu einer Serie werden. Die Regel wiederholt den Ausgangstermin wöchentlich, alle zwei Wochen oder monatlich mit vier Wochen Abstand.

- Die Serie endet nach einer Anzahl zwischen 2 und 52 Terminen oder an einem Enddatum.
- Der Ausgangstermin zählt mit.
- Weitere Termine entstehen als eigene Events mit eigenem Slug.
- Die öffentliche Eventseite verweist auf die übrigen Termine der Serie.

## Bearbeiten und duplizieren

Im Dashboard bearbeiten Sie alle Felder über die Eventseite. Ein Event lässt sich duplizieren; die Kopie erhält einen eigenen Slug. Beim Löschen werden auch die Anmeldungen des Events entfernt. Ein veröffentlichtes Event mit Anmeldungen lässt sich nicht löschen. Die API antwortet mit `event_has_registrations` und nennt in `details.count` die Zahl der Anmeldungen.

> **Warnung:** Kostenpflichtige Tickets sind noch nicht buchbar. Ein Event mit einem Preis größer als null kann zwar angelegt werden, Anmeldungen werden aber mit `payment_not_available` abgelehnt.
