A Home Assistant custom integration for Guesty, a property-management platform for short-term rentals. Each Guesty listing becomes a device, with live reservation, cleaning-status, task, and turnaround data as sensors underneath it - updated both on a poll interval and instantly via Guesty webhooks.
- One device per Guesty property, plus a nested "Reservation Info" device for stay-specific sensors
- Check-in, check-out, guest name, guest count, nights, and returning-guest status for the current or next reservation
- Cleaning status, turnaround time (gap between checkout and the next check-in), and last checkout time
- Custom fields - both listing- and reservation-level - are auto-discovered from your Guesty account, not hardcoded
- Live updates via a Guesty webhook (
reservation.new), auto-registered and kept in sync by the integration - no manual webhook setup in Guesty's dashboard - Guesty Tasks support: a per-property
todolist, plus "Open tasks" and "Tasks due today" count sensors, with two-way sync for marking tasks complete - An account-wide "Guesty Integration" device with portfolio-level sensors: check-ins today, check-outs today, same-day turnarounds, and task totals across every property
- A
guesty_reservation_newevent, plus native Home Assistant device triggers ("New reservation") selectable directly in the Automation UI - either scoped to one property or account-wide - Services to fetch a reservation's current data on demand, list a property's future reservations, and write values back to Guesty custom fields
- Configurable polling interval (default 15 minutes)
- A Guesty account with Open API access (a client ID and client secret)
- Home Assistant 2024.4.0 or newer
- In Home Assistant, go to HACS → Integrations → ⋮ → Custom repositories
- Add
https://github.com/LewisMelotech/guesty-hawith category Integration - Find and install Guesty, then restart Home Assistant
Copy custom_components/guesty into your Home Assistant config's custom_components/ folder, then restart.
Go to Settings → Devices & services → Add Integration → Guesty and enter:
- Client ID / Client Secret - from your Guesty Open API application
- Webhook base URL (optional) - only needed if Home Assistant sits behind a reverse proxy it doesn't already know its own external URL through
- Polling interval (optional, default 15 minutes) - how often reservations and tasks are re-fetched; both editable later via the integration's Configure option
The integration automatically creates (and keeps up to date) a Guesty-side webhook subscription so reservation.new events reach Home Assistant instantly, without waiting for the next poll.
Property device (e.g. "Daisy")
- ID (the property's Guesty listing ID)
- Cleaning status
- Turnaround
- Last check-out
- Open tasks / Tasks due today (count sensors)
- Todo list (that property's task backlog)
- Listing-level custom fields
- Photo (the listing's cover photo, if Guesty's payload includes one)
"<Property>: Reservation Info" device
- ID (the current/next reservation's Guesty reservation ID)
- Check-in / Check-out
- Guest name, Number of guests, Nights, Returning guest
- Reservation-level custom fields
"Guesty Integration" device (account-wide, not tied to one property)
- Check-ins today
- Check-outs today
- Same-day turnarounds
- Total open tasks
- Tasks due today
guesty_reservation_new fires on the Home Assistant event bus for every new confirmed reservation, across all properties, with event data:
listing_id, listing_name, reservation_id, confirmation_code, status,
guest_id, check_in, check_out, source,
reservation_custom_fields, listing_custom_fields
"New reservation" is available directly in the Automation UI's Add Trigger → Device picker - no need to type the event type manually:
- On a property (or its Reservation Info device): fires only for that property's new reservations
- On the Guesty Integration device: fires for any property
| Service | Description |
|---|---|
guesty.set_reservation_custom_field |
Write a value to a custom field on a Guesty reservation |
guesty.get_reservation |
Fetch a reservation's current, authoritative data on demand |
guesty.get_future_reservations |
List a property's future confirmed reservations (e.g. for bulk-reprocessing after a lock or field change) |