Search the businesses that take bookings through Gaplessly by name, by suburb or postcode, or by kind, and get back each one's slug, name, kind, address and booking page link. Use this when the guest names a business or an area but you do not have a slug; every other tool needs one.
Send at least one of `name`, `location` or `kind`. Only real businesses that have chosen to be found by assistants are searchable here, so an empty result means "not found here", not that the business does not exist or cannot be booked: ask the guest for its booking link, which works with every other tool. Then call get_venue with the slug.
Parameterskindnamelimitlocation
Read a venue's public booking profile: what it is, where it is, what can be booked, and what time it is THERE right now. Call this first once you have a slug (find_venues turns a name or suburb into one): the other tools need it, and appointment searches need a service id from here.
A detail the business has not entered (industry, address, phone) is left out and listed under `notProvided`; do not guess it. For a restaurant with an online party limit, `groupEnquiry` is where a larger party goes.
Returns `venueClock`, which is the venue's own current date and time. Every date you ask for later is resolved against `venueClock.today`, not against your own today: the two are routinely different days. Times are given as text on purpose and there is no timezone identifier anywhere in the result, because converting them is how a booking ends up hours off.
Parametersslugvenue
find_appointment_times
Find appointment times
Free appointment times at one venue for one service, over up to two weeks. For salons, clinics, studios and anywhere a guest books a named service with a provider. Use find_table_times for a restaurant instead.
Needs a service id from get_venue. Each returned time has an `at` label to show the guest and a `slotToken`. The token is the booking handle: it is signed, it expires in about 30 minutes, and it is the only way a time can be booked later. Pass it back exactly as given, never edited, and never reuse one from a different venue. An empty `times` array for a day means that day is genuinely unavailable, not that something failed.
Each day lists at most 10 times unless `maxPerDay` says otherwise, spread across the day; `omitted` says how many more exist. To answer "around 6pm" or "afternoons", send `near`, `partOfDay`, `notBefore` or `notAfter` instead of asking for everything.
ParametersdaysfromnearslugvenuenotAftermaxPerDaynotBeforepartOfDayserviceIdrequired
find_table_times
Find table times
Free table times at one restaurant or venue for one party size, over up to two weeks. Use find_appointment_times for a salon or clinic instead.
Each returned time has an `at` label to show the guest and a `slotToken`. The token is the booking handle: it is signed, it expires in about 30 minutes, and it is the only way a time can be booked later. Pass it back exactly as given, never edited, and never reuse one from a different venue. An empty `times` array for a day means the venue has nothing at that party size that day, which usually means closed or fully booked.
Each day lists at most 10 times unless `maxPerDay` says otherwise, spread across the day; `omitted` says how many more exist. To answer "around 7pm" or "lunch", send `near`, `partOfDay`, `notBefore` or `notAfter`. A party above the venue's online limit gets no times: the result carries `groupEnquiry` (a link and any contact details the venue published) to give the guest instead.
ParametersdaysfromnearslugvenuenotAftermaxPerDaynotBeforepartOfDaypartySizerequired
start_appointment_booking
Start an appointment booking
Turn a time from find_appointment_times into a link the guest taps to finish booking. This does NOT book anything: it returns a short-lived URL on the venue's own booking page, already opened at that service, that staff member and that exact time, where the guest enters their own name, email and phone and confirms.
Give the guest the `url` and say plainly that the booking is not made until they open it. Never ask the guest for their contact details to pass here; this tool does not take them, and the page collects them directly. Nothing is reserved in the meantime, so a popular time can still go before they tap.
ParametersslugvenueserviceIdrequiredslotTokenrequired
start_table_booking
Start a table booking
Turn a time from find_table_times into a link the guest taps to finish booking. This does NOT book anything: it returns a short-lived URL on the venue's own booking page, already opened at that party size and that exact sitting, where the guest enters their own details and confirms.
The venue holds the table from the moment the guest opens the link, for about ten minutes, which is what gives them time to fill the form in. Until they open it nothing is held, so give them the `url` promptly and say the table is not theirs until they do.
ParametersslugvenuepartySizerequiredslotTokenrequired