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}.Optional link to a group or course
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).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.Mark attendance (attend)
Any user with access to the event marks attendance withPOST .../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).
403 forbidden. Once confirmed, attendance shows up in the event’s attendees list.
Common errors and questions
I created the event but nobody can see it
I created the event but nobody can see it
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.How do I unpublish an event?
How do I unpublish an event?
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).403 forbidden when creating or publishing
403 forbidden when creating or publishing
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.
403 forbidden marking attendance on an event I can see in the listing
403 forbidden marking attendance on an event I can see in the listing
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.I marked attendance twice, is that a problem?
I marked attendance twice, is that a problem?
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.
