Find appointment times
find_appointment_timesFree 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.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"serviceId": "<serviceId>"
},
"name": "find_appointment_times"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | How many consecutive days to search from that day, 1 to 14. Defaults to 3. | |
| from | No | Which day to start from: the word "today", the word "tomorrow", or an exact calendar date as YYYY-MM-DD. Resolved against the venue's own current date, which is often not yours. Do not send a phrase like "next Tuesday" or a time of day; both are rejected. | |
| near | No | A 24 hour time as HH:MM, for example 19:00 for 7pm. When a day has more times than maxPerDay, keep the ones closest to this. | |
| slug | No | The venue's booking slug, exactly as find_venues or get_venue returned it or as it appears in the venue's own booking link: the last path segment of gaplessly.com/book/<slug>, or the first label of <slug>.gaplessly.com. Not the business name; use find_venues to turn a name into a slug. | |
| venue | No | Alias of `slug`, kept for existing clients. Send `slug`. | |
| notAfter | No | Drop times later than this 24 hour HH:MM. | |
| maxPerDay | No | Most times to return per day, 1 to 40. Defaults to 10. Past it, the times are spread across the day (or nearest `near`) and `omitted` says how many were left out. | |
| notBefore | No | Drop times earlier than this 24 hour HH:MM. | |
| partOfDay | No | Only times in this part of the day: morning (before 12:00), afternoon (12:00 to 16:59), evening (17:00 on). | |
| serviceId | Yes | One service id from this venue's get_venue result. Not a service name. |