Note: you are viewing the development version of Schema.org. See How we work for more details.

Schedule

A Schema.org Type

This term is in the "new" area - implementation feedback and adoption from applications and websites can help improve our definitions.
A schedule defines a repeating time period used to describe a regularly occurring Event. At a minimum a schedule will specify repeatFrequency which describes the interval between occurrences of the event. Additional information can be provided to specify the schedule more precisely. This includes identifying the day(s) of the week or month when the recurring event will take place, in addition to its start and end time. Schedules may also have start and end dates to indicate when they are active, e.g. to define a limited calendar of events.
PropertyExpected TypeDescription
Properties from Schedule
byDay DayOfWeek  or
Text
Defines the day(s) of the week on which a recurring Event takes place. May be specified using either DayOfWeek, or alternatively Text conforming to iCal's syntax for byDay recurrence rules.
byMonth Integer Defines the month(s) of the year on which a recurring Event takes place. Specified as an Integer between 1-12. January is 1.
byMonthDay Integer Defines the day(s) of the month on which a recurring Event takes place. Specified as an Integer between 1-31.
byMonthWeek Integer Defines the week(s) of the month on which a recurring Event takes place. Specified as an Integer between 1-5. For clarity, byMonthWeek is best used in conjunction with byDay to indicate concepts like the first and third Mondays of a month.
duration Duration The duration of the item (movie, audio recording, event, etc.) in ISO 8601 date format.
endDate Date  or
DateTime
The end date and time of the item (in ISO 8601 date format).
endTime DateTime  or
Time
The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to December. For media, including audio and video, it's the time offset of the end of a clip within a larger file.

Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.
exceptDate Date  or
DateTime
Defines a Date or DateTime during which a scheduled Event will not take place. The property allows exceptions to a Schedule to be specified. If an exception is specified as a DateTime then only the event that would have started at that specific date and time should be excluded from the schedule. If an exception is specified as a Date then any event that is scheduled for that 24 hour period should be excluded from the schedule. This allows a whole day to be excluded from the schedule without having to itemise every scheduled event.
repeatCount Integer Defines the number of times a recurring Event will take place.
repeatFrequency Duration  or
Text
Defines the frequency at which Events will occur according to a schedule Schedule. The intervals between events should be defined as a Duration of time.
scheduleTimezone Text 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.
startDate Date  or
DateTime
The start date and time of the item (in ISO 8601 date format).
startTime DateTime  or
Time
The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to December. For media, including audio and video, it's the time offset of the start of a clip within a larger file.

Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.
Properties from Thing
additionalType Text  or
URL
An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. Typically the value is a URI-identified RDF class, and in this case corresponds to the use of rdf:type in RDF. Text values can be used sparingly, for cases where useful information can be added without their being an appropriate schema to reference. In the case of text values, the class label should follow the schema.org style guide.
alternateName Text An alias for the item.
description Text  or
TextObject
A description of the item.
disambiguatingDescription Text A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.
identifier PropertyValue  or
Text  or
URL
The identifier property represents any kind of identifier for any kind of Thing, such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See background notes for more details.
image ImageObject  or
URL
An image of the item. This can be a URL or a fully described ImageObject.
mainEntityOfPage CreativeWork  or
URL
Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See background notes for details.
Inverse property: mainEntity
name Text The name of the item.
potentialAction Action Indicates a potential Action, which describes an idealized action in which this thing would play an 'object' role.
sameAs URL URL of a reference Web page that unambiguously indicates the item's identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or official website.
subjectOf CreativeWork  or
Event
A CreativeWork or Event about this Thing.
Inverse property: about
url URL URL of the item.

Instances of Schedule may appear as a value for the following properties
PropertyOn TypesDescription
courseSchedule CourseInstance Represents the length and pace of a course, expressed as a Schedule.
eventSchedule Event Associates an Event with a Schedule. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An Event that is associated with a Schedule using this property should not have startDate or endDate properties. These are instead defined within the associated Schedule, this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.

Source

https://github.com/schemaorg/schemaorg/issues/1457


Examples

