> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scanova.io/llms.txt
> Use this file to discover all available pages before exploring further.

# RSVP Component

> Defines the schema for RSVP (Respond to Invitation) functionality in QR Code landing pages. Enables invitees to confirm attendance, submit guest details, and send responses directly to the event organizer.

## Overview

The **RSVP Component** manages guest responses for **Event** and **Wedding** QR Codes.\
It allows customization of invitee information fields, RSVP deadlines, and submission settings — ensuring smooth event attendance tracking and communication.

It also supports **custom forms**, **guest limits**, and **localized date/time formats**, while maintaining compatibility with legacy RSVP structures (deprecated fields retained for backward support).

## Properties

| Property              | Type      | Required | Description                                                                                                                               |
| :-------------------- | :-------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------- |
| **receiverEmail**     | `string`  | No       | Organizer’s email where RSVP submissions are sent. Must be a valid email address.                                                         |
| **inviteeDetails**    | `object`  | ✅ Yes    | Defines which fields the invitee must fill out (name, email, phone).                                                                      |
| • **name**            | `boolean` | ✅ Yes    | Whether to collect the invitee’s name (always required).                                                                                  |
| • **email**           | `boolean` | No       | If `true`, requests the invitee’s email address.                                                                                          |
| • **phone**           | `boolean` | No       | If `true`, requests the invitee’s phone number.                                                                                           |
| **rsvpBy**            | `object`  | No       | Sets the RSVP deadline and time format.                                                                                                   |
| • **endDate**         | `string`  | ✅ Yes    | Date after which RSVP submissions will be closed.                                                                                         |
| • **timeZone**        | `string`  | ✅ Yes    | Timezone for RSVP deadline.                                                                                                               |
| • **timeFormat**      | `string`  | No       | Time format, either `12h` or `24h`. Default: `24h`.                                                                                       |
| • **dateFormat**      | `string`  | No       | Date format used for display. Default: `MM-dd-yyyy`.                                                                                      |
| **numberOfGuests**    | `number`  | No       | Number of additional guests the invitee can bring (0–50). Default: `0`.                                                                   |
| **questions**         | `object`  | No       | Reference to the custom RSVP form schema ([rsvp\_form](/guides/category-components/components/rsvp_form)).                                |
| **submitButton**      | `object`  | No       | Button reference for form submission ([Base Button Component](/guides/category-components/components/button)).                            |
| **formatting**        | `object`  | No       | Defines custom styles for text and card layout.                                                                                           |
| • **textStyle**       | `object`  | No       | Reference to \[`style/text.json`].                                                                                                        |
| • **cardStyle**       | `object`  | No       | Reference to \[`style/card.json`].                                                                                                        |
| **Deprecated Fields** |           |          | `answerFormat`\_, *`askFromGuests`*, *`askFromInvitee`*, *`question`*, \_`options`*are deprecated and retained for legacy compatibility.* |

## Used in Categories

This component is used in the following categories:

* [Event](/guides/category-components/categories/event)
* [Wedding](/guides/category-components/categories/wedding)

## Schema

<CodeGroup>
  ```json Schema theme={null}
  {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "definitions": {},
    "title": "RSVP Component",
    "description": "Validate RSVP component schema",
    "type": "object",
    "required": [
      "inviteeDetails"
    ],
    "additionalProperties": false,
    "properties": {
      "receiverEmail": {
        "type": "string",
        "format": "email",
        "pattern": "^\\S+@\\S+\\.\\S+$",
        "description": "Email where RSVP will be sent"
      },
      "inviteeDetails": {
        "type": "object",
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "boolean",
            "default": true,
            "description": "Name will be always asked"
          },
          "email": {
            "type": "boolean",
            "default": false,
            "description": "If true, email will be asked from the invitee"
          },
          "phone": {
            "type": "boolean",
            "default": false,
            "description": "If true, phone number will be asked from the invitee"
          }
        }
      },
      "rsvpBy": {
        "type": "object",
        "additionalProperties": false,
        "description": "Rsvp end date.",
        "required": [
          "endDate",
          "timeZone"
        ],
        "properties": {
          "endDate": {
            "type": "string"
          },
          "timeZone": {
            "type": "string"
          },
          "timeFormat": {
            "type": "string",
            "default": "24h",
            "enum": [
              "12h",
              "24h"
            ]
          },
          "dateFormat": {
            "type": "string",
            "default": "MM-dd-yyyy",
            "enum": [
              "MM-dd-yyyy",
              "dd-MM-yyyy",
              "yyyy-MM-dd",
              "M/dd/yyyy",
              "MMM d, yyyy"
            ]
          }
        }
      },
      "numberOfGuests": {
        "type": "number",
        "minimum": 0,
        "default": 0,
        "maximum": 50,
        "$comment": "A maximum of 50 guest can be added.",
        "description": "Additional number to guests invitee an bring with them"
      },
      "answerFormat": {
        "type": "string",
        "description": "** This JSON OBJECT IS DEPRECATED ** ",
        "enum": [
          "option",
          "paragraph"
        ]
      },
      "askFromGuests": {
        "type": "boolean",
        "default": false,
        "description": "Whether to ask the question from quests as well. ** This JSON OBJECT IS DEPRECATED **"
      },
      "askFromInvitee": {
        "type": "boolean",
        "description": "Whether to ask the question from quests as well. ** This JSON OBJECT IS DEPRECATED **"
      },
      "question": {
        "type": "string",
        "maxLength": 1000,
        "description": "Question to ask from invitee or guests ** This JSON OBJECT IS DEPRECATED ** "
      },
      "options": {
        "type": "array",
        "description": "Array of strings to use when answerFormat is set to option. ** This JSON OBJECT IS DEPRECATED ** ",
        "maxItems": 50,
        "$comment": "A maximum of 50 options can be added",
        "items": {
          "type": "object",
          "required": [
            "option"
          ],
          "additionalProperties": false,
          "properties": {
            "option": {
              "type": "string",
              "maxLength": 500
            }
          }
        }
      },
      "questions": {
        "$ref": "rsvp_form.json"
      },
      "submitButton": {
        "$ref": "_base_button.json"
      },
      "formatting": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "textStyle": {
            "$ref": "style/text.json"
          },
          "cardStyle": {
            "$ref": "style/card.json"
          }
        }
      }
    }
  }
  ```
</CodeGroup>

## Notes

* The `inviteeDetails.name` field is **mandatory** and always enabled.
* Use `receiverEmail` to automatically route submissions to event hosts.
* **Deprecated properties** (`answerFormat`, `question`, etc.) should be avoided in new implementations.
* Use `rsvp_form` reference to build structured multi-question RSVP forms.
