cancel-booking
cancel-booking
Cancel a hotel booking. Destructive action — confirm first.
When to use
The user explicitly asks to cancel:
- "Cancel BK_2026_05_001"
- "I want to cancel my hotel"
- "Refund my booking"
For checking status only, use manage-booking instead.
Prerequisites
bookingId- Last name on the booking
- Email on the booking
If unsure whether the booking is still cancellable for free, run manage-booking first to see the cancellationDeadline and isCancellable flag.
Pre-cancellation confirmation
Before cancelling, especially if the free-cancellation window has passed:
About to cancel BK_2026_05_001 — Park Hyatt Tokyo, May 1–5. ⚠️ Free cancellation expired on April 29. A cancellation fee may apply.
Are you sure you want to cancel? (yes/no)
If still inside the free window, a lighter confirmation is fine:
About to cancel BK_2026_05_001 — Park Hyatt Tokyo, May 1–5. You're inside the free cancellation window — no fee.
Confirm? (yes/no)
Only proceed after the user says yes.
How to call
npx @tvl-justin/travel-cli@latest cancel \
--booking-id "<bookingId>" \
--last-name "<lastName>" \
--email "<email>"
Output
{
"bookingId": "BK_2026_05_001",
"status": "CANCELLED",
"refundAmountUSD": 1800,
"refundEta": "5-7 business days",
"cancellationFeeUSD": 0
}
Presenting to the user
✅ Booking BK_2026_05_001 cancelled. Refund of $1,800 USD will appear on your card in 5–7 business days. No cancellation fee.
If a fee was charged:
✅ Booking cancelled. Refund: $1,440 USD (a $360 cancellation fee was applied because we're past the free-cancellation deadline).
Errors
404 Not Found— Booking ID not found, or last name / email mismatch.409 Already Cancelled— Booking was already cancelled. Tell the user, don't retry.Network error— Tell the user the cancellation didn't go through and ask whether to retry.
More from justintravala/travel-skills
search-hotel
Search for hotels by location and dates. Use this skill whenever the user wants to find a place to stay, look for accommodation, search for hotels, or asks questions like "find me a hotel in X", "where can I stay in Y", "show me hotels near Z", or provides a destination plus check-in/check-out dates. Always use this skill before book-hotel or search-room since those require a sessionId from this search.
14book-hotel
Book a hotel package and pay with USDC via the x402 payment protocol. Use this skill when the user explicitly wants to confirm and pay for a hotel — phrases like "book it", "reserve hotel #2", "go ahead and book the Park Hyatt", "confirm my reservation", "pay for this hotel". This is a real-money on-chain action; always confirm with the user before calling, run search-hotel or search-room first to get a valid packageId, and ensure the user has an authenticated wallet with sufficient USDC.
14manage-booking
Look up details of an existing hotel booking. Use this skill when the user wants to check the status of their reservation, see check-in instructions, verify booking details, or asks "what's the status of my booking", "show me my reservation", "when is my hotel check-in", "did my booking go through". Requires a booking ID, the last name, and the email on the booking.
13search-room
Get room types and rate packages for a specific hotel. Use this skill after search-hotel when the user wants to explore room options, see different rate plans, compare meal plans (breakfast included vs not), check refundability, or pick a specific room before booking. Triggers on phrases like "show me the rooms at hotel X", "what room types are available", "I want a different rate plan", "is breakfast included".
13pay-and-book
>
8