Events

Events represent scheduled training events in the system.

Search

The following example fetches the first page of events starting on or after 1st May 2023 at 00:00 UTC, sorted by code and start time (ascending):

Example

query {
  events(
    filters:[
       {field: timeZonedStart, operation: ge, value: "2023-05-01T00:00:00Z"}
    ]
    orderBy: [
      {field: code, direction: asc}
      {field: timeZonedStart, direction: asc}
    ]
  ) {
    edges{
      node{
        id 
        code 
        title 
        learningMode
        start 
        end
      }
    }
  }
}

For the full range of available filters see the EventField API Reference.

Create

The following example creates a new LMS event for the specified course templates, location, tax type, start and end times:

Example

mutation {
  event{
    createLMS(input:{
      courseTemplateId:"Q291cnNlVGVtcGxhdGU6MTE="
      eventType: public
      timeZonedLmsStart: "2023-01-05T09:00:00-05:00"
      timeZonedLmsEnd: "2023-01-05T18:00:00-05:00"
      locationId: "TG9jYXRpb246NzY="
      taxTypeId:"VGF4VHlwZTox"
    }) {
      event{
        id 
        lifecycleState
        timeZonedStart
        timeZonedEnd
      }
      errors{
        label 
        message 
        value
      }
    }
  }
}

The response shows the new event's lifecycleState is draft:

{
  "data": {
    "event": {
      "createLMS": {
        "event": {
          "id": "Q291cnNlOjE=",
          "lifecycleState": "draft",
          "timeZonedStart": "2023-01-05T14:00:00Z",
          "timeZonedEnd": "2023-01-05T23:00:00Z"
        },
        "errors": []
      }
    }
  }
}

Update

For the full range of available update parameters see the EventUpdateInput API Reference.

Publish

To publish an Event, update its lifecycleState field:

Example

mutation{
  event{
    update(
      eventId: "Q291cnNlOjE="
      input:{
        lifecycleState: published
      }
    ) {
      event{
        id 
        lifecycleState
      }
      errors{
        label 
        message 
        value
      }
    }
  }
}

Cancel

Similarly, to cancel an event update it to cancelled:

Example

mutation{
  event{
    update(
      eventId: "Q291cnNlOjE="
      input:{
        lifecycleState: cancelled
      }
    ) {
      event{
        id 
        lifecycleState
      }
      errors{
        label 
        message 
        value
      }
    }
  }
}

Learners

Registration

Learners can be added to a published event by associating them with a Contact in your TMS:

Example

 mutation {
  event{
    registerContacts(
      eventId:"Q291cnNlOjE="
      input:{
        contacts:[
          "UGVyc29uOjM1", 
          "UGVyc29uOjM="
        ]
      }
    ) {
      event{
        id
        learners(orderBy:[{field: id, direction: desc}]){
          edges{
            node{
              id 
              contact{
                id
                personalName{
                  name
                }
              }
            }
          }
        }
      }
    }
  }
}

The response from the above example will show the most recent learners (ordered by descending ID) and their requested details:

{
  "data": {
    "event": {
      "registerContacts": {
        "event": {
          "id": "Q291cnNlOjE=",
          "learners": {
            "edges": [
              {
                "node": {
                  "id": "bGVhcm5lcjoy",
                  "contact": {
                    "id": "UGVyc29uOjM=",
                    "personalName": {
                      "name": "Jane Smith"
                    }
                  }
                }
              },
              {
                "node": {
                  "id": "bGVhcm5lcjox",
                  "contact": {
                    "id": "UGVyc29uOjM1",
                    "personalName": {
                      "name": "Mary Green"
                    }
                  }
                }
              }
            ]
          }
        }
      }
    }
  }
}

For the full range of named learner registration options (including price specifications) see the EventRegisterContacts API Reference.

Progress

Learner progress on an Event is handled by our LMS API

Events can be set up to automatically mark a Learner as "passed" on completion of all relevant content. Moreover, automatic achievement awarding can be configured. For more information, see our Support Documentation

You can manually record completion of an Event with the following:

Example

mutation {
  learner{
    recordResult(
      learnerId: "bGVhcm5lcjoy"
      hasPassed: true
    ) {
      learner{
        id
        hasPassed
      }
      errors{
        label 
        message 
        value
      }
    }
  }
}

You can also optionally override any achievements you wish to award or prevent:

Example

mutation {
  learner{
    recordResultWithAchievements(
      input:{
        learnerId: "bGVhcm5lcjoy"
        hasPassed: true
        manualAchievements:[
          {
            achievementTypeId: "QWNoaWV2ZW1lbnRUeXBlOjE="
            achieved: true
          }
        ]
      }
    ) {
      learner{
        id
        hasPassed
      }
      errors{
        label 
        message 
        value
      }
    }
  }
}