Links

CourseInstance

This page describes the CourseInstance type.
This type is derived from https://schema.org/CourseInstance, which means that any of this type's properties within schema.org may also be used. Note however the properties on this page must be used in preference if a relevant property is available.

Properties

Required properties

Property
Expected Type
Description
@type
Text
Must always be present and set to "@type": "CourseInstance"
@id
URL
A unique URI-based identifier for the record.
@id properties are used as identifiers for compatibility with JSON-LD. The value of such a property must always be an absolute URI that provides a stable globally unique identifier for the resource, as described in RFC3986.
The primary purpose of the URI format in this context is to provide natural namespacing for the identifier. Hence, the URI itself may not resolve to a valid endpoint, but must use a domain name controlled by the resource owner (the organisation responsible for the OpenActive open data feed).
Example
"@id": "https://api.example.com/course-instances/12345"
activity
Array of Concept
Specifies the physical activity or activities that will take place during an event.
Example
"activity": [ { "@type": "Concept", "@id": "https://openactive.io/activity-list#5e78bcbe-36db-425a-9064-bf96d09cc351", "prefLabel": "Bodypump™", "inScheme": "https://openactive.io/activity-list" } ]
endDate
Date
The end date of this course.
Example
"endDate": "2018-01-27"
location
Place - or - @id reference
The location at which the event will take place. Or, in the case of events that may span multiple locations, the initial meeting or starting point.
Locations must be specified as a Place complete with a fully described geographic location and/or address.
Example
"location": { "@type": "Place", "@id": "https://example.com/locations/1234ABCD", "identifier": "1234ABCD", "address": { "addressLocality": "New Malden", "addressRegion": "London", "postalCode": "NW5 3DU", "streetAddress": "Raynes Park High School, 46A West Barnes Lane", "@type": "PostalAddress" }, "description": "Raynes Park High School in London", "geo": { "latitude": 51.4034423828125, "longitude": -0.2369088977575302, "@type": "GeoCoordinates" }, "name": "Raynes Park High School", "telephone": "01253 473934" }
name
Text
The name of the event
Example
"name": "Speedball"
offers
Array of Offer
An array of schema:Offer that include the price of attending.
Example
"offers": [ { "@type": "Offer", "identifier": "OX-AD", "name": "Adult", "price": 3.3, "priceCurrency": "GBP", "url": "https://profile.everyoneactive.com/booking?Site=0140&Activities=1402CBP20150217&Culture=en-GB" } ]
organizer
Organization - or - Person
The person or organization ultimately responsible for an event. An organizer might be an schema:Organization or a schema:Person.
Example
"organizer": { "@type": "Organization", "@id": "https://id.bookingsystem.example.com/organizers/1", "name": "Central Speedball Association", "url": "http://www.speedball-world.com" }
startDate
Date
The start date of this course.
Example
"startDate": "2018-01-06"
url
URL
A URL to a web page (or section of a page) that describes the event.
Example
"url": "https://example.com/event/1234"

Required options

A data publisher must provide either a subEvent or specify an eventSchedule for a CourseInstance.
Property
Expected Type
Description
subEvent
Array of Event
The occurrences of this CourseInstance.
eventSchedule
Array of Schedule
A an array of oa:Schedule or oa:PartialSchedule, which represents a recurrence pattern.
Example
"eventSchedule": [ { "@type": "PartialSchedule", "repeatFrequency": "P1W", "startTime": "20:15", "endTime": "20:45", "byDay": [ "http://schema.org/Tuesday" ], "scheduleTimezone": "Europe/London" } ]
Property
Expected Type
Description
ageRange
Indicates that an event is recommended as being suitable for or is targetted at a specific age range.
Example
"ageRange": { "@type": "QuantitativeValue", "minValue": 50, "maxValue": 60 }
description
Text
A plain text description of the event, which must not include HTML or other markup.
Example
"description": "A fast paced game that incorporates netball, handball and football."
eventStatus
The status of an event. Can be used to indicate rescheduled or cancelled events
Example
"eventStatus": "https://schema.org/EventScheduled"
genderRestriction
Indicates that an event is restricted to male, female or a mixed audience. This information must be displayed prominently to the user before booking. If a gender restriction isn't specified then applications should assume that an event is suitable for a mixed audience.
Example
"genderRestriction": "https://openactive.io/FemaleOnly"
image
Array of ImageObject
An image or photo that depicts the event, e.g. a photo taken at a previous event.
Example
"image": [ { "@type": "ImageObject", "url": "http://example.com/static/image/speedball_large.jpg", "thumbnail": [ { "@type": "ImageObject", "url": "http://example.com/static/image/speedball_thumbnail.jpg" } ] } ]
leader
Array of Person
Refers to a person (schema:Person) who will be leading an event. E.g. a coach. This is a more specific role than an organiser or a contributor. The person will need to have given their consent for their personal information to be present in the Open Data.
Example
"leader": [ { "@type": "Person", "familyName": "Smith", "givenName": "Nicole", "gender": "https://schema.org/Male", "@id": "https://example.com/locations/1234ABCD/leaders/89", "identifier": 89 } ]
level
Array of Text - or - Array of Concept
A general purpose property for specifying the suitability of an event for different participant “levels”. E.g. Beginner, Intermediate, Advanced. Or in the case of martial arts, specific belt requirements.
Example
"level": [ "Beginner" ]
maximumAttendeeCapacity
Integer
The maximum capacity of the Event.
Example
"maximumAttendeeCapacity": 30
remainingAttendeeCapacity
Integer
The number of places that are still available for the Event.
Example
"remainingAttendeeCapacity": 20

