Org Content

Create an event

POST/org-content/event

Creates an event for the organisation and returns it with a Location. title is required; summary, body, author, external_link, image_file_key, published (default true), featured (default false), publish_date (default now when left out; an explicit null leaves it empty, which readers treat as already published), location, start_date and end_date are optional. Needs permission to manage the organisation's content. dry_run shows the result without saving it. Emits event.created; no email or notification. DELETE /org-content/event/{id} undoes it.

Query parameters

  • dry_runboolean#

    Validate and run the call without committing it, returning what the real call would return with meta.dry_run set.

Headers

  • Idempotency-Keystring#

    Makes a retry safe. Send a new UUID for each new request and reuse it only to retry that request; the first response is replayed for 24 hours.

Request body

application/json, required · OrgEventCreate

  • titlestringRequired#

    The title, up to 256 characters.

  • summarystring | null#

    A short summary.

  • image_file_keystring | null#

    The file key of an image from POST /org-content/images.

  • bodystring | null#

    The body, as HTML.

  • authorstring | null#

    The author as shown to readers, up to 255 characters.

  • publishedboolean#

    Whether readers can see the item. Defaults to true on create.

  • publish_datestring | null#

    When the item becomes visible to readers. Defaults to the moment it is created.

  • locationstring | null#

    Where the event is held.

  • start_datestring | null#

    When the event starts.

  • end_datestring | null#

    When the event ends, on or after start_date when both are sent.

{
  "title": "Annual investor meeting",
  "location": "London",
  "start_date": "2030-01-01T10:00:00Z",
  "end_date": "2030-01-01T12:00:00Z"
}

Responses

201

The event was created.

OrgEvent
{
  "data": {
    "id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
    "type": "event",
    "title": "string",
    "summary": "string",
    "body": "string",
    "author": "string",
    "external_link": "string",
    "image_file_key": "string",
    "published": true,
    "featured": true,
    "publish_date": "2026-06-12T10:00:00+00:00",
    "location": "string",
    "start_date": "2026-06-12T10:00:00+00:00",
    "end_date": "2026-06-12T10:00:00+00:00",
    "like_count": 1,
    "comment_count": 1,
    "created_at": "2026-06-12T10:00:00+00:00",
    "updated_at": "2026-06-12T10:00:00+00:00"
  }
}
401

Authentication failed. error.code is one of invalid_token, expired, revoked.

Error
403

Authorization failed. error.code is one of org_disabled, ip_blocked, missing_scope, scope_disabled, user_disabled.

Error
422

The request can't be processed (HTTP 422): validation_failed with one ErrorDetail per problem, or a code documented on the operation.

Error
429

Rate limit exceeded (error.code = rate_limited).

Error

Examples

curl -X POST https://your-org-domain/kong/core/api/v2/org-content/event\
  -H "Authorization: Bearer $HELM_API_KEY"\
  -H "Content-Type: application/json"\
  -d '{
  "title": "Annual investor meeting",
  "location": "London",
  "start_date": "2030-01-01T10:00:00Z",
  "end_date": "2030-01-01T12:00:00Z"
}'