Salon appointment form for hair and beauty requests

Updated 2026-10-30

Booking requests reach a salon by phone, DM and text, and someone has to copy them all into one place. I would rather have every request arrive with the same details, in the same list.

What does the form collect?

Name, phone and whether the client is new. The services they want, two dates and a time of day. A stylist wish and a note. It is a request: you confirm by reply. The form holds no calendar, so you keep your own.

What if two people want the same slot?

The form cannot lock a time. Read the CSV from the top, confirm the first request and offer the second date to the other person. Use max_responses to cap the requests when you are nearly full.

How does a client's AI help?

A client who uses an AI chat can hand it the link. It asks "Which services would you like?" Then "What is your first choice of date?" Then "Is there a stylist you prefer?" It shows the answers and sends only after a yes. See agent-fillable forms.

For new colour clients, send a client consultation form once the time is agreed. After the visit, ask for a salon feedback form response. More ideas are in forms for salons, spas and barbers.

Questions

Can clients choose an exact time slot?

The form offers a first and second date and a time of day. It does not show free slots. You choose the real time in your reply.

Can I take a deposit here?

No. The form takes no payment. Ask for a deposit in your own reply if you need one.

How do I limit requests in a busy week?

Set max_responses and close_at for busy weeks, such as before a holiday, so you never get more requests than you can answer.

Try the form

Live demo ยท nothing is saved

Request a salon appointment

Tell us what you would like and when. This is a request. We will reply to confirm your time.

Are you new to the salon? (required)
Which services would you like? (required)
Best time of day
I understand this is a request and the salon will confirm it (required)

Or paste the JSON

Give this to your AI. It needs the AI Form API MCP server or an API key. It makes the form and sends you the link.

text
Create this form with the AI Form API create_form tool (or POST https://aiformapi.com/v1/forms with my API key). Then reply with the public_url.

{
  "title": "Request a salon appointment",
  "description": "Tell us what you would like and when. This is a request. We will reply to confirm your time.",
  "fields": [
    {
      "id": "booker_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "booker_phone",
      "label": "Your phone",
      "type": "phone",
      "required": true
    },
    {
      "id": "booker_email",
      "label": "Your email",
      "type": "email"
    },
    {
      "id": "client_status",
      "label": "Are you new to the salon?",
      "type": "single_choice",
      "required": true,
      "options": [
        "New client",
        "Returning client"
      ]
    },
    {
      "id": "services_wanted",
      "label": "Which services would you like?",
      "type": "multi_choice",
      "required": true,
      "options": [
        "Haircut",
        "Colour",
        "Highlights",
        "Blow-dry or styling",
        "A treatment",
        "Beard trim",
        "Something else"
      ],
      "min": 1
    },
    {
      "id": "stylist_request",
      "label": "Is there a stylist you prefer?",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "people_booking",
      "label": "How many people are you booking for?",
      "type": "number",
      "min": 1,
      "max": 10
    },
    {
      "id": "first_choice_day",
      "label": "Your first choice of date",
      "type": "date",
      "required": true
    },
    {
      "id": "second_choice_day",
      "label": "Your second choice of date",
      "type": "date"
    },
    {
      "id": "time_of_day",
      "label": "Best time of day",
      "type": "single_choice",
      "options": [
        "Morning",
        "Lunchtime",
        "Afternoon",
        "After work"
      ]
    },
    {
      "id": "appointment_note",
      "label": "Anything we should know?",
      "type": "long_text",
      "max_length": 800
    },
    {
      "id": "request_understood",
      "label": "I understand this is a request and the salon will confirm it",
      "type": "checkbox",
      "required": true
    }
  ]
}

Or call the API

bash
curl -X POST https://aiformapi.com/v1/forms \
  -H "Authorization: Bearer $AIFORMAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Request a salon appointment","description":"Tell us what you would like and when. This is a request. We will reply to confirm your time.","fields":[{"id":"booker_name","label":"Your name","type":"short_text","required":true,"max_length":150},{"id":"booker_phone","label":"Your phone","type":"phone","required":true},{"id":"booker_email","label":"Your email","type":"email"},{"id":"client_status","label":"Are you new to the salon?","type":"single_choice","required":true,"options":["New client","Returning client"]},{"id":"services_wanted","label":"Which services would you like?","type":"multi_choice","required":true,"options":["Haircut","Colour","Highlights","Blow-dry or styling","A treatment","Beard trim","Something else"],"min":1},{"id":"stylist_request","label":"Is there a stylist you prefer?","type":"short_text","max_length":100},{"id":"people_booking","label":"How many people are you booking for?","type":"number","min":1,"max":10},{"id":"first_choice_day","label":"Your first choice of date","type":"date","required":true},{"id":"second_choice_day","label":"Your second choice of date","type":"date"},{"id":"time_of_day","label":"Best time of day","type":"single_choice","options":["Morning","Lunchtime","Afternoon","After work"]},{"id":"appointment_note","label":"Anything we should know?","type":"long_text","max_length":800},{"id":"request_understood","label":"I understand this is a request and the salon will confirm it","type":"checkbox","required":true}]}'

JSON definition

json
{
  "title": "Request a salon appointment",
  "description": "Tell us what you would like and when. This is a request. We will reply to confirm your time.",
  "fields": [
    {
      "id": "booker_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "booker_phone",
      "label": "Your phone",
      "type": "phone",
      "required": true
    },
    {
      "id": "booker_email",
      "label": "Your email",
      "type": "email"
    },
    {
      "id": "client_status",
      "label": "Are you new to the salon?",
      "type": "single_choice",
      "required": true,
      "options": [
        "New client",
        "Returning client"
      ]
    },
    {
      "id": "services_wanted",
      "label": "Which services would you like?",
      "type": "multi_choice",
      "required": true,
      "options": [
        "Haircut",
        "Colour",
        "Highlights",
        "Blow-dry or styling",
        "A treatment",
        "Beard trim",
        "Something else"
      ],
      "min": 1
    },
    {
      "id": "stylist_request",
      "label": "Is there a stylist you prefer?",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "people_booking",
      "label": "How many people are you booking for?",
      "type": "number",
      "min": 1,
      "max": 10
    },
    {
      "id": "first_choice_day",
      "label": "Your first choice of date",
      "type": "date",
      "required": true
    },
    {
      "id": "second_choice_day",
      "label": "Your second choice of date",
      "type": "date"
    },
    {
      "id": "time_of_day",
      "label": "Best time of day",
      "type": "single_choice",
      "options": [
        "Morning",
        "Lunchtime",
        "Afternoon",
        "After work"
      ]
    },
    {
      "id": "appointment_note",
      "label": "Anything we should know?",
      "type": "long_text",
      "max_length": 800
    },
    {
      "id": "request_understood",
      "label": "I understand this is a request and the salon will confirm it",
      "type": "checkbox",
      "required": true
    }
  ]
}