Example 1
Copied
Example notes or example HTML without markup.
A Tai-Chi class runs throughout 2017. The class occurs weekly, every Wednesday at 7pm.
Example encoded as JSON-LD in a HTML script tag.
<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Event",
  "url": "http://www.example.org/events/1",
  "name": "Tai chi Class",
  "description": "A weekly Tai-Chi class",
  "duration": "PT60M",
  "eventSchedule": {
     "@type": "Schedule",
     "startDate": "2017-01-01",
     "endDate": "2017-12-31",
     "repeatFrequency": "P1W",
     "byDay": "https://schema.org/Wednesday",
     "startTime": "19:00:00",
     "endTime": "20:00:00",
     "scheduleTimezone": "Europe/London"
  }
}
</script>
Structured representation of the JSON-LD example.
Example 2
Copied
Example notes or example HTML without markup.
A Meetup takes place on the 1st and 15th of every month between 9-10am
Example encoded as JSON-LD in a HTML script tag.
<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Event",
  "name": "Example Meetup",
  "eventSchedule": {
     "@type": "Schedule",
     "repeatFrequency": "P1M",
     "byMonthDay": [1,15],
     "startTime": "09:00:00",
     "endTime": "10:00:00",
     "scheduleTimezone": "America/Glace_Bay"
  }
}
</script>
Structured representation of the JSON-LD example.
Example 3
Copied
Example notes or example HTML without markup.
Starting from 2th December an Event will run daily between 9-10am for 10 occurences.
Example encoded as JSON-LD in a HTML script tag.
<script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Event",
      "name": "Count Example",
      "eventSchedule":
        {
          "@type": "Schedule",
          "startDate": "2016-12-24",
          "repeatFrequency": "P1D",
          "repeatCount": 10,
          "startTime": "09:00:00",
          "endTime": "10:00:00",
          "scheduleTimezone": "Europe/London"
        }
    }
</script>
Structured representation of the JSON-LD example.
Example 4
Copied
Example notes or example HTML without markup.
An Event runs twice a day, at 9am-10am and 2pm-3pm but only Monday to Friday
Example encoded as JSON-LD in a HTML script tag.
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "Example",
  "eventSchedule": [
    {
      "@type": "Schedule",
      "repeatFrequency": "P1D",
      "byDay": [
        "https://schema.org/Monday",
        "https://schema.org/Tuesday",
        "https://schema.org/Wednesday",
        "https://schema.org/Thursday",
        "https://schema.org/Friday"
      ],
      "startTime": "09:00:00",
      "endTime": "10:00:00",
      "scheduleTimezone": "America/Glace_Bay"
    },
    {
      "@type": "Schedule",
      "repeatFrequency": "P1D",
      "byDay": [
        "https://schema.org/Monday",
        "https://schema.org/Tuesday",
        "https://schema.org/Wednesday",
        "https://schema.org/Thursday",
        "https://schema.org/Friday"
      ],
      "startTime": "14:00:00",
      "endTime": "15:00:00",
      "scheduleTimezone": "America/Glace_Bay"
    }
  ]
}
</script>
Structured representation of the JSON-LD example.
Example 5
Copied
Example notes or example HTML without markup.
An Event runs on the second Monday of every month, from 6pm-7:30pm. Because this kind of recurrence goes beyond that expressible using <a href="https://schema.org/DayOfWeek">https://schema.org/DayOfWeek</a>, it is specified instead using iCal's <a href="https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html">syntax for byDay recurrence rules</a>.
Example encoded as JSON-LD in a HTML script tag.
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "Example",
  "eventSchedule": [
    {
      "@type": "Schedule",
      "repeatFrequency": "P1M",
      "byDay": "2MO",
      "startTime": "18:00:00",
      "endTime": "19:30:00",
      "scheduleTimezone": "Asia/Shanghai"
    }
  ]
}
</script>
Structured representation of the JSON-LD example.
Example 6
Copied
Example notes or example HTML without markup.
A reading series occuring the first and third Wednesdays of the month.
Example encoded as JSON-LD in a HTML script tag.
<script type="application/ld+json">
{
    "@context": "https://schema.org",
    "@type": "LiteraryEvent",
    "name": "Local Bookseller Author Night",
    "description": "Join us the first and third Wednesdays of each month for readings by local authors.",
    "eventSchedule": {
      "@type": "Schedule",
      "byDay": "https://schema.org/Wednesday",
      "byMonthWeek": [1, 3],
      "startTime": "20:00:00",
      "endTime": "22:00:00"
    }
}
</script>
Structured representation of the JSON-LD example.