Summer camp registration form for parents on the move

Updated 2026-10-30

Camp runs in summer, but the paperwork starts in spring. I would rather parents register from the sofa than from a clipboard at the gate. They choose weeks, name pick-up people and note allergies. I read one sheet and plan groups.

Who it is for

Day camps, sports camps, holiday clubs and school programmes that run for several weeks and need a safe plan for every child.

What each question is for

  • Camper name and birth date: to place each child in an age group.
  • Weeks, extra care and friend request: help you plan numbers and groups.
  • Swim level and shirt size: needed for water days and kit orders.
  • Guardian and backup contact: two people you can call.
  • People allowed to collect: the names staff check at the gate.
  • Allergies and needs: what staff must act on.

What a parent's AI would ask

"Which weeks will your camper attend?" Then "Who may collect your camper?" Then "Does your camper have any allergies?" It shows every answer and sends only after a yes. See agent-fillable forms.

Before you use it

Payment happens elsewhere, since this form takes none. See forms for schools and forms for sports clubs. Ask parents to cover snacks with a team snack schedule, and keep year-round clubs in a student club sign-up.

Questions

How do I set a limit on places for each week?

The max_responses setting caps the whole form. For a separate cap per week, create one form for each week and share the right link for each.

Can parents upload the camp medical form?

No, the form takes no uploads. Ask for allergies and needs here, and collect any official forms on the first morning or by your usual method.

What if a parent needs to change weeks later?

They send the form again with the new weeks. Keep the newest row for that child and match repeats by name and birth date.

Try the form

Live demo ยท nothing is saved

Sign up for summer camp

Fill in one form for each camper. A parent or guardian should complete it.

Which weeks will your camper attend? (required)
Do you need extra care?
Swimming level
Camp shirt size

Write each person's name and relationship.

My camper has been to this camp before
Camp staff may take photos for the camp's own use

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": "Sign up for summer camp",
  "description": "Fill in one form for each camper. A parent or guardian should complete it.",
  "fields": [
    {
      "id": "camper_name",
      "label": "Camper's full name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "camper_birth_date",
      "label": "Camper's date of birth",
      "type": "date",
      "required": true
    },
    {
      "id": "camp_weeks",
      "label": "Which weeks will your camper attend?",
      "type": "multi_choice",
      "required": true,
      "options": [
        "Week 1",
        "Week 2",
        "Week 3",
        "Week 4",
        "Week 5",
        "Week 6"
      ]
    },
    {
      "id": "extra_care",
      "label": "Do you need extra care?",
      "type": "single_choice",
      "options": [
        "Early drop-off",
        "Late pick-up",
        "Both",
        "Neither"
      ]
    },
    {
      "id": "swim_level",
      "label": "Swimming level",
      "type": "single_choice",
      "options": [
        "Cannot swim yet",
        "Learning to swim",
        "Confident swimmer"
      ]
    },
    {
      "id": "camp_shirt_size",
      "label": "Camp shirt size",
      "type": "single_choice",
      "options": [
        "Child small",
        "Child medium",
        "Child large",
        "Adult small",
        "Adult medium"
      ]
    },
    {
      "id": "friend_request",
      "label": "A friend your camper would like to be with",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "guardian_name",
      "label": "Parent or guardian's full name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "guardian_phone",
      "label": "Phone number",
      "type": "phone",
      "required": true
    },
    {
      "id": "guardian_email",
      "label": "Email address",
      "type": "email",
      "required": true
    },
    {
      "id": "authorised_pickups",
      "label": "Who may collect your camper?",
      "type": "long_text",
      "required": true,
      "help": "Write each person's name and relationship.",
      "max_length": 600
    },
    {
      "id": "backup_contact",
      "label": "Backup contact name and phone",
      "type": "short_text",
      "max_length": 250
    },
    {
      "id": "allergies_and_needs",
      "label": "Allergies or needs the staff must know about",
      "type": "long_text",
      "max_length": 800
    },
    {
      "id": "returning_camper",
      "label": "My camper has been to this camp before",
      "type": "checkbox"
    },
    {
      "id": "photos_ok",
      "label": "Camp staff may take photos for the camp's own use",
      "type": "checkbox"
    }
  ]
}

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":"Sign up for summer camp","description":"Fill in one form for each camper. A parent or guardian should complete it.","fields":[{"id":"camper_name","label":"Camper'\''s full name","type":"short_text","required":true,"max_length":150},{"id":"camper_birth_date","label":"Camper'\''s date of birth","type":"date","required":true},{"id":"camp_weeks","label":"Which weeks will your camper attend?","type":"multi_choice","required":true,"options":["Week 1","Week 2","Week 3","Week 4","Week 5","Week 6"]},{"id":"extra_care","label":"Do you need extra care?","type":"single_choice","options":["Early drop-off","Late pick-up","Both","Neither"]},{"id":"swim_level","label":"Swimming level","type":"single_choice","options":["Cannot swim yet","Learning to swim","Confident swimmer"]},{"id":"camp_shirt_size","label":"Camp shirt size","type":"single_choice","options":["Child small","Child medium","Child large","Adult small","Adult medium"]},{"id":"friend_request","label":"A friend your camper would like to be with","type":"short_text","max_length":150},{"id":"guardian_name","label":"Parent or guardian'\''s full name","type":"short_text","required":true,"max_length":150},{"id":"guardian_phone","label":"Phone number","type":"phone","required":true},{"id":"guardian_email","label":"Email address","type":"email","required":true},{"id":"authorised_pickups","label":"Who may collect your camper?","type":"long_text","required":true,"help":"Write each person'\''s name and relationship.","max_length":600},{"id":"backup_contact","label":"Backup contact name and phone","type":"short_text","max_length":250},{"id":"allergies_and_needs","label":"Allergies or needs the staff must know about","type":"long_text","max_length":800},{"id":"returning_camper","label":"My camper has been to this camp before","type":"checkbox"},{"id":"photos_ok","label":"Camp staff may take photos for the camp'\''s own use","type":"checkbox"}]}'

