XooCode(){

LodgingReservation

LodgingReservation is a Reservation subtype for hotel bookings, motel stays, vacation rentals, and any overnight accommodation. It has 6 properties of its own: checkinTime, checkoutTime, lodgingUnitType (room type), lodgingUnitDescription (room details), numAdults, and numChildren. Gmail reads this markup to show a hotel reservation card with check-in/out times, room type, and a map link.

The type hierarchy is Thing → Intangible → Reservation → LodgingReservation. Set reservationFor to a Hotel or LodgingBusiness object with name and address. Google Travel also reads this for trip planning features.

Full example of schema.org/LodgingReservation json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/LodgingReservation
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LodgingReservation",
  "reservationId": "HD-2026-4471",
  "reservationStatus": "https://schema.org/ReservationConfirmed",
  "reservationFor": {
    "@type": "Hotel",
    "name": "Hotel Dunmore",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "450 Main Street",
      "addressLocality": "Dunmore",
      "addressRegion": "PA",
      "postalCode": "18512",
      "addressCountry": "US"
    },
    "telephone": "+1-570-555-0150"
  },
  "checkinTime": "2026-11-13T15:00:00-05:00",
  "checkoutTime": "2026-11-16T11:00:00-05:00",
  "lodgingUnitType": "Deluxe King Room",
  "lodgingUnitDescription": "King bed, city view, non-smoking, 28 sqm. Complimentary breakfast included.",
  "numAdults": 1,
  "numChildren": 0,
  "underName": {
    "@type": "Person",
    "name": "Tomás Herrera",
    "email": "tomas@xoocode.com"
  },
  "provider": {
    "@type": "Hotel",
    "name": "Hotel Dunmore"
  },
  "totalPrice": "447.00",
  "priceCurrency": "USD",
  "bookingTime": "2026-09-28T09:12:00-04:00"
}
</script>

checkinTime and checkoutTime

checkinTime is when the guest can check in. checkoutTime is the latest checkout. These can be DateTime (full date and time for a specific booking) or just Time (the hotel's general check-in hour). Gmail shows both on the reservation card. For hotel confirmation emails, use full DateTime with the booking dates.

lodgingUnitType and lodgingUnitDescription

lodgingUnitType is a short label: "Double Room", "Suite", "Studio Apartment". lodgingUnitDescription is a longer text: "King bed, city view, non-smoking, 32 sqm." Gmail displays the unit type as the room name on the card.

numAdults and numChildren

numAdults and numChildren take integers or QuantitativeValue. These tell the hotel (and Google Travel) the guest breakdown for the room.

Minimal valid version

The smallest markup that still produces a valid LodgingReservation entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/LodgingReservation (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LodgingReservation",
  "reservationId": "HD-2026-4471",
  "reservationStatus": "https://schema.org/ReservationConfirmed",
  "reservationFor": { "@type": "LodgingBusiness", "name": "Hotel Dunmore", "address": { "@type": "PostalAddress", "streetAddress": "450 Main Street", "addressLocality": "Dunmore", "addressRegion": "PA", "addressCountry": "US" } },
  "checkinTime": "2026-11-13T15:00:00-05:00",
  "checkoutTime": "2026-11-16T11:00:00-05:00",
  "underName": { "@type": "Person", "name": "Tomás Herrera" }
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

Common LodgingReservation mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    checkinTime as a date without time

    Wrong
    "checkinTime": "2026-11-13"
    Right
    "checkinTime": "2026-11-13T15:00:00-05:00"

    checkinTime should include the actual check-in hour so Gmail can display it. A date-only value tells the guest which day but not what time they can arrive.

  2. 02

    Missing lodgingUnitType

    Wrong
    LodgingReservation with dates but no room type
    Right
    "lodgingUnitType": "Deluxe King Room"

    lodgingUnitType tells the guest what room they booked. Gmail shows this on the reservation card. Without it, the card just says the hotel name with no room details.

  3. 03

    reservationFor as a Place instead of LodgingBusiness

    Wrong
    "reservationFor": { "@type": "Place", "name": "Hotel Dunmore" }
    Right
    "reservationFor": { "@type": "Hotel", "name": "Hotel Dunmore", "address": { ... } }

    reservationFor should be a Hotel, Motel, or LodgingBusiness, not a generic Place. The specific type lets Gmail display hotel-specific features (star rating, phone number) on the card.

About the example data

A booking at Hotel Dunmore for an XooCon attendee. The reservationFor references the Hotel entity. The guest walks to The Thunderdome for the conference.

Comments

Loading comments...

Leave a comment