Event Reservation

Use this type to declare a reservation for one or more guests at an event. Tickets may be declared as well.

Use cases

The following use cases show common examples of how the EventReservation schema is used. Use these examples to ensure that you markup is properly structured.

Basic event reminder without a ticket

If you are sending out an email confirming a user’s attendance to an event, include the following markup. Confirmation Cards will remind the user on the day of the event. The user will receive a time to leave reminder (based on traffic etc).

This is an example of the minimal amount of markup that will qualify your email as an EventReservation.

JSON-LD

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EventReservation",
  "reservationNumber": "E123456789",
  "reservationStatus": "http://schema.org/Confirmed",
  "underName": {
    "@type": "Person",
    "name": "John Smith"
  },
  "reservationFor": {
    "@type": "Event",
    "name": "Foo Fighters Concert",
    "startDate": "2017-03-06T19:30:00-08:00",
    "location": {
      "@type": "Place",
      "name": "AT&T Park",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "24 Willie Mays Plaza",
        "addressLocality": "San Francisco",
        "addressRegion": "CA",
        "postalCode": "94107",
        "addressCountry": "US"
      }
    }
  }
}
</script>

Microdata

<div itemscope itemtype="http://schema.org/EventReservation">
  <meta itemprop="reservationNumber" content="E123456789"/>
  <link itemprop="reservationStatus" href="http://schema.org/Confirmed"/>
  <div itemprop="underName" itemscope itemtype="http://schema.org/Person">
    <meta itemprop="name" content="John Smith"/>
  </div>
  <div itemprop="reservationFor" itemscope itemtype="http://schema.org/Event">
    <meta itemprop="name" content="Foo Fighters Concert"/>
    <meta itemprop="startDate" content="2017-03-06T19:30:00-08:00"/>
    <div itemprop="location" itemscope itemtype="http://schema.org/Place">
      <meta itemprop="name" content="AT&T Park"/>
      <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
        <meta itemprop="streetAddress" content="24 Willie Mays Plaza"/>
        <meta itemprop="addressLocality" content="San Francisco"/>
        <meta itemprop="addressRegion" content="CA"/>
        <meta itemprop="postalCode" content="94107"/>
        <meta itemprop="addressCountry" content="US"/>
      </div>
    </div>
  </div>
</div>

Event with ticket & no reserved seating

In addition to the reminder card you can also trigger a Confirmation Cards ticket card for concerts or sports games where there are tickets.

Include ticketToken, ticketNumber and numSeats fields. If you set numSeats to be greater than 1, a single ticket will be displayed in Confirmation Cards and will contain a field with the number of seats.

JSON-LD

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EventReservation",
  "reservationNumber": "E123456789",
  "reservationStatus": "http://schema.org/Confirmed",
  "underName": {
    "@type": "Person",
    "name": "John Smith"
  },
  "reservationFor": {
    "@type": "Event",
    "name": "Foo Fighters Concert",
    "startDate": "2017-03-06T19:30:00-08:00",
    "location": {
      "@type": "Place",
      "name": "AT&T Park",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "24 Willie Mays Plaza",
        "addressLocality": "San Francisco",
        "addressRegion": "CA",
        "postalCode": "94107",
        "addressCountry": "US"
      }
    }
  },
  "ticketToken": "qrCode:AB34",
  "ticketNumber": "abc123",
  "numSeats": "1"
}
</script>

Microdata

