What Is VacationRental Schema? The Complete Guide (2026)
What Is VacationRental Schema?
VacationRental schema is a type of structured data — defined in the Schema.org VacationRental vocabulary — that marks up short-term rental property listings for platforms like Airbnb, Vrbo, and independent vacation rental sites. It is one of the most detailed schema types, with strict requirements around photo count, geographic coordinate precision, and accommodation specifications. To appear in Google Travel and Google Hotels, participation in Google Hotel Center is required — and implementing VacationRental schema is a key part of the Hotel Center vacation rental feed.
- Required:
name,identifier(unique stable ID), minimum 8imageURLs,latitudeandlongitudewith at least 5 decimal places,containsPlace(Accommodation withoccupancy.value) - Recommended:
additionalType(Apartment, House, Villa, etc.),address,description,checkinTime/checkoutTimein ISO 8601 time format,amenityFeature(LocationFeatureSpecification) - Reviews require
datePublished— andcontentReferenceTimeis mandatory for French properties - Requires active participation in Google Hotel Center
Why VacationRental Schema Matters
Google Travel and Google Hotels are among the highest-traffic surfaces for vacation rental discovery. Properties that participate in the Google Hotel Center feed and implement complete VacationRental schema appear in rich property cards with photos, pricing, ratings, amenities, and availability — dramatically increasing click-through rates over unstructured listings.
AI travel assistants (including Google Gemini, ChatGPT, and Perplexity when answering travel queries) increasingly pull structured property data directly from schema markup. A complete VacationRental schema with accurate coordinates, photo arrays, and amenity features gives these systems the machine-readable data needed to describe and recommend your property in AI-generated travel responses.
Required Properties
| Property | Greadme rule |
|---|---|
name | Error if missing. The listing name as displayed to guests |
identifier | Error if missing. A unique, stable internal ID independent of listing content. Must not change when the listing is updated |
image | Error if missing or if fewer than 8 image URLs are provided. Google requires at least photos of bedroom, bathroom, and common areas |
latitude | Error if missing or fewer than 5 decimal places (e.g., 42.36008 not 42.36) |
longitude | Error if missing or fewer than 5 decimal places |
containsPlace | Error if missing. Must be an Accommodation object with occupancy (QuantitativeValue with value) |
The 8-Photo Minimum: What Google Requires
Google requires a minimum of 8 high-quality photos for VacationRental listings. This is a hard error in Greadme — listings with fewer than 8 photos lose 15 points and are not eligible for rich results in Google Hotels.
Google's documentation specifies that photos must include the following areas at minimum:
- Bedroom(s)
- Bathroom(s)
- Common areas (living room, kitchen, dining area)
Each image URL must be valid, publicly accessible (not behind authentication), and ideally at least 720px wide. Greadme validates all image URLs and warns on invalid or inaccessible URLs.
Geographic Coordinate Precision
Latitude and longitude must have at least 5 decimal places. This is a Google requirement for VacationRental schema specifically — the precision is needed to accurately locate a property within a building or property complex.
- Valid:
42.36008,-73.99893 - Invalid (too imprecise):
42.36,-73.998
Greadme errors on coordinates with fewer than 5 decimal places. You can add coordinates directly as top-level properties (latitude, longitude) or nested inside a geo object with @type: "GeoCoordinates".
containsPlace: The Accommodation Object
The containsPlace property holds an Accommodation object describing the rental unit's physical details. It contains:
| Property | Status | Notes |
|---|---|---|
occupancy | Required | QuantitativeValue with value (max guests). Greadme errors if missing |
additionalType | Recommended | Room type: EntirePlace, PrivateRoom, or SharedRoom |
numberOfBedrooms | Recommended | Total bedroom count |
numberOfBathroomsTotal | Recommended | RESO convention: 2.5 = two full + one half bathroom |
numberOfRooms | Recommended | Total room count including all spaces |
bed | Recommended | Array of BedDetails with numberOfBeds and typeOfBed (Queen, King, Single, etc.) |
floorSize | Recommended | QuantitativeValue with value and unitCode (MTK/SQM for square meters, FTK/SQFT for square feet) |
amenityFeature | Recommended | Array of LocationFeatureSpecification with English name and boolean value |
Property Type: additionalType on VacationRental
The top-level additionalType on the VacationRental object describes the property type (as opposed to the room type on containsPlace). Valid values include:
- Apartment
- Bungalow
- Cabin
- Chalet
- Cottage
- Gite
- HolidayVillageRental
- House
- VacationRental
- Villa
Greadme warns when additionalType is missing and deducts 5 points. Using an unrecognized value also triggers a warning.
checkinTime and checkoutTime Format
Check-in and checkout times must be in ISO 8601 time format: HH:MM:SS with an optional timezone offset. Examples:
"checkinTime": "15:00:00+08:00"(3 PM, UTC+8)"checkoutTime": "11:00:00Z"(11 AM, UTC)
Greadme validates that checkin/checkout times match an ISO 8601 time pattern. Greadme's convention requires seconds (HH:MM:SS), so "15:00" without seconds triggers a Greadme warning. Writing "3:00 PM" (12-hour AM/PM) is not valid ISO 8601 and causes a Greadme error.
Review Requirements: datePublished and France's contentReferenceTime
Reviews on VacationRental listings have stricter requirements than standard Review schema:
- datePublished is required for every review (error if missing). This differs from general Review schema where it is only a warning.
- contentReferenceTime is required for French properties. When
address.addressCountryis"FR", every review must includecontentReferenceTime— the start date of the reviewer's stay. This is a Google-documented requirement for vacation rental reviews in France. Greadme errors when this field is missing for FR-addressed properties.
VacationRental Schema Code Example
A complete vacation rental listing:
{
"@context": "https://schema.org",
"@type": "VacationRental",
"name": "Beachfront Studio with Ocean View",
"identifier": "prop-78312",
"additionalType": "Apartment",
"latitude": 25.77427,
"longitude": -80.19341,
"image": [
"https://example.com/photos/1.jpg",
"https://example.com/photos/2.jpg",
"https://example.com/photos/3.jpg",
"https://example.com/photos/4.jpg",
"https://example.com/photos/5.jpg",
"https://example.com/photos/6.jpg",
"https://example.com/photos/7.jpg",
"https://example.com/photos/8.jpg"
],
"description": "Modern studio steps from the beach with full kitchen.",
"checkinTime": "15:00:00-05:00",
"checkoutTime": "11:00:00-05:00",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Ocean Dr",
"addressLocality": "Miami",
"addressRegion": "FL",
"postalCode": "33139",
"addressCountry": "US"
},
"containsPlace": {
"@type": "Accommodation",
"additionalType": "EntirePlace",
"occupancy": {
"@type": "QuantitativeValue",
"value": 2
},
"numberOfBedrooms": 0,
"numberOfBathroomsTotal": 1,
"amenityFeature": [
{
"@type": "LocationFeatureSpecification",
"name": "Wifi",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Air conditioning",
"value": true
}
]
}
}Common Mistakes to Avoid
- Fewer than 8 images: Greadme errors and deducts 15 points. Always provide at least 8 distinct, high-quality photo URLs.
- Coordinates with fewer than 5 decimal places: 5 decimal places of latitude/longitude precision equals roughly 1.1 meters of accuracy — the minimum needed to locate a specific unit.
- Missing containsPlace.occupancy: This is required inside the Accommodation object. Greadme errors with −20 points. Always specify the maximum number of guests.
- P.O. box in address.streetAddress: Greadme warns and deducts 10 points. Physical street addresses only.
- Wrong time format for checkinTime/checkoutTime: Must be ISO 8601 time format. AM/PM format like
"3:00 PM"causes a Greadme error. Omitting seconds ("15:00") triggers a Greadme warning — the fullHH:MM:SSformat is Greadme's convention. - Missing review.datePublished: Required for vacation rental reviews (error) — unlike standard Review schema where it is only a warning.
How Greadme Validates VacationRental Schema
Greadme runs a dedicated VacationRental validator with the following key deductions:
| Issue | Points lost |
|---|---|
Missing name | −20 |
Missing identifier | −20 |
Missing image | −20 |
| Fewer than 8 images | −15 |
Missing latitude | −20 |
| Latitude precision under 5 decimal places | −10 |
Missing longitude | −20 |
| Longitude precision under 5 decimal places | −10 |
Missing containsPlace | −25 |
Missing containsPlace.occupancy | −20 |
Missing address | −10 |
Invalid checkinTime format | −8 |
Missing review.datePublished | −10 per review |
Missing review.contentReferenceTime (France) | −10 per review |
Frequently Asked Questions
Does VacationRental schema work without Google Hotel Center?
The schema itself is valid and will be understood by AI systems without Hotel Center participation. However, to appear in Google Hotels rich results and property cards, active participation in Google Hotel Center is required — it is not something that schema markup alone enables. The schema is part of the Hotel Center feed, not a standalone trigger for Google Hotels visibility.
Can I use VacationRental schema for a hotel or B&B?
No. Hotels, B&Bs, and inns should use LodgingBusiness or its subtypes (Hotel, BedAndBreakfast) from LocalBusiness schema. VacationRental is specifically for short-term rental properties — entire apartments, houses, villas, and similar units that guests rent as a whole.
What amenity feature names does Google recognize?
Feature names must be in English. Google recognizes standard amenity names like "Wifi", "Air conditioning", "Pool", "Kitchen", "Parking", "Pet-friendly", and others. Use the exact names from Google's VacationRental documentation to ensure proper matching. Greadme warns when any amenity feature is missing a name or value.
