Create an event in a chapter, partially update fields, look up event types and tags, and add cohost chapters when cohosting is enabled on the source event.
Use this page when you create or change an event through the public API, including event types, tags, and cohost chapters. Shared base URL, authentication, status codes, and account rate limits stay in Using public Bevy APIs. Parameter and field details stay in Bevy API Reference.
Permissions you need
| Action | Permission on the chapter | Endpoint |
|---|---|---|
| Create an event | Add event (events.add_event) | POST /api/event/ |
| Update an event | Change event (events.change_event) | PATCH /api/event/{id}/ |
These permissions are chapter-scoped. An HQ admin token or a chapter organizer with the matching role can call the write endpoints. Without the permission, Bevy returns 403.
Create an event in a chapter
Send POST /api/event/ with a JSON body. On create, Bevy requires:
chapter— chapter IDevent_type— event type IDstatus— typicallyDraftorPublished
Title, dates, venue, audience type, tags, and other fields are optional on create unless your workflow needs them. Look up valid event_type IDs and tag IDs first (see below). Full request fields are in Bevy API Reference.
Example:
POST /api/event/
Content-Type: application/json
{
"chapter": 12,
"event_type": 3,
"status": "Draft",
"title": "Community meetup"
}A successful create returns 201 and the event payload, including the new event id.
Note: Event picture, banner, and lobby banner fields are multipart uploads — they are not part of the JSON create/update body. See the matching operations in Bevy API Reference.
Update an event
Send PATCH /api/event/{id}/ with only the fields you want to change. Unspecified fields stay as they are.
Example — publish a draft and set dates:
PATCH /api/event/456/
Content-Type: application/json
{
"status": "Published",
"start_date": "2026-11-15T18:00:00-05:00",
"end_date": "2026-11-15T20:00:00-05:00",
"_timezone": "America/New_York"
}Moving an event to a different chapter requires Add event permission on the destination chapter as well as Change event on the current one. Prefer PATCH for partial updates; field lists stay in Bevy API Reference.
Look up event types and tags
Resolve IDs before you create or update:
- Event types:
GET /api/event_type/andGET /api/event_type/{id}/ - Event tags:
GET /api/event/tag/
Pass the event type ID as event_type on create or update. Pass tag IDs in the tags field when you want to set or replace tags. Do not invent IDs — use the list endpoints for your instance.
Add cohost chapters
Cohosting links collaborating chapters to a source event (the event’s home chapter).
- Enable cohosting on the source event if it is not already on:
PATCH /api/event/{id}/with{"allows_cohosting": true}. - Add one or more collaborating chapters with
POST /api/cohosted_event/. Each row needssource_event(the event ID) andchapter(the cohost chapter ID). You can send a single object or a list for the same source event. - List collaborating chapters with
GET /api/cohosted_event/?source_event={id}.
Example:
POST /api/cohosted_event/
Content-Type: application/json
{
"source_event": 456,
"chapter": 34
}Important: The source event’s own chapter is never included in the collaborating-chapters list. To confirm which events allow cohosting, call GET /api/event/?allows_cohosting=true (or get the event by ID and read allows_cohosting). You cannot add the source chapter as a cohost of its own event.
Optional helpers:
GET /api/chapters_user_can_add_as_cohost/— chapters the authenticated caller can attach as cohosts (optionalevent_idfilter)POST /api/add_all_chapters_as_event_cohosts/— attach every eligible chapter to onesource_event
Request and response fields for these operations stay in Bevy API Reference.
Tip: For headers, authentication, and account-wide rate limits, see Using public Bevy APIs. For every parameter and response field, open the matching operation in Bevy API Reference.