A quick proposal based on discussion in #240.
Schema.org doesn't currently have a way to express recurring events.
While it will always be useful to share data on individual instances, e.g. the event happening this Tuesday at 6pm. There are also scenarios where it is useful to be able to share a general rule, e.g. this event happens at 6pm every Tuesday.
Use cases include sharing data about physical activities, e.g. regular gym classes or similar events.
iCalendar already refines a model and terms for expressing recurring events. And this
is independently supported in libraries like rrecurjs. We could draw on this to define a similar model for schema.org
The proposal is to define a new schedule property, a EventSchedule type and some additional properties for describing the schedule.
The schedule property will be associated with Events. It will allow the description of a schedule, expressed as a recurrence rule for describing the frequency of upcoming events.
The EventSchedule type will have properties based on those in iCalendar. But in the below, the naming has been aligned with existing schema.org properties.
startTime - the existing property, date/time at which the schedule starts
endTime - existing property, date/time at which the schedule ends
frequency - "daily", "monthly", "yearly"
day - DayOfWeek
month - month of the year
hour - hour
minute - minute
count - optionally specfiy the number of recurring events
exceptionRule - repeating property, specifies date-times when the schedule doesn't apply, equivalent to exrule in ical
I think this covers the core aspects of a schedule. I may have missed something essential (am not an iCal expert) but I think this type of rule will cover many use cases so worth considering.
This structure can be easily expressed in, e.g. JSON-LD, but may be trickier in RDFa. I've not tried that yet, but wanted to float this for discussion.
A quick proposal based on discussion in #240.
Schema.org doesn't currently have a way to express recurring events.
While it will always be useful to share data on individual instances, e.g. the event happening this Tuesday at 6pm. There are also scenarios where it is useful to be able to share a general rule, e.g. this event happens at 6pm every Tuesday.
Use cases include sharing data about physical activities, e.g. regular gym classes or similar events.
iCalendar already refines a model and terms for expressing recurring events. And this
is independently supported in libraries like rrecurjs. We could draw on this to define a similar model for schema.org
The proposal is to define a new
scheduleproperty, aEventScheduletype and some additional properties for describing the schedule.The
scheduleproperty will be associated withEvents. It will allow the description of a schedule, expressed as a recurrence rule for describing the frequency of upcoming events.The
EventScheduletype will have properties based on those in iCalendar. But in the below, the naming has been aligned with existing schema.org properties.startTime- the existing property, date/time at which the schedule startsendTime- existing property, date/time at which the schedule endsfrequency- "daily", "monthly", "yearly"day- DayOfWeekmonth- month of the yearhour- hourminute- minutecount- optionally specfiy the number of recurring eventsexceptionRule- repeating property, specifies date-times when the schedule doesn't apply, equivalent toexrulein icalI think this covers the core aspects of a schedule. I may have missed something essential (am not an iCal expert) but I think this type of rule will cover many use cases so worth considering.
This structure can be easily expressed in, e.g. JSON-LD, but may be trickier in RDFa. I've not tried that yet, but wanted to float this for discussion.