XooCode(){

RentalCarReservation

RentalCarReservation is a Reservation subtype for car rental bookings. It has 4 properties of its own: pickupLocation, pickupTime, dropoffLocation, and dropoffTime. These separate pickup and dropoff details are what make it different from the parent Reservation. Gmail reads this to show a rental car card with pickup/dropoff locations and times.

The type hierarchy is Thing → Intangible → Reservation → RentalCarReservation. Set reservationFor to a Car or Vehicle object for the reserved vehicle (or the vehicle class if the specific unit is not yet assigned).

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

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

Highlight legend:Required by GoogleRecommendedOptional
schema.org/RentalCarReservation
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "RentalCarReservation",
  "reservationId": "RC-LVA-2026-0891",
  "reservationStatus": "https://schema.org/ReservationConfirmed",
  "reservationFor": {
    "@type": "Car",
    "name": "Compact Sedan",
    "brand": { "@type": "Brand", "name": "Toyota" },
    "model": "Corolla or similar"
  },
  "pickupLocation": {
    "@type": "Place",
    "name": "Valley Car Rental - Airport Desk",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "100 Airport Road, Terminal 1",
      "addressLocality": "Dunmore",
      "addressRegion": "PA",
      "postalCode": "18512",
      "addressCountry": "US"
    }
  },
  "pickupTime": "2026-11-13T13:30:00-05:00",
  "dropoffLocation": {
    "@type": "Place",
    "name": "Valley Car Rental - Airport Desk",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "100 Airport Road, Terminal 1",
      "addressLocality": "Dunmore",
      "addressRegion": "PA",
      "addressCountry": "US"
    }
  },
  "dropoffTime": "2026-11-16T10:00:00-05:00",
  "underName": { "@type": "Person", "name": "Tomás Herrera" },
  "provider": { "@type": "Organization", "name": "Valley Car Rental" },
  "totalPrice": "215.00",
  "priceCurrency": "USD",
  "bookingTime": "2026-09-28T09:30:00-04:00"
}
</script>

pickupLocation and dropoffLocation

Both take Place objects with name and address. For airport rentals, use the rental counter or airport terminal. For one-way rentals, the pickup and dropoff locations differ. Gmail shows both locations on the card with map links.

pickupTime and dropoffTime

Both take DateTime values. These are the agreed pickup and return times in the rental contract. Gmail shows these as the rental period on the card.

Minimal valid version

The smallest markup that still produces a valid RentalCarReservation 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/RentalCarReservation (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "RentalCarReservation",
  "reservationId": "RC-LVA-2026-0891",
  "reservationStatus": "https://schema.org/ReservationConfirmed",
  "pickupLocation": { "@type": "Place", "name": "Valley Car Rental - Airport Desk", "address": { "@type": "PostalAddress", "streetAddress": "100 Airport Road", "addressLocality": "Dunmore", "addressRegion": "PA", "addressCountry": "US" } },
  "pickupTime": "2026-11-13T13:30:00-05:00",
  "dropoffTime": "2026-11-16T10: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 RentalCarReservation 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

    Missing dropoff details for a one-way rental

    Wrong
    RentalCarReservation with pickupLocation but no dropoffLocation
    Right
    Always include dropoffLocation and dropoffTime, even if same as pickup

    Gmail shows both pickup and dropoff on the card. For same-location rentals, set dropoffLocation to the same Place as pickupLocation. For one-way rentals, use different locations.

  2. 02

    reservationFor as a rental company instead of a car

    Wrong
    "reservationFor": { "@type": "Organization", "name": "Valley Car Rental" }
    Right
    "reservationFor": { "@type": "Car", "name": "Compact Sedan" }; use "provider" for the company

    reservationFor is what you are reserving (the car). provider is who you are renting from (the company). Gmail needs the car details on the card.

About the example data

A rental car pickup at Lackawanna Valley Airport for an XooCon attendee arriving on Nordic Air flight NA 412.

Comments

Loading comments...

Leave a comment