Install
openclaw skills install hospitable-opsOperate and automate Hospitable properties, reservations, and calendars with safe read-first API workflow, focusing on non-price calendar controls and write...
openclaw skills install hospitable-opsUse Hospitable as the unified operational base. Prefer read-first, then safe write verification, then controlled non-price writes.
/Users/admin-ai/.openclaw/workspace-qiang/.env.local for repeatable Hospitable execution.HOSPITABLE_TOKEN must contain the token body only; never include a leading Bearer prefix in the env value.HOSPITABLE_TOKEN is available in the current execution environment without printing it..env.local instead of re-debugging shell/profile inheritance.statusCode and body envelope.Use bearer auth plus Accept: application/json.
Current workspace rule:
Common read paths:
propertiesreservations?properties[]=<uuid>properties/<uuid>/calendar?start_date=YYYY-MM-DD&end_date=YYYY-MM-DDValidated facts in this workspace:
statusCode: 200 on propertiesHOSPITABLE_TOKEN/Users/admin-ai/.openclaw/workspace-qiang/.env.local directly inside Hospitable scriptsnode scripts/hospitable-read.js properties --per-page 1 returned statusCode: 200/Users/admin-ai/.openclaw/workspace-qiang/scripts/hospitable-read.js
Supported commands:
properties [--per-page N]reservations --property <uuid> [--per-page N]calendar --property <uuid> --start YYYY-MM-DD --end YYYY-MM-DDImportant:
calendar uses --start and --end--start-date / --end-date with this script#!/usr/bin/env node on line 1 if editing the script headerFor calendar writes:
properties/<uuid>/calendarPUTPATCH is not supporteddates{
"dates": [
{ "date": "YYYY-MM-DD" }
]
}
{
"dates": [
{ "date": "YYYY-MM-DD", "available": false }
]
}
Expected eventual readback:
status.reason = BLOCKEDstatus.source = apistatus.source_type = VENDORstatus.available = false{
"dates": [
{
"date": "YYYY-MM-DD",
"closed_for_checkin": true,
"closed_for_checkout": true
}
]
}
Expected eventual readback:
closed_for_checkin = trueclosed_for_checkout = trueAVAILABLEReduce the property system into three stable forms whenever possible:
Treat legacy exceptions as temporary cleanup layers, not permanent structure.
mute(booking) is a historical order source only and should not take new sales.206 -> 201 is a temporary operational occupancy transfer caused by legacy mute orders.scripts/hospitable-read.jsscripts/hospitable-write-probe.jsstatusCode/bodyAfter a write returns 202 accepted:
Report in this order: