Photography booking form for clear shoot requests

Updated 2026-10-30

A message that says "are you free in June?" starts a long email thread. I would rather ask about the date, the place and the use of the photos in one go, then reply with a clear yes or no.

Who it is for

Photographers who take portraits, events, products, property or headshots, and who confirm each date by hand.

What each question is for

  • Shoot type and people: shapes the kit you bring and the time you need.
  • Preferred and backup date, time of day: gives you two chances to find a slot.
  • Location and length: so you can plan travel and the day.
  • Photo use: personal photos and business photos are not quoted in the same way.
  • Delivery date: shows a hard deadline before you say yes.
  • Request tick: the client knows this is not yet a booking.

What a client's AI would ask

"What do you need photographed?" Then "What is your preferred date?" Then "How will the photos be used?" It shows the answers and sends only after a yes. See agent-fillable forms.

Before you use it

The form holds no calendar, so keep your own. After you confirm, send a portrait session questionnaire or a wedding photography questionnaire for the details, and a photo release for permission to share. More ideas are in forms for photographers.

Questions

Does the form block dates that are already booked?

No. It cannot see a calendar, so a date is only a request. Check your own calendar, then reply to confirm or to suggest another day.

What should I do with the photo use answer?

It tells you whether the photos stay private or go into a business or a publication. That can change what you quote and which permissions you ask for.

Can the form collect a deposit?

No. It takes no payment. Ask for a deposit in your own reply, once you confirm the date.

Try the form

Live demo ยท nothing is saved

Request a photo shoot

Tell us what you need. This is a request. We will check our calendar and reply to confirm.

