A family reunion registration form for every branch

Updated 2026-10-30

Family reunions fall apart in the group chat. An aunt replies on Tuesday, a cousin forgets, and nobody knows how many beds you need. I would send one link to every branch and ask each household once.

Before the reunion

Send the link early. Each household says which branch it belongs to, how many adults and children are coming, and how old the children are. Arrival and departure dates tell you who needs which night. For other gatherings, see forms for events.

While the form is open

Relatives choose where they will stay, which meals to count them in for and a dish they could bring. A box asks about step-free access, so you can pick rooms and paths that work for everyone.

A cousin who dislikes forms can ask their own AI. It might ask "How many adults and children are coming?" Then "When do you arrive and leave?" Then "Where will you stay?" It shows the answers and sends them only after a yes. Read about agent-fillable forms.

After the deadline

Download the CSV. Count beds, meals and dishes, and write the seating plan from the branch column. The last question lets relatives add names and dates for the family tree, so you start the family archive without extra work.

Planning a craft hour for the children? A workshop registration form takes names for it. Relatives abroad can join a video call after a webinar registration form.

Questions

How do I count beds and meals?

Download the CSV. Add up adults_attending and children_attending for the headcount, then filter lodging_plan for beds and meals_needed for each meal. The dates show who needs which night.

Can a relative who dislikes forms still take part?

Yes. They can hand the link to their own AI chat, which asks for each missing answer and sends only after a yes. A cousin can also reply for the whole household.

How do I keep each family branch together?

The first question asks which branch each household belongs to. Sort the CSV by that column and you get households grouped, which helps with seating and room lists.

Try the form

Live demo ยท nothing is saved

Family reunion sign up

One reply per household, please. We use your answers to plan beds, meals and seating.

Where will you stay?
Which meals should we count you in for?

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": "Family reunion sign up",
  "description": "One reply per household, please. We use your answers to plan beds, meals and seating.",
  "fields": [
    {
      "id": "family_branch",
      "label": "Which branch of the family are you from?",
      "type": "short_text",
      "required": true,
      "max_length": 120
    },
    {
      "id": "household_contact",
      "label": "Name of the person replying",
      "type": "short_text",
      "required": true,
      "max_length": 120
    },
    {
      "id": "contact_email",
      "label": "Email",
      "type": "email",
      "required": true
    },
    {
      "id": "contact_phone",
      "label": "Phone",
      "type": "phone"
    },
    {
      "id": "adults_attending",
      "label": "How many adults are coming?",
      "type": "number",
      "required": true,
      "min": 1,
      "max": 20
    },
    {
      "id": "children_attending",
      "label": "How many children are coming?",
      "type": "number",
      "min": 0,
      "max": 20
    },
    {
      "id": "children_ages",
      "label": "Ages of the children",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "arrival_date",
      "label": "Arrival date",
      "type": "date"
    },
    {
      "id": "departure_date",
      "label": "Departure date",
      "type": "date"
    },
    {
      "id": "lodging_plan",
      "label": "Where will you stay?",
      "type": "single_choice",
      "options": [
        "With family",
        "Hotel or rental nearby",
        "Camping or caravan",
        "Day visit only"
      ]
    },
    {
      "id": "meals_needed",
      "label": "Which meals should we count you in for?",
      "type": "multi_choice",
      "options": [
        "Friday dinner",
        "Saturday lunch",
        "Saturday dinner",
        "Sunday brunch"
      ]
    },
    {
      "id": "dish_to_bring",
      "label": "A dish or drink you could bring",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "mobility_needs",
      "label": "Anyone who needs step-free access or a seat nearby?",
      "type": "long_text",
      "max_length": 500
    },
    {
      "id": "family_tree_notes",
      "label": "Names or dates to add to the family tree",
      "type": "long_text",
      "max_length": 1000
    }
  ]
}

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":"Family reunion sign up","description":"One reply per household, please. We use your answers to plan beds, meals and seating.","fields":[{"id":"family_branch","label":"Which branch of the family are you from?","type":"short_text","required":true,"max_length":120},{"id":"household_contact","label":"Name of the person replying","type":"short_text","required":true,"max_length":120},{"id":"contact_email","label":"Email","type":"email","required":true},{"id":"contact_phone","label":"Phone","type":"phone"},{"id":"adults_attending","label":"How many adults are coming?","type":"number","required":true,"min":1,"max":20},{"id":"children_attending","label":"How many children are coming?","type":"number","min":0,"max":20},{"id":"children_ages","label":"Ages of the children","type":"short_text","max_length":100},{"id":"arrival_date","label":"Arrival date","type":"date"},{"id":"departure_date","label":"Departure date","type":"date"},{"id":"lodging_plan","label":"Where will you stay?","type":"single_choice","options":["With family","Hotel or rental nearby","Camping or caravan","Day visit only"]},{"id":"meals_needed","label":"Which meals should we count you in for?","type":"multi_choice","options":["Friday dinner","Saturday lunch","Saturday dinner","Sunday brunch"]},{"id":"dish_to_bring","label":"A dish or drink you could bring","type":"short_text","max_length":150},{"id":"mobility_needs","label":"Anyone who needs step-free access or a seat nearby?","type":"long_text","max_length":500},{"id":"family_tree_notes","label":"Names or dates to add to the family tree","type":"long_text","max_length":1000}]}'

JSON definition

json
{
  "title": "Family reunion sign up",
  "description": "One reply per household, please. We use your answers to plan beds, meals and seating.",
  "fields": [
    {
      "id": "family_branch",
      "label": "Which branch of the family are you from?",
      "type": "short_text",
      "required": true,
      "max_length": 120
    },
    {
      "id": "household_contact",
      "label": "Name of the person replying",
      "type": "short_text",
      "required": true,
      "max_length": 120
    },
    {
      "id": "contact_email",
      "label": "Email",
      "type": "email",
      "required": true
    },
    {
      "id": "contact_phone",
      "label": "Phone",
      "type": "phone"
    },
    {
      "id": "adults_attending",
      "label": "How many adults are coming?",
      "type": "number",
      "required": true,
      "min": 1,
      "max": 20
    },
    {
      "id": "children_attending",
      "label": "How many children are coming?",
      "type": "number",
      "min": 0,
      "max": 20
    },
    {
      "id": "children_ages",
      "label": "Ages of the children",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "arrival_date",
      "label": "Arrival date",
      "type": "date"
    },
    {
      "id": "departure_date",
      "label": "Departure date",
      "type": "date"
    },
    {
      "id": "lodging_plan",
      "label": "Where will you stay?",
      "type": "single_choice",
      "options": [
        "With family",
        "Hotel or rental nearby",
        "Camping or caravan",
        "Day visit only"
      ]
    },
    {
      "id": "meals_needed",
      "label": "Which meals should we count you in for?",
      "type": "multi_choice",
      "options": [
        "Friday dinner",
        "Saturday lunch",
        "Saturday dinner",
        "Sunday brunch"
      ]
    },
    {
      "id": "dish_to_bring",
      "label": "A dish or drink you could bring",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "mobility_needs",
      "label": "Anyone who needs step-free access or a seat nearby?",
      "type": "long_text",
      "max_length": 500
    },
    {
      "id": "family_tree_notes",
      "label": "Names or dates to add to the family tree",
      "type": "long_text",
      "max_length": 1000
    }
  ]
}