OfferEvent & Date

English only

Use Cases

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.

Get single event

query {
  offerEvent(id: "uuid-here") {
    id
    title
    ref
    type
    dates {
      id
      startDate
      endDate
    }
    maxSubscriptions
    enrolledCount
    spotsAvailable
  }
}

List all events for an offer

query {
  offer(id: "uuid-here") {
    offerEvents {
      id
      title
      ref
      type
      enrolledCount
    }
  }
}

Create event

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 }
    }
  }
}

Update event

mutation {
  updateOfferEvent(
    ref: "event-sept-2024"
    offerEvent: {
      title: "New title"
      maxSubscriptions: 30
    }
  ) {
    offerEvent {
      id
      title
    }
  }
}

Delete event

mutation {
  deleteOfferEvent(id: "uuid-here") {
    ok
  }
}

GraphQL Definitions

Type: OfferEvent

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

enum OfferEventType {
  MEETING
  WEBINAR
  TRAINING
  ELEARNING
  COURSE
  SCORM
  VIDEO
}

Mutations

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

Key CreateOfferEventInput fields

FieldTypeDescription
typeOfferEventType!Required. MEETING, WEBINAR, TRAINING, ELEARNING, COURSE, SCORM, or VIDEO
titleStringEvent title
refStringExternal reference
dates[OfferEventDateInput]Session dates with startDate, endDate
accessTrainings[UUID!]Training IDs to grant access to
accessCourses[UUID!]Course IDs to grant access to
maxSubscriptionsIntMaximum number of participants
waitingListBooleanEnable waiting list when full
priceDecimalEvent price
closingDateDateTimeRegistration deadline
certificateIdUUIDCertificate template to issue on completion
scoreThresholdFloatMinimum score for passing

Notes

  • type is required when creating — it determines the kind of content (meeting, webinar, training, etc.).
  • Content is linked via accessTrainings, accessCourses, accessExternalContents, accessScorms, accessVideos.
  • Registration occurs via enrollments at the OfferEvent level (see Enrollments page).
  • Both id and ref work for identification in queries and mutations.
  • Use cancelled: true in update to cancel an event (participants are notified).
Close notification