What do you need photographed? (required)
Preferred time of day
How long do you think you need?
How will the photos be used?
I understand this is a request, not a confirmed booking (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 photo shoot",
  "description": "Tell us what you need. This is a request. We will check our calendar and reply to confirm.",
  "fields": [
    {
      "id": "booker_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "booker_email",
      "label": "Your email",
      "type": "email",
      "required": true
    },
    {
      "id": "booker_phone",
      "label": "Your phone",
      "type": "phone"
    },
    {
      "id": "shoot_type",
      "label": "What do you need photographed?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Portraits",
        "A family",
        "An event",
        "Products",
        "A property",
        "Headshots",
        "Something else"
      ]
    },
    {
      "id": "first_choice_date",
      "label": "Your preferred date",
      "type": "date",
      "required": true
    },
    {
      "id": "backup_date",
      "label": "A backup date",
      "type": "date"
    },
    {
      "id": "shoot_window",
      "label": "Preferred time of day",
      "type": "single_choice",
      "options": [
        "Morning",
        "Afternoon",
        "Evening",
        "Flexible"
      ]
    },
    {
      "id": "shoot_location",
      "label": "Where will the shoot take place?",
      "type": "long_text",
      "required": true,
      "max_length": 500
    },
    {
      "id": "shoot_length",
      "label": "How long do you think you need?",
      "type": "single_choice",
      "options": [
        "Under an hour",
        "1 to 2 hours",
        "Half a day",
        "A full day",
        "I am not sure"
      ]
    },
    {
      "id": "people_photographed",
      "label": "How many people will be photographed?",
      "type": "number",
      "min": 1,
      "max": 500
    },
    {
      "id": "photo_purpose",
      "label": "How will the photos be used?",
      "type": "single_choice",
      "options": [
        "Personal use",
        "My business or website",
        "Print or publication",
        "I am not sure"
      ]
    },
    {
      "id": "needed_by",
      "label": "Do you need edited photos by a date?",
      "type": "date"
    },
    {
      "id": "mood_reference",
      "label": "A link to a style you like",
      "type": "url"
    },
    {
      "id": "extra_requests",
      "label": "Anything else I should know?",
      "type": "long_text",
      "max_length": 1000
    },
    {
      "id": "request_understood",
      "label": "I understand this is a request, not a confirmed booking",
      "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 photo shoot","description":"Tell us what you need. This is a request. We will check our calendar and reply to confirm.","fields":[{"id":"booker_name","label":"Your name","type":"short_text","required":true,"max_length":150},{"id":"booker_email","label":"Your email","type":"email","required":true},{"id":"booker_phone","label":"Your phone","type":"phone"},{"id":"shoot_type","label":"What do you need photographed?","type":"single_choice","required":true,"options":["Portraits","A family","An event","Products","A property","Headshots","Something else"]},{"id":"first_choice_date","label":"Your preferred date","type":"date","required":true},{"id":"backup_date","label":"A backup date","type":"date"},{"id":"shoot_window","label":"Preferred time of day","type":"single_choice","options":["Morning","Afternoon","Evening","Flexible"]},{"id":"shoot_location","label":"Where will the shoot take place?","type":"long_text","required":true,"max_length":500},{"id":"shoot_length","label":"How long do you think you need?","type":"single_choice","options":["Under an hour","1 to 2 hours","Half a day","A full day","I am not sure"]},{"id":"people_photographed","label":"How many people will be photographed?","type":"number","min":1,"max":500},{"id":"photo_purpose","label":"How will the photos be used?","type":"single_choice","options":["Personal use","My business or website","Print or publication","I am not sure"]},{"id":"needed_by","label":"Do you need edited photos by a date?","type":"date"},{"id":"mood_reference","label":"A link to a style you like","type":"url"},{"id":"extra_requests","label":"Anything else I should know?","type":"long_text","max_length":1000},{"id":"request_understood","label":"I understand this is a request, not a confirmed booking","type":"checkbox","required":true}]}'

JSON definition

json
{
  "title": "Request a photo shoot",
  "description": "Tell us what you need. This is a request. We will check our calendar and reply to confirm.",
  "fields": [
    {
      "id": "booker_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "booker_email",
      "label": "Your email",
      "type": "email",
      "required": true
    },
    {
      "id": "booker_phone",
      "label": "Your phone",
      "type": "phone"
    },
    {
      "id": "shoot_type",
      "label": "What do you need photographed?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Portraits",
        "A family",
        "An event",
        "Products",
        "A property",
        "Headshots",
        "Something else"
      ]
    },
    {
      "id": "first_choice_date",
      "label": "Your preferred date",
      "type": "date",
      "required": true
    },
    {
      "id": "backup_date",
      "label": "A backup date",
      "type": "date"
    },
    {
      "id": "shoot_window",
      "label": "Preferred time of day",
      "type": "single_choice",
      "options": [
        "Morning",
        "Afternoon",
        "Evening",
        "Flexible"
      ]
    },
    {
      "id": "shoot_location",
      "label": "Where will the shoot take place?",
      "type": "long_text",
      "required": true,
      "max_length": 500
    },
    {
      "id": "shoot_length",
      "label": "How long do you think you need?",
      "type": "single_choice",
      "options": [
        "Under an hour",
        "1 to 2 hours",
        "Half a day",
        "A full day",
        "I am not sure"
      ]
    },
    {
      "id": "people_photographed",
      "label": "How many people will be photographed?",
      "type": "number",
      "min": 1,
      "max": 500
    },
    {
      "id": "photo_purpose",
      "label": "How will the photos be used?",
      "type": "single_choice",
      "options": [
        "Personal use",
        "My business or website",
        "Print or publication",
        "I am not sure"
      ]
    },
    {
      "id": "needed_by",
      "label": "Do you need edited photos by a date?",
      "type": "date"
    },
    {
      "id": "mood_reference",
      "label": "A link to a style you like",
      "type": "url"
    },
    {
      "id": "extra_requests",
      "label": "Anything else I should know?",
      "type": "long_text",
      "max_length": 1000
    },
    {
      "id": "request_understood",
      "label": "I understand this is a request, not a confirmed booking",
      "type": "checkbox",
      "required": true
    }
  ]
}