Konzepte
Zeitzonen
Zeitpunkte sind ISO 8601 in UTC. Wo ein Mensch eine Uhrzeit liest, steht die Ortszeit des Veranstaltungsorts daneben, mit der Zeitzone der Veranstaltung.
Zwei Arten von Zeit
Zeitpunkte geben an, wann etwas passiert ist oder passieren wird: eine Anmeldung, eine Zahlung, ein Check-in, der Beginn einer Session. Sie sind ISO 8601 in UTC, mit Millisekunden und einem Z, und ihre Namen enden auf Utc:
"checkedInUtc": "2026-11-12T07:58:12.000Z"Ortszeiten sind das, was ein Mensch am Veranstaltungsort im Programm liest. Sessions, Schichten, Rabattcodes und Verkaufszeiträume tragen sie neben dem Zeitpunkt, in der Ortszeit des Veranstaltungsorts, ohne Zone, und ihre Namen enden auf Local:
{
"title": "Opening keynote: software that finds its way",
"startsUtc": "2026-11-12T08:30:00.000Z",
"startsLocal": "2026-11-12T09:30",
"timeZone": "Europe/Amsterdam"
}Die Veranstaltung nennt die IANA-Zeitzone ihres Veranstaltungsorts in timeZone. Ihr startDate und endDate sind einfache Datumsangaben am Veranstaltungsort.
Was Sie wann verwenden
- Zum Vergleichen, Sortieren, Speichern oder Rechnen: den Zeitpunkt, in UTC.
- Um jemandem eine Uhrzeit zu zeigen: die Ortszeit, wie sie ist, oder den Zeitpunkt, umgerechnet in die
timeZoneder Veranstaltung. Nie in die Zone Ihres Servers: Eine Session um 09:30 Uhr in Amsterdam beginnt für alle, die hingehen, um 09:30 Uhr, egal wo ihr Laptop steht. - Zeitumstellungen sind bereits berücksichtigt: Eine Session am letzten Sonntag im Oktober hat für ihre Ortszeit den richtigen UTC-Zeitpunkt.
Zeiten senden
Zeitpunkte, die Sie senden (salesEndUtc, endsUtc), werden als UTC gelesen, egal was darin steht: Ein Offset wie +01:00 wird berücksichtigt, eine Zeit ohne Offset ist UTC, nie die Zone des Servers. Für updatedSince gilt dasselbe.
Eine neue Session lässt sich in Ortszeit angeben (startsLocal, endsLocal), und AttendBeacon rechnet sie mit der Zeitzone der Veranstaltung um, oder in UTC (startsUtc, endsUtc). Meist haben Sie die Ortszeit: Darauf hat sich die vortragende Person eingelassen.
curl -X POST "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions" \
-H "Authorization: Bearer $ATTENDBEACON_KEY" \
-H "Content-Type: application/json" \
-d '{ "title": "Closing keynote: what we learned", "kind": "keynote", "startsLocal": "2026-11-13T16:30", "endsLocal": "2026-11-13T17:15" }'await fetch(`${base}/events/${eventId}/sessions`, {
method: "POST",
headers: { Authorization: `Bearer ${key}`, "Content-Type": "application/json" },
body: JSON.stringify({ title: "Closing keynote: what we learned", kind: "keynote", startsLocal: "2026-11-13T16:30", endsLocal: "2026-11-13T17:15" })
});Tage in Zusammenfassungen
Wo die API pro Tag zählt (das Verkaufstempo), sind die Tage die des Veranstaltungsorts in dessen Zeitzone. Eine Anmeldung um 00:30 Uhr in Amsterdam zählt also an diesem Tag, nicht am Vortag in UTC.