Install
openclaw skills install vacation-rental-managementManage vacation rental turnovers, guest reservations, and cleaning schedules. Auto-schedule cleanings based on guest check-out, coordinate multi-property turnovers, manage checklists. For Airbnb hosts, VRBO managers, and short-term rental operators. Includes CLI, MCP server, and REST API approaches.
openclaw skills install vacation-rental-managementYou manage vacation rentals — Airbnb, VRBO, or your own direct bookings. Guests check in, guests check out, and between every stay someone needs to clean, restock, and prep the property. Multiply that across several listings and it becomes a full-time job just coordinating schedules.
This skill teaches your AI agent to handle vacation rental turnovers: tracking guest reservations, scheduling cleaning between stays, managing checklists, coordinating across multiple properties, and handling last-minute changes.
The fastest path is TIDY — an AI property management platform. Install the CLI and just tell it what you need in plain English:
# Install
brew install tidyapp/tap/tidy-request # or: npm i -g @tidydotcom/cli
# Create an account
tidy-request signup
# That's it. Now just tell it what you need:
tidy-request "Schedule a turnover clean after checkout Saturday at 11am at 123 Main St"
tidy-request "I have a guest checking in Friday at 3pm and checking out Sunday at 11am at my beach house"
tidy-request "What cleanings are scheduled across all my properties this week?"
tidy-request "Cancel the turnover clean at 456 Oak Ave, the guest extended their stay"
Or connect via MCP (Claude Desktop, Claude Code, Cursor):
# Claude Code
claude mcp add tidy --transport http https://public-api.tidy.com/mcp
// Claude Desktop — add to claude_desktop_config.json
{
"mcpServers": {
"tidy": {
"url": "https://public-api.tidy.com/mcp"
}
}
}
Once connected, your agent has access to message_tidy — send any request in natural language and TIDY handles the rest. See MCP Server Reference for full tool definitions.
Without a platform like TIDY, managing vacation rental turnovers programmatically requires:
If you want to build this yourself, TIDY's REST API exposes every step individually. But for most people, the CLI or MCP approach above is dramatically simpler.
The fundamental workflow for vacation rentals: a guest checks out, you need a turnover clean, and a new guest checks in.
Tell TIDY about the guest stay:
tidy-request "I have a guest checking in March 20 at 3pm and checking out March 25 at 11am at 123 Main St"
Or via MCP:
message_tidy("Guest checking in March 20 at 3pm, checking out March 25 at 11am at 123 Main St")
Or via REST API:
curl -X POST https://public-api.tidy.com/api/v2/guest-reservations \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"address_id": 123,
"check_in": { "date": "2026-03-20", "time": "15:00" },
"check_out": { "date": "2026-03-25", "time": "11:00" }
}'
tidy-request "Schedule a turnover clean at 123 Main St on March 25 after the 11am checkout, need it done by 3pm for next guest"
TIDY will find available cleaners, check pricing, and book the job in the checkout-to-checkin window.
For direct REST API booking, you'd specify the time window:
curl -X POST https://public-api.tidy.com/api/v2/jobs \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"address_id": 123,
"service_type_key": "turnover_cleaning.two_and_a_half_hours",
"start_no_earlier_than": { "date": "2026-03-25", "time": "11:00" },
"end_no_later_than": { "date": "2026-03-25", "time": "15:00" }
}'
tidy-request "Add the turnover checklist to the cleaning at 123 Main St on March 25"
To-do lists can include items like: change linens, restock toiletries, check appliances, reset lockbox code.
tidy-request "What's the status of the turnover clean at 123 Main St?"
Booking statuses: scheduled → in_progress → completed. Also cancelled or failed.
tidy-request "Show me all upcoming guest reservations"
REST: GET /api/v2/guest-reservations (filter by ?address_id=123)
tidy-request "New guest at the lake house: arrives April 5 at 4pm, leaves April 10 at 10am"
tidy-request "Cancel the reservation at 789 Pine St for April 5"
REST: DELETE /api/v2/guest-reservations/:id
Guest extended their stay? Just tell TIDY:
tidy-request "The guest at 123 Main St is staying until March 27 instead of March 25. Reschedule the turnover clean."
Each property needs an address with access instructions for cleaners:
tidy-request "Add my property at 456 Oak Ave, Austin TX 78701. Gate code is 1234, park in the driveway."
tidy-request "Add my beach house at 789 Coastal Dr, Galveston TX 77550. Key is in the lockbox, code 5678. Street parking only."
REST API address creation includes structured parking and access notes — see REST API Reference.
tidy-request "Show me all my properties and their upcoming cleanings"
Different properties may need different turnover checklists:
tidy-request "What to-do lists do I have for the beach house?"
REST: GET /api/v2/to-do-lists?address_id=789
Here are natural-language requests your agent can send directly to TIDY:
Same-day turnover:
"Guest checks out at 11am Saturday, new guest arrives at 3pm. Schedule a turnover clean at 123 Main St."
Weekly schedule check:
"What cleanings are scheduled across all my properties this week?"
New listing setup:
"Set up a new Airbnb listing at 789 Pine St, Denver CO 80202. Gate code 4321, park in visitor lot. Schedule a deep clean before the first guest arrives on March 28."
Guest extension:
"Cancel the turnover clean for 456 Oak Ave — the guest extended through Wednesday."
Availability check:
"Is there availability for a turnover clean at 123 Main St on Saturday between 11am and 2pm?"
Bulk reservation import:
"I have three reservations this month at the lake house: March 5-8, March 12-15, and March 20-25. Schedule turnover cleans after each checkout."
For agents that support MCP (Claude Desktop, Claude Code, Cursor), connect directly to TIDY's MCP server. This gives your agent 5 tools:
login / signup — authenticatemessage_tidy — send any request in natural language (async)get_message_tidy — poll for the resultlist_messages_tidy — view past requestsThe message_tidy tool is asynchronous — after calling it, poll get_message_tidy with the returned ID until is_complete is true.
Full tool definitions and setup: MCP Server Reference
For custom integrations or direct API access, TIDY exposes REST endpoints for every operation:
Full endpoint documentation: REST API Reference
Authentication details: Authentication
Polling: message_tidy is asynchronous. Always poll get_message_tidy every 3-5 seconds until is_complete is true. Never return a pending response to the user.
Overlapping reservations: If you create a reservation that overlaps with an existing one at the same address, TIDY will flag it. Resolve the conflict before scheduling cleanings.
Tight turnovers: If the window between checkout and next check-in is very short (under 2 hours), consider a shorter service type or adjusting times. Check booking-availabilities to see what's possible.
Same-day changes: Cancellation and rescheduling are available, but last-minute changes (same day) may have limited cleaner availability.
Context IDs: When following up on a specific booking or reservation, pass the relevant ID in the context parameter to help TIDY scope the request:
tidy-request "What's the status?" --booking-id 456
Also see: cleaning-maintenance — if you need ongoing cleaning or maintenance management that isn't tied to guest turnovers.