On this page

5 endpoints.

MethodPathSummary
GET/api/event-categoriesList event categories for a community
POST/api/event-categoriesCreate an event category
DELETE/api/event-categories/{id}Delete an event category
GET/api/event-categories/{id}Get an event category by ID
PUT/api/event-categories/{id}Update an event category

optionalAuth, readable exactly where the community's events are: by an APPROVED member, or by a guest of a PUBLIC community whose events are opted into guest preview on a plan that includes it. Anyone else gets 404. eventCount counts only events the caller may see.

Auth: optional — a token changes what you can see (see "Who may read what").

Parameters

NameInRequiredTypeDescription
communityIdqueryyesstring (uuid)—
qquerynostringCase-insensitive name search
pagequerynointeger—
pageSizequerynointeger—

Responses

StatusDescriptionBody
200Paginated list of event categories—
404The caller may not read this community's events.—

An APPROVED member holding calendar:manage or calendar:create (the same set that shows «إدارة التصنيفات» in the web). communityId may be sent in the body or the query; when both are sent they must match (400 COMMUNITY_MISMATCH). Rate limit: 10 per burst, 1 per 10 seconds.

Auth: Bearer JWT required.

Request body (required) — application/json

FieldTypeRequiredDescription
communityIdstring (uuid)yes—
namestringyes—
descriptionstringno—

Responses

StatusDescriptionBody
201Category created successfully—
401Authentication required—
403Missing calendar permission, or the events feature is disabled—
409An event category with this name already exists—

Same access as POST. Removes the category from every event that carries it. Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
idpathyesstring (uuid)—

Responses

StatusDescriptionBody
200Category deleted successfully—
403Missing calendar permission—
404Event category not found—

optionalAuth; the same read rule as the list (404 when events are not readable). Auth: optional — a token changes what you can see (see "Who may read what").

Parameters

NameInRequiredTypeDescription
idpathyesstring (uuid)—

Responses

StatusDescriptionBody
200Category details—
404Event category not found—

Same access as POST. The category is shared by every event that uses it. Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
idpathyesstring (uuid)—

Request body — application/json

FieldTypeRequiredDescription
namestringno—
descriptionstringno—

Responses

StatusDescriptionBody
200Category updated successfully—
403Missing calendar permission—
404Event category not found—