Events
The Events API allows you to create, retrieve, update, and delete events. Events are the main entity in the iEvents system and can include occurrences, categories, publishing channels, and notifications.
Authentication
All requests to the Events API must be authenticated using the ONLIVE.SITE authentication scheme. Please refer to the Authentication Guide for detailed instructions.
Base URL
https://openapi.onlive.site/api/v1/events
Endpoints
Create Event
Creates a new event with the provided information.
HTTP Request
POST /api/v1/events
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | The name of the event (max 255 characters) |
organizationId | string (uuid) | No | The organization identifier |
type | string | No | The type of the event: PHYSICAL or VIRTUAL |
shortDescription | string | No | The short description of the event in plain text |
description | string | No | The description of the event |
image | string | No | The image URL for the event |
imageBase64 | string | No | The image as base64 encoded string. If provided, this will be uploaded and the URL will be used as the event image |
imageExternal | string | No | An external image URL for the event. When provided, it is used as the event image instead of image |
datelessEvent | boolean | No | Whether the event is dateless (has no specific start/end dates) (default: false) |
userGroupId | string (uuid) | No | When provided, takes precedence over the authenticated user's user group ID |
locationName | string | No | The name of the location (max 255 characters) |
locationAddress | string | No | The address of the location |
locationLink | string | No | The link to the location |
externalLink | string | No | An external link related to the event |
groupOccurrences | boolean | No | Whether the event should display occurrences as grouped. When true, public event listings will show the event once with all date ranges (default: false) |
templateId | string (uuid) | No | The template identifier to use for this event |
extraFields | object | No | Additional fields for the event in JSON format |
categoryIds | array of strings (uuid) | No | Array of category IDs to associate with this event |
occurrences | object | No | Occurrences to create with the event |
recurrences | object | No | Recurrences to create for the event. Recurrences define repeating patterns that generate occurrences automatically |
publishingChannels | object | No | Publishing channels to create for the event |
notifications | object | No | Notifications to create for the event |
Occurrence Object (CreateEventOccurrenceDto)
| Field | Type | Required | Description |
|---|---|---|---|
startDate | string (date-time) | No | The start date and time of the event occurrence (nullable) |
endDate | string (date-time) | No | The end date and time of the event occurrence (nullable) |
capacity | number (min: 0) | Yes | The capacity of the event occurrence |
status | string | No | The status to set for the occurrence: ACTIVE, INACTIVE, CANCELLED, FINALIZED |
showing | string | No | The showing status of the event occurrence: AUTO, SHOW, HIDE |
Recurrence Object (CreateEventRecurrenceDto)
| Field | Type | Required | Description |
|---|---|---|---|
rrule | string | Yes | The RRULE string defining the recurrence pattern (RFC 5545 format). Example: FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20251231T235959Z |
startDate | string (date-time) | Yes | The start date and time for the recurrence pattern |
endDate | string (date-time) | No | The end date and time for each occurrence in the recurrence |
capacity | number (min: 0) | Yes | The capacity for each occurrence generated by this recurrence |
excludedDates | array of strings (date-time) | No | Array of dates to exclude from the recurrence pattern |
enabled | boolean | No | Whether the recurrence is enabled (default: true) |
Publishing Channel Object (CreateEventPublishingChannelDto)
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the publishing channel |
channelType | string | Yes | Type of channel: WIDGET, WEBSITE, or SOCIAL |
externalId | string | No | External id provided by the channel |
publishDate | string (date-time) | No | Publish date for the channel |
url | string | No | URL for the publishing channel |
Notification Object (CreateEventNotificationDto)
| Field | Type | Required | Description |
|---|---|---|---|
timeValue | number | Yes | Time before/after occurrence to send notification (integer) |
timeUnit | string | Yes | Time unit: MINUTES, HOURS, or DAYS |
channel | string | Yes | Notification channel: EMAIL or SMS |
notificationType | string | Yes | Notification type to use for notification (e.g., EVENT_REMINDER) |
timing | string | Yes | Notification timing: BEFORE, AFTER, or SPECIFIC_DATE (default: BEFORE) |
specificDate | string (date-time) | No | Specific date for sending notification when timing is SPECIFIC_DATE (ISO 8601 format) |
referenceDate | string | No | Reference date for the notification: EVENT_START or EVENT_END |
emailField | string | No | Email field identifier for dynamic email targeting (max 255 characters) |
metadata | object | No | Additional metadata for the notification |
Example Request Body
{
"name": "Annual Tech Conference 2025",
"type": "PHYSICAL",
"shortDescription": "Annual tech conference featuring keynote speakers and workshops",
"description": "Join us for the biggest tech conference of the year featuring keynote speakers, workshops, and networking opportunities.",
"image": "https://example.com/images/conference-2025.jpg",
"locationName": "Convention Center",
"locationAddress": "123 Main St, City, State 12345",
"locationLink": "https://maps.google.com/?q=Convention+Center",
"externalLink": "https://external-website.com/event-details",
"groupOccurrences": false,
"templateId": "456e7890-e89b-12d3-a456-426614174001",
"extraFields": {
"title": "Conference 2025",
"description": "Annual tech conference"
},
"categoryIds": [
"123e4567-e89b-12d3-a456-426614174004",
"456e7890-e89b-12d3-a456-426614174005"
],
"occurrences": {
"create": [
{
"startDate": "2025-12-25T10:00:00.000Z",
"endDate": "2025-12-25T18:00:00.000Z",
"capacity": 100,
"status": "ACTIVE"
}
]
},
"recurrences": {
"create": [
{
"rrule": "FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20251231T235959Z",
"startDate": "2025-12-25T10:00:00.000Z",
"endDate": "2025-12-25T18:00:00.000Z",
"capacity": 100,
"enabled": true
}
]
},
"publishingChannels": {
"create": [
{
"name": "Default Widget",
"channelType": "WIDGET",
"externalId": "ext-123",
"publishDate": "2025-12-25T10:00:00.000Z"
}
]
},
"notifications": {
"create": [
{
"timeValue": 30,
"timeUnit": "MINUTES",
"channel": "EMAIL",
"notificationType": "EVENT_REMINDER",
"timing": "BEFORE",
"referenceDate": "EVENT_START"
}
]
}
}
Response
201 Created
Returns the created Event object.
Example Response
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Annual Tech Conference 2025",
"slug": "annual-tech-conference-2025",
"description": "Join us for the biggest tech conference of the year featuring keynote speakers, workshops, and networking opportunities.",
"image": "https://example.com/images/conference-2025.jpg",
"extraFields": {
"title": "Conference 2025",
"description": "Annual tech conference"
},
"occurrences": [
{
"id": "789e0123-e89b-12d3-a456-426614174006",
"startDate": "2025-12-25T10:00:00.000Z",
"endDate": "2025-12-25T18:00:00.000Z"
}
],
"categories": [
{
"id": "123e4567-e89b-12d3-a456-426614174004",
"name": "Technology"
}
],
"template": {
"id": "456e7890-e89b-12d3-a456-426614174001",
"name": "Conference Template"
},
"eventPublishingChannels": [
{
"id": "890e1234-e89b-12d3-a456-426614174007",
"name": "Widget",
"channelType": "WIDGET",
"externalId": "ext-123",
"publishDate": "2025-12-25T10:00:00.000Z"
}
],
"notifications": [
{
"id": "901e2345-e89b-12d3-a456-426614174008",
"timing": "BEFORE",
"timeUnit": "MINUTES",
"timeValue": 30,
"channel": "EMAIL",
"notificationType": "EVENT_REMINDER"
}
],
"createdAt": "2025-10-12T10:30:00.000Z",
"updatedAt": "2025-10-12T10:30:00.000Z"
}
Get Event
Retrieves a specific event by its ID.
HTTP Request
GET /api/v1/events/{id}
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | The unique identifier of the event |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
withTrashed | boolean | No | Include trashed events |
Response
200 OK
Returns the Event object.
Example Response
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Annual Tech Conference 2025",
"slug": "annual-tech-conference-2025",
"description": "Join us for the biggest tech conference of the year featuring keynote speakers, workshops, and networking opportunities.",
"image": "https://example.com/images/conference-2025.jpg",
"extraFields": {
"title": "Conference 2025",
"description": "Annual tech conference"
},
"occurrences": [],
"categories": [],
"template": null,
"eventPublishingChannels": [],
"notifications": [],
"createdAt": "2025-10-12T10:30:00.000Z",
"updatedAt": "2025-10-12T10:30:00.000Z"
}
Update Event
Updates an existing event.
HTTP Request
PUT /api/v1/events/{id}
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | The unique identifier of the event |
Request Body
All fields are optional. Only the fields you want to update need to be included.
| Field | Type | Description |
|---|---|---|
name | string | The name of the event (max 255 characters) |
type | string | The type of the event: PHYSICAL or VIRTUAL |
shortDescription | string | The short description of the event in plain text |
description | string | The description of the event |
image | string | The image URL for the event |
imageBase64 | string | The image as base64 encoded string. If provided, this will be uploaded and the URL will be used as the event image |
imageExternal | string | An external image URL for the event. When provided, it is used as the event image instead of image |
datelessEvent | boolean | Whether the event is dateless (has no specific start/end dates) |
userGroupId | string (uuid) | When provided, takes precedence over the authenticated user's user group ID |
locationName | string | The name of the location (max 255 characters) |
locationAddress | string | The address of the location |
locationLink | string | The link to the location |
externalLink | string | An external link related to the event |
groupOccurrences | boolean | Whether the event should display occurrences as grouped |
templateId | string (uuid) | The template identifier to use for this event |
extraFields | object | Additional fields for the event in JSON format |
categoryIds | array of strings (uuid) | Array of category IDs to associate with this event |
occurrences | object | Occurrences to create, update, or delete (see ManageEventOccurrencesDto) |
recurrences | object | Recurrences to create, update, or delete (see ManageEventRecurrencesDto) |
publishingChannels | object | Publishing channels to create, update, or delete (see ManageEventPublishingChannelsDto) |
notifications | object | Notifications to create, update, or delete (see ManageEventNotificationsDto) |
ManageEventOccurrencesDto
| Field | Type | Description |
|---|---|---|
create | array | Array of new occurrences to create (CreateEventOccurrenceDto) |
update | array | Array of existing occurrences to update (UpdateEventOccurrenceDto - id is required) |
delete | array | Array of occurrence ids to delete (DeleteEventRelationDto) |
UpdateEventOccurrenceDto
| Field | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | The unique identifier of the event occurrence to update |
startDate | string (date-time) | No | The start date and time of the event occurrence (nullable) |
endDate | string (date-time) | No | The end date and time of the event occurrence (nullable) |
capacity | number (min: 0) | Yes | The capacity of the event occurrence |
status | string | No | The status to set for the occurrence: ACTIVE, INACTIVE, CANCELLED, FINALIZED |
showing | string | No | The showing status: AUTO, SHOW, HIDE |
cancellationMessage | string | No | Optional message explaining the reason for cancellation (max 1000 characters) |
UpdateEventRecurrenceDto
| Field | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | The unique identifier of the recurrence to update |
rrule | string | No | The RRULE string defining the recurrence pattern (RFC 5545 format) |
startDate | string (date-time) | No | The start date and time for the recurrence pattern |
endDate | string (date-time) | No | The end date and time for each occurrence in the recurrence |
capacity | number (min: 0) | No | The capacity for each occurrence generated by this recurrence |
excludedDates | array of strings | No | Array of dates to exclude from the recurrence pattern |
enabled | boolean | No | Whether the recurrence is enabled |
UpdateEventPublishingChannelDto
| Field | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | The unique identifier of the publishing channel to update |
name | string | No | Name of the publishing channel |
channelType | string | No | Type of channel: WIDGET, WEBSITE, or SOCIAL |
externalId | string | No | External id provided by the channel |
publishDate | string (date-time) | No | Publish date for the channel |
url | string | No | URL for the publishing channel |
UpdateEventNotificationDto
| Field | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | The unique identifier of the notification to update |
timeValue | number | No | Time before/after occurrence to send notification (integer) |
timeUnit | string | No | Time unit: MINUTES, HOURS, or DAYS |
channel | string | No | Notification channel: EMAIL or SMS |
notificationType | string | No | Notification type to use for notification |
timing | string | No | Notification timing: BEFORE, AFTER, or SPECIFIC_DATE |
specificDate | string (date-time) | No | Specific date for sending notification when timing is SPECIFIC_DATE |
referenceDate | string | No | Reference date for the notification: EVENT_START or EVENT_END |
emailField | string | No | Email field identifier for dynamic email targeting (max 255 characters) |
metadata | object | No | Additional metadata for the notification |
DeleteEventRelationDto
| Field | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | The unique identifier of the entity to delete |
Example Request Body
{
"name": "Updated Annual Tech Conference 2025",
"description": "Join us for the updated biggest tech conference of the year featuring keynote speakers, workshops, and networking opportunities.",
"occurrences": {
"create": [
{
"startDate": "2025-12-25T10:00:00.000Z",
"endDate": "2025-12-25T18:00:00.000Z",
"capacity": 150
}
],
"update": [
{
"id": "567e8901-e89b-12d3-a456-426614174004",
"startDate": "2025-12-26T10:00:00.000Z",
"endDate": "2025-12-26T18:00:00.000Z",
"capacity": 200,
"status": "ACTIVE"
}
],
"delete": [
{
"id": "789e0123-e89b-12d3-a456-426614174006"
}
]
},
"recurrences": {
"update": [
{
"id": "recurrence-id-123",
"enabled": false
}
]
}
}
Response
200 OK
Returns the updated Event object.
Search Events
Retrieves a paginated list of events based on query parameters.
HTTP Request
GET /api/v1/events
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | No | Maximum number of items to return (default: 10, min: 1) |
page | number | No | Page number (starts at 1, default: 1, min: 1) |
sort | string | No | Field name and direction to sort results by (default: "createdAt DESC", example: "createdAt DESC") |
organizationId | string (uuid) | No | Filter events by organization ID |
search | string | No | Search term to filter events by name or ID |
startDate | string (ISO 8601) | No | Start date for filtering events (ISO 8601 format). Returns events with at least one occurrence on or after this date. Example: "2025-10-01T00:00:00.000Z" |
endDate | string (ISO 8601) | No | End date for filtering events (ISO 8601 format). Returns events with at least one occurrence on or before this date. Example: "2025-12-31T23:59:59.999Z" |
categories | array of strings (uuid) | No | Array of category UUIDs to filter events. Returns events that belong to at least one of these categories. Example: ["550e8400-e29b-41d4-a716-446655440000", "550e8400-e29b-41d4-a716-446655440001"] |
range | string | No | Range filter for ordering events: all, upcoming, past, today, thisWeek, thisMonth, custom |
withTrashed | boolean | No | Include soft-deleted events in the results |
userGroupId | string (uuid) | No | Filter events by user group ID |
templateId | string (uuid) | No | Filter events by template ID |
templateSlug | string | No | Filter events by template slug |
Example Request
GET /api/v1/events?organizationId=987e6543-e21a-34b5-c678-426614174000&search=Conference&startDate=2025-10-01T00:00:00.000Z&endDate=2025-12-31T23:59:59.999Z&categories=550e8400-e29b-41d4-a716-446655440000&categories=550e8400-e29b-41d4-a716-446655440001&templateSlug=annual-conference&page=1&limit=20&sort=name ASC
Response
200 OK
Returns a paginated response with an array of Event objects.
Example Response
{
"count": 1,
"total": 1,
"currentPage": 1,
"totalPages": 1,
"items": [],
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Annual Tech Conference 2025",
"slug": "annual-tech-conference-2025",
"description": "Join us for the biggest tech conference of the year.",
"image": "https://example.com/images/conference-2025.jpg",
"extraFields": {},
"occurrences": [],
"categories": [],
"template": null,
"eventPublishingChannels": [],
"notifications": [],
"createdAt": "2025-10-12T10:30:00.000Z",
"updatedAt": "2025-10-12T10:30:00.000Z"
}
]
}
Delete Event
Deletes an event by its ID.
HTTP Request
DELETE /api/v1/events/{id}
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | The unique identifier of the event |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
withTrashed | boolean | No | Include trashed events |
Response
200 OK
Returns the deleted Event object.
Event Object
The Event object represents an event with all its associated data.
Properties
| Property | Type | Description |
|---|---|---|
id | string (uuid) | The unique identifier of the event |
createdAt | string (ISO 8601) | The date and time the event was created |
updatedAt | string (ISO 8601) | The date and time the event was last updated |
name | string | The name of the event (max 255 characters) |
slug | string | The slug for the event (URL-friendly identifier) (max 255 characters) |
type | string | The type of the event: PHYSICAL or VIRTUAL |
shortDescription | string | null | The short description of the event in plain text |
description | string | null | The description of the event |
image | string | null | The image URL for the event |
locationName | string | null | The name of the location (max 255 characters) |
locationAddress | string | null | The address of the location |
locationLink | string | null | The link to the location (e.g., Google Maps URL) |
externalLink | string | null | An external link related to the event |
groupOccurrences | boolean | Whether the event should display occurrences as grouped. When true, public event listings will show the event once with all date ranges |
extraFields | object | Additional data for the event in JSON format |
occurrences | array | The event occurrences associated with this event |
categories | array | The categories associated with this event |
template | object | null | The event template associated with this event |
eventPublishingChannels | array | The publishing channels associated with this event |
notifications | array | The notifications associated with this event |
organization | object | The organization associated with the event (contains id and name) |
deletedAt | string (ISO 8601) | null | The deletion date of the event (if deleted) |