> ## 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.

# Event Schedule Component

> Defines the structure for event timing and scheduling information within a QR Code category. This component supports time zones, recurrence patterns, and calendar integration for event-based QR Codes.

## Overview

The **Event Schedule Component** enables event-based QR Codes (like **Event** and **Wedding** categories) to include structured scheduling information.\
It defines key event details such as **start and end dates**, **time zones**, **recurrence settings**, and **calendar integrations**.\
This ensures that event QR Codes provide accurate, localized, and user-friendly event timing data.

## Properties

| Property          | Type      | Required               | Description                                                                                                                                              |
| :---------------- | :-------- | :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **title**         | `string`  | No                     | Title of the event. Maximum 50 characters.                                                                                                               |
| **startDate**     | `string`  | ✅ Yes                  | Start date of the event (ISO 8601 format recommended).                                                                                                   |
| **endDate**       | `string`  | Conditionally required | End date of the event. Required if `allDayEvent` is `false`.                                                                                             |
| **timeZone**      | `string`  | ✅ Yes                  | Time zone identifier (e.g., `Asia/Kolkata`, `UTC`).                                                                                                      |
| **repeat**        | `boolean` | No                     | Indicates if the event repeats periodically.                                                                                                             |
| **recurrence**    | `string`  | No                     | Defines recurrence frequency. Supported values: `daily`, `weekly`, `monthly`, `yearly`.                                                                  |
| **allDayEvent**   | `boolean` | No                     | Whether the event lasts all day. Default: `false`.                                                                                                       |
| **timeFormat**    | `string`  | No                     | Defines time format for display. Options: `12h` or `24h`. Default: `24h`.                                                                                |
| **dateFormat**    | `string`  | No                     | Defines date display format. Options: `MM-dd-yyyy`, `dd-MM-yyyy`, `yyyy-MM-dd`, `M/dd/yyyy`, `MMM d, yyyy`. Default: `MM-dd-yyyy`.                       |
| **separator**     | `object`  | No                     | Reference to [Separator Component](/guides/category-components/components/separator). Controls spacing or visual dividers between sections.              |
| **addToCalender** | `object`  | No                     | Configuration for “Add to Calendar” actions. Includes `tracking` from [Event Tracking Component](/guides/category-components/components/event_tracking). |
| **formatting**    | `object`  | No                     | Defines text and card layout styles via Style Components.                                                                                                |

***

## Used in Categories

This component is used in the following QR Code categories:

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

## Example Schema

<CodeGroup>
  ```json Schema theme={null}
  {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "definitions": {},
    "title": "Event Schedule component",
    "description": "Validate event schedule component schema",
    "type": "object",
    "additionalProperties": false,
    "required": [
      "startDate",
      "timeZone"
    ],
    "properties": {
      "title": {
        "type": "string",
        "maxLength": 50,
        "description": "Title of the event"
      },
      "startDate": {
        "type": "string"
      },
      "endDate": {
        "type": "string"
      },
      "timeZone": {
        "type": "string"
      },
      "repeat": {
        "type": "boolean"
      },
      "recurrence": {
        "type": "string",
        "enum": [
          "daily",
          "weekly",
          "monthly",
          "yearly"
        ]
      },
      "allDayEvent": {
        "type": "boolean",
        "default": false
      },
      "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"
        ]
      },
      "separator": {
        "$ref": "separator.json"
      },
      "addToCalender": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "tracking": {
            "$ref": "event_tracking.json"
          }
        }
      },
      "formatting": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "textStyle": {
            "$ref": "style/text.json"
          },
          "cardStyle": {
            "$ref": "style/card.json"
          }
        }
      }
    },
    "if": {
      "properties": {
        "allDayEvent": {
          "const": false
        }
      },
      "required": [
        "allDayEvent"
      ]
    },
    "then": {
      "required": [
        "endDate"
      ]
    }
  }
  ```
</CodeGroup>

## Notes

* `startDate` and `timeZone` are **mandatory** for defining valid event schedules.
* If `allDayEvent` is **false**, you must also include `endDate`.
* The `addToCalender` object allows adding Google Calendar, iCal, or Outlook actions to the landing page.
* Ensure proper timezone handling for users accessing the QR Code globally.
