Hostaway Calendar API

Read and update the per-listing availability and nightly pricing calendar. Supports per-day retrieval, batch updates across date ranges, and inline reservation context via the includeResources query parameter.

Hostaway Calendar API is one of 10 APIs that Hostaway publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Vacation Rentals, Calendar, Availability, and Pricing. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

hostaway-calendar-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Hostaway Calendar API
  description: |
    Read and update availability and nightly pricing on the Hostaway listing
    calendar. Supports per-day retrieval, batch updates, and embedded
    reservation context via the includeResources query parameter.
  version: '1.0.0'
  contact:
    name: Hostaway Support
    email: [email protected]
    url: https://api.hostaway.com/documentation
  x-logo:
    url: https://www.hostaway.com/favicon.ico

servers:
  - url: https://api.hostaway.com/v1
    description: Production API

security:
  - OAuth2ClientCredentials: []

tags:
  - name: Calendar
    description: Listing calendar availability and pricing

paths:
  /listings/{listingId}/calendar:
    parameters:
      - $ref: '#/components/parameters/ListingId'
    get:
      summary: Hostaway Get Calendar Days
      operationId: getCalendarDays
      tags:
        - Calendar
      parameters:
        - name: startDate
          in: query
          schema:
            type: string
            format: date
        - name: endDate
          in: query
          schema:
            type: string
            format: date
        - name: includeResources
          in: query
          schema:
            type: integer
            enum: [0, 1]
      responses:
        '200':
          description: Calendar days collection
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalendarResponse'
    put:
      summary: Hostaway Update Calendar Day
      operationId: updateCalendarDay
      tags:
        - Calendar
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CalendarDayInput'
      responses:
        '200':
          description: Calendar day updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalendarResponse'
  /listings/{listingId}/calendar/batch:
    parameters:
      - $ref: '#/components/parameters/ListingId'
    post:
      summary: Hostaway Batch Update Calendar
      operationId: batchUpdateCalendar
      tags:
        - Calendar
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                dates:
                  type: array
                  items:
                    type: string
                    format: date
                price:
                  type: number
                minimumStay:
                  type: integer
                isAvailable:
                  type: integer
                  enum: [0, 1]
                note:
                  type: string
      responses:
        '200':
          description: Batch update applied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalendarResponse'

components:
  securitySchemes:
    OAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.hostaway.com/v1/accessTokens
          scopes:
            general: General API access scope
  parameters:
    ListingId:
      name: listingId
      in: path
      required: true
      schema:
        type: integer
  schemas:
    CalendarDayInput:
      type: object
      properties:
        date:
          type: string
          format: date
        price:
          type: number
        minimumStay:
          type: integer
        maximumStay:
          type: integer
        closedOnArrival:
          type: integer
          enum: [0, 1]
        closedOnDeparture:
          type: integer
          enum: [0, 1]
        isAvailable:
          type: integer
          enum: [0, 1]
        note:
          type: string
    CalendarDay:
      allOf:
        - $ref: '#/components/schemas/CalendarDayInput'
        - type: object
          properties:
            reservationId:
              type: integer
              nullable: true
            status:
              type: string
              description: available, reserved, blocked
    CalendarResponse:
      type: object
      properties:
        status:
          type: string
          enum: [success, fail]
        result:
          type: array
          items:
            $ref: '#/components/schemas/CalendarDay'