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.

One event time, with its context
  1. 0119:00 Sydney
  2. 02Australia/Sydney
  3. 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.

event-time.ts · server only
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:

Response excerpt · start_at
{
  "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.