Eventlayer / Understand the model
Event time
Keep the event’s local time, timezone and UTC instant together.
After Hours starts at 19:00 in Sydney on 7 November 2026. That corresponds to 08:00 UTC. Store the timezone of the event alongside the instant so your product can display the intended venue time.
- 0119:00 Sydney
- 02Australia/Sydney
- 0308:00 UTC
Send an instant and a timezone
The SDK accepts startAt and endAt with utc and timezone fields. Raw HTTP
uses start_at and end_at. Do not send the returned local field as input.
const { data: event, error } = await eventlayer.events.create({
name: "After Hours",
startAt: {
utc: "2026-11-07T08:00:00Z",
timezone: "Australia/Sydney",
},
});
if (error) throw error;The response includes the local representation:
{
"utc": "2026-11-07T08:00:00Z",
"timezone": "Australia/Sydney",
"local": "2026-11-07T19:00:00"
}Collect local time carefully
A datetime input without a timezone does not identify an instant. When your product collects a venue-local time, also collect the IANA timezone and resolve that pair to UTC before calling the API. The dashboard provides this conversion when you configure an event there.
Daylight-saving transitions can make a local time ambiguous or nonexistent.
Ask the organiser to resolve that choice; do not silently interpret it in the
browser’s timezone or append Z to a local datetime.
Display the event’s intended time
Use the returned local value for the venue-local representation, or format
utc with timezone explicitly. Label any attendee-local conversion so people
know which timezone they are seeing.
Read Why event time isn’t just a UTC timestamp for more detail, or return to events.