<div itemscope itemtype="http://schema.org/EventReservation">
  <meta itemprop="reservationNumber" content="E123456789"/>
  <link itemprop="reservationStatus" href="http://schema.org/Confirmed"/>
  <div itemprop="underName" itemscope itemtype="http://schema.org/Person">
    <meta itemprop="name" content="John Smith"/>
  </div>
  <div itemprop="reservationFor" itemscope itemtype="http://schema.org/Event">
    <meta itemprop="name" content="Foo Fighters Concert"/>
    <meta itemprop="startDate" content="2017-03-06T19:30:00-08:00"/>
    <div itemprop="location" itemscope itemtype="http://schema.org/Place">
      <meta itemprop="name" content="AT&T Park"/>
      <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
        <meta itemprop="streetAddress" content="24 Willie Mays Plaza"/>
        <meta itemprop="addressLocality" content="San Francisco"/>
        <meta itemprop="addressRegion" content="CA"/>
        <meta itemprop="postalCode" content="94107"/>
        <meta itemprop="addressCountry" content="US"/>
      </div>
    </div>
  </div>
  <meta itemprop="ticketToken" content="qrCode:AB34"/>
  <meta itemprop="ticketNumber" content="abc123"/>
  <meta itemprop="numSeats" content="1"/>
</div>

Sports or Music Event with ticket

