An OfferEvent is a concrete entry point within a registration offer (Offer). Users register for an OfferEvent, which can be linked to content (training, course, etc.). Each event can contain multiple OfferEventDates — the scheduled sessions or contact moments.
For a full explanation of how Offers, OfferEvents, and Dates relate to each other, see the Offer page.
query {
offerEvent(id: "uuid-here") {
id
title
ref
type
dates {
id
startDate
endDate
}
maxSubscriptions
enrolledCount
spotsAvailable
}
}query {
offer(id: "uuid-here") {
offerEvents {
id
title
ref
type
enrolledCount
}
}
}mutation {
createOfferEvent(
offerId: "uuid-of-offer"
offerEvent: {
title: "Starting Moment September"
ref: "event-sept-2024"
type: TRAINING
accessTrainings: ["uuid-of-training"]
maxSubscriptions: 25
dates: [
{
startDate: "2025-09-12T09:00:00Z"
endDate: "2025-09-12T12:00:00Z"
},
{
startDate: "2025-09-19T09:00:00Z"
endDate: "2025-09-19T12:00:00Z"
}
]
}
) {
offerEvent {
id
title
ref
dates { id startDate endDate }
}
}
}mutation {
updateOfferEvent(
ref: "event-sept-2024"
offerEvent: {
title: "New title"
maxSubscriptions: 30
}
) {
offerEvent {
id
title
}
}
}mutation {
deleteOfferEvent(id: "uuid-here") {
ok
}
}type OfferEvent {
id: ID!
ref: String
title: String
type: OfferEventType!
dates: [OfferEventDate!]
maxSubscriptions: Int
minSubscriptions: Int
enrolledCount: Int
spotsAvailable: Int
waitingList: Boolean
closingDate: DateTime
price: Decimal
cancelled: Boolean
publish: Boolean
trainers: [User!]
accessTrainings: [Training!]
accessCourses: [Course!]
accessExternalContents: [ExternalContent!]
accessScorms: [Scorm!]
accessVideos: [Video!]
certificateId: UUID
scoreThreshold: Float
}enum OfferEventType {
MEETING
WEBINAR
TRAINING
ELEARNING
COURSE
SCORM
VIDEO
}createOfferEvent(offerId: UUID, offerRef: String, offerEvent: CreateOfferEventInput!): CreateOfferEvent
updateOfferEvent(id: UUID, ref: String, offerEvent: UpdateOfferEventInput!, sendNotification: Boolean = true): UpdateOfferEvent
deleteOfferEvent(id: UUID!): DeleteOfferEvent
copyOfferEvent(id: UUID!): CopyOfferEvent
addTrainersToOfferEvent(offerEventId: UUID, offerEventRef: String, ids: [UUID!], refs: [String!]): AddTrainersToOfferEvent
removeTrainersFromOfferEvent(offerEventId: UUID, offerEventRef: String, ids: [UUID!], refs: [String!]): RemoveTrainersFromOfferEvent| Field | Type | Description |
|---|---|---|
type | OfferEventType! | Required. MEETING, WEBINAR, TRAINING, ELEARNING, COURSE, SCORM, or VIDEO |
title | String | Event title |
ref | String | External reference |
dates | [OfferEventDateInput] | Session dates with startDate, endDate |
accessTrainings | [UUID!] | Training IDs to grant access to |
accessCourses | [UUID!] | Course IDs to grant access to |
maxSubscriptions | Int | Maximum number of participants |
waitingList | Boolean | Enable waiting list when full |
price | Decimal | Event price |
closingDate | DateTime | Registration deadline |
certificateId | UUID | Certificate template to issue on completion |
scoreThreshold | Float | Minimum score for passing |
type is required when creating — it determines the kind of content (meeting, webinar, training, etc.).accessTrainings, accessCourses, accessExternalContents, accessScorms, accessVideos.OfferEvent level (see Enrollments page).id and ref work for identification in queries and mutations.cancelled: true in update to cancel an event (participants are notified).