Schema

Event

Schema.org Event

  • Type: defineEvent(input?: Event)
    Describes an Event.
  • Component: SchemaOrgEvent (see how components work)
🔨 Documentation in progress

Examples

defineEvent({
  name: 'The Adventures of Kira and Morrison',
  location: [
    'https://operaonline.stream5.com/',
    {
      name: 'Snickerpark Stadium',
      address: {
        streetAddress: '100 West Snickerpark Dr',
        addressLocality: 'Snickertown',
        postalCode: '19019',
        addressRegion: 'PA',
        addressCountry: 'US',
      },
    },
  ],
  image: [
    'https://example.com/photos/1x1/photo.jpg',
    'https://example.com/photos/4x3/photo.jpg',
    'https://example.com/photos/16x9/photo.jpg',
  ],
  organizer: {
    name: 'Kira and Morrison Music',
    url: 'https://kiraandmorrisonmusic.com',
  },
  performer: {
    '@type': 'PerformingGroup',
    'name': 'Kira and Morrison',
  },
  offers: {
    price: 30,
    url: 'https://www.example.com/event_offer/12345_201803180430',
    validFrom: new Date(Date.UTC(2024, 5, 21, 12)),
  },
  description: 'The Adventures of Kira and Morrison is coming to Snickertown in a can\'t miss performance.',
  startDate: '2025-07-21T19:00-05:00',
  endDate: '2025-07-21T23:00-05:00',
  eventStatus: 'EventScheduled',
  eventAttendanceMode: 'MixedEventAttendanceMode',
})

Types

type EventAttendanceModeTypes = 'OfflineEventAttendanceMode' | 'OnlineEventAttendanceMode' | 'MixedEventAttendanceMode'
type EventStatusTypes = 'EventCancelled' | 'EventMovedOnline' | 'EventPostponed' | 'EventRescheduled' | 'EventScheduled'

export interface EventSimple extends Thing {
  /**
   * Description of the event.
   * Describe all details of the event to make it easier for users to understand and attend the event.
   */
  description?: string
  /**
   * The end date and time of the item (in ISO 8601 date format).
   */
  endDate?: ResolvableDate
  /**
   * The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.
   */
  eventAttendanceMode?: OptionalSchemaOrgPrefix<EventAttendanceModeTypes>
  /**
   * An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.
   */
  eventStatus?: OptionalSchemaOrgPrefix<EventStatusTypes>
  /**
   * Repeated ImageObject or URL
   *
   * URL of an image or logo for the event or tour.
   * Including an image helps users understand and engage with your event.
   * We recommend that images are 1920px wide (the minimum width is 720px).
   */
  image?: NodeRelations<ImageObject | string>
  /**
   * The location of the event.
   * There are different requirements depending on if the event is happening online or at a physical location
   */
  location?: NodeRelations<Place | VirtualLocation | string>
  /**
   * 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.
   */
  offers?: NodeRelations<Offer | string>
  /**
   * An organizer of an Event.
   */
  organizer?: NodeRelation<Identity>
  /**
   * A performer at the event—for example, a presenter, musician, musical group or actor.
   */
  performer?: NodeRelation<Person>
  /**
   * 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.
   */
  previousStartDate?: ResolvableDate
  /**
   * The start date and time of the item (in ISO 8601 date format).
   */
  startDate?: ResolvableDate
}