Developers · Quickstart

Three calls to a live checklist.

Create an event, attach an attendee, set the steps. You get back a signed URL you can email, embed or redirect to.

Before you start. API keys are not self-serve yet. Ask us with the topic set to “Platform / integration partner” and we will issue one by hand, usually same day. Everything below works against production today.

0 · Authenticate

Every request carries a bearer token. Keep it server-side — it is not safe in a browser.

export EWENT_KEY="sk_live_..."
export EWENT_API="https://ewent.ai/api"

1 · Create the occurrence

An occurrence is a single dated instance. A recurring series is many occurrences under one template.

curl -X POST "$EWENT_API/occurrence_create" \
  -H "Authorization: Bearer $EWENT_KEY" \
  -d "title=Quarterly Product Summit" \
  -d "start=2026-11-04T09:00:00Z" \
  -d "timezone=Europe/Berlin" \
  -d "location=Berlin, DE"

# → { "success": true, "ewent_token": "a488g4o8e12n6vo" }

timezone is the event’s own zone. Attendee scheduling uses each attendee’s zone, not this one — this is only the fallback when an attendee’s is unknown.

2 · Attach an attendee

Call this once per registration, ideally in the same request that creates it on your side.

curl -X POST "$EWENT_API/rsvp_create" \
  -H "Authorization: Bearer $EWENT_KEY" \
  -d "ewent_token=a488g4o8e12n6vo" \
  -d "[email protected]" \
  -d "name=Ada Lovelace" \
  -d "timezone=Europe/London"

# → { "success": true,
#     "rsvp_token": "ca43a771",
#     "checklist_url": "https://ewent.ai/event/a488g4o8e12n6vo/ca43a771" }
The URL is the product. It is signed and needs no login. Email it, embed it, or redirect to it — whichever fits your flow.

3 · Set the checklist

Once per event. Steps are grouped by phase: prep, live, post.

curl -X POST "$EWENT_API/steps_set" \
  -H "Authorization: Bearer $EWENT_KEY" \
  -d 'ewent_token=a488g4o8e12n6vo' \
  --data-urlencode 'steps=[
    {"phase":"prep","title":"Book your hotel","url":"https://…"},
    {"phase":"prep","title":"Read the pre-brief","url":"https://…"},
    {"phase":"live","title":"Join the opening keynote","url":"https://…"},
    {"phase":"post","title":"Share your feedback","url":"https://…"}
  ]'

That is the whole integration. The cadence starts automatically from the occurrence start time.

What happens next, without you

WhenWhat fires
On attachWelcome + calendar file + checklist link
−3 days, 09:00 attendee-localPrep reminder
−1 day, 09:00 attendee-localLogistics reminder
−1 hourStarting soon
At start, conditional“You haven’t joined” nudge
+2 hoursThank you, recap, feedback

Common follow-ups

# look an attendee up
curl "$EWENT_API/[email protected]" \
  -H "Authorization: Bearer $EWENT_KEY"

# cancel — stops the pending cadence and frees the seat
curl -X POST "$EWENT_API/rsvp_cancel" \
  -H "Authorization: Bearer $EWENT_KEY" \
  -d "ewent_token=$T&rsvp_token=$R"

# cancel or reschedule the whole occurrence (triggers the broadcast)
curl -X POST "$EWENT_API/event_status" \
  -H "Authorization: Bearer $EWENT_KEY" \
  -d "ewent_token=$T&status=cancelled"