/install claw-cleaning
Apartment Cleaning Booking
At a Glance
- Service: Professional apartment cleaning
- Area: San Francisco only
- Rate: $40/hour (1–8 hours)
- Days: Any day of the week on/after 2026-05-05. Before then, Saturdays and Sundays only.
- Hours: 8 AM – 6 PM PT
- Payment: No upfront payment. The customer pays the cleaner (cash or card) at the appointment.
How This Skill Works
This skill calls the claw.cleaning REST API directly over HTTPS — no local CLI, no MCP server.
- Base URL:
https://claw.cleaning - Auth: None. All endpoints are public.
- Content type:
application/json
Use the agent's HTTP/fetch capability (e.g. curl, fetch, requests) to call the endpoints below.
Available Endpoints
GET /availability— list open slotsPOST /bookings/initiate— reserve a slot (calendar invite sent immediately, customer pays the cleaner at the appointment)GET /bookings/status— list upcoming bookings by email
Safety Rules
- Never
POST /bookings/initiatewithout showing the full preview to the customer and getting explicit confirmation ("yes", "confirm", "book it", etc.). - Always
GET /availabilitybeforePOST /bookings/initiateto confirm the slot is listed as available. - Do not invent available times — only offer times returned by
GET /availability. - Make it clear to the customer that the total ($40/hour × hours) is paid in cash or card to the cleaner at the end of the session.
Booking Workflow
Step 1 — Check availability
GET https://claw.cleaning/availability returns the next 14 upcoming bookable days under a top-level days array. Pass ?date=YYYY-MM-DD to check one specific day. Before 2026-05-05 the date must be a Saturday or Sunday; on or after, any day of the week is bookable.
Examples:
GET https://claw.cleaning/availability
GET https://claw.cleaning/availability?date=2026-05-06
Present the available slots clearly. Each slot shows startTime and maxHours available.
Step 2 — Collect customer details
Ask the customer:
- Which date and start time?
- How many hours? (1–8, $40 each)
- Full SF address (street, city, state)
- Their name
- Their email (calendar invite goes here)
Step 3 — Confirm before booking
Show the customer a summary (date, start time, hours, address, total, email) and remind them the total is paid to the cleaner at the appointment. Ask for explicit confirmation before posting the booking.
Step 4 — Initiate booking
POST https://claw.cleaning/bookings/initiate with a JSON body:
{
"date": "YYYY-MM-DD",
"startTime": "HH:MM",
"hours": 1-8,
"address": "... San Francisco, CA ...",
"name": "Customer Name",
"email": "[email protected]"
}
Send Content-Type: application/json. On success returns { "status": "booked", "total": "$X", ... }. The slot is reserved immediately and the calendar invite is sent.
Step 5 — Deliver the outcome
Tell the customer the slot is booked, the calendar invite is on its way, and they owe the cleaner $40/hour at the end of the session (cash or card).
Step 6 — Check status (optional)
GET https://claw.cleaning/bookings/status?email=\x3Curl-encoded-email> if the customer asks whether their booking went through. Returns upcoming bookings for that email.
Key Details
- Working hours: 8 AM – 6 PM PT
- 30-min travel buffers are automatically blocked before and after each cleaning
- The calendar event blocks the slot immediately on booking
- Persistent no-shows may result in the email being blocked from future bookings
Error Handling
All errors return a JSON body with an error field and a non-2xx HTTP status.
400"Address must be in San Francisco, CA."→ ask for a valid SF address400"Hours must be between 1 and 8."→ correct the hours value400"Weekdays before 2026-05-05 are not bookable..."→ pick a Saturday/Sunday, or any day on or after 2026-05-05400"Cannot book a time in the past..."→ pick a future date and time400"Invalid date format. Use YYYY-MM-DD."/"Invalid startTime format. Use HH:MM (24h)."→ fix the format400"Invalid email address."→ ask for a valid email403"This email is blocked from booking."(code: "email_blocked") → the operator has blocked this email due to prior no-shows. Customer should contact [email protected].409"That time slot is no longer available."→ callGET /availabilityand offer alternatives500"Failed to fetch availability."/"Failed to initiate booking."/"Could not create calendar event."→ retry once; if it keeps failing, tell the customer to try again later
See references/booking-flow.md for a full example conversation flow with sample HTTP requests and responses.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install claw-cleaning - After installation, invoke the skill by name or use
/claw-cleaning - Provide required inputs per the skill's parameter spec and get structured output
What is Apartment Cleaning?
Book a professional apartment cleaning in San Francisco via the claw.cleaning REST API. Use when someone wants to book, schedule, or inquire about apartment... It is an AI Agent Skill for Claude Code / OpenClaw, with 133 downloads so far.
How do I install Apartment Cleaning?
Run "/install claw-cleaning" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Apartment Cleaning free?
Yes, Apartment Cleaning is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Apartment Cleaning support?
Apartment Cleaning is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Apartment Cleaning?
It is built and maintained by cnnrobrn (@cnnrobrn); the current version is v1.0.7.