Appointment Detail
What this screen is for
Where a customer sees one appointment in full and acts on it. The hour is the largest thing on the screen and the status badge sits beside it; the service, the note, an incoming proposed time and the bill are listed one under another below. The three actions that change the appointment — reschedule, cancel, report the experience — are stacked full width, and none of them does anything on the tap itself: each opens a confirmation sheet that states in one sentence what will happen, and the button that commits lives on that sheet. Leaving a review is not on this screen; its way in is the card on the appointment list.
When you would use this
The customer has already made up their mind about one particular appointment: they can see they will not make that hour, they have realised they cannot come at all, they have a new time from the business to accept or turn down, or the visit is over and they want to see what they were charged.
Who sees it
The customer the appointment belongs to; the screen always opens on the customer's side, and none of the business's own actions are ever offered here.
Where it lives
Mobile app only.
What you can do here
See the hour and the status at a glance
The appointment's hour is set at headline size, with its date and the status badge beside it. It is the same badge the list draws — one appointment must not read as two different states depending on which screen is open — and it behaves the same way: a coloured dot while the appointment is still ahead, dotless and muted once it is past.
Read the appointment's details
Under the service name sit the total duration and the price the business wrote for those services. A note appears only if one was written: a label with nothing under it reads as a field that failed to load. An appointment auto-cancelled because the approval window ran out carries its own line explaining that.
Request a new time
A new hour is picked and sent to the business as a request. The button does nothing on its own: the sheet it opens asks for a day and a time first, keeps the confirming button disabled until one is picked, and states that the request goes to the business and the hour does not move until it is accepted. No reason or message is asked for.
Answer the business's proposal
If the business has proposed a new time, a "proposed time" field appears among the details with an answer button under it. The answer is given on the sheet that opens: the confirming button accepts the proposal, the button beside it declines, and both are decisions that get sent. Dismissing the sheet by tapping outside it sends nothing and leaves the proposal open.
Cancel the appointment
A pending or approved appointment that has not started yet is cancelled from here. The sheet states what cancelling buys: that hour becomes free again and someone else can take it. Tapping outside the sheet means backing out. No cancellation reason is asked for — the server still accepts one, the app sends an empty one.
Report the experience
An issue with the appointment is reported from here whatever the status is; while the appointment is still waiting for an answer, the button offers reporting the long wait instead. After the confirmation sheet, a form asks for the kind of report and a description — a two-line sheet cannot stand in for the two fields the moderation queue depends on.
Read the bill
Once the visit is closed, the bill's lines and total appear here read-only; a line left unpriced says so, and a bill whose total has not been worked out says that in place of a total. With no closed bill, the field only says that the lines will appear here once the visit closes.
Message the business
If the business keeps messaging switched on, a row leading into the conversation appears. When a conversation with that business is already going, it opens straight into it — putting an empty composer in front of a thread with history hid that history until the first message was sent; when there is none, the new conversation it opens is tied to this appointment.
Go to the business's profile
The row carrying the business's name, city and cover image opens its profile; the row's second line states what the tap will do.
Appeal a no-show record
If the business has reported the appointment as a no-show, an appeal button appears; the dialog it opens is where the reason for the appeal is written and sent.
Go back to the appointment list
A button leading to the list always stands at the foot of the screen. Reaching this screen directly after booking leaves no stack to go back through, so the way out is offered separately.
What the server accepts and refuses
Cancellation works before the appointment starts, not after
A pending or approved appointment can be cancelled by the customer while its start time hasn't arrived yet; once it has, the cancel option is never offered at all, because the appointment is already in the past.
With a proposal open, the reschedule route is not disabled — it is not drawn at all
While an unanswered proposal stands on the appointment, the reschedule button is nowhere on the screen; it makes no difference whether the business sent that proposal or the customer did, because the server refuses a second one and a button whose only outcome is an error is not worth offering. A proposal the customer sent themselves is not displayed here either: the side that answers it is the other one.
Proposing a new time doesn't move the appointment on its own
A proposal only takes effect once the other side accepts it; if it goes unanswered until its deadline, it drops on its own and the appointment keeps its original time — the side that sends one has made a request, not a change, the moment they send it.
The proposal window is measured against the appointment's current time, not the proposed one
The notice period (2 hours by default, extendable per service) looks at how much time is left before the appointment's current start; so with very little time left, a proposal can be refused even if the new time being proposed is far in the future.
The bill shows only after it closes, and only the reader's own
The screen reads a single bill: one tied to this appointment, opened in the customer's own name, and closed. Someone else's bill never enters the query. An open one is not shown either: while the business is still working the lines and the total move, and an amount that changes under the reader is worse than none.
The appeal route opens only on an appointment reported as a no-show
The appeal button is drawn only while the status is "no-show reported"; once an appeal has been filed, or the record has been confirmed, the screen offers no such route. The screen itself watches no clock: the server accepts an appeal only within 24 hours of the report, so past that the button keeps showing until the record is confirmed and a tap is refused.