JSON definition

json
{
  "title": "Sign up for summer camp",
  "description": "Fill in one form for each camper. A parent or guardian should complete it.",
  "fields": [
    {
      "id": "camper_name",
      "label": "Camper's full name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "camper_birth_date",
      "label": "Camper's date of birth",
      "type": "date",
      "required": true
    },
    {
      "id": "camp_weeks",
      "label": "Which weeks will your camper attend?",
      "type": "multi_choice",
      "required": true,
      "options": [
        "Week 1",
        "Week 2",
        "Week 3",
        "Week 4",
        "Week 5",
        "Week 6"
      ]
    },
    {
      "id": "extra_care",
      "label": "Do you need extra care?",
      "type": "single_choice",
      "options": [
        "Early drop-off",
        "Late pick-up",
        "Both",
        "Neither"
      ]
    },
    {
      "id": "swim_level",
      "label": "Swimming level",
      "type": "single_choice",
      "options": [
        "Cannot swim yet",
        "Learning to swim",
        "Confident swimmer"
      ]
    },
    {
      "id": "camp_shirt_size",
      "label": "Camp shirt size",
      "type": "single_choice",
      "options": [
        "Child small",
        "Child medium",
        "Child large",
        "Adult small",
        "Adult medium"
      ]
    },
    {
      "id": "friend_request",
      "label": "A friend your camper would like to be with",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "guardian_name",
      "label": "Parent or guardian's full name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "guardian_phone",
      "label": "Phone number",
      "type": "phone",
      "required": true
    },
    {
      "id": "guardian_email",
      "label": "Email address",
      "type": "email",
      "required": true
    },
    {
      "id": "authorised_pickups",
      "label": "Who may collect your camper?",
      "type": "long_text",
      "required": true,
      "help": "Write each person's name and relationship.",
      "max_length": 600
    },
    {
      "id": "backup_contact",
      "label": "Backup contact name and phone",
      "type": "short_text",
      "max_length": 250
    },
    {
      "id": "allergies_and_needs",
      "label": "Allergies or needs the staff must know about",
      "type": "long_text",
      "max_length": 800
    },
    {
      "id": "returning_camper",
      "label": "My camper has been to this camp before",
      "type": "checkbox"
    },
    {
      "id": "photos_ok",
      "label": "Camp staff may take photos for the camp's own use",
      "type": "checkbox"
    }
  ]
}