{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "schema:Event",
  "title": "Event",
  "description": "An event happening at a certain time and location, such as a concert, lecture, or festival. Ticketing information may be added via the [[offers]] property. Repeated events may be structured as separate Event objects.",
  "type": "object",
  "allOf": [
    { "description": "The most generic type of item.", "$ref": "schema:Thing" }
  ],
  "properties": {
    "about": {
      "description": "The subject matter of the content.",
      "$ref": "schema:Thing"
    },
    "actor": {
      "description": "An actor (individual or a group), e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.",
      "oneOf": [
        {
          "anyOf": [
            { "$ref": "schema:PerformingGroup" },
            { "$ref": "schema:Person" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "$ref": "schema:PerformingGroup" },
              { "$ref": "schema:Person" }
            ]
          }
        }
      ]
    },
    "aggregateRating": {
      "description": "The overall rating, based on a collection of reviews or ratings, of the item.",
      "$ref": "schema:AggregateRating"
    },
    "attendee": {
      "description": "A person or organization attending the event.",
      "oneOf": [
        {
          "anyOf": [
            { "$ref": "schema:Organization" },
            { "$ref": "schema:Person" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "$ref": "schema:Organization" },
              { "$ref": "schema:Person" }
            ]
          }
        }
      ]
    },
    "attendees": {
      "description": "A person attending the event.",
      "oneOf": [
        {
          "anyOf": [
            { "$ref": "schema:Organization" },
            { "$ref": "schema:Person" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "$ref": "schema:Organization" },
              { "$ref": "schema:Person" }
            ]
          }
        }
      ]
    },
    "audience": {
      "description": "An intended audience, i.e. a group for whom something was created.",
      "$ref": "schema:Audience"
    },
    "composer": {
      "description": "The person or organization who wrote a composition, or who is the composer of a work performed at some event.",
      "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }]
    },
    "contributor": {
      "description": "A secondary contributor to the CreativeWork or Event.",
      "oneOf": [
        {
          "anyOf": [
            { "$ref": "schema:Organization" },
            { "$ref": "schema:Person" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "$ref": "schema:Organization" },
              { "$ref": "schema:Person" }
            ]
          }
        }
      ]
    },
    "director": {
      "description": "A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.",
      "$ref": "schema:Person"
    },
    "doorTime": {
      "description": "The time admission will commence.",
      "anyOf": [
        { "type": "string", "format": "date-time" },
        { "type": "string", "format": "time" }
      ]
    },
    "duration": {
      "description": "The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).",
      "anyOf": [
        { "type": "string", "$comment": "https://schema.org/Duration" },
        { "$ref": "schema:QuantitativeValue" }
      ]
    },
    "endDate": {
      "description": "The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).",
      "anyOf": [
        { "type": "string", "format": "date" },
        { "type": "string", "format": "date-time" }
      ]
    },
    "eventAttendanceMode": {
      "description": "The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.",
      "$ref": "schema:EventAttendanceModeEnumeration"
    },
    "eventSchedule": {
      "description": "Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of\n      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\n      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\n      is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated\n      [[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\n      or seasons.",
      "oneOf": [
        { "$ref": "schema:Schedule" },
        { "type": "array", "items": { "$ref": "schema:Schedule" } }
      ]
    },
    "eventStatus": {
      "description": "An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.",
      "oneOf": [
        { "$ref": "schema:EventStatusType" },
        { "type": "array", "items": { "$ref": "schema:EventStatusType" } }
      ]
    },
    "funder": {
      "description": "A person or organization that supports (sponsors) something through some kind of financial contribution.",
      "oneOf": [
        {
          "anyOf": [
            { "$ref": "schema:Organization" },
            { "$ref": "schema:Person" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "$ref": "schema:Organization" },
              { "$ref": "schema:Person" }
            ]
          }
        }
      ]
    },
    "funding": {
      "description": "A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].",
      "oneOf": [
        { "$ref": "schema:Grant" },
        { "type": "array", "items": { "$ref": "schema:Grant" } }
      ]
    },
    "inLanguage": {
      "description": "The language of the content or performance or used in an action. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[availableLanguage]].",
      "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }]
    },
    "isAccessibleForFree": {
      "description": "A flag to signal that the item, event, or place is accessible for free.",
      "type": "boolean"
    },
    "keywords": {
      "description": "Keywords or tags used to describe some item. Multiple textual entries in a keywords list are typically delimited by commas, or by repeating the property.",
      "anyOf": [
        { "type": "string", "format": "uri" },
        { "type": "string" },
        { "$ref": "schema:DefinedTerm" }
      ]
    },
    "location": {
      "description": "The location of, for example, where an event is happening, where an organization is located, or where an action takes place.",
      "anyOf": [
        { "type": "string" },
        { "$ref": "schema:Place" },
        { "$ref": "schema:PostalAddress" },
        { "$ref": "schema:VirtualLocation" }
      ]
    },
    "maximumAttendeeCapacity": {
      "description": "The total number of individuals that may attend an event or venue.",
      "type": "integer"
    },
    "maximumPhysicalAttendeeCapacity": {
      "description": "The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ",
      "type": "integer"
    },
    "maximumVirtualAttendeeCapacity": {
      "description": "The maximum virtual attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ",
      "type": "integer"
    },
    "offers": {
      "description": "An offer to provide this item—for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event. Use [[businessFunction]] to indicate the kind of transaction offered, i.e. sell, lease, etc. This property can also be used to describe a [[Demand]]. While this property is listed as expected on a number of common types, it can be used in others. In that case, using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.\n      ",
      "oneOf": [
        { "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] },
        {
          "type": "array",
          "items": {
            "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }]
          }
        }
      ]
    },
    "organizer": {
      "description": "An organizer of an Event.",
      "oneOf": [
        {
          "anyOf": [
            { "$ref": "schema:Organization" },
            { "$ref": "schema:Person" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "$ref": "schema:Organization" },
              { "$ref": "schema:Person" }
            ]
          }
        }
      ]
    },
    "performer": {
      "description": "A performer at the event—for example, a presenter, musician, musical group or actor.",
      "oneOf": [
        {
          "anyOf": [
            { "$ref": "schema:Organization" },
            { "$ref": "schema:Person" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "$ref": "schema:Organization" },
              { "$ref": "schema:Person" }
            ]
          }
        }
      ]
    },
    "performers": {
      "description": "The main performer or performers of the event—for example, a presenter, musician, or actor.",
      "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }]
    },
    "previousStartDate": {
      "description": "Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.",
      "oneOf": [
        { "type": "string", "format": "date" },
        { "type": "array", "items": { "type": "string", "format": "date" } }
      ]
    },
    "recordedIn": {
      "description": "The CreativeWork that captured all or part of this Event.",
      "$ref": "schema:CreativeWork"
    },
    "remainingAttendeeCapacity": {
      "description": "The number of attendee places for an event that remain unallocated.",
      "type": "integer"
    },
    "review": {
      "description": "A review of the item.",
      "oneOf": [
        { "$ref": "schema:Review" },
        { "type": "array", "items": { "$ref": "schema:Review" } }
      ]
    },
    "sponsor": {
      "description": "A person or organization that supports a thing through a pledge, promise, or financial contribution. E.g. a sponsor of a Medical Study or a corporate sponsor of an event.",
      "oneOf": [
        {
          "anyOf": [
            { "$ref": "schema:Organization" },
            { "$ref": "schema:Person" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "$ref": "schema:Organization" },
              { "$ref": "schema:Person" }
            ]
          }
        }
      ]
    },
    "startDate": {
      "description": "The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).",
      "anyOf": [
        { "type": "string", "format": "date" },
        { "type": "string", "format": "date-time" }
      ]
    },
    "subEvent": {
      "description": "An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.",
      "oneOf": [
        { "$ref": "schema:Event" },
        { "type": "array", "items": { "$ref": "schema:Event" } }
      ]
    },
    "subEvents": {
      "description": "Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.",
      "oneOf": [
        { "$ref": "schema:Event" },
        { "type": "array", "items": { "$ref": "schema:Event" } }
      ]
    },
    "superEvent": {
      "description": "An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.",
      "oneOf": [
        { "$ref": "schema:Event" },
        { "type": "array", "items": { "$ref": "schema:Event" } }
      ]
    },
    "translator": {
      "description": "Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.",
      "oneOf": [
        {
          "anyOf": [
            { "$ref": "schema:Organization" },
            { "$ref": "schema:Person" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "$ref": "schema:Organization" },
              { "$ref": "schema:Person" }
            ]
          }
        }
      ]
    },
    "typicalAgeRange": {
      "description": "The typical expected age range, e.g. '7-9', '11-'.",
      "type": "string"
    },
    "workFeatured": {
      "description": "A work featured in some event, e.g. exhibited in an ExhibitionEvent.\n       Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).",
      "oneOf": [
        { "$ref": "schema:CreativeWork" },
        { "type": "array", "items": { "$ref": "schema:CreativeWork" } }
      ]
    },
    "workPerformed": {
      "description": "A work performed in some event, for example a play performed in a TheaterEvent.",
      "oneOf": [
        { "$ref": "schema:CreativeWork" },
        { "type": "array", "items": { "$ref": "schema:CreativeWork" } }
      ]
    }
  }
}
