Skip to main content
An event post attaches an existing event to a post. The post carries the author’s text; the event supplies the card that renders inside the feed. Tapping the card opens the event detail page instead of the post detail page, so the event stays the primary surface.
Create the event first with the Event Repository. See Create Event. The event post references the returned eventId.

Event Reference

An event post points to an eventId returned by event creation. The reference is immutable — a post can never be repointed at a different event.

Feed Delivery

Publish to a user feed or a community feed. Private-community events are locked to their own community server-side.

Data Type

Event posts use a dedicated content type: Publishing an event post with both title and text blank is valid — the event card is the payload.

Parameters

The event-post SDK surface is available in TypeScript, iOS, and Android. Flutter and React Native do not expose these event-post APIs.

Create an Event Post

Creating an event post publishes the post and returns the created post once the server has accepted it. eventId is required; title and text are the author’s own copy and may both be empty.

Target Rules

The target is constrained by the event’s origin:
The private-community lock is a server-side rule. If your app builds a custom target picker, honour the same rule client-side to avoid surprising 400 errors after the user has already drafted a post.

Rejected Combinations

The backend rejects the following with 400:

Editing an Event Post

Editing updates data.title and data.text only. The event itself is never changed by a post edit, and sibling posts referencing the same event are unaffected.
Do not send data.eventId on edit. It is immutable — any request that changes it is rejected with 400.

Resolve the Event from a Post

There are two ways to resolve the event — pick one: a snapshot (post.getEvent()) that returns the event cached with the post, or a live observer (EventRepository.getEvent) that keeps the card in sync with changes. On iOS, post.getEvent() is the recommended path — it’s shipped, and the SDK links the event to the post during serialization, so it returns the event directly, with no repository call and without inspecting child posts yourself (this is what AmityUIKit does). On Android, resolve the event through the repository instead: read the eventId from the child post — the parent post’s data is TEXT and the EVENT data sits on the child — then observe it with EventRepository.getEvent(eventId).
On iOS, post.getEvent() returns nil when the post is not an event post, or when the event entry is not in the payload (for example, the event was deleted). On Android, getEvent(eventId) is a live stream that emits again whenever the event changes. A deleted or unavailable event surfaces as an error on the Flowable, not a null emission — handle it in the error callback. A cancelled event still resolves normally and must be treated as deleted by the consumer; the SDK does not normalise it.

Query Event Posts

Event posts are excluded from the default results of v3 and v4 post queries so that older clients never receive a dataType they cannot render. Reads for event-aware clients must use GET /api/v5/posts. To include event posts on any version, filter explicitly:
An unfiltered v4 feed query will not return an event post you just created — the exclusion gate hides it. Either upgrade the read to v5 or add dataTypes=event to the query.

Create Event

Create the event that an event post will reference.

Events Overview

Event model, statuses, and RSVP APIs.

Posts Overview

Post targets, structure types, and platform APIs.