listings:read ability; changes need listings:write and spend the account’s transition budget (60 a minute).
How the hours come about
Each listing takes its hours in one of three modes:inherit: it follows the base schedule of whoever runs the listing’s viewings. A listing you never changed is in this mode.own: it has hours of its own, by day.on_request: it has no hours. Clients ask for a day by message.
{from, to} ranges, at most 6, on a 15-minute step (09:00, 09:15…), with no overlaps. 24:00 is accepted as the end of the day. A day left out is a day without viewings.
Your base schedule
GET /account/viewing-schedule:
savedisfalseuntil you save the schedule.effectivethen gives the values it starts from.- A
nullfield means you chose nothing. The value applied is ineffective. confirmationis your account’s setting for every listing without a choice of its own:autoconfirms bookings at once,manualleaves them waiting for your answer.listings_followingcounts the public listings whose viewings you run and that follow the base schedule.
PATCH /account/viewing-schedule changes only the fields you send:
- A field left out stays as it was, and
nullbrings back the default.confirmationtakes onlyautoormanual. hours, when you send it, replaces the whole week.blocked_datesholds at most 50 ranges. A one-day range may leave outto.- With
confirm_pending: true, when the account’s setting isauto(sent now or already saved), the requests waiting on your listings that follow the account’s setting are confirmed too, at most 100 at a time, and each client gets the confirmation. The answer says how many were confirmed and how many still wait:"confirmed_pending": { "confirmed": 12, "still_waiting": 0 }. - The answer has the same shape as
GETand does not wait for the hours to be generated. - The base schedule is the account’s: the listings whose viewings you run follow it, in every firm you work in. The requests confirmed with
confirm_pendingand the counts in the answer cover only the key’s firm and your listings without a firm.
A listing’s schedule
GET /account/listings/{code}/viewing-schedule:
hoursare the listing’s own hours. They are kept while the listing follows another mode, so you find them again when you switch back.duration_min,notice_minandconfirmationset tonullmean “as usual”: the base schedule of whoever runs the viewings, and the holder’s setting.runneris the person who runs the viewings: a colleague you gave them to or, otherwise, the holder. Its email goes to the keys of the holder, the admins and the manager who has that person on their team, and to the person’s own key; any other key getsemail: null, as on the Team page in the portal.occupant.phoneis a person’s phone number, so only a key withleads:readgets it. Otherwise it isnull.effectiveis what generates the hours now, and is read only. The break and the horizon always come from the base schedule of whoever runs the viewings.base_savedsays whether that person has a saved base schedule. Without one,inheritgives clients no hours.
PATCH /listings/{code}/viewing-schedule changes only the fields you send: mode, hours (only with mode: own), duration_min, notice_min, available_from (YYYY-MM-DD), confirmation (auto, manual or null), runner, occupant (notify, phone), blocked_dates, confirm_pending.
{"mode": "inherit"}alone (or another mode) changes the mode and nothing else, as in the portal: the rules and the own hours stay. A listing moving toownwithout hours of its own starts from the base schedule of whoever runs the viewings, so nothing changes for clients until you edit the hours.runneris the email of an active colleague of the listing’s firm, one you could also pick in the portal (a manager picks from their team).nullor the holder’s email leaves the viewings to the holder. On a listing without a firm, the only possiblerunneris the holder.occupant.phoneis required whenoccupant.notifyistrue. The number is kept with the listing’s schedule whilenotifyistrue; withnotify: falseit is deleted, as in the app.confirm_pending: trueconfirms the requests waiting on this listing, when after the save the listing confirms at once.- On a listing that is not public, the schedule is saved but generates no hours until the listing is active again.
PATCH /listings/{code}/viewings (the settings in Viewings) writes the same length and the same confirmation. There a null is ignored. Here, null means “as usual”.
The listing’s length and confirmation change the listing’s etag, as through PATCH /listings/{code}/viewings. The hours, the mode, the notice, the days off and runner do not.
Your schedule on several listings
POST /account/viewing-schedule/apply does what „Folosește programul meu” does on the listings selected in the portal. You send at most 100 codes:
inherit when it is active, you manage it and whoever runs its viewings has a saved base schedule. Otherwise you get the reason: base_schedule_missing, not_active or not_found. A code that does not exist and one your key does not reach both get not_found. The same list sent twice gives the same result.