Skip to main content
Events are the core of MeetPoint. An event represents a social gathering organized by a user. Any authenticated user can create an event, and all visitors can browse the event feed.

Create

Authenticated users with the User, Organizer, or Admin role can publish new events.

Discover

Anyone can browse, search, and paginate the public event feed without signing in.

Engage

Attendees can register, leave comments, and rate the organizer after the event.

Event fields

The following fields are returned in an EventDto response.
FieldTypeDescription
idGuidUnique identifier for the event.
titlestringDisplay name of the event. Required.
descriptionstringFull description of the event. Required.
ubicationstringPhysical location or address. Required.
dateDateTimeDate and time the event takes place. Required.
publicationDateDateTimeTimestamp of when the event was published.
categoryIdGuidID of the category the event belongs to.
categoryNamestringHuman-readable category label.
organizerIdstringUser ID of the event organizer.
organizerNamestringDisplay name of the organizer.
organizerRatingdecimalAggregated star rating of the organizer.
organizerRatingsCountintTotal number of ratings the organizer has received.
attendancesCountintNumber of registered attendances.
commentsCountintNumber of comments posted on the event.
attendancesAttendanceDto[]List of attendance records for the event.
commentsCommentDto[]List of comments on the event.

Role-based access

OperationAnonymousUserOrganizerAdmin
List events (search + paginate)YesYesYesYes
Get event by IDYesYesYesYes
Create eventNoYesYesYes
Edit eventNoYes (own)Yes (own)Yes
Delete eventNoYes (own)Yes (own)Yes
The GET /api/events and GET /api/events/{id} endpoints are decorated with [AllowAnonymous] and do not require a Bearer token.

Event lifecycle

An event follows this general progression after it is published:
  1. Creation — An authenticated user submits an EventCreateDto to POST /api/events. The organizer ID is resolved from the authenticated user.
  2. Discovery — The event appears in the paginated feed returned by GET /api/events. Visitors can filter results with the searchTerm query parameter.
  3. Attendance — Authenticated users register their interest via POST /api/attendances.
  4. Rating — Once an event has passed, attendees can rate the organizer via POST /api/ratings.

API endpoints

List events

GET /api/events?searchTerm=&page=1
Returns a paginated list of EventDto objects. Both query parameters are optional.

Get event by ID

GET /api/events/{id}
Returns a single EventDto including full attendance and comment lists.

Create event

POST /api/events
{
  "categoryId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "organizerId": "user-id-string",
  "title": "Morning Yoga in the Park",
  "description": "A relaxed outdoor yoga session open to all levels.",
  "ubication": "Central Park, New York",
  "date": "2026-06-15T08:00:00"
}

Edit event

PUT /api/events/{id}
Accepts an EventEditDto with the same fields as create, minus organizerId.

Delete event

DELETE /api/events/{id}
Permanently removes the event. Only the organizer who created it or an Admin can delete it.

Build docs developers (and LLMs) love