Booking tools
On this page
- talemo_activate_resource
- talemo_activate_service
- talemo_add_schedule_time
- talemo_add_service_fit
- talemo_apply_usual_schedule
- talemo_book_visit
- talemo_cancel_visit
- talemo_complete_visit
- talemo_confirm_visit
- talemo_create_resource
- talemo_create_service
- talemo_create_service_group
- talemo_deactivate_resource
- talemo_deactivate_service
- talemo_delete_resource
- talemo_delete_service
- talemo_delete_service_group
- talemo_delete_visit
- talemo_find_times
- talemo_get_any_master
- talemo_get_booking_rules
- talemo_get_branch_page
- talemo_get_calendar
- talemo_get_resource_history
- talemo_get_schedule
- talemo_get_visit
- talemo_list_resources
- talemo_list_schedules
- talemo_list_service_groups
- talemo_list_services
- talemo_list_visits
- talemo_move_visit
- talemo_record_walk_in
- talemo_remove_schedule_time
- talemo_remove_service_fit
- talemo_set_booking_rules
- talemo_set_branch_page
- talemo_set_schedule_day
- talemo_set_service_languages
- talemo_set_usual_schedule
- talemo_update_resource
- talemo_update_service
- talemo_update_service_group
- talemo_update_visit
Most tools take business_id: the business the call is for. talemo_list_businesses names the businesses this connection works in. A tool that changes something also takes dry_run; with it nothing changes, and the answer shows what the change would be, or the refusal it would get.
talemo_activate_resource
Bring a master, place or device back to work
Activate a deactivated resource: time can be booked on it again. One person is one resource in work in a branch: if the team member of this resource already works as another one there, it is refused with status 409, code record.duplicate, params.field user_id. Activating a resource in work returns it as it is.
Guide: booking/resources.
- Changes data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and answer the resource as it would be. |
resource_id | string | required | Resource ID: talemo_list_resources with deactivated lists the deactivated ones. |
Described in: Resources — masters, places, devices
talemo_activate_service
Put a service back on the price list
Activate a deactivated service: it is back in the price list with its roles and who does it. If the price list already has a service with the same name, it is refused with status 409, code record.duplicate, params.field name. Activating a service in the price list returns it as it is.
Guide: booking/services-and-prices.
- Changes data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and answer the service as it would be. |
service_id | string | required | Service ID: talemo_list_services with deactivated lists the deactivated ones. |
Described in: Services, prices and currency
talemo_add_schedule_time
Add open or busy time
Add a time to the schedule of a resource: open time for bookings, or busy time without a booking with a note. Open time merges with open time it touches, busy time with busy time of the same note; the same time twice changes nothing. Busy time over busy time with another note: status 409, code schedule.overlap. Busy time over bookings: status 409, code schedule.has_bookings.
Guide: booking/resource-schedule.
- Changes data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
day | string | optional | The day the time belongs to, like 2026-11-25: the day it starts on, or the day before for the night after a shift. Left out — the day it starts on. |
dry_run | boolean | optional | True — change nothing and answer the day as it would be. |
end | string | required | End in RFC 3339; half-open, at most a day after the start. |
kind | string | required | open — open for bookings; busy — blocked without a booking. |
note | string | optional | Note of busy time, 1 to 60 characters, like "lunch". |
resource_id | string | required | Resource ID: talemo_list_resources lists them. |
start | string | required | Start in RFC 3339, for example 2026-11-26T09:00:00Z. |
Described in: A laser hair removal salon, Schedule of a resource
talemo_add_service_fit
Mark who does a service
Mark that a resource can do a service — a master who learned it, or only this room for it. The resource must be in the branch of the service and have a role the service takes; otherwise status 422, code service.resource_unfit with params.role. Marking it again returns the service as it is.
Guide: booking/who-does-what.
- Changes data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and answer the service as it would be. |
resource_id | string | required | Resource ID of a master, place or device of the same branch: talemo_list_resources lists them. |
service_id | string | required | Service ID: talemo_list_services lists them. |
Described in: A laser hair removal salon, Onboarding a new business, Who does what
talemo_apply_usual_schedule
Set how far ahead a schedule goes
Move the last day of the schedule of a resource: later lays the usual cycle out up to it, earlier takes the cycle days after it away; days changed by hand stay. At most a year ahead. Without a usual cycle: status 409, code schedule.no_cycle. Bookings that would fall outside open time: status 409, code schedule.has_bookings — dry_run shows them. It changes a lot at once: call it with dry_run first, show the person what changes and make the real call only after they say yes.
Guide: booking/resource-schedule.
- Changes data
- May overwrite or remove existing data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and tell what would change. |
resource_id | string | required | Resource ID: talemo_list_resources lists them. |
until | string | required | New last day of the schedule, like 2027-02-28: later — the usual cycle is laid out up to it; earlier — the cycle days after it go. Today or later, at most a year ahead. |
Described in: A laser hair removal salon, Onboarding a new business, Schedule of a resource
talemo_book_visit
Book a visit
Book a visit at a start found by talemo_find_times. The product checks it again with the same matching: time taken meanwhile is refused with status 409, code slot.overlap; time outside the open time of a resource with visit.outside_schedule and params.resource_id; a start in the past with visit.past; a start off the step with request.body_invalid, params.field start; a resource that does not do the services with status 422, code visit.resource_unfit. A contact from the unsorted category becomes a client. When: the client or the person agreed to a start that talemo_find_times returned. How: branch_id, service_ids and start, with the resource_ids of that variant. Next: say the visit is booked only after the answer succeeded and it was not a dry run; a refusal books nothing — offer another start from talemo_find_times. Field new_party: names a client who is not a contact yet — the name and the number — instead of party_id: the product looks for a contact with that number among phones and WhatsApp numbers and books it, a contact found keeps its own name; none found — the product adds the contact and books it in the same step. The answer of a real booking says party_match: found or created; dry_run does not look the number up and shows a new contact with the name given. Adding a contact needs the right to add contacts: without it status 403, code role.forbidden with params.capability party.create — tell the person they have no right to add clients and can pick one from their contacts or ask the owner for this right; a role that closes the phone field gets role.field_forbidden. party_id and new_party together, or neither, is request.body_invalid. A number added this way is not confirmed: it becomes confirmed only when the client writes from it in WhatsApp or Instagram, and nobody confirms it by hand. Staff: a member of the business records a past visit with talemo_record_walk_in.
Guide: booking/visits.
- Changes data
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
branch_id | string | required | Branch ID of the visit: branch_id of the conversation (talemo_get_conversation). Staff: without a conversation, talemo_get_business lists the branches of a business. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — book nothing and answer the visit as it would be, or the refusal it would get. |
new_party | object | optional | A client who is not a contact yet: the name and the number. The product finds the contact by the number among phones and WhatsApp numbers, or adds one with this name. Not together with party_id. |
new_party.name | string | required | Name as the business calls the person, 1 to 120 characters. A contact already found by the number keeps its own name. |
new_party.phone | object | required | The number of the client: the contact is looked for by it. |
new_party.phone.address | string | required | The number as the person said it: +49 176 2041 1380, or a local number like 8 916 204-18-21 together with country. |
new_party.phone.country | string | optional | ISO 3166-1 alpha-2 country of a number without + or 00, like RU or DE. If you do not know it, ask the person: the time zone of the branch does not tell. |
party_id | string | optional | Contact ID of the client: talemo_find_contacts finds them. Name the client by this or by new_party, one of the two. |
resource_ids | array of string | optional | Resource IDs of the variant: its master and the place or device of each service; one left out is filled by the matching. Take them from the variant of talemo_find_times that you book. |
service_ids | array of string | required | Service IDs of the visit in order, 1 to 20, each once. The service_id values (UUIDs) that talemo_list_services lists — not a service name. |
start | string | required | Start of a variant of talemo_find_times, RFC 3339: ahead and on the step of the branch. |
Described in: A laser hair removal salon, Visits and their statuses
talemo_cancel_visit
Cancel a visit
Cancel a visit with a reason; its time is free again. The client who did not come is cancelled with no_show. A cancelled visit comes back as it is; one that took place is refused with status 409, code visit.done. When: the person asks to cancel a visit, or the client did not come. How: visit_id from talemo_list_visits and a reason. Field tell_client: whether Talemo writes to the client that the visit is cancelled. true — it does, the way it writes a reminder: a text in the open window of the channel, a WhatsApp template outside it, and nothing outside the window of Instagram or Messenger. false — it writes nothing, because the person said not to write to the client or that they will tell the client themselves. Required: when the person only asks to cancel and says nothing about the client, pass true. no_show takes only false, and a visit that has already begun is never written to. Next: the news of the cancellation reaches the client from Talemo, not from you. The cancellation of the online admin is written after its turn, unless its reply to the client already said so. A call with dry_run shows the notice in notices: one with expected_skip will not go, and expected_skip says why. Staff: after the call tell the person whether the client was told and, if not, why. A client who is not told is for the person to write to with talemo_send_message or to ring.
Guide: booking/moving-and-cancelling-visits.
- Changes data
- May overwrite or remove existing data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — cancel nothing and answer the visit as it would be. |
reason | string | required | Why: client_asked, staff_unavailable, no_show — the client did not come — or other. Ask the person when it is not clear. |
tell_client | boolean | optional | Whether Talemo writes to the client that the visit is cancelled: true or false. True unless the person said not to write to the client or that they will tell the client themselves. The call without it is refused (params.field is tell_client); no_show takes only false. |
visit_id | string | required | Visit ID: talemo_list_visits lists them. |
Described in: Moving and cancelling visits
talemo_complete_visit
Mark a visit done
Record that a visit took place: when it really was, who did it, the services and prices. What is left out stays as booked. The real time is the master's: a place and a device keep the time they were booked for. A service added now takes the place of the neighbouring service unless service_resources names another. The record replaces the plan; a done visit is corrected the same way. It ends no later than now: otherwise status 409, code visit.future. Time outside the open time of a resource is refused with visit.outside_schedule unless extend_schedule opens it; a cancelled visit with visit.cancelled.
Guide: booking/moving-and-cancelling-visits.
- Changes data
- May overwrite or remove existing data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — record nothing and answer the visit as it would be. |
end | string | optional | When it really ended, no later than now. Left out — the start plus the booked length. |
extend_schedule | boolean | optional | True — if the time is outside the open time of a resource, open it in the day of the resource. Tell the person before doing it. |
price | array of string | optional | Prices of the services in order, as decimals in the currency of the visit; null — no price. Left out — the booked prices. |
resource_ids | array of string | optional | Who really did it — the master, and a place or device for each service it fits; the others stay as booked. |
service_ids | array of string | optional | Service IDs really done, in order. Left out — the booked ones. |
service_resources | array of object | optional | Which place or device did which service, as pairs of a service ID and a resource ID — "table 2 for the manicure, table 1 for the design". A place named for a booked service takes the stretch it was booked for; a pair beats the list in resource_ids for its service. Not for the master: he is one for the whole visit, name him in resource_ids. A resource that does not fit its service is refused with visit.resource_unfit. |
service_resources[].resource_id | string | required | Resource ID of the place or device that did this service. It has to fit the service, otherwise visit.resource_unfit with params.role and params.resource_id. |
service_resources[].service_id | string | required | Service ID: one of the service_ids of the visit. |
start | string | optional | When it really started, RFC 3339. Left out — as booked. |
visit_id | string | required | Visit ID: talemo_list_visits and talemo_get_calendar list them. |
Described in: Moving and cancelling visits
talemo_confirm_visit
Mark a visit confirmed
Mark that a person confirmed a booked visit. A confirmed visit comes back as it is; a cancelled one is refused with status 409, code visit.cancelled, one that took place with visit.done.
Guide: booking/moving-and-cancelling-visits.
- Changes data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and answer the visit as it would be. |
visit_id | string | required | Visit ID: talemo_list_visits and talemo_get_calendar list them. |
Described in: Moving and cancelling visits
talemo_create_resource
Add a master, place or device
Add a resource to a branch: a master, a place or a device, with its role from the industry kit. A team member can be linked only to a master, and one person is one resource in work in a branch: a second one is refused with record.duplicate.
Guide: booking/resources.
- Changes data
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
branch_id | string | required | Branch ID of the resource: talemo_get_business lists the branches. A resource never moves to another branch. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — add nothing and answer the resource as it would be. |
name | string | required | Name as the business calls it, 1 to 200 characters: a person's name, "Chair 2", "Lamp Sun5". |
role | string | required | Role declared by the industry kit: master (a person), place (a chair, table, couch or room) or device (equipment). talemo_list_kits lists them. |
user_id | string | optional | User ID of the team member this master is — only for a master. Left out — nobody from the team. |
Described in: A laser hair removal salon, Onboarding a new business, Resources — masters, places, devices
talemo_create_service
Add a service
Add a service to the price list of a branch: its name and description in the first language the business serves, their translations, how long it takes, its price, the roles of the kit it takes and, if it should stand in a group of the price list, group_id. Places and devices of these roles in the branch can do it at once; a master does it only once marked with talemo_add_service_fit. A place is required by the service by itself once a place of the branch has a schedule: until then a place in the roles is not recorded — the answer names the roles recorded — and a place is not to be added to the branch for the sake of a service. A price needs the currency of the branch first: without it the call is refused with status 409, code service.currency_required — set it with talemo_update_branch. A name already in the price list is refused with record.duplicate; a translation does not take a name, and a translation of a description that is not there is refused with request.body_invalid.
Guide: booking/services-and-prices.
- Changes data
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
branch_id | string | required | Branch ID of the service: each branch has its own price list. talemo_get_business lists the branches. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
description | string | optional | What the service is, in the first language the business serves, 1 to 1000 characters. Left out — no description. |
description_tr | object with string values | optional | Translations of the description, in the same form, 1 to 1000 characters each. There is no translation of a description that is not there. Left out — none. |
dry_run | boolean | optional | True — add nothing and answer the service as it would be. |
duration_minutes | integer | required | How long the work takes the master and the resources, in minutes: 5 to 600 in steps of 5. The cleanup after a visit is not part of it: it is in the booking rules of the branch. |
group_id | string | optional | Group of the price list the service stands in, of the same branch: talemo_list_service_groups lists them. Left out — no group. |
name | string | required | Name as the business calls it, in the first language the business serves, 1 to 120 characters. |
name_tr | object with string values | optional | Translations of the name by language the business serves, the first one excluded, the whole map: {"en": "Gel manicure"}, 1 to 120 characters each. Left out — none. |
needs | array of string | required | Roles of the industry kit the service takes while it is done — master, place, device; at least one. A place is recorded only once a place of the branch has a schedule: the answer names the roles recorded. |
price | string | optional | Price in the currency of the branch as a decimal, like "2600" or "2600.50", with no more digits after the point than the currency has. Left out — no price. |
Described in: A laser hair removal salon, Onboarding a new business, Service groups, Services, prices and currency
talemo_create_service_group
Add a service group
Add a group to the price list of a branch: a name over several services, like "Manicure", at a place among the groups (the last if none is asked), and the services that move into it at once — so "make the group Design and put these services there" is one call. The answer names the group, the group before it (after) and for each service that moved the group it came from (moved). A name already in the branch, whatever the case, is refused with status 409, code record.duplicate, params.field name; a service that is not in the branch, with record.reference_missing, params.field service_ids. Show the person the dry_run first when services move.
Guide: booking/service-groups.
- Changes data
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
branch_id | string | required | Branch ID of the group: each branch has its own price list and its own groups. talemo_get_business lists the branches. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — add nothing and answer the group as it would be, with the services that would move in and the groups they come from. |
name | string | required | Name as the business calls it, in the first language the business serves, 1 to 60 characters, like "Manicure". One name once in a branch, whatever the case. |
position | integer | optional | Place among the groups of the branch, from 0 (the first). A place past the end, or left out — the last. The groups from that place on move down by one. |
service_ids | array of string | optional | Service IDs of the same branch that move into the group at once, those of the price list and deactivated ones: talemo_list_services lists them. A service that stood in another group leaves it. Left out — the group is made empty. |
Described in: Service groups
talemo_deactivate_resource
Deactivate a master, place or device
Deactivate a resource: it stays with its past, no time after this can be booked on it (resource.deactivated), and it can be activated again. Its schedule ahead goes, up to a year; only laying the usual cycle out again brings it back, and days changed by hand are lost. A resource with bookings ahead is not deactivated: status 409, code resource.has_bookings, params.count — move or cancel them first. With dry_run nothing changes, the bookings ahead are listed and days_ahead tells how many days of the schedule would go. Deactivating a deactivated resource returns it as it is. It changes a lot at once: call it with dry_run first, show the person what changes and make the real call only after they say yes.
Guide: booking/resources.
- Changes data
- May overwrite or remove existing data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and list the bookings ahead on the resource, to tell the person before deactivating it. |
resource_id | string | required | Resource ID: talemo_list_resources lists them. |
Described in: Resources — masters, places, devices
talemo_deactivate_service
Take a service off the price list
Deactivate a service: it leaves the price list and booking, what is already booked stays with its price, and it can be activated again. A deactivated service is not changed until activated: status 409, code service.deactivated. With dry_run nothing changes. Deactivating a deactivated service returns it as it is.
Guide: booking/services-and-prices.
- Changes data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and answer what would happen, to tell the person first. |
service_id | string | required | Service ID: talemo_list_services lists them. |
Described in: Services, prices and currency
talemo_delete_resource
Delete a master, place or device
Delete a resource added by mistake — only one on which time was never booked. A resource with bookings, past or ahead, is not deleted: status 409, code resource.has_history, params.count — past visits keep their master or place, so deactivate it instead. With dry_run nothing changes and the answer tells how many bookings it has had; ask the person before deleting. A deleted resource is gone: a second call is refused with not_found.
Guide: booking/resources.
- Changes data
- May overwrite or remove existing data
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and tell how many bookings the resource has had, to tell the person before deleting it. |
resource_id | string | required | Resource ID: talemo_list_resources lists them. |
Described in: Resources — masters, places, devices
talemo_delete_service
Delete a service
Delete a service added by mistake — only one that was never booked. A booked service is not deleted: status 409, code service.has_history, params.count — deactivate it instead. With dry_run nothing changes and the answer tells how many times it was booked; ask the person before deleting. A deleted service is gone: a second call is refused with not_found.
Guide: booking/services-and-prices.
- Changes data
- May overwrite or remove existing data
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and answer what would happen, to tell the person first. |
service_id | string | required | Service ID: talemo_list_services lists them. |
Described in: Services, prices and currency
talemo_delete_service_group
Delete a service group
Delete a group of the price list: its services stay in the price list without a group, and the groups after it move up to close the gap. The answer has the group as it was and the IDs of the services that stood in it, deactivated ones too — making the group again with the same name, place and these service_ids puts everything back. Show the person the dry_run first: it says how many services are left without a group.
Guide: booking/service-groups.
- Changes data
- May overwrite or remove existing data
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and answer what would happen, to tell the person first. |
group_id | string | required | Group ID: talemo_list_service_groups lists them. |
Described in: Service groups
talemo_delete_visit
Delete a visit
Delete a visit for good, with its services and time; the history of the contact keeps a line about it. Ask the person before deleting: with dry_run nothing changes and the answer is the visit that would go. A deleted visit is gone: a second call is refused with not_found. To keep the history, cancel instead.
Guide: booking/moving-and-cancelling-visits.
- Changes data
- May overwrite or remove existing data
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and answer the visit as it would be. |
visit_id | string | required | Visit ID: talemo_list_visits and talemo_get_calendar list them. |
Described in: Moving and cancelling visits
talemo_find_times
Find free times
Find when the services of a visit can be done together in a branch. The answer has outcome: found — variants lists starts with the master of the visit and the place or device of each service (service_ids of a resource names its services); none_together — nobody does these services together, roles tells who fits each role and without_fit names the services that no place or device can take; none_free — everything is taken; day_off — nobody who fits works in the window: a day off, other hours than the asked time of day, or the time has passed; it is not busy time, so do not offer that time: booking it is refused with visit.outside_schedule, or with visit.past when the start has passed; no_schedule — the fitting resources have no schedule, set it first. step_minutes is the step of the starts. days gives the outcome of every day of the window in the same words, whatever limit is: to see which days of a month have free time, ask the whole month (at most 31 days) with limit 1 and read days; a found day has time free for the whole visit. When the window is empty, next is the nearest time beyond it within 90 days. A variant goes as it is to talemo_book_visit. Without every the answer has only the earliest start of each day for each master: a later start can still be free, so check a time the person named with every and with after and before around it. Resources named in resource_ids are used as named. For a member of the business, one that cannot take its role in this visit — a master who does not do all the services, a place or device that does none of the services of its role — is refused with visit.resource_unfit and params.role and params.resource_id, as a booking would be: it is not none_together. For a master who is not named a variant goes to the master of the last visit of party_id, and otherwise to the master the booking rule of the branch picks among those free at that start (the rule any_master of the branch). When: before you offer, book or move a visit to a time. How: branch_id and service_ids in order, a window with from and to, a time of day with after and before. Next: offer two or three of the starts; book the variant with talemo_book_visit or move a visit with talemo_move_visit.
Guide: booking/finding-times.
- Reads only, changes nothing
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
after | string | optional | Start no earlier than this time of day in the branch, like 11:00. |
before | string | optional | Start before this time of day, like 18:00. |
branch_id | string | required | Branch ID: branch_id of the conversation (talemo_get_conversation). Staff: without a conversation, talemo_get_business lists the branches of a business. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
every | boolean | optional | True — every start on the step; left out — only the earliest of each day for each master, and later starts may be free too. |
from | string | optional | First day to look at, like 2026-11-26. Left out — today in the time zone of the branch. |
limit | integer | optional | How many variants, 1 to 500; 50 when left out. |
party_id | string | optional | Contact ID: the resources of their last visit that took place come first — "as last time"; last_time in the answer names them. talemo_find_contacts finds the IDs. |
resource_ids | array of string | optional | Resource IDs the person asked for — "with Anna": one master, and a place or device for each service it fits; only they are looked at for their roles. fits of talemo_list_services shows the resources of a service with their names. |
service_ids | array of string | required | Service IDs of the visit in order, 1 to 20, each once: they are done one after another. The service_id values (UUIDs) that talemo_list_services lists — not a service name. |
to | string | optional | Last day, inclusive, at most 31 days from the first. Left out — a week. |
visit_id | string | optional | Visit ID being moved: its own time does not stand in the way. talemo_list_visits lists them. |
Described in: A laser hair removal salon, Finding free time for a booking
talemo_get_any_master
See who gets the next visit on any master
Show how the masters of a branch are loaded in a week and who gets the next visit when the client names no master: the booking rule (any_master), the week from Monday to Sunday in the time zone of the branch (from, to), each master in work with minutes of visits in that week — the very count the matching uses, cancelled visits not counted and visits that took place counted — in the order the rule gives visits, and first, the master who gets the next visit by the hours or the list; there is none with no_gaps, where the free window decides, and when several masters have the fewest hours. A role limited to its own visits sees its own master only, and first is empty for it.
Guide: booking/booking-rules.
- Reads only, changes nothing
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
branch_id | string | required | Branch ID: talemo_get_business lists the branches of a business. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
day | string | optional | A day of the week to show, like 2026-11-26; the week runs from Monday to Sunday in the time zone of the branch. Left out — today. |
Described in: Booking rules
talemo_get_booking_rules
See the booking rules of a branch
Show the booking rules of a branch: the step of the booking grid in minutes, the cleanup after a visit for each role of the kit, whether the client is told at once that the visit is booked (confirm_on_booking), how many hours before a visit the reminder goes (remind_before_hours) and who gets a visit when the client names no master (any_master: evenly, no_gaps or in_order; master_order lists the masters in work of the branch in the order in_order uses). Rules never set show the defaults: a step of 15 minutes, no cleanup, confirming at once, a reminder 24 hours before, evenly.
Guide: booking/booking-rules.
- Reads only, changes nothing
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
branch_id | string | required | Branch ID: talemo_get_business lists the branches of a business. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
Described in: A laser hair removal salon, Booking rules, Industry words and defaults, Visit notices — confirmation, reminder and cancellation, What the kit installs
talemo_get_branch_page
See the booking page of a branch
Show the public booking page of a branch: whether it is on and since when, whether it can be turned on (can_open: false while booking through the page is not ready), the link clients open (empty when this installation has no address for booking pages), what is on it in numbers — services shown, how many of them have no price and are shown as "the salon will tell you the price", services left out because no working master does them, masters shown — and preview, the page as a client sees it, with the languages the salon serves clients in. A page that is off shows the preview too. The page lists the name and address of the branch, its phone and the messengers it is reachable in, its bookable services with price and duration, the names of masters and free times; nothing about clients.
Guide: booking/branch-booking-page.
- Reads only, changes nothing
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
branch_id | string | required | Branch ID: talemo_get_business lists the branches of a business. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
Described in: Branch booking page
talemo_get_calendar
See the calendar
Show the grid of a branch for one to seven days: the resources in work with their schedule days, if the role may see schedules, the visits of those days — cancelled ones too — and unclosed_count, how many visits of the past are still booked or confirmed. own_resource_ids — present only when the person sees just the visits of the resources linked to them: the IDs of those resources; empty — no resource in the calendar is linked to them yet, so their own visits cannot show; absent — they see all the visits of the branch.
Guide: booking/visits.
- Reads only, changes nothing
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
branch_id | string | required | Branch ID: talemo_get_business lists the branches of a business. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
from | string | optional | First day, like 2026-11-26. Left out — today in the time zone of the branch. |
to | string | optional | Last day, inclusive, at most a week from the first. Left out — the same day. |
Described in: A laser hair removal salon, Finding free time for a booking, Visits and their statuses
talemo_get_resource_history
See what happened with a master, place or device
Show the history of a resource, newest first: its visits that took place or were cancelled, and the edits of the resource itself — who added or changed it, deactivated or activated it, set its usual cycle, laid it out up to a date, changed a day or a time of a day, marked or unmarked a service it does. An edit says who made it — a person, the Talemo assistant at their request, a program — and when; it holds ids, codes and numbers, never the text of a note, and a service is named as it is named now. Booked and confirmed visits ahead are not in it: talemo_list_visits with resource_id, from and live lists them. visits_done counts the visits that took place; edits_count the edits. A page ends with next, the before of the following call; without it that is all. Visits show only to a role that may see visits, and a role limited to its own schedule sees the visits and the schedule edits of its own resource only; prices the role may not see are missing.
Guide: booking/resources.
- Reads only, changes nothing
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
before | string | optional | next of the previous answer: the entries older than that. Left out — the newest. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
limit | integer | optional | How many entries, 1 to 100; 20 when left out. |
only | string | optional | visits — only the visits, edits — only the edits of the resource. Left out — both, mixed by time. |
resource_id | string | required | Resource ID: talemo_list_resources lists them. |
Described in: Resources — masters, places, devices
talemo_get_schedule
See a schedule
Read the working time of a resource for a period: every day with its state — working, day_off (no open time) or not_scheduled (no schedule, cannot be booked) — its open and busy times with notes, whether it was changed by hand, and the usual cycle with the day it is laid out to.
Guide: booking/resource-schedule.
- Reads only, changes nothing
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
from | string | optional | First day, like 2026-11-23. Left out — today in the time zone of the branch. |
resource_id | string | required | Resource ID of the master, place or device: talemo_list_resources lists them. |
to | string | optional | Last day, inclusive; at most 62 days from the first. Left out — a week. |
Described in: Schedule of a resource
talemo_get_visit
See a visit
Show one visit: its status, the client, the time, the services in order with their times, who is taken when, and the prices if the role may see them. notices are the confirmation, the reminder and, when a visit is cancelled, the cancellation notice to the client: sent, waiting, or why one did not go, in code, like channel.template_unavailable when Meta has not approved the template; the online admin's cancellation waits until it finishes replying and is skipped if it told the client itself; a waiting one says in expected_skip that it will not go — the contact has no WhatsApp number or Instagram account the client wrote to the business from, or the client opted out; a waiting reminder or cancellation notice with window_only (instagram) goes only if the client writes to the business in that channel in the day before it is due, so tell the person to tell the client themselves if the client does not; a cancellation skipped with the reason window_closed means the client was not told: tell the person to do it themselves, for example by phone; the online admin does not get them. source says who made the booking: page — the client, on the public booking page; salon — the business itself, a person, the assistant or the online admin; say it in those words, not with the key. When: before you say what happens to a visit or whether the client was told. How: visit_id from talemo_list_visits. Next: tell the person which notice did not go and why, in plain words, not with the code, and what they can do by hand.
Guide: booking/visits.
- Reads only, changes nothing
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
visit_id | string | required | Visit ID: talemo_list_visits lists them. |
Described in: A client in Instagram and confirmations in WhatsApp, Visit notices — confirmation, reminder and cancellation, Visits and their statuses
talemo_list_resources
See masters, places and devices
List the resources in work of a business or one branch: masters, places and devices — whatever time is booked on. Each has its role from the industry kit, for a master the team member it is, and the note on its card if there is one. With deactivated, the deactivated ones are listed instead.
Guide: booking/resources.
- Reads only, changes nothing
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
branch_id | string | optional | Branch ID to list the resources of one branch: talemo_get_business lists the branches. Left out — every branch this connection may see. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
deactivated | boolean | optional | True — list the deactivated resources instead of the ones in work, for example to activate one again. Left out — the ones in work. |
Described in: A laser hair removal salon, Industry words and defaults, Resources — masters, places, devices, Who does what
talemo_list_schedules
See the schedules of a branch
Read the working time of every resource in work of a branch for a period — who works when, and up to which day each schedule is laid out: after that day nobody can book the resource.
Guide: booking/resource-schedule.
- Reads only, changes nothing
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
branch_id | string | required | Branch ID: talemo_get_business lists the branches of a business. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
from | string | optional | First day, like 2026-11-23. Left out — today in the time zone of the branch. |
to | string | optional | Last day, inclusive; at most 62 days from the first. Left out — a week. |
Described in: Schedule of a resource
talemo_list_service_groups
See the service groups
List the groups of the price list of a business or one branch, in the order the business set: the name, the place among the groups (from 0) and how many services of the price list stand in the group (services). A service stands in one group or in none; the group of a service is group in talemo_list_services. Clients see the same groups in the same order on the booking page of the branch.
Guide: booking/service-groups.
- Reads only, changes nothing
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
branch_id | string | optional | Branch ID to list the groups of one branch: talemo_get_business lists the branches. Left out — every branch this connection may see. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
Described in: Service groups
talemo_list_services
See the price list
List the price list of a business or one branch: each service with its name and description, its duration in minutes, its price as a decimal in the currency of the branch, the roles of the kit it takes and the resources that can do it (fits, each with its resource_id, its role and its name). A price the role may not see is missing. With lang the name and description come in that language, with the language they are really in: use them to talk to a client, word for word. When: before you name a service or a price to a client, and for the service IDs that talemo_find_times and talemo_book_visit take. How: lang — the language the client writes in. Next: take service_id and, from fits, the resource_id of the master the client asks for.
Guide: booking/services-and-prices.
- Reads only, changes nothing
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
branch_id | string | optional | Branch ID to list the price list of one branch: branch_id of the conversation (talemo_get_conversation). Left out — every branch this connection may see. Staff: without a conversation, talemo_get_business lists the branches of a business. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
deactivated | boolean | optional | True — list the deactivated services instead of the price list, for example to activate one again. Left out — the price list. |
lang | string | optional | Language code to get the names and descriptions in, like "tr": the language the client writes in. Each service then has one name and one description in that language, and name_language and description_language say which language they are really in: the first language of the business where there is no translation or the business does not serve the language, and a stale translation is shown as it is. Name a service to a client with this value, word for word. Left out — the names and descriptions as the business writes them, with every translation and whether it is stale. |
Described in: A laser hair removal salon, Service groups, Service languages, Services, prices and currency, Who does what
talemo_list_visits
Find visits
List visits: of a branch for a period, of one contact, of one resource — a master, a place or a device — or the unclosed ones — visits of the past that are still booked or confirmed and need to be recorded as done or cancelled. With live only the booked and confirmed ones are listed, which with resource_id and from is what is ahead for a resource. visits lists them: each has its status, time, services, resources and, if the role may see them, prices. own_resource_ids — present only when the person sees just the visits of the resources linked to them: the IDs of those resources, in the branch asked for if one is; empty — no resource in the calendar is linked to them yet, so their own visits cannot show; absent — they see all the visits of the branch. source of a visit says who made the booking: page — the client, on the public booking page; salon — the business itself, a person, the assistant or the online admin; say it in those words, not with the key. When: the client or the person asks what is booked, what is ahead for a master, what is unclosed; and before you move or cancel a visit. How: party_id for one contact, resource_id for one resource, branch_id with from and to for a period; live keeps the booked and confirmed ones. Next: visit_id goes to talemo_get_visit and talemo_move_visit. Staff: the same visit_id goes to talemo_cancel_visit.
Guide: booking/visits.
- Reads only, changes nothing
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
branch_id | string | optional | Branch ID: its visits only: branch_id of the conversation (talemo_get_conversation). Left out — every branch this connection may see. Staff: without a conversation, talemo_get_business lists the branches of a business. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
from | string | optional | Visits ending after this instant, RFC 3339 like 2026-11-26T00:00:00Z. Left out — now; for a contact, a resource and for unclosed visits — no bound. |
limit | integer | optional | How many visits, 1 to 500; 100 when left out. |
live | boolean | optional | True — only the live visits: booked or confirmed, not done and not cancelled. |
party_id | string | optional | Contact ID: their visits, newest first when no period is given. talemo_find_contacts finds the IDs. |
resource_id | string | optional | Resource ID — a master, a place or a device: the visits it is taken in, cancelled ones too, newest first when no period is given; with from and no to — from that instant on, with no limit ahead, in time order. fits of talemo_list_services shows the resources of a service. Staff: talemo_list_resources lists them all. |
to | string | optional | Visits starting before this instant; at most 62 days after from. Left out — a week; for a resource — no bound. |
unclosed | boolean | optional | True — only the unclosed visits of the past: booked or confirmed and already over. |
Described in: Resources — masters, places, devices, Visits and their statuses
talemo_move_visit
Move a visit
Move a whole visit to a new start, with other resources if named: all its time moves or none of it. Another visit in the way is refused with status 409, code slot.overlap and params.resource_id; time outside the open time with visit.outside_schedule; the past with visit.past. A visit that took place or was cancelled is not moved: visit.done, visit.cancelled. When: the client or the person asks for another time for a visit that is ahead. How: visit_id, and a start of talemo_find_times asked with the same visit_id, with the resource_ids of that variant. Next: say the visit is moved only after the answer succeeded; slot.overlap means the time was taken meanwhile — ask talemo_find_times again.
Guide: booking/moving-and-cancelling-visits.
- Changes data
- May overwrite or remove existing data
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — move nothing and answer the visit as it would be. |
resource_ids | array of string | optional | Other resources: the master, and a place or device for each service it fits; one left out keeps its resource while it is free. Take them from the variant of talemo_find_times that you move to. |
start | string | required | New start, RFC 3339: ahead and on the step of the branch; talemo_find_times with visit_id finds one. |
visit_id | string | required | Visit ID: talemo_list_visits lists them. |
Described in: Moving and cancelling visits
talemo_record_walk_in
Record a visit without a booking
Record a visit without a booking — the client came in — as done at once: who did it, when and the prices. It ends no later than now: otherwise status 409, code visit.future. Time outside the open time of a resource is refused with visit.outside_schedule and params.resource_id unless extend_schedule opens it in the day of the resource; say so to the person first. When several places fit a service, name the one used for each in service_resources. A client who is not a contact yet is named by new_party, as in talemo_book_visit: found by the number or added in the same step.
Guide: booking/visits.
- Changes data
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
branch_id | string | required | Branch ID of the visit. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — record nothing and answer the visit as it would be. |
end | string | optional | When it ended, no later than now. Left out — the start plus the durations of the services. |
extend_schedule | boolean | optional | True — if the time is outside the open time of a resource, open it in the day of the resource. Tell the person before doing it. |
new_party | object | optional | A client who is not a contact yet: the name and the number, as in talemo_book_visit. Not together with party_id. |
new_party.name | string | required | Name as the business calls the person, 1 to 120 characters. A contact already found by the number keeps its own name. |
new_party.phone | object | required | The number of the client: the contact is looked for by it. |
new_party.phone.address | string | required | The number as the person said it: +49 176 2041 1380, or a local number like 8 916 204-18-21 together with country. |
new_party.phone.country | string | optional | ISO 3166-1 alpha-2 country of a number without + or 00, like RU or DE. If you do not know it, ask the person: the time zone of the branch does not tell. |
party_id | string | optional | Contact ID of the client: talemo_find_contacts finds them. Name the client by this or by new_party, one of the two. |
price | array of string | optional | Prices of the services in order as decimals in the currency of the branch, like "2600.50"; null — no price. Left out — the price list. |
resource_ids | array of string | optional | Who did it — one master, and a place or device for each service it fits; a service with a single fitting resource can be left out. |
service_ids | array of string | required | Service IDs done in order, 1 to 20, each once. |
service_resources | array of object | optional | Which place or device did which service, as pairs of a service ID and a resource ID — "table 2 for the manicure, table 1 for the design". Needed when several places fit a service: a pair beats the list in resource_ids for its service. Not for the master: he is one for the whole visit, name him in resource_ids. A resource that does not fit its service is refused with visit.resource_unfit. |
service_resources[].resource_id | string | required | Resource ID of the place or device that did this service. It has to fit the service, otherwise visit.resource_unfit with params.role and params.resource_id. |
service_resources[].service_id | string | required | Service ID: one of the service_ids of the visit. |
start | string | required | When it started, RFC 3339. |
Described in: Visits and their statuses
talemo_remove_schedule_time
Remove open or busy time
Remove a time from the schedule of a resource: a break, or open time that is not needed. Open time with visits under it is not removed: status 409, code schedule.has_bookings, params.count booked or confirmed visits — moved or cancelled first — and params.done visits that took place, whose time stays open.
Guide: booking/resource-schedule.
- Changes data
- May overwrite or remove existing data
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and answer the day as it would be. |
resource_id | string | required | Resource ID: talemo_list_resources lists them. |
time_id | string | required | ID of the time: talemo_get_schedule lists them. |
Described in: Schedule of a resource
talemo_remove_service_fit
Unmark who does a service
Mark that a resource no longer does a service. Unmarking one that was not marked returns the service as it is.
Guide: booking/who-does-what.
- Changes data
- May overwrite or remove existing data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and answer the service as it would be. |
resource_id | string | required | Resource ID of a master, place or device of the same branch: talemo_list_resources lists them. |
service_id | string | required | Service ID: talemo_list_services lists them. |
Described in: A laser hair removal salon, Who does what
talemo_set_booking_rules
Change the booking rules of a branch
Change the booking rules of a branch: the step of the booking grid (5, 10, 15, 20, 30 or 60 minutes), the cleanup after a visit for the named roles (0 to 120 minutes), whether the client is told at once that the visit is booked (confirm_on_booking), how many hours before a visit the client gets a reminder (remind_before_hours, 1 to 72; 24 is the day before) and who gets a visit when the client names no master (any_master: evenly — the master with fewer hours of visits in the week of the visit, no_gaps — the master whose free window the visit closes flush, in_order — the one higher in master_order, the masters of the branch by resource ID in that order: the ones named come first, the others follow as they stood). What is left out stays as it is. Cleanup comes after the work and does not shift the next booking. New hours move the reminders already waiting; one that would fall in the past is skipped. A resource in master_order that is not a master in work of the branch is refused with status 422, code record.reference_missing and params.field master_order; a master named twice, or an unknown any_master, with status 400, code request.body_invalid. The rule decides what clients are sent later; nothing is sent by this call.
Guide: booking/booking-rules.
- Changes data
- May overwrite or remove existing data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
any_master | string | optional | Who gets a visit when the client names no master: evenly — the master with fewer hours of visits in the week of the visit, no_gaps — the master the visit fits flush with, in_order — the one higher in master_order. Left out — stays. |
branch_id | string | required | Branch ID: talemo_get_business lists the branches of a business. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
cleanup | array of object | optional | Cleanup after a visit for the named roles; the others stay as they are. |
cleanup[].minutes | integer | required | Minutes of cleanup after the work, 0 to 120; 0 — ready for the next visit at once. |
cleanup[].role | string | required | Role of the industry kit: master, place or device. |
confirm_on_booking | boolean | optional | True — the client is told at once that the visit is booked; false — no such message is sent. Left out — stays. |
dry_run | boolean | optional | True — change nothing and answer the rules as they would be. |
master_order | array of string | optional | Resource IDs of the masters of the branch in the order for in_order, the first one highest: talemo_get_booking_rules lists them in master_order. The masters named here come first in this order, the others follow as they stood. Left out — stays. |
remind_before_hours | integer | optional | Hours before a visit when the client gets a reminder, 1 to 72; 24 is the day before. Left out — stays. Reminders already waiting are moved to the new hour; one that would fall in the past is skipped. |
step_minutes | integer | optional | Step of the booking grid in minutes: 5, 10, 15, 20, 30 or 60. Left out — stays. |
Described in: A laser hair removal salon, Booking rules, Onboarding a new business, Visit notices — confirmation, reminder and cancellation
talemo_set_branch_page
Turn the booking page of a branch on or off
Turn the public booking page of a branch on or off. On, anyone can see the page, search engines too: the name and address of the branch, its phone and messengers, its services with prices, the names of the masters and free times, and anyone can book a visit there with a name and a phone number. So do it only when the person asks, and first show with dry_run what would be on the page: services shown and how many of them have no price; the Talemo assistant always asks the person before turning it on or off. Off, the link answers as if there were no page. The same value again changes nothing. A closed branch is not turned on: status 404, code not_found. Turning it on is refused with status 409 and code page.not_ready while booking through the page is not ready (the can_open of the page says so); turning it off is always possible. A business without the Client booking kit is refused with status 409 and code kit.required; a role without the right to change the branch, with status 403 and code role.forbidden.
Guide: booking/branch-booking-page.
- Changes data
- The same call twice gives the same result
- Reaches outside Talemo
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
branch_id | string | required | Branch ID: talemo_get_business lists the branches of a business. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and answer what the page would be: how many services would stand on it and how many of them have no price. |
open | boolean | required | True — open the page for anyone who has the link; false — close it. |
Described in: Branch booking page
talemo_set_schedule_day
Change one day of a schedule
Set one day of the schedule of a resource as a whole, a past day too: all its open and busy times; no times — a day off. The day becomes changed by hand, and a new usual cycle keeps it. Bookings that would fall outside open time: status 409, code schedule.has_bookings — dry_run shows them.
Guide: booking/resource-schedule.
- Changes data
- May overwrite or remove existing data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
day | string | required | The day, like 2026-11-25; a past day too. |
dry_run | boolean | optional | True — change nothing and tell which bookings would fall outside the open time. |
resource_id | string | required | Resource ID: talemo_list_resources lists them. |
times | array of object | required | All the times of the day; an empty list makes it a day off. |
times[].ends | string | required | Wall-clock end; not after the start — on the next day. |
times[].kind | string | required | open — open for bookings; busy — blocked without a booking, like lunch. |
times[].note | string | optional | Note of busy time, 1 to 60 characters. |
times[].starts | string | required | Wall-clock start in the time zone of the branch, like 10:00. |
Described in: Schedule of a resource
talemo_set_service_languages
Set the languages a business serves
Set the languages the business serves clients in, as a whole ordered list. The first is the language its texts are written in: the names and descriptions of services, the labels of conversation fields and the questions of the script; the others hold their translations. Adding a language only adds. Taking one out deletes its translations for good. Making another language the first moves every text to its translation in that language and the old text becomes a translation, and it is refused with status 409, code business.language_untranslated and in params the language and the counts of what has no text in it (services, descriptions, fields, options, steps) or would get a name another service has (duplicates), while some text has none — nothing changes then; translate those texts first with talemo_update_service and talemo_update_conversation_field, never make the translation up without the person. The change reaches Meta: message templates in WhatsApp and quick questions in Instagram and Messenger appear in the new language, so first show with dry_run what it counts: the texts that move, the translations that go and what Meta gets; the Talemo assistant always asks the person before it sets the list. A business key or a program connected from outside only shows: without dry_run it is refused with status 401 and code auth.required, which here means the person sets the languages in Talemo, not that the connection is broken. Only a role over the whole business may; otherwise status 403 and code role.forbidden.
Guide: booking/service-languages.
- Changes data
- May overwrite or remove existing data
- The same call twice gives the same result
- Reaches outside Talemo
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and answer what the change would do: the texts that would move, the translations that would go, the message templates and quick questions Meta would get — or the refusal it would get. |
languages | array of string | required | The languages the business serves, in order, as a whole list: one to fifteen codes out of en, ru, zh, hi, es, fr, bn, pt, de, tr, sr, uk, it, pl, el, each once. The first is the language the texts of the business are written in and the fallback for a client whose language is not in the list. |
Described in: Languages and translations of script texts, Service languages
talemo_set_usual_schedule
Set a usual cycle
Set the usual cycle of a resource — N days, a week is 7 — and lay it out from effective_from (left out — today) up to until (left out — a year ahead, the furthest it goes). For a week leave anchor_day out: day 1 of times is then a Monday and day 7 a Sunday. Days changed by hand stay unless listed in overwrite; past days are never laid out again. A cycle that would leave bookings outside open time is refused: status 409, code schedule.has_bookings, params.count — dry_run shows the days that change and those bookings first. It changes a lot at once: call it with dry_run first, show the person what changes and make the real call only after they say yes.
Guide: booking/resource-schedule.
- Changes data
- May overwrite or remove existing data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
anchor_day | string | optional | The first day of the cycle, like 2026-11-23. Left out — for a week, the Monday of the week the cycle starts: day 1 of times is a Monday, day 2 a Tuesday, day 7 a Sunday, so Tuesday to Saturday is days 2 to 6. Leave it out for a week; for any other cycle, left out — the day it starts. |
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
cycle_days | integer | required | Length of the cycle in days, 1 to 28: a week is 7, two days on and two off is 4. (at most 255) |
dry_run | boolean | optional | True — change nothing and tell which days change and which bookings would fall outside the open time. |
effective_from | string | optional | From which day the cycle is laid out, like 2026-11-23. Left out — today, and that is what a schedule asked for without a start is: name a later day only when the person asked for the schedule to start later, because the days before it have no schedule and nobody can be booked on them. Never earlier than today: the past is never laid out again. |
overwrite | array of string | optional | Days changed by hand to overwrite, like 2026-11-28; other days changed by hand stay as they are. |
resource_id | string | required | Resource ID: talemo_list_resources lists them. |
times | array of object | required | Times of the days of the cycle; a day of the cycle without times is a day off. |
times[].day | integer | required | Day of the cycle, from 1. (at most 255) |
times[].ends | string | required | Wall-clock end, like 20:00. An end not after the start is on the next day: 14:00 to 02:00 is a shift until two at night. |
times[].kind | string | required | open — open for bookings; busy — blocked without a booking, like lunch. |
times[].note | string | optional | Note of busy time, 1 to 60 characters, like "lunch". Open time has no note. |
times[].starts | string | required | Wall-clock start in the time zone of the branch, like 10:00. |
until | string | optional | Up to which day to lay it out, inclusive: at most a year ahead. Left out — that last day, a year from today. After it the resource has no schedule and cannot be booked. |
Described in: A laser hair removal salon, Onboarding a new business, Schedule of a resource
talemo_update_resource
Change a master, place or device
Change the name, role, team member or note of a resource. Fields left out stay as they are; an empty note removes it. The note is signed with the person who wrote it and the time. A deactivated resource is not changed until it is activated: status 409, code resource.deactivated.
Guide: booking/resources.
- Changes data
- May overwrite or remove existing data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and answer the resource as it would be. |
name | string | optional | New name, 1 to 200 characters. Left out — stays as it is. |
note | string | optional | Note on the card of the resource, up to 1000 characters, line breaks allowed; an empty string removes it. Left out — stays. |
resource_id | string | required | Resource ID: talemo_list_resources lists them. |
role | string | optional | New role: master, place or device. A role other than master unlinks the team member. Left out — stays. |
user_id | string | optional | User ID of the team member this master is; an empty string unlinks. Left out — stays. |
Described in: Resources — masters, places, devices
talemo_update_service
Change a service
Change the name, description, translations, duration, price, roles or group of a service. Fields left out stay as they are. The price changes at once: bookings already made keep the price they were made with. A role taken out of the service stops the resources of that role doing it. A map of translations replaces the old one: send all the languages that should stay, and a language left out loses its translation. Changing the name or the description makes its translations stale, and a stale translation is still shown to clients until it is done again.
Guide: booking/services-and-prices.
- Changes data
- May overwrite or remove existing data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
description | string | optional | New description in the first language, 1 to 1000 characters; an empty string removes it together with its translations. Left out — stays. |
description_tr | object with string values | optional | Translations of the description, the whole map, like name_tr. Left out — stay as they are. |
dry_run | boolean | optional | True — change nothing and answer the service as it would be. |
duration_minutes | integer | optional | New duration in minutes, 5 to 600 in steps of 5. Left out — stays. |
group_id | string | optional | Group of the price list, of the same branch: talemo_list_service_groups lists them; an empty string takes the service out of its group. Left out — stays. |
name | string | optional | New name in the first language the business serves, 1 to 120 characters. The translations of the old name turn stale until they are done again. Left out — stays as it is. |
name_tr | object with string values | optional | Translations of the name, the whole map: a language left out of it loses its translation, one whose text is unchanged keeps its mark, and every language must be one the business serves other than the first. Left out — stay as they are. |
needs | array of string | optional | All the roles the service takes, as a whole list: a role left out stops the resources of that role doing it. A place is recorded only once a place of the branch has a schedule; the answer names the roles recorded. Left out — stay as they are. |
price | string | optional | New price in the currency of the branch, like "2600.50"; an empty string removes the price. Left out — stays. |
service_id | string | required | Service ID: talemo_list_services lists them. |
Described in: Service groups, Services, prices and currency
talemo_update_service_group
Change a service group
Rename a group of the price list or move it to another place among the groups; fields left out stay as they are. The groups between the old place and the new one move by one, and the services keep their group. The answer has the group as it is now and was, its name and place before. A name already in the branch is refused with status 409, code record.duplicate, params.field name.
Guide: booking/service-groups.
- Changes data
- May overwrite or remove existing data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and answer the group as it would be. |
group_id | string | required | Group ID: talemo_list_service_groups lists them. |
name | string | optional | New name in the first language the business serves, 1 to 60 characters. Left out — stays. |
position | integer | optional | New place among the groups of the branch, from 0; past the end — the last. The groups between the old place and the new one move by one. Left out — stays. |
Described in: Service groups
talemo_update_visit
Change the prices of a visit
Change the prices of the services of a visit, booked or done: all of them in order, null for no price. The price list does not change. A cancelled visit is refused with status 409, code visit.cancelled.
Guide: booking/moving-and-cancelling-visits.
- Changes data
- May overwrite or remove existing data
- The same call twice gives the same result
Parameters
| Parameter | Type | Required | Meaning |
|---|---|---|---|
business_id | string | required | Business ID: one of the businesses this connection may work in — talemo_list_businesses names them. Another business is refused with door.business_forbidden. |
dry_run | boolean | optional | True — change nothing and answer the visit as it would be. |
price | array of string | required | Prices of all the services of the visit in order, as decimals in the currency of the visit; null — no price. |
visit_id | string | required | Visit ID: talemo_list_visits and talemo_get_calendar list them. |
Described in: Moving and cancelling visits