---
title: "Fetch calendar nights for multiple properties."
method: GET
path: "/v2/calendar"
tags: ["Calendar"]
---

# Fetch calendar nights for multiple properties.

`GET /v2/calendar`

Each days entry is one night (date through the following morning), not a calendar day cell. On a turnover day, is_departure and booking_id refer to different bookings.
Any status other than available means the night cannot be sold; a night marked available may still be unbookable when rules disallow the stay.
rules.is_gap_required is a booking rule. gap_type reflects gap analysis based on rules and adjacent bookings.
rules values are the rules in effect for the night; per-night overrides are on GET /v2/spotrates. booking_id is a reference only; use GET /v2/bookings for booking detail.
Historical dates are supported; rate and rules may be absent on older nights. Nights with no calendar data are omitted, including nights past the property's booking window and nights before recorded history. A 200 with fewer days than the requested range is expected. When no nights exist for the range, days is omitted. Nightly rate amounts exclude fees and taxes; use GET /v2/quotes for full stay pricing. There is no since or delta filter.
This data can lag a short time behind live changes. Confirm a night is actually free with the Quote or Booking endpoints before taking a reservation.

## Query parameters

- `from` string, date-time, nullable, required
- `to` string, date-time, nullable, required
- `property_ids` integer[], nullable
- `active` boolean, nullable

## Response `200`

A pageable list of properties, each with nightly rates, rules, and availability.

- PageableListOfCalendarPropertyModel — Represents a single page plus meta data for a collection of records.
  - `items` CalendarPropertyModel[] — The subset of records for the current page in the collection.
    - `currency_code` string — The ISO 4217 currency code for rate amounts on this property.
    - `days` CalendarDayModel[] — Nightly rates, rules, and availability for the requested date range. Nights with no calendar data are omitted, including nights past the property's booking window and nights before recorded history. A 200 with fewer days than the requested range is expected. When no nights exist for the range, days is omitted.
      - `booking_id` integer, nullable — The booking or block occupying this night. Omitted when the night is vacant. Fetch guest, charge, and door-code detail from GET /v2/bookings.
      - `date` string, date-time — Property-local calendar date for the night (no time or UTC offset).
      - `gap_type` 'required' | 'orphan' — Classification for a night with Gap status.
      - `holiday_name` string — Holiday name when this night falls on a configured holiday. Omitted when not a holiday.
      - `is_arrival` boolean, nullable — True when a booking arrives on this date (check-in day). On a turnover day, this is the incoming booking, not the booking departing that morning.
      - `is_departure` boolean, nullable — True when a booking departs the morning of this date. On a turnover day, this is the prior night's booking, not the booking for the night (BookingId).
      - `rate` CalendarDayRateModel — Nightly pricing for a calendar night.
        - `amount` number, nullable — Rent plus rate adjusters and non-built-in surcharges, excluding tax.
        - `is_spot_rate` boolean, nullable — True when Rent comes from a spot-rate override.
        - `rent` number, nullable — Base seasonal or spot rate before adjusters and surcharges.
        - `season_id` integer, nullable — The season supplying the base rate, when applicable.
      - `rules` CalendarDayRulesModel — Booking rules that apply to a calendar night.
        - `is_arrival_disallowed` boolean, nullable — Arrival is not allowed on this night.
        - `is_departure_disallowed` boolean, nullable — Departure is not allowed on this night.
        - `is_gap_required` boolean, nullable — Only arrival or departure may occur on this day, not both (turnover-gap rule).
        - `is_stay_disallowed` boolean, nullable — The night cannot be part of any stay (a night with Available and this rule is still not bookable).
        - `max_nights` integer, nullable — Maximum stay length in nights.
        - `min_nights` integer, nullable — Minimum stay length in nights.
      - `status` 'available' | 'booked' | 'blocked' | 'gap' | 'unavailable' — Availability state for a calendar night. Any value other than available cannot be sold. unavailable means OwnerRez does not recognize the night's stored state; treat it as not for sale.
    - `property_id` integer — The property ID.
  - `limit` integer — The maximum number of records per page.
  - `next_page_url` string — URL to fetch the next page of records. A null value indicates that there are no more pages in the collection.
  - `offset` integer — The current offset from the start of the collection.
  - `count` integer — The total number of records in the collection.

## Changes

- **2026-09-16** `8012fa94f61a` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/ownerrez/apis/ownerrez-api/changes/v2/calendar/get.md)

---

[API](https://skmtc.dev/ownerrez/apis/ownerrez-api.md) · [All operations](https://skmtc.dev/ownerrez/apis/ownerrez-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ownerrez/apis/ownerrez-api/revisions/2c61dd3d9b5d?raw)
