On-Demand Events
On-Demand Events are recordings of events that do not occur at a specific time, and are available to watch at any time - similar to content on Netflix or iPlayer.
These might be pre-recorded fitness classes, workouts, sessions which are provided via an online product, such as Les Mills On Demand and Racefully. They include on-demand video content and sessions which can be participated in virtually using an app or run-tracker (e.g. live virtual 5k).
The OnDemandEvent
type is used to represent such events, and they must be published using a separate RPDE feed, as per this example.
Online classes and events are part of an ongoing discussion that has been accelerated in response to the COVID-19 pandemic, and any properties suggested in the associated proposals are subject to change after the pandemic has ended. We welcome your contribution to the discussion and various proposals with any thoughts and feedback from your implementation.
Implementation guidance
In order to upgrade your booking or listing system to support virtual events, consider implementing the following properties, in addition to the standard required and recommended properties, within your new RPDE feed specific to OnDemandEvent
. The OpenActive libraries, types reference documentation, and validator have been updated to support these properties.
Please see the "Updated Proposal" within each of the referenced GitHub issues in the headings below for further specific guidance on each property. Please comment on these GitHub issue if you require any specific clarifications.
beta:participantSuppliedEquipment
(#229)
beta:participantSuppliedEquipment
(#229)Definition
A property that indicates whether the participant must or may supply equipment for use in the Event.
Why implement this property?
This property allows applications to present a filter for "no equipment required", for those users who do not have equipment at home. This helps first-time virtual participants find classes they can easily participate in.
Values
beta:participantSuppliedEquipment
must have one of the following values:
https://openactive.io/Required
- Equipment is requiredhttps://openactive.io/Optional
- Equipment is optional, and the participant can improvisehttps://openactive.io/Unavailable
- No equipment required
The existing attendeeInstruction
and description
properties may be used for activity providers to provide further clarification about equipment requirements.
Example
level
for "Beginner-friendly" (#82)
level
for "Beginner-friendly" (#82)Definition
To allow for "beginner-friendly" events to be easily discoverable.
Why implement this property?
This property can be implemented simply as a "beginner-friendly" tick box, if no notion of "level" currently exists within the booking or listing system. This allows applications to present a filter for "beginner friendly", for those users who are new to the activity.
Values
To specify "Beginner-friendly" the value of the level
property must include the string Beginner
in an array. Other values such as Intermediate
and Advanced
are also permissible, but are not standardised.
Example
beta:donationPaymentUrl
(#234)
beta:donationPaymentUrl
(#234)Definition
The URL of the webpage where the activity provider accepts donations.
Why implement this property?
A number of activity providers are seeking donations for their free on-demand classes in the wake of the COVID-19 pandemic lockdowns. On-demand sessions that appear to be offered for "free" based on isAccessibleForFree
and offers
actually proactively ask for donations. This property allows applications to advertise donation requests prominently to participants.
Values
The property accepts a URL, the existence of which both indicates that an activity provider is requesting donations, and provides the URL that applications should use when displaying a "Donate" button.
Example
workFeatured
(#228)
workFeatured
(#228)Definition
A video, audio or other media that represents the actual recording of the OnDemandEvent
.
Why implement this property?
This property allows applications to link directly to the media associated with the OnDemandEvent
, and allows applications to embed this media within their user experience - where such media is available free of charge - to provide users with a more seamless user journey.
Values
The property accepts a VideoObject
, AudioObject
, or a more general MediaObject
, which includes a url
for the page where the media is available, an embedUrl
that can be used to embed the media in an application, and a thumbnail
that can be used to represent the media within an application.
Example
Conformance criteria
For a full description of all properties available within OnDemandEvent
, please see the reference documentation. Please feedback on the below or request any clarifications by commenting on this GitHub issue.
Note that in order to make use of "beta" properties, "@context"
must include the beta namespace, as follows:
The following properties are REQUIRED for OnDemandEvent
:
activity
name
offers
(including a recommendedurl
that links straight to the purchase page)organizer
(including a required@id
, and a recommendedsameAs
property for social media handles)The
@id
is required to give each organizer a globally unique identifier in the form of a URL.The
@id
does not need to resolve to a functional endpoint, but must use a domain name owned by your booking or listing system. This allows applications with specific content approval requirements to register trusted organizers based on their@id
.An example of such an
@id
ishttps://id.bookingsystem.com/organizers/123
.
url
(to a page describing the session)
The following properties are RECOMMENDED for OnDemandEvent
:
ageRange
description
duration
genderRestriction
image
level
(#82) - using the string "Beginner
" for beginner friendly classesworkFeatured
(#228) - which could could be aVideoObject
,AudioObject
, or a more generalMediaObject
.beta:donationPaymentUrl
(#234)beta:isFirstSessionAccessibleForFree
(#232)beta:participantSuppliedEquipment
(#229)
Examples
Complete examples
The validator includes a complete example for:
Illustrative examples
The example below only include new properties specific to on-demand events, for those already familiar with the OpenActive specifications. Please see above for all properties that should be included.
Last updated