> This is a page from the ElevenLabs documentation. For an index of the documentation, fetch https://elevenlabs.io/docs/llms.txt.

# Hostaway

With the [webhook tool](/docs/reception-ai/integrations/webhooks) below, your receptionist can check a Hostaway listing's calendar for the dates a caller asks about, and tell them whether the cabin or unit is free, the nightly price, and the minimum stay. Hostaway's public API issues an access token that lasts 24 months, so the tool calls Hostaway directly.

> **Note**
>
> Your receptionist can't create reservations or look up existing ones. It checks the calendar and
> takes the booking request, and your team confirms the stay from the [post-call summary](/docs/reception-ai/features/notifications).

## Before you start

### Create an API key

In the Hostaway dashboard, open **Settings** → **Hostaway API** and create a new API key. Name it `Reception.ai`, and choose **Hostaway Public API** as the partner. Copy the key: Hostaway shows it only once. Note your **Account ID**, which is shown in **Settings** as well.

### Get an access token

Exchange the key for an access token in a terminal, replacing `ACCOUNT_ID` and `API_KEY`:

```bash
curl -X POST 'https://api.hostaway.com/v1/accessTokens' \
  -H 'Content-type: application/x-www-form-urlencoded' \
  -d 'grant_type=client_credentials&client_id=ACCOUNT_ID&client_secret=API_KEY&scope=general'
```

Copy the `access_token` value from the response. It's valid for 24 months.

> **Warning**
>
> The access token can read and change everything in your Hostaway account, including guest details
> and door codes. Don't paste it into shared documents or online tools. If it leaks, revoke it and
> delete the API key in Hostaway.

### Find your listing IDs

List your listings with the token, replacing `YOUR_TOKEN`:

```bash
curl 'https://api.hostaway.com/v1/listings?limit=100' \
  -H 'Authorization: Bearer YOUR_TOKEN'
```

Each listing in the response has an `id` and a `name`. Note the ID of each listing your receptionist should check.

## Create the tool

Go to **Integrations**, select **Add integration**, and choose **Webhook Tool**.

| Field                | Value                                                                                                                                                                                         |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**             | `check_hostaway_calendar`                                                                                                                                                                     |
| **Description**      | "Check whether one of our rentals is free for the caller's dates, and the nightly price and minimum stay. Use it before telling the caller a rental is available."                            |
| **Method**           | GET                                                                                                                                                                                           |
| **URL**              | `https://api.hostaway.com/v1/listings/{listing_id}/calendar`                                                                                                                                  |
| **Request Headers**  | `Authorization`: `Bearer ` followed by your access token, with **Type** set to **Secret**                                                                                                     |
| **Path Parameters**  | `listing_id` (string, required): "Use `11111` for the Cedar Cabin and `22222` for the Lakeside Cabin."                                                                                        |
| **Query Parameters** | `startDate` (string, required): "The arrival date, as YYYY-MM-DD."  `endDate` (string, required): "The last night of the stay, as YYYY-MM-DD."  `includeResources` (string, fixed value): `0` |
| **Assign to agents** | **Receptionist**                                                                                                                                                                              |

Replace the cabin names and IDs with your own, and add one line per listing. Select **Enable**.

Hostaway returns one entry per night. A night is free when `status` is `available`. Each night also has its `price` and `minimumStay`.

> **Warning**
>
> Keep `includeResources` fixed at `0`. With `1`, Hostaway adds the reservations on each night,
> including guest names, phone numbers, and emails, to what your receptionist sees.

### Test it

[Test your receptionist](/docs/reception-ai/receptionist/testing) by asking for a cabin on dates you know are booked, then on dates you know are free. Compare the answers with your Hostaway calendar.

> **Tip**
>
> Add a [procedure](/docs/reception-ai/receptionist/rules-and-procedures) for stay requests: ask for
> the rental, arrival and departure dates, and number of guests, check the calendar, then take the
> caller's name, phone number, and email for your team. Add a rule that your receptionist never
> promises a stay is booked.

## Limitations

* Your receptionist can't create, change, or cancel reservations. Your team confirms each stay.
* It checks one listing at a time. To suggest another cabin, it checks each one in turn.
* Nightly prices don't include cleaning fees, taxes, or discounts, so your receptionist should give them as a guide only.
* The tool doesn't look up existing reservations. Hostaway's reservation and listing records include door codes and Wi-Fi passwords, so this guide doesn't put them in front of your receptionist. Zapier's Hostaway app returns the same records, and has no booking or availability actions.
* Your access token stops working after 24 months. Create a new one and update the header before then.

## Troubleshooting

| Problem                                  | What to check                                                                                               |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| 401 or 403 from Hostaway                 | The header value must be `Bearer`, a space, and the access token, not the API key. Check it hasn't expired. |
| The wrong cabin is checked               | Check the listing IDs in the `listing_id` description match your listings.                                  |
| A booked night shows as free             | Check the calendar in Hostaway. Blocked and reserved nights have a `status` other than `available`.         |
| The receptionist offers a too-short stay | Tell it in the tool description to check `minimumStay` on the arrival night.                                |