@openactive/data-models
Version:
Data models used to drive that OpenActive validator, developer documentation, and model libraries
217 lines (216 loc) • 6.99 kB
JSON
{
"type": "Schedule",
"derivedFrom": "https://pending.schema.org/Schedule",
"derivedFromPending": true,
"hasId": false,
"requiredFields": [
"type",
"scheduledEventType",
"startTime",
"endTime",
"scheduleTimezone"
],
"requiredOptions": [
{
"description": [
"While these properties are marked as optional, a data publisher must provide either a `byDay`, `byMonth`, `byMonthDay` or `repeatFrequency` for a schedule."
],
"options": [
"byDay",
"byMonth",
"byMonthDay",
"repeatFrequency"
]
}
],
"commonTypos": {
"frequency": "repeatFrequency"
},
"recommendedFields": [
"duration",
"startDate",
"endDate",
"idTemplate",
"urlTemplate"
],
"inSpec": [
"type",
"repeatFrequency",
"byDay",
"startDate",
"endDate",
"startTime",
"endTime",
"repeatCount",
"byMonth",
"byMonthDay",
"exceptDate",
"duration",
"scheduledEventType",
"scheduleTimezone",
"idTemplate",
"urlTemplate"
],
"fields": {
"type": {
"fieldName": "type",
"requiredType": "https://schema.org/Text",
"requiredContent": "Schedule"
},
"byDay": {
"fieldName": "byDay",
"sameAs": "https://pending.schema.org/byDay",
"requiredType": "ArrayOf#https://schema.org/DayOfWeek",
"alternativeTypes": ["ArrayOf#https://schema.org/Text"],
"example": ["https://schema.org/Monday"],
"description": [
"Defines the day of the week upon which the Event takes place.",
"When using string values, this MUST conform to iCal BYDAY rule."
]
},
"byMonth": {
"fieldName": "byMonth",
"sameAs": "https://pending.schema.org/byMonth",
"requiredType": "ArrayOf#https://schema.org/Integer",
"example": [2],
"description": [
"Defines the months of the year on which the Event takes place. Specified as an integer between 1 and 12, with 1 representing January."
]
},
"byMonthDay": {
"fieldName": "byMonthDay",
"sameAs": "https://pending.schema.org/byMonthDay",
"requiredType": "ArrayOf#https://schema.org/Integer",
"example": [28],
"description": [
"Defines the days of the month on which the Event takes place. Specified as an integer between 1 and 31"
]
},
"duration": {
"fieldName": "duration",
"sameAs": "https://schema.org/duration",
"requiredType": "https://schema.org/Duration",
"description": [
"The duration of the event given in [ISO8601] format."
],
"example": "PT1H"
},
"endDate": {
"fieldName": "endDate",
"sameAs": "https://schema.org/endDate",
"requiredType": "https://schema.org/Date",
"description": [
"The end date of the schedule."
],
"example": "2018-01-27"
},
"endTime": {
"fieldName": "endTime",
"sameAs": "https://schema.org/endTime",
"requiredType": "https://schema.org/Time",
"description": [
"The end time of the event."
],
"example": "12:00:00"
},
"exceptDate": {
"fieldName": "exceptDate",
"sameAs": "https://pending.schema.org/exceptDate",
"requiredType": "ArrayOf#https://schema.org/Date",
"alternativeTypes": ["ArrayOf#https://schema.org/DateTime"],
"example": [
"2016-04-13T17:10:00Z",
"2016-09-14T17:10:00Z",
"2016-12-14T18:10:00Z",
"2016-12-21T18:10:00Z",
"2016-12-28T18:10:00Z",
"2017-01-04T18:10:00Z"
],
"description": [
"Exception dates where the schedule should not generate an event."
]
},
"idTemplate": {
"fieldName": "idTemplate",
"sameAs": "https://openactive.io/idTemplate",
"requiredType": "https://schema.org/Text",
"example": "https://api.example.org/session-series/123/{startDate}",
"description": [
"An RFC6570 compliant URI template that can be used to generate a unique identifier (`@id`) for every event described by the schedule. This property is required if the data provider is supporting third-party booking via the Open Booking API, or providing complimentary individual `subEvent`s."
],
"valueConstraint": "UriTemplate"
},
"repeatCount": {
"fieldName": "repeatCount",
"sameAs": "https://pending.schema.org/repeatCount",
"requiredType": "https://schema.org/Integer",
"example": 3,
"description": [
"Defines the number of times a recurring Event will take place."
],
"minValueInclusive": 1
},
"repeatFrequency": {
"fieldName": "repeatFrequency",
"sameAs": "https://pending.schema.org/repeatFrequency",
"requiredType": "https://schema.org/Duration",
"example": "P1D",
"description": [
"Defines the frequency at which Events will occur according to a Schedule. The intervals between events should be defined as a Duration of time."
]
},
"scheduledEventType": {
"fieldName": "scheduledEventType",
"sameAs": "https://openactive.io/scheduledEventType",
"requiredType": "https://schema.org/Text",
"options": [
"Event",
"HeadlineEvent",
"SessionSeries",
"ScheduledSession",
"CourseInstance"
],
"description": [
"The type of event this schedule related to."
],
"example": "Event"
},
"startDate": {
"fieldName": "startDate",
"sameAs": "https://schema.org/startDate",
"requiredType": "https://schema.org/Date",
"description": [
"The start date of the event."
],
"example": "2018-01-27"
},
"startTime": {
"fieldName": "startTime",
"sameAs": "https://schema.org/startTime",
"requiredType": "https://schema.org/Time",
"description": [
"The start time of the event."
],
"example": "12:00:00"
},
"scheduleTimezone": {
"fieldName": "scheduleTimezone",
"sameAs": "https://pending.schema.org/scheduleTimezone",
"requiredType": "https://schema.org/Text",
"example": "Europe/London",
"description": [
"Indicates the timezone for which the time(s) indicated in the Schedule are given. The value provided should be among those listed in the IANA Time Zone Database."
]
},
"urlTemplate": {
"fieldName": "urlTemplate",
"sameAs": "https://schema.org/urlTemplate",
"requiredType": "https://schema.org/Text",
"example": "https://example.org/session-series/123/{startDate}",
"description": [
"An RFC6570 compliant URI template that can be used to generate a unique `url` for every event described by the schedule. This property is required if the data provider wants to provide participants with a unique URL to book to attend an event."
],
"valueConstraint": "UriTemplate"
}
}
}