Skip to main content
Events are scheduled gatherings inside the community (a livestream, a live class, a webinar, an in-person meetup). Through the public API you list events, read a single event’s details, mark or unmark a user’s attendance, and, with admin scope, create and manage the full lifecycle. Think of an event like a party invitation: first you draft the invite without sending it (draft), then you hand it out (publish) and people RSVP (attend); if the party is off, you tell the people who signed up instead of pretending the invite never existed (cancel, not delete).

The lifecycle

Every event moves through three states. The transition always goes forward (you cannot “unpublish” an event; to take it down, cancel it).
  • Draft: created by POST /community/events. Invisible to members; use it to set up title, description, date and links before you announce.
  • Published: after POST /community/events/{eventId}/publish. Shows up in public listings and starts accepting attendance.
  • Cancelled: after POST /community/events/{eventId}/cancel. Stays visible (marked as cancelled) so anyone who signed up knows it is off.
publish and cancel are state transitions, not edits. To change the title, date or description of an existing event, use PUT /community/events/{eventId}. To remove the record entirely (instead of cancelling), use DELETE /community/events/{eventId}.
An event can be standalone (it appears on the community’s general agenda) or linked to a group or a course. The link is optional and adds context (a group’s event shows up inside that group; a course’s event shows up in the course track).
To find the events of a specific group or course, use the filter endpoints:

Read endpoints

We don’t document the field names of each response here (they evolve). Check the API Reference tab, under the Event tag, for the exact schema of every return.

Create an event (admin scope)

Creating, editing, publishing, cancelling and deleting events requires admin scope (organizer). Partner keys with default scope can read events and mark attendance, but they cannot create or change the lifecycle. Use a key with admin/organizer permission for the write endpoints. The event starts as a draft. Publish it as a second step, once it’s ready to announce.
1

Create the draft

POST /community/events with title, dates and (optionally) groupId or courseId. The response carries the event id. It starts invisible to members.
2

Publish

POST /community/events/{eventId}/publish. The event starts showing in listings and accepting attendance.
3

Collect attendance

Members call POST .../attend. Track who signed up through the attendees list.
4

Cancel if needed

POST /community/events/{eventId}/cancel keeps the event visible as cancelled for anyone who already signed up. To drop the record entirely, use DELETE.
Creation returns the event identifier (use it in the publish, cancel and attend steps). Full schema in the API Reference tab, tag Event:
Without admin scope, the write endpoints (create, edit, publish, cancel, delete) return 403 forbidden. That’s expected: ask the tenant admin for an organizer key, or leave event creation to the dashboard.

Mark attendance (attend)

Any user with access to the event marks attendance with POST .../attend and removes it with DELETE .../attend. Attendance is always for the user tied to the authenticated credential (you don’t send userId in the body).
The event must be published and the user must have access to the community (and to the group, if the event is linked to a group that requires a badge). Without access, it returns 403 forbidden. Once confirmed, attendance shows up in the event’s attendees list.

Common errors and questions

It’s probably still a draft. Drafts are invisible to members on purpose. Call POST /community/events/{eventId}/publish to take it live. Only after publishing does it show in listings and accept attendance.
There is no “unpublish”. The transition always moves forward (draft, published, cancelled). To take down an announced event, use cancel: it stays visible marked as cancelled so anyone who signed up knows it’s off. DELETE removes the record entirely (with no notice to attendees).
Writes (create, edit, publish, cancel, delete) require admin scope (organizer). A default partner key only reads events and marks attendance. Ask the tenant admin for an organizer key, or leave creation to the dashboard.
Seeing it in the listing isn’t the same as having access to the event. If the event is linked to a group that requires a badge, the user needs that badge to attend. Assign the badge (see Badges as Permissions) and retry attend.
No. Marking again is safe: attendance belongs to the credential’s user and does not duplicate. DELETE .../attend unmarks it; unmarking something that wasn’t marked does not error. Treat the attend/unattend pair as idempotent.

Next steps

Communities and Spaces

The Community > Space > Group hierarchy where events can be linked.

Courses and Certificates

How to link an event to a course and its lesson track.

Posts and Comments

Post to the group feed to announce and follow up on an event.