cancel_booking
ChatGPTCancel a confirmed booking, releasing the inventory. The guest's confirmation_code (e.g. WV-A3K9X2) is ALWAYS required — a booking id on its own is not enough to cancel. booking_id is optional: pass it if you have it, otherwise the code alone identifies the booking. Once the venue has marked the booking arrived, seated, completed or a no-show, this tool returns NOT_CANCELLABLE naming that status: tell the guest to ring the venue rather than retrying.
check_availability
ChatGPTCheck available time slots for booking at one or more businesses. Filter by business_id, date, party size, and table type. Returns slots with remaining capacity. Only a business that has enabled booking through Weavify publishes availability, so an empty list is normal and is not an error: it usually means the business does not take Weavify bookings, NOT that it is fully booked. Do not tell the user a venue is full on the strength of an empty result — call get_business_details and give them the venue's own contact details instead. A slot may carry a space — the venue's own name for what is being booked (a booth, a private room, a guest list, an event ticket) with its minimum spend, room fee and deposit. Quote those terms before the guest commits. A null amount means the venue has not stated one, not that it is zero, and a slot with no space is simply typed by block_type as before.
confirm_booking
ChatGPTConfirm a hold, finalizing the reservation. Returns a confirmation code. Must be called within 10 minutes of creating the hold.
create_booking_hold
ChatGPTCreate a 10-minute temporary hold on a table or VIP booth. The user MUST confirm the hold within 10 minutes or it expires. Use 'standard_table' unless the user specifically asks for VIP/bottle service. Booking is opt-in per business: for a business that has not enabled Weavify booking this returns error BUSINESS_NOT_REGISTERED together with that venue's own contact details. That is an expected outcome, not a fault — pass the details to the user so they can book directly, and do not retry.
get_booking_status
ChatGPTLook up a booking by its confirmation code (e.g. WV-A3K9X2). Returns feedback_requested: when it is true the visit is finished and unrated, so ask the guest how it went and submit their answer with rate_visit.
get_business_details
ChatGPTGet the full profile of a business in Markdown format. Includes name, address, contact details and menu with prices for every active business, plus a booking_enabled flag. Current availability and 'How to Book' instructions appear only for a business that has enabled booking through Weavify; for any other business the profile ends in a 'Booking' section carrying that venue's own phone, website and address. Use the business slug from search results.
rate_visit
ChatGPTRecord the guest's rating of a visit that has already happened. Only a booking the venue has marked 'completed' can be rated — anything else returns BOOKING_NOT_COMPLETED. The guest's confirmation_code is ALWAYS required as proof this is their booking; a booking id on its own is not enough. Ask the guest for the score and the comment in their own words: do not invent either. A visit is rated once — re-sending the SAME rating succeeds and creates nothing new (so a retry is safe), while a DIFFERENT rating is refused with RATING_ALREADY_RECORDED.
search_businesses
ChatGPTSearch for restaurants, bars, and nightclubs in Bangkok. You can search by location (lat/lon), text query, business type, cuisine, ambiance, or price range. Returns a list of businesses sorted by distance when coordinates are provided.