Optional properties

Property
Expected Type
Description
accessibilityInformation
Text
Provide additional, specific documentation for participants about how disabilities are, or can be supported at the Event.
Example
"accessibilityInformation": "This route has been British Cycling assessed as an accessible route, meaning it is suitable for the majority of adaptive bikes. The route will have no or low levels of traffic, there will be plenty of space and will have a good surface throughout. If you have any questions about using this route on an adaptive bike on this ride, please use visit https://www.letsride.co.uk/accessibility or call 0123 456 7000 and ask for the Recreation team."
accessibilitySupport
Array of Concept
Used to specify the types of disabilities or impairments that are supported at an event.
Example
"accessibilitySupport": [ { "@type": "Concept", "@id": "https://openactive.io/accessibility-support#1393f2dc-3fcc-4be9-a99f-f1e51f5ad277", "prefLabel": "Visual impairment", "inScheme": "https://openactive.io/accessibility-support" } ]
additionalAdmissionRestriction
Array of Text
Free text restrictions that must be displayed prominently to the user before booking. This property must only contain restrictions not described by oa:ageRestriction or oa:genderRestriction.
Example
"additionalAdmissionRestriction": [ "Participants younger than 12 must be accompanied by an adult", "Participants must be comfortable standing for long periods of time" ]
ageRestriction
The enforced attendee age range requirement of the Event or Offer, that must be displayed prominently to the user before booking.
Example
"ageRestriction": { "@type": "QuantitativeValue", "minValue": 15, "maxValue": 60 }
attendeeInstructions
Text
Provides additional notes and instructions for event attendees, for example more information on how to find the event, what to bring, etc. The value of this property must not include HTML or other markup.
Example
"attendeeInstructions": "Ensure you bring trainers and a bottle of water."
category
Array of Concept - or - Array of Text
Provides a set of tags that help categorise and describe an event, e.g. its intensity, purpose, etc.
Example
"category": [ "High Intensity" ]
contributor
Array of Person
A Person who contributes to the facilitation of the Event.
Example
"contributor": [ { "@type": "Person", "familyName": "Smith", "givenName": "Nicole", "@id": "https://example.com/locations/1234ABCD/leaders/89", "identifier": 89 } ]
customerAccountBookingRestriction
Array of Text
Free text restrictions to display to the Customer at the browse stage, that may apply when using a Customer Account to make the booking.
Note that this property is in EARLY RELEASE AND IS SUBJECT TO CHANGE, as the Customer Accounts proposal evolves.
Example
"customerAccountBookingRestriction": [ "Gold members only", "Gym induction required" ]
duration
Duration
The duration of the event given in [ISO8601] format.
Example
"duration": "PT1H"
eventAttendanceMode
The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.
Example
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode"
identifier
Text - or - PropertyValue - or - Array of PropertyValue - or - Integer
A local non-URI identifier for the resource
Example
"identifier": "SB1234"
instanceOfCourse
Course
The description of the Course for which this is a distinct instance.
isAccessibleForFree
Boolean
Whether the Event is accessible without charge.
Example
"isAccessibleForFree": "true"
isCoached
Boolean
A boolean property that indicates whether an Event will be coached. This flag allows an Event to be marked as being coached without having to specify a named individual as a coach. This addresses both privacy concerns and also scenarios where the actual coach may only be decided on the day.
Example
"isCoached": "true"
isOpenBookingWithCustomerAccountAllowed
Boolean
Indicates that a Customer Account may be used to book that opportunity.
Note that this property is in EARLY RELEASE AND IS SUBJECT TO CHANGE, as the Customer Accounts proposal evolves.
Example
"isOpenBookingWithCustomerAccountAllowed": "true"
maximumVirtualAttendeeCapacity
Integer
Indicates the maximum number of connections to a shared virtual space.
Example
"maximumVirtualAttendeeCapacity": 20
meetingPoint
Text
Instructions for the attendees of an Event about where they should meet the organizer or leader at the start of the event. Some larger locations may have several possible meeting points, so this property provides additional more specific directions.
Example
"meetingPoint": "At the entrance to the park"
programme
Brand
Indicates that an event will be organised according to a specific Programme.
Example
"programme": { "@type": "Brand", "name": "Play Ball!", "url": "http://example.org/brand/play-ball" }
schedulingNote
Text
Provides a note from an organizer relating to how this Event is scheduled.
Example
"schedulingNote": "This event doesn't run during school holidays"