Set the reservationFor type to either MusicEvent or SportsEvent. If the event is a MusicEvent (e.g. a concert) you should include performer.name and performer.image. If the event is a SportsEvent (e.g. a basket ball game) where there are two competing teams or players include the two teams as performers. `Confirmation Cards will display the performer(s) image on the Now ticket card.

JSON-LD

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EventReservation",
  "reservationNumber": "E123456789",
  "reservationStatus": "http://schema.org/Confirmed",
  "underName": {
    "@type": "Person",
    "name": "John Smith"
  },
  "reservationFor": {
    "@type": "MusicEvent",
    "name": "Foo Fighters Concert",
    "url": "http://foofighterstour.com/SFO",
    "performer": {
      "@type": "Person",
      "name": "The Foo Fighters",
      "image": "http://www.amprocktv.com/wp-content/uploads/2013/01/foo-fighters-1-680x383.jpg"
    },
    "startDate": "2017-03-06T19:30:00-08:00",
    "endDate": "2017-03-06T23:00:00-08:00",
    "doorTime": "2017-03-06T16:30:00-08:00",
    "location": {
      "@type": "Place",
      "name": "AT&T Park",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "AT&T Park",
        "addressLocality": "San Francisco",
        "addressRegion": "CA",
        "postalCode": "94107",
        "addressCountry": "US"
      }
    }
  },
  "ticketToken": "cid:abc123",
  "ticketNumber": "abc123",
  "numSeats": "1"
}
</script>

Microdata

<div itemscope itemtype="http://schema.org/EventReservation">
  <meta itemprop="reservationNumber" content="E123456789"/>
  <link itemprop="reservationStatus" href="http://schema.org/Confirmed"/>
  <div itemprop="underName" itemscope itemtype="http://schema.org/Person">
    <meta itemprop="name" content="John Smith"/>
  </div>
  <div itemprop="reservationFor" itemscope itemtype="http://schema.org/MusicEvent">
    <meta itemprop="name" content="Foo Fighters Concert"/>
    <link itemprop="url" href="http://foofighterstour.com/SFO"/>
    <div itemprop="performer" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="The Foo Fighters"/>
      <link itemprop="image" href="http://www.amprocktv.com/wp-content/uploads/2013/01/foo-fighters-1-680x383.jpg"/>
    </div>
    <meta itemprop="startDate" content="2017-03-06T19:30:00-08:00"/>
    <meta itemprop="endDate" content="2017-03-06T23:00:00-08:00"/>
    <meta itemprop="doorTime" content="2017-03-06T16:30:00-08:00"/>
    <div itemprop="location" itemscope itemtype="http://schema.org/Place">
      <meta itemprop="name" content="AT&T Park"/>
      <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
        <meta itemprop="streetAddress" content="AT&T Park"/>
        <meta itemprop="addressLocality" content="San Francisco"/>
        <meta itemprop="addressRegion" content="CA"/>
        <meta itemprop="postalCode" content="94107"/>
        <meta itemprop="addressCountry" content="US"/>
      </div>
    </div>
  </div>
  <meta itemprop="ticketToken" content="cid:abc123"/>
  <meta itemprop="ticketNumber" content="abc123"/>
  <meta itemprop="numSeats" content="1"/>
</div>

Event with ticket & reserved seating

For a single ticket with reserved seating, include ticketToken, ticketNumber, venueSeat, venueRow and venueSection. You only need to include whichever of venueSeat, venueRow, and venueSection which needed to describe the location of the seat.

Do not include numSeats.

JSON-LD

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EventReservation",
  "reservationNumber": "E123456789",
  "reservationStatus": "http://schema.org/Confirmed",
  "underName": {
    "@type": "Person",
    "name": "John Smith"
  },
  "reservationFor": {
    "@type": "Event",
    "name": "Foo Fighters Concert",
    "startDate": "2017-03-06T19:30:00-08:00",
    "location": {
      "@type": "Place",
      "name": "AT&T Park",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "24 Willie Mays Plaza",
        "addressLocality": "San Francisco",
        "addressRegion": "CA",
        "postalCode": "94107",
        "addressCountry": "US"
      }
    }
  },
  "venueSeat": "12",
  "venueRow": "A",
  "venueSection": "101",
  "ticketToken": "qrCode:AB34",
  "ticketNumber": "abc123"
}
</script>

Microdata

<div itemscope itemtype="http://schema.org/EventReservation">
  <meta itemprop="reservationNumber" content="E123456789"/>
  <link itemprop="reservationStatus" href="http://schema.org/Confirmed"/>
  <div itemprop="underName" itemscope itemtype="http://schema.org/Person">
    <meta itemprop="name" content="John Smith"/>
  </div>
  <div itemprop="reservationFor" itemscope itemtype="http://schema.org/Event">
    <meta itemprop="name" content="Foo Fighters Concert"/>
    <meta itemprop="startDate" content="2017-03-06T19:30:00-08:00"/>
    <div itemprop="location" itemscope itemtype="http://schema.org/Place">
      <meta itemprop="name" content="AT&T Park"/>
      <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
        <meta itemprop="streetAddress" content="24 Willie Mays Plaza"/>
        <meta itemprop="addressLocality" content="San Francisco"/>
        <meta itemprop="addressRegion" content="CA"/>
        <meta itemprop="postalCode" content="94107"/>
        <meta itemprop="addressCountry" content="US"/>
      </div>
    </div>
  </div>
  <meta itemprop="venueSeat" content="12"/>
  <meta itemprop="venueRow" content="A"/>
  <meta itemprop="venueSection" content="101"/>
  <meta itemprop="ticketToken" content="qrCode:AB34"/>
  <meta itemprop="ticketNumber" content="abc123"/>
</div>

Multiple tickets

There are two options to do multiple tickets:

  • The first is the change numSeats. This means a single barcode will represent tickets for numSeats number of individuals.

  • If you want to have one ticket (i.e. barcode) per individual and have names for each individual on the ticket, create multiple EventReservations (one per individual) with numSeats set to 1. The example below shows what this looks like.

JSON-LD

<script type="application/ld+json">
[
  {
    "@context": "http://schema.org",
    "@type": "EventReservation",
    "reservationNumber": "E123456789",
    "reservationStatus": "http://schema.org/Confirmed",
    "underName": {
      "@type": "Person",
      "name": "John Smith"
    },
    "reservationFor": {
      "@type": "Event",
      "name": "Foo Fighters Concert",
      "startDate": "2017-03-06T19:30:00-08:00",
      "location": {
        "@type": "Place",
        "name": "AT&T Park",
        "address": {
          "@type": "PostalAddress",
          "streetAddress": "24 Willie Mays Plaza",
          "addressLocality": "San Francisco",
          "addressRegion": "CA",
          "postalCode": "94107",
          "addressCountry": "US"
        }
      }
    },
    "venueSeat": "12",
    "venueRow": "A",
    "venueSection": "101",
    "ticketToken": "qrCode:AB34",
    "ticketNumber": "abc123"
  },
  {
    "@context": "http://schema.org",
    "@type": "EventReservation",
    "reservationNumber": "E123456789",
    "reservationStatus": "http://schema.org/Confirmed",
    "underName": {
      "@type": "Person",
      "name": "Eva Green"
    },
    "reservationFor": {
      "@type": "Event",
      "name": "Foo Fighters Concert",
      "startDate": "2017-03-06T19:30:00-08:00",
      "location": {
        "@type": "Place",
        "name": "AT&T Park",
        "address": {
          "@type": "PostalAddress",
          "streetAddress": "24 Willie Mays Plaza",
          "addressLocality": "San Francisco",
          "addressRegion": "CA",
          "postalCode": "94107",
          "addressCountry": "US"
        }
      }
    },
    "venueSeat": "13",
    "venueRow": "A",
    "venueSection": "101",
    "ticketToken": "qrCode:AB34",
    "ticketNumber": "abc456"
  }
]
</script>

Microdata

<div itemscope itemtype="http://schema.org/EventReservation">
  <meta itemprop="reservationNumber" content="E123456789"/>
  <link itemprop="reservationStatus" href="http://schema.org/Confirmed"/>
  <div itemprop="underName" itemscope itemtype="http://schema.org/Person">
    <meta itemprop="name" content="John Smith"/>
  </div>
  <div itemprop="reservationFor" itemscope itemtype="http://schema.org/Event">
    <meta itemprop="name" content="Foo Fighters Concert"/>
    <meta itemprop="startDate" content="2017-03-06T19:30:00-08:00"/>
    <div itemprop="location" itemscope itemtype="http://schema.org/Place">
      <meta itemprop="name" content="AT&T Park"/>
      <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
        <meta itemprop="streetAddress" content="24 Willie Mays Plaza"/>
        <meta itemprop="addressLocality" content="San Francisco"/>
        <meta itemprop="addressRegion" content="CA"/>
        <meta itemprop="postalCode" content="94107"/>
        <meta itemprop="addressCountry" content="US"/>
      </div>
    </div>
  </div>
  <meta itemprop="venueSeat" content="12"/>
  <meta itemprop="venueRow" content="A"/>
  <meta itemprop="venueSection" content="101"/>
  <meta itemprop="ticketToken" content="qrCode:AB34"/>
  <meta itemprop="ticketNumber" content="abc123"/>
</div>
<div itemscope itemtype="http://schema.org/EventReservation">
  <meta itemprop="reservationNumber" content="E123456789"/>
  <link itemprop="reservationStatus" href="http://schema.org/Confirmed"/>
  <div itemprop="underName" itemscope itemtype="http://schema.org/Person">
    <meta itemprop="name" content="Eva Green"/>
  </div>
  <div itemprop="reservationFor" itemscope itemtype="http://schema.org/Event">
    <meta itemprop="name" content="Foo Fighters Concert"/>
    <meta itemprop="startDate" content="2017-03-06T19:30:00-08:00"/>
    <div itemprop="location" itemscope itemtype="http://schema.org/Place">
      <meta itemprop="name" content="AT&T Park"/>
      <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
        <meta itemprop="streetAddress" content="24 Willie Mays Plaza"/>
        <meta itemprop="addressLocality" content="San Francisco"/>
        <meta itemprop="addressRegion" content="CA"/>
        <meta itemprop="postalCode" content="94107"/>
        <meta itemprop="addressCountry" content="US"/>
      </div>
    </div>
  </div>
  <meta itemprop="venueSeat" content="13"/>
  <meta itemprop="venueRow" content="A"/>
  <meta itemprop="venueSection" content="101"/>
  <meta itemprop="ticketToken" content="qrCode:AB34"/>
  <meta itemprop="ticketNumber" content="abc456"/>
</div>

Update a event

You may update a event reservation simply by sending the updated event reservation and setting modifiedTime to the time of the update.

The reservationNumber of the updated reservation must match the one in the original reservation. If your reservation system issues new confirmation numbers for updates, you must first cancel the reservation with the original confirmation number. Then, create a new reservation using the new confirmation number and updated information.

JSON-LD

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EventReservation",
  "reservationNumber": "E123456789",
  "reservationStatus": "http://schema.org/Confirmed",
  "underName": {
    "@type": "Person",
    "name": "John Smith"
  },
  "reservationFor": {
    "@type": "Event",
    "name": "Foo Fighters Concert",
    "startDate": "2017-03-06T20:00:00-08:00",
    "location": {
      "@type": "Place",
      "name": "AT&T Park",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "24 Willie Mays Plaza",
        "addressLocality": "San Francisco",
        "addressRegion": "CA",
        "postalCode": "94107",
        "addressCountry": "US"
      }
    }
  },
  "modifiedTime": "2013-05-01T08:00:00-08:00"
}
</script>

Microdata

<div itemscope itemtype="http://schema.org/EventReservation">
  <meta itemprop="reservationNumber" content="E123456789"/>
  <link itemprop="reservationStatus" href="http://schema.org/Confirmed"/>
  <div itemprop="underName" itemscope itemtype="http://schema.org/Person">
    <meta itemprop="name" content="John Smith"/>
  </div>
  <div itemprop="reservationFor" itemscope itemtype="http://schema.org/Event">
    <meta itemprop="name" content="Foo Fighters Concert"/>
    <meta itemprop="startDate" content="2017-03-06T20:00:00-08:00"/>
    <div itemprop="location" itemscope itemtype="http://schema.org/Place">
      <meta itemprop="name" content="AT&T Park"/>
      <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
        <meta itemprop="streetAddress" content="24 Willie Mays Plaza"/>
        <meta itemprop="addressLocality" content="San Francisco"/>
        <meta itemprop="addressRegion" content="CA"/>
        <meta itemprop="postalCode" content="94107"/>
        <meta itemprop="addressCountry" content="US"/>
      </div>
    </div>
  </div>
  <meta itemprop="modifiedTime" content="2013-05-01T08:00:00-08:00"/>
</div>

Cancel a event

You may cancel the event reservation by setting reservationStatus to http://schema.org/Cancelled and set modifiedTime to the time of the cancellation.

JSON-LD

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EventReservation",
  "reservationNumber": "E123456789",
  "reservationStatus": "http://schema.org/Cancelled",
  "underName": {
    "@type": "Person",
    "name": "John Smith"
  },
  "reservationFor": {
    "@type": "Event",
    "name": "Foo Fighters Concert",
    "startDate": "2017-03-06T19:30:00-08:00",
    "location": {
      "@type": "Place",
      "name": "AT&T Park",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "24 Willie Mays Plaza",
        "addressLocality": "San Francisco",
        "addressRegion": "CA",
        "postalCode": "94107",
        "addressCountry": "US"
      }
    }
  },
  "modifiedTime": "2013-05-01T08:30:00-08:00"
}
</script>

Microdata

<div itemscope itemtype="http://schema.org/EventReservation">
  <meta itemprop="reservationNumber" content="E123456789"/>
  <link itemprop="reservationStatus" href="http://schema.org/Cancelled"/>
  <div itemprop="underName" itemscope itemtype="http://schema.org/Person">
    <meta itemprop="name" content="John Smith"/>
  </div>
  <div itemprop="reservationFor" itemscope itemtype="http://schema.org/Event">
    <meta itemprop="name" content="Foo Fighters Concert"/>
    <meta itemprop="startDate" content="2017-03-06T19:30:00-08:00"/>
    <div itemprop="location" itemscope itemtype="http://schema.org/Place">
      <meta itemprop="name" content="AT&T Park"/>
      <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
        <meta itemprop="streetAddress" content="24 Willie Mays Plaza"/>
        <meta itemprop="addressLocality" content="San Francisco"/>
        <meta itemprop="addressRegion" content="CA"/>
        <meta itemprop="postalCode" content="94107"/>
        <meta itemprop="addressCountry" content="US"/>
      </div>
    </div>
  </div>
  <meta itemprop="modifiedTime" content="2013-05-01T08:30:00-08:00"/>
</div>

Specification

Review the details of your email to see if any of these properties apply to your event reservation. By marking up these additional properties you allow Google to display a much richer desciption of the event reservation to the user.

Property Type Description
reservationNumber Text (required) The number or id of the reservation.
reservationStatus ReservationStatus (required) Current status of the reservation.
url URL Web page where reservation can be viewed.
underName Person or Organization (required) The ticket holder.
underName.name Text (required) Name of the Person.
underName.email Text Email address.
bookingAgent Organization or Person Booking agent or agency. Also accepts a string (e.g. "").
bookingAgent.name Text Name of the agent/service.
bookingAgent.url URL Website of the agent/service.
bookingAgent.image URL URL of an image of the Organization.
bookingTime DateTime Date the reservation was made.
modifiedTime DateTime (recommended for Confirmation Cards/Search Answers) Time the reservation was last modified.
programMembership ProgramMembership Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.
programMembership.memberNumber Text The identifier of the membership.
programMembership.program Text The name of the program.
confirmReservationUrl URL Web page where reservation can be confirmed.
cancelReservationUrl URL Web page where reservation can be cancelled.
modifyReservationUrl URL (recommended for Confirmation Cards/Search Answers) Web page where reservation can be modified.
reservationFor Event (required) Can use Event, or any of the event subtypes, including BusinessEvent, ChildrenEvent, ComedyEvent, DanceEvent, EducationEvent, Festival, FoodEvent, LiteraryEvent, MovieShowing, MusicEvent, SaleEvent, SocialEvent, SportsEvent, TheaterEvent, VisualArtsEvent.
reservationFor.name Text (required) Event's name.
reservationFor.description Text A short description of the Event.
reservationFor.url URL URL of the Event.
reservationFor.image URL URL of an image of the Event.
reservationFor.performer Person or Organization (recommended for Confirmation Cards/Search Answers) The event's performer. Also accepts an array of objects.
reservationFor.performer.name Text (recommended for Confirmation Cards/Search Answers) Name of the Person.
reservationFor.performer.url URL URL of the Person.
reservationFor.performer.image URL (recommended for Confirmation Cards/Search Answers) URL of an image of the Person.
reservationFor.startDate DateTime (required) The start date and time of the event.
reservationFor.endDate DateTime The end date and time of the event.
reservationFor.doorTime DateTime The time admission will commence.
reservationFor.location Place (required) The event's location.
reservationFor.location.name Text (required) Name of the the event's location.
reservationFor.location.address PostalAddress (required) Address of the the event's location.
reservationFor.location.address.streetAddress Text (required) Street address of the event's location.
reservationFor.location.address.addressLocality Text (required) Locality (e.g. city) of the event's location.
reservationFor.location.address.addressRegion Text (required) Region (e.g. State) of the event's location.
reservationFor.location.address.postalCode Text (required) Postal code of the event's location.
reservationFor.location.address.addressCountry Text or Country (required) Country of the event's location.
numSeats Number The number of seats.
venueSeat Text The seat number.
venueRow Text The seat's row.
venueSection Text The seat's section.
ticketNumber Text The number or id of the ticket.
ticketDownloadUrl URL Where the ticket can be downloaded.
ticketPrintUrl URL Where the ticket can be printed.
ticketToken Text or URL If the barcode image is hosted on your site, the value of the field is URL of the image, or a barcode or QR URI, such as "barcode128:AB34" (ISO-15417 barcodes), "qrCode:AB34" (QR codes), "aztecCode:AB34" (Aztec codes), "barcodeEAN:1234" (EAN codes) and "barcodeUPCA:1234" (UPCA codes).
additionalTicketText Text Additional information about the ticket.
price Text Total price of the EventReservation.
priceCurrency Text The currency (in 3-letter ISO 4217 format) of the EventReservation's price.
action Action An action that can be taken upon this thing.
action.name Text The string shown to the user on the UI element tied to the action.
action.url URL Target url for the action. If no explicit handler field is provided the action handler is expanded into a WebActionHandler with this url as the WebActionHandler url.