---
title: "VacationRental Schema"
description: "Add Google vacation rental structured data with defineVacationRental(), including accommodation, location, amenities, beds, ratings, and reviews."
canonical_url: "https://unhead.unjs.io/docs/schema-org/api/schema/vacation-rental"
last_updated: "2026-08-04T10:37:05.287Z"
---

## Schema.org VacationRental

- **Type**: `defineVacationRental(input?: VacationRental)`<br />

Describes a vacation property listing.

## Useful Links

- [Vacation rental markup - Google Search Central](https://developers.google.com/search/docs/appearance/structured-data/vacation-rental)
- [VacationRental - Schema.org](https://schema.org/VacationRental)

## Example

```ts
defineVacationRental({
  name: 'Beach House',
  identifier: 'beach-house-1',
  image: [
    '/images/beach-house-1.jpg',
    '/images/beach-house-2.jpg',
    '/images/beach-house-3.jpg',
    '/images/beach-house-4.jpg',
    '/images/beach-house-5.jpg',
    '/images/beach-house-6.jpg',
    '/images/beach-house-7.jpg',
    '/images/beach-house-8.jpg',
  ],
  latitude: -38.14992,
  longitude: 144.36172,
  containsPlace: {
    occupancy: {
      value: 5,
    },
    additionalType: 'EntirePlace',
    amenityFeature: {
      name: 'wifi',
      value: true,
    },
    bed: {
      numberOfBeds: 1,
      typeOfBed: 'Queen',
    },
  },
})
```

Google requires `containsPlace`, `containsPlace.occupancy`, `identifier`, `image`, `name`, and a location. Supply the location with either `latitude` and `longitude` or a `geo` object. Google's eligibility policy requires at least eight listing photos even though the TypeScript type only enforces that `image` is present.

## Defaults and resolves

- `@type` defaults to `VacationRental`.
- `@id` defaults to `${canonicalUrl}#vacation-rental`.
- Relative image URLs resolve against the configured host.
- Accommodation, address, brand, coordinates, ratings, and reviews receive their Schema.org types.
- Review dates serialize to ISO 8601.
- A root rental references the primary WebPage through `mainEntityOfPage`.
