Wedding RSVP form: one link for every reply

Updated 2026-10-30

Paper RSVP cards come back late, lost or half filled in. I would rather send one link. Guests answer on their phone, or hand the form to their own AI. You get a clean guest list.

Who it is for

Couples who run their own wedding, and planners who need a final headcount before the caterer calls.

What each question is for

  • Names of everyone in your party: so place cards are right the first time.
  • Will you be there: the answer you need before anything else.
  • Meal choice and dietary needs: your caterer asks for these weeks ahead.
  • Song request: guests enjoy it, and your DJ gets a head start.
  • Help finding a place to stay: shows who needs a hotel block.

What a guest's AI would ask

"Can you make it on the day?" Then "Who is coming with you?" Then "Which meal would each person like?" It shows the answers to the guest and sends them only after a yes. Read more about agent-fillable forms.

Before you send it

Set the close date to your RSVP deadline. Planning more than the ceremony? Browse forms for weddings and forms for events. A simple RSVP form works for the rehearsal dinner, and a wedding song request form or a wedding guest book pairs well with this one.

Questions

Can guests reply without making an account?

Yes. Guests open the public link and answer. They can also hand the form to their own AI agent and check the answers before anything is sent.

How do I get a final headcount for the caterer?

Download the responses as CSV. Filter the attending column for yes, then add up guest_count. The meal_choice column gives you the count per dish.

Can I stop replies after a deadline?

Yes. Set close_at in the form settings to your RSVP date. You can reopen the form for a late guest.

Try the form

Live demo ยท nothing is saved

Will you celebrate with us?

Please reply by the date on your invitation. One reply per household is fine.

Write each full name as it should appear on a place card.

Will you be there? (required)
Meal choice

Pick one for each person coming.

We would like help finding a place to stay

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": "Will you celebrate with us?",
  "description": "Please reply by the date on your invitation. One reply per household is fine.",
  "fields": [
    {
      "id": "guest_names",
      "label": "Names of everyone in your party",
      "type": "long_text",
      "required": true,
      "help": "Write each full name as it should appear on a place card.",
      "max_length": 500
    },
    {
      "id": "email",
      "label": "Email for updates",
      "type": "email",
      "required": true
    },
    {
      "id": "attending",
      "label": "Will you be there?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Yes, we will be there",
        "Sadly, we cannot come"
      ]
    },
    {
      "id": "guest_count",
      "label": "How many people are coming?",
      "type": "number",
      "min": 0,
      "max": 8
    },
    {
      "id": "meal_choice",
      "label": "Meal choice",
      "type": "multi_choice",
      "help": "Pick one for each person coming.",
      "options": [
        "Meat",
        "Fish",
        "Vegetarian",
        "Vegan",
        "Children's meal"
      ]
    },
    {
      "id": "dietary_needs",
      "label": "Allergies or dietary needs",
      "type": "long_text",
      "max_length": 500
    },
    {
      "id": "song_request",
      "label": "A song that will get you dancing",
      "type": "short_text",
      "max_length": 200
    },
    {
      "id": "needs_stay",
      "label": "We would like help finding a place to stay",
      "type": "checkbox"
    },
    {
      "id": "note_to_couple",
      "label": "A note for the couple",
      "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":"Will you celebrate with us?","description":"Please reply by the date on your invitation. One reply per household is fine.","fields":[{"id":"guest_names","label":"Names of everyone in your party","type":"long_text","required":true,"help":"Write each full name as it should appear on a place card.","max_length":500},{"id":"email","label":"Email for updates","type":"email","required":true},{"id":"attending","label":"Will you be there?","type":"single_choice","required":true,"options":["Yes, we will be there","Sadly, we cannot come"]},{"id":"guest_count","label":"How many people are coming?","type":"number","min":0,"max":8},{"id":"meal_choice","label":"Meal choice","type":"multi_choice","help":"Pick one for each person coming.","options":["Meat","Fish","Vegetarian","Vegan","Children'\''s meal"]},{"id":"dietary_needs","label":"Allergies or dietary needs","type":"long_text","max_length":500},{"id":"song_request","label":"A song that will get you dancing","type":"short_text","max_length":200},{"id":"needs_stay","label":"We would like help finding a place to stay","type":"checkbox"},{"id":"note_to_couple","label":"A note for the couple","type":"long_text","max_length":1000}]}'

JSON definition

json
{
  "title": "Will you celebrate with us?",
  "description": "Please reply by the date on your invitation. One reply per household is fine.",
  "fields": [
    {
      "id": "guest_names",
      "label": "Names of everyone in your party",
      "type": "long_text",
      "required": true,
      "help": "Write each full name as it should appear on a place card.",
      "max_length": 500
    },
    {
      "id": "email",
      "label": "Email for updates",
      "type": "email",
      "required": true
    },
    {
      "id": "attending",
      "label": "Will you be there?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Yes, we will be there",
        "Sadly, we cannot come"
      ]
    },
    {
      "id": "guest_count",
      "label": "How many people are coming?",
      "type": "number",
      "min": 0,
      "max": 8
    },
    {
      "id": "meal_choice",
      "label": "Meal choice",
      "type": "multi_choice",
      "help": "Pick one for each person coming.",
      "options": [
        "Meat",
        "Fish",
        "Vegetarian",
        "Vegan",
        "Children's meal"
      ]
    },
    {
      "id": "dietary_needs",
      "label": "Allergies or dietary needs",
      "type": "long_text",
      "max_length": 500
    },
    {
      "id": "song_request",
      "label": "A song that will get you dancing",
      "type": "short_text",
      "max_length": 200
    },
    {
      "id": "needs_stay",
      "label": "We would like help finding a place to stay",
      "type": "checkbox"
    },
    {
      "id": "note_to_couple",
      "label": "A note for the couple",
      "type": "long_text",
      "max_length": 1000
    }
  ]
}