Snack schedule template for teams and classes

Updated 2026-10-30

A paper sign-up sheet gets lost in a kit bag, and a group chat buries the dates under photos. Two families bring oranges, and nobody brings water. I would rather collect the dates in one place and read them as a list.

How it works

  1. A parent gives their name, email and their child's name.
  2. They choose a game day and, if they like, a backup date.
  3. They say what they will bring, and how many children it will feed.
  4. They tick that the snack has no nuts. They can add an allergy note for the team.

A short chat with a parent's AI

"Which game day suits you?" Then "What will you bring?" Then "Does your snack contain nuts?" The AI shows the answers, asks "Send it?" and submits only after a yes. Learn more about agent-fillable forms.

Good to know

The form takes sign-ups. It does not lock dates, so check the CSV once a week and reply to a second family on the same day. For a strict one family per date, create one form per game day and cap it with max_responses.

Coaches who run a whole season can pair this with a team registration form. A school class can use the same idea, and a parent consent form pairs well when parents must also give permission. Browse forms for sports clubs and teams and forms for schools and teachers.

Questions

How do I stop two families picking the same date?

The form does not lock a date once it is taken. Sort the CSV by the snack_date column and message the second family, or make one form per game day with max_responses set to 1.

How do families see the final schedule?

You read the responses as CSV, then send the final schedule to the team yourself, for example in your usual group message. The form does not email families.

Why is the nut free box required?

Every family sees the rule before they send. If your team has no allergy rule, remove that field, or change its label to match the rule you do have.

Try the form

Live demo ยท nothing is saved

Sign up to bring snacks

Pick one game day for your family. We will confirm the final schedule by message.

What will you bring?

Ask the coach for the current team size.

Will you bring drinks as well?
My snack contains no nuts (required)
I am happy to swap dates if needed

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 to bring snacks",
  "description": "Pick one game day for your family. We will confirm the final schedule by message.",
  "fields": [
    {
      "id": "parent_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "parent_email",
      "label": "Your email",
      "type": "email",
      "required": true
    },
    {
      "id": "child_name",
      "label": "Your child's name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "snack_date",
      "label": "Which game day will you bring the snack?",
      "type": "date",
      "required": true
    },
    {
      "id": "backup_date",
      "label": "A second date, in case the first is taken",
      "type": "date"
    },
    {
      "id": "snack_type",
      "label": "What will you bring?",
      "type": "single_choice",
      "options": [
        "Cut fruit",
        "Vegetable sticks",
        "Crackers or cheese",
        "Baked treats",
        "Something else"
      ]
    },
    {
      "id": "children_fed",
      "label": "How many children will it feed?",
      "type": "number",
      "help": "Ask the coach for the current team size.",
      "min": 1,
      "max": 40
    },
    {
      "id": "drinks_too",
      "label": "Will you bring drinks as well?",
      "type": "single_choice",
      "options": [
        "Snack and drinks",
        "Snack only"
      ]
    },
    {
      "id": "nut_free_confirmed",
      "label": "My snack contains no nuts",
      "type": "checkbox",
      "required": true
    },
    {
      "id": "family_allergy_note",
      "label": "Allergies in our family the team should know about",
      "type": "short_text",
      "max_length": 300
    },
    {
      "id": "date_swap_ok",
      "label": "I am happy to swap dates if needed",
      "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 to bring snacks","description":"Pick one game day for your family. We will confirm the final schedule by message.","fields":[{"id":"parent_name","label":"Your name","type":"short_text","required":true,"max_length":150},{"id":"parent_email","label":"Your email","type":"email","required":true},{"id":"child_name","label":"Your child'\''s name","type":"short_text","required":true,"max_length":150},{"id":"snack_date","label":"Which game day will you bring the snack?","type":"date","required":true},{"id":"backup_date","label":"A second date, in case the first is taken","type":"date"},{"id":"snack_type","label":"What will you bring?","type":"single_choice","options":["Cut fruit","Vegetable sticks","Crackers or cheese","Baked treats","Something else"]},{"id":"children_fed","label":"How many children will it feed?","type":"number","help":"Ask the coach for the current team size.","min":1,"max":40},{"id":"drinks_too","label":"Will you bring drinks as well?","type":"single_choice","options":["Snack and drinks","Snack only"]},{"id":"nut_free_confirmed","label":"My snack contains no nuts","type":"checkbox","required":true},{"id":"family_allergy_note","label":"Allergies in our family the team should know about","type":"short_text","max_length":300},{"id":"date_swap_ok","label":"I am happy to swap dates if needed","type":"checkbox"}]}'

JSON definition

json
{
  "title": "Sign up to bring snacks",
  "description": "Pick one game day for your family. We will confirm the final schedule by message.",
  "fields": [
    {
      "id": "parent_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "parent_email",
      "label": "Your email",
      "type": "email",
      "required": true
    },
    {
      "id": "child_name",
      "label": "Your child's name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "snack_date",
      "label": "Which game day will you bring the snack?",
      "type": "date",
      "required": true
    },
    {
      "id": "backup_date",
      "label": "A second date, in case the first is taken",
      "type": "date"
    },
    {
      "id": "snack_type",
      "label": "What will you bring?",
      "type": "single_choice",
      "options": [
        "Cut fruit",
        "Vegetable sticks",
        "Crackers or cheese",
        "Baked treats",
        "Something else"
      ]
    },
    {
      "id": "children_fed",
      "label": "How many children will it feed?",
      "type": "number",
      "help": "Ask the coach for the current team size.",
      "min": 1,
      "max": 40
    },
    {
      "id": "drinks_too",
      "label": "Will you bring drinks as well?",
      "type": "single_choice",
      "options": [
        "Snack and drinks",
        "Snack only"
      ]
    },
    {
      "id": "nut_free_confirmed",
      "label": "My snack contains no nuts",
      "type": "checkbox",
      "required": true
    },
    {
      "id": "family_allergy_note",
      "label": "Allergies in our family the team should know about",
      "type": "short_text",
      "max_length": 300
    },
    {
      "id": "date_swap_ok",
      "label": "I am happy to swap dates if needed",
      "type": "checkbox"
    }
  ]
}