A conference room booking form for requests

Updated 2026-10-30

Rooms get booked by email, by sticky note and by whoever walks in first. Then two teams arrive for one table. I want one place for the ask. I still keep the calendar, but I check it against the request and not against my memory.

Does it stop double bookings?

No. This is a request form, not a calendar. It does not show free rooms or lock a slot. I check each row against my calendar, then reply yes or no. A room booking form just reads better than a pile of emails.

What does the organiser tell me?

Room, date, start and end, number of people, layout and equipment. Headcount and layout decide whether the boardroom is right or too small. The guests box tells reception to expect visitors.

How would a person's AI help?

It might ask: "Which room do you want?" Then "Which date and what time?" Then "How many people are coming?" It shows the answers and sends them only after a yes. See agent-fillable forms.

Next steps

Guests from outside the company can sign in with a visitor registration form. A broken projector goes into a work order request. More tools are in IT and operations forms.

Questions

How do I spot clashes in the CSV?

Sort by `meeting_date` and `room_wanted`, and look for rows that share both. Compare the start and end times by eye, and confirm only one of them.

Can I limit requests to working days?

The form cannot block dates. Say which days you accept in the form description, and refuse the rest when you reply.

How do I handle catering details?

The catering box only says yes or no. Add a short text field for dietary needs before you publish, or ask the organiser by email once you see the request.

Try the form

Live demo ยท nothing is saved

Request a meeting room

Send your request at least a day ahead if you can. We confirm by email once the room is free.

Which room do you want? (required)
Room layout
Equipment you need
We would like refreshments
Guests from outside the company are coming
Is this a repeat booking?

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 meeting room",
  "description": "Send your request at least a day ahead if you can. We confirm by email once the room is free.",
  "fields": [
    {
      "id": "organiser_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "organiser_email",
      "label": "Your email",
      "type": "email",
      "required": true
    },
    {
      "id": "room_wanted",
      "label": "Which room do you want?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Boardroom",
        "Small meeting room",
        "Training room",
        "Phone booth",
        "Event space"
      ]
    },
    {
      "id": "meeting_date",
      "label": "Date of the meeting",
      "type": "date",
      "required": true
    },
    {
      "id": "start_time",
      "label": "Start time",
      "type": "short_text",
      "required": true,
      "max_length": 30
    },
    {
      "id": "end_time",
      "label": "End time",
      "type": "short_text",
      "required": true,
      "max_length": 30
    },
    {
      "id": "meeting_title",
      "label": "What is the meeting?",
      "type": "short_text",
      "max_length": 200
    },
    {
      "id": "attendee_count",
      "label": "How many people will come?",
      "type": "number",
      "required": true,
      "min": 1,
      "max": 200
    },
    {
      "id": "room_layout",
      "label": "Room layout",
      "type": "single_choice",
      "options": [
        "Boardroom table",
        "U shape",
        "Classroom",
        "Theatre",
        "No preference"
      ]
    },
    {
      "id": "equipment_needed",
      "label": "Equipment you need",
      "type": "multi_choice",
      "options": [
        "Screen or projector",
        "Video call kit",
        "Whiteboard",
        "Microphone",
        "Speakerphone"
      ]
    },
    {
      "id": "catering_needed",
      "label": "We would like refreshments",
      "type": "checkbox"
    },
    {
      "id": "outside_guests",
      "label": "Guests from outside the company are coming",
      "type": "checkbox"
    },
    {
      "id": "repeat_pattern",
      "label": "Is this a repeat booking?",
      "type": "single_choice",
      "options": [
        "One time",
        "Every week",
        "Every month"
      ]
    }
  ]
}

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 meeting room","description":"Send your request at least a day ahead if you can. We confirm by email once the room is free.","fields":[{"id":"organiser_name","label":"Your name","type":"short_text","required":true,"max_length":150},{"id":"organiser_email","label":"Your email","type":"email","required":true},{"id":"room_wanted","label":"Which room do you want?","type":"single_choice","required":true,"options":["Boardroom","Small meeting room","Training room","Phone booth","Event space"]},{"id":"meeting_date","label":"Date of the meeting","type":"date","required":true},{"id":"start_time","label":"Start time","type":"short_text","required":true,"max_length":30},{"id":"end_time","label":"End time","type":"short_text","required":true,"max_length":30},{"id":"meeting_title","label":"What is the meeting?","type":"short_text","max_length":200},{"id":"attendee_count","label":"How many people will come?","type":"number","required":true,"min":1,"max":200},{"id":"room_layout","label":"Room layout","type":"single_choice","options":["Boardroom table","U shape","Classroom","Theatre","No preference"]},{"id":"equipment_needed","label":"Equipment you need","type":"multi_choice","options":["Screen or projector","Video call kit","Whiteboard","Microphone","Speakerphone"]},{"id":"catering_needed","label":"We would like refreshments","type":"checkbox"},{"id":"outside_guests","label":"Guests from outside the company are coming","type":"checkbox"},{"id":"repeat_pattern","label":"Is this a repeat booking?","type":"single_choice","options":["One time","Every week","Every month"]}]}'

JSON definition

json
{
  "title": "Request a meeting room",
  "description": "Send your request at least a day ahead if you can. We confirm by email once the room is free.",
  "fields": [
    {
      "id": "organiser_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "organiser_email",
      "label": "Your email",
      "type": "email",
      "required": true
    },
    {
      "id": "room_wanted",
      "label": "Which room do you want?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Boardroom",
        "Small meeting room",
        "Training room",
        "Phone booth",
        "Event space"
      ]
    },
    {
      "id": "meeting_date",
      "label": "Date of the meeting",
      "type": "date",
      "required": true
    },
    {
      "id": "start_time",
      "label": "Start time",
      "type": "short_text",
      "required": true,
      "max_length": 30
    },
    {
      "id": "end_time",
      "label": "End time",
      "type": "short_text",
      "required": true,
      "max_length": 30
    },
    {
      "id": "meeting_title",
      "label": "What is the meeting?",
      "type": "short_text",
      "max_length": 200
    },
    {
      "id": "attendee_count",
      "label": "How many people will come?",
      "type": "number",
      "required": true,
      "min": 1,
      "max": 200
    },
    {
      "id": "room_layout",
      "label": "Room layout",
      "type": "single_choice",
      "options": [
        "Boardroom table",
        "U shape",
        "Classroom",
        "Theatre",
        "No preference"
      ]
    },
    {
      "id": "equipment_needed",
      "label": "Equipment you need",
      "type": "multi_choice",
      "options": [
        "Screen or projector",
        "Video call kit",
        "Whiteboard",
        "Microphone",
        "Speakerphone"
      ]
    },
    {
      "id": "catering_needed",
      "label": "We would like refreshments",
      "type": "checkbox"
    },
    {
      "id": "outside_guests",
      "label": "Guests from outside the company are coming",
      "type": "checkbox"
    },
    {
      "id": "repeat_pattern",
      "label": "Is this a repeat booking?",
      "type": "single_choice",
      "options": [
        "One time",
        "Every week",
        "Every month"
      ]
    }
  ]
}