The getCalendarEvents query allows you to retrieve calendar events for authenticated users. This endpoint returns both user-specific personal events and publicly accessible events that are visible to all authenticated (non-anonymous) users.
  • You must have AUTHENTICATED scope to access calendar events. Anonymous users cannot retrieve calendar data.
  • The request should contains а valid date(s) boundary for calendar events collection.
  • The API user context must be present and valid - otherwise, access is denied.
The following arguments can be used in the query:
ArgumentTypeDescription
fromDateDateTimeRequired. The beginning boundary of calendar events date range. Date should be compliant to ISO 8601.
toDateDateTimeThe ending boundary of calendar events date range. Date should be compliant to ISO 8601.
typeCalendarEventTypeReturns results that come after the specified cursor. Should be used together with first parameter. Cannot be used if before is set.
afterCursorReturns the elements that come before the specified cursor.
beforeCursorReturns results that come before the specified cursor. Should be used together with last parameter. Cannot be used if after is set.
firstIntegerReturns up to the first N elements from the list. Required if after parameter is set. Cannot be used together with last.
lastIntegerReturns up to the first N elements from the list. Required if before parameter is set. Cannot be used together with first.

Available CalendarEvents

The API includes an automatic calendar events generation according to next actions:
  • Scheduled Live session
  • Available Live session spots of Live Session Bucket, that relates to started Training
Note: Additional event variations will be made available through the API in future updates.

Examples

Basic Calendar Events Query

query getCalendarEvents {
  getCalendarEvents(
    first: 5, 
    fromDate: "2025-07-01T00:00:00Z",
    toDate: "2025-12-31T23:59:59Z"
  ) {
    edges {
      node {
        id
        type
        label
        description
        location
        startDatetime
        endDatetime
      }
    }
    pageInfo {
      hasNextPage
      startCursor
      endCursor
    }
  }
}

Calendar events CTA

Calendar events may include dedicated Call to Action (CTA) objects that define the actions available to the current user, such as registering for a Live Session.
query getCalendarEvents {
  getCalendarEvents(first: 3, fromDate: "2025-07-09T00:00:00", toDate: "2025-07-09T23:59:59") {
    edges {
      node {
        id
        type
        label
        startDatetime
        endDatetime
        cta {
          title
          actionId
          arguments {
            key
            value
          }
          metadata {
            key
            value
          }
        }
      }
    }
  }
}
The Call to Action (CTA) object in the example above represents an available action for the calendar event within the currently authenticated user context. This action can be executed via a separate mutation call to register the user for the associated live session:
mutation registerToLiveSession {
  registerToLiveSession(liveSessionId: 39) {
    errors
    response {
      id
    }
  }
}

Filtering by Event Type

query getPublicEvents {
  getCalendarEvents(
    first: 10,
    fromDate: "2025-07-01T00:00:00Z",
    toDate: "2025-12-31T23:59:59Z",
    type: PUBLIC
  ) {
    edges {
      node {
        id
        type
        label
        description
        startDatetime
        endDatetime
      }
    }
  }
}

Pagination Example

query getCalendarEventsPaginated {
  getCalendarEvents(
    first: 3,
    fromDate: "2025-07-01T00:00:00Z",
    toDate: "2025-12-31T23:59:59Z",
    after: "TzozMzoiRHJ1cGFsXG9waWdub19hcGlcV3JhcHBlcnNcQ3Vyc29yIjo0OntzOjE0OiIAKgBiYWNraW5nVHlwZSI7czoyMToib3BpZ25vX2NhbGVuZGFyX2V2ZW50IjtzOjEyOiIAKgBiYWNraW5nSWQiO2k6NDtzOjEwOiIAKgBzb3J0S2V5IjtzOjE0OiJzdGFydF9kYXRldGltZSI7czoxMjoiACoAc29ydFZhbHVlIjtzOjIzOiIyMDI0LTA3LTAzIDE3OjIwOjAwIFVUQyI7fQ=="
  ) {
    edges {
      node {
        id
        label
        startDatetime
        endDatetime
      }
    }
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
  }
}
The getCalendarEvents query supports the same advanced features as other catalog queries:

Error Handling

If you don’t provide a fromDate parameter, the query will return an error. Always specify a date range for optimal performance.
Common error scenarios and solutions:
Calendar events are cached for performance. If you don’t see recently added events, wait a few minutes for the cache to refresh, or contact support if the issue persists.