Deutsch Demo shop Store

An appointment request with fixed time slots

A preferred appointment is only usable once it fits the opening hours. That can be set on the field instead of sorted out afterwards.

The job

The situation

Advice, a fitting, a workshop slot, a pickup: the customer should propose a time. If the proposal comes as free text, it says "next week in the morning".

Where the built-in tools stop

A text field accepts any spelling, and none of them can be sorted. A date field without limits also accepts last Sunday.

This is what the form looks like

Your preferred appointment
Topic *
Advice
Branch *
Hamburg
Preferred date *
DD/MM/YYYY
Time *
08:00 to 18:00, in quarter-hour steps

An alternative appointment is fine for me.

Note
What should it be about?

The time jumps in quarter hours, because the field carries a step size of 900 seconds.

What matters here

your-shop.example/admin
FormsCancelSave
FormStructureElement
Elements
#NameTypeWidth
1.1Row 1Row--
1.1.1TopicDropdown menu (select)1/2
1.1.2BranchDropdown menu (select)1/2
1.2Row 2Row--
1.2.1Preferred dateDate (date)1/2
1.2.2TimeTime (time)1/2
1.3ConsentConsent / agreement1/1 - full row
1.4NoteMulti-line text (textarea)1/1 - full row

Create top-level element

  • The grid sits in the field

    Minimum, maximum and step become real attributes on the time field. The browser accepts 08:15 and refuses 08:07, before anything is sent.

  • No appointment in the past

    A minimum date on the date field rules out yesterday. The server checks the same limit again afterwards.

  • Two columns instead of a line of prose

    Date and time appear in the export as columns of their own. That lets you sort the list by day without reading it.

The form asks for a wish, it reserves nothing. It knows neither calendars nor capacity. Whoever needs a real booking with an availability check needs a different tool.

  • Where it sits

    As a block on an appointments page, or through an assignment on the services that have appointments. With a phone number field instead of the branch it becomes a callback request form.

    The three routes to the page

  • What comes back

    Topic, branch, date and time as four columns. Optionally an email also goes to the address stored on the form.

    History, context and CSV