Beta Extension properties

These properties are defined in the OpenActive Beta Extension. The OpenActive Beta Extension is defined as a convenience to help document properties that are in active testing and review by the community. Publishers should not assume that properties in the beta namespace will either be added to the core specification or be included in the namespace over the long term.
Property
Expected Type
Description
beta:affiliatedLocation
Place
The physical location affiliated with the virtual event, for example the original location of the event before it was moved online.
beta:attendeeCount
Integer
For events that have an unlimited number of tickets, captures the number of attendees (actual attendance).
beta:bookingChannel
Array of BookingChannelType
The channels through which a booking can be made.
beta:contactPoint
Contact details for an Event, where they are not specifically related to the organizer or leader.
beta:course
Course
DEPRECATED: Please use instanceOfCourse instead.
This course for which this is an offering.
beta:distance
The distance of a run, cycle or other activity. Must also include units.
beta:donationPaymentUrl
URL
The URL of the webpage where the activity provider accepts donations.
beta:estimatedDuration
A property that allows an Event duration to be represented as a range (e.g. 0-30mins, 30-60mins, 60-90mins, 90+).
beta:facilitySetting
Whether the event or facility is indoor or outdoor.
beta:formattedDescription
Text
Sometimes a description is stored with formatting (e.g. href, bold, italics, embedded YouTube videos). This formatting can be useful for data consumers. This property must contain HTML.
beta:isFirstSessionAccessibleForFree
Boolean
A property that indicates whether the first session is free.
beta:isInteractivityPreferred
Boolean
Indicates whether the virtual event is interactive (e.g. Zoom with participant microphones and cameras on), or is just a one-way broadcast (e.g. Facebook Live, Instagram Live, Zoom with participant microphones and cameras off).
beta:isScheduledAsSlots
Boolean
A property that indicates whether the event contains a high frequency of occurrences. Intended as a UI hint for interfaces that represent these occurrences.
beta:isVirtuallyCoached
Boolean
A property that indicates whether the event is led by a virtual coach. Only relevant if an event isCoached. If not provided is assumed to be false.
beta:isWheelchairAccessible
Boolean
A property that details whether the event is suitable for wheelchair access. Placed on Event as this field could be used to detail whether the Event is suitable, as well as the Place.
beta:offerValidityPeriod
Duration
Duration before the event for which the associated Offers are valid
beta:participantSuppliedEquipment
Indicates whether the participant must or may supply equipment for use in the Event.
beta:registrationCount
Integer
For events that have an unlimited number of tickets, captures the number of registrations (intention to attend).
beta:sportsActivityLocation
Internal location of the event, e.g. Court 1
beta:video
Array of VideoObject
A related video object.
beta:virtualLocation
Describes a means of electronic access to a shared virtual space.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution License (CC-BY V4.0), and code samples are licensed under the MIT License, for anyone to access, use and share; using attribution "OpenActive".
Last modified 4mo ago