---
updatedAt: 2026-04-20T23:10:42.000Z
---

Fetch the complete documentation index at: https://docs.luma.com/llms.txt. Use this file to discover all available pages before exploring further.

# Guest Registered

Triggered when a guest registers for an event, including re-registrations after cancellation.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Luma API",
    "version": "1.0.0",
    "description": "API for interacting with Luma's event platform.\n\n## Rate Limits\n\nThe Luma API uses a per-minute rate limit shared across `GET` and `POST` requests:\n\n- **Calendar API keys** and OAuth tokens: **200 requests/minute** per calendar.\n- **Organization API keys**: **500 requests/minute** per organization.\n\nWhen you exceed the limit the API returns `429 Too Many Requests`. Back off before retrying.",
    "contact": {
      "name": "Luma Support",
      "url": "https://help.luma.com"
    },
    "license": {
      "name": "Proprietary"
    }
  },
  "servers": [
    {
      "url": "https://public-api.luma.com",
      "description": "Production server"
    }
  ],
  "tags": [
    {
      "name": "Events"
    },
    {
      "name": "Calendars"
    },
    {
      "name": "Memberships"
    },
    {
      "name": "Webhooks"
    },
    {
      "name": "Webhook Types"
    },
    {
      "name": "Organizations"
    },
    {
      "name": "Miscellaneous"
    }
  ],
  "paths": {
    "/v1/events/get": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "Get Event",
        "parameters": [
          {
            "name": "event_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Event ID, this usually starts with evt-"
            },
            "description": "Event ID, this usually starts with evt-"
          }
        ],
        "description": "Return full details about an event you have manage access for, including hosts and a breakdown of guest counts by status.",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventDetail"
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/get": {
      "get": {
        "tags": [
          "Calendars"
        ],
        "summary": "Get Calendar",
        "parameters": [],
        "description": "Get information about the calendar.",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Calendar"
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/events/list": {
      "get": {
        "tags": [
          "Calendars"
        ],
        "summary": "List Events",
        "parameters": [
          {
            "name": "before",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
              "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
            },
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          {
            "name": "after",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
              "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
            },
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          {
            "name": "pagination_cursor",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Value of `next_cursor` from a previous request.",
              "type": "string"
            },
            "description": "Value of `next_cursor` from a previous request."
          },
          {
            "name": "pagination_limit",
            "in": "query",
            "required": false,
            "schema": {
              "description": "The number of items to return. The server will enforce a maximum number.",
              "type": "number"
            },
            "description": "The number of items to return. The server will enforce a maximum number."
          },
          {
            "name": "platforms",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Which event platforms to include. Defaults to `luma` for backwards compatibility. Pass as repeated query params, e.g. `?platforms=luma&platforms=external`.",
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "luma",
                  "external"
                ]
              }
            },
            "description": "Which event platforms to include. Defaults to `luma` for backwards compatibility. Pass as repeated query params, e.g. `?platforms=luma&platforms=external`."
          },
          {
            "name": "sort_column",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "start_at"
              ]
            }
          },
          {
            "name": "sort_direction",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc",
                "asc nulls last",
                "desc nulls last"
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Filter by calendar submission status. Defaults to `approved`.",
              "type": "string",
              "enum": [
                "approved",
                "pending"
              ]
            },
            "description": "Filter by calendar submission status. Defaults to `approved`."
          },
          {
            "name": "access",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Which access values to include (`manage`, `view`). Defaults to `manage`, returning only events the Calendar manages. Pass as repeated query params, e.g. `?access=manage&access=view`. Include `view` to also return events that are listed on the Calendar but managed elsewhere — those entries come back with `access: \"view\"`, their location obfuscated to city level, and host-only fields like `meeting_url`, `registration_questions`, and `feedback_email` omitted.",
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "manage",
                  "view"
                ]
              }
            },
            "description": "Which access values to include (`manage`, `view`). Defaults to `manage`, returning only events the Calendar manages. Pass as repeated query params, e.g. `?access=manage&access=view`. Include `view` to also return events that are listed on the Calendar but managed elsewhere — those entries come back with `access: \"view\"`, their location obfuscated to city level, and host-only fields like `meeting_url`, `registration_questions`, and `feedback_email` omitted."
          }
        ],
        "description": "Every event and API key on Luma is managed by a [Luma Calendar](https://help.luma.com/p/luma-calendar-overview). By default this lists the events your Calendar manages.\n\nEach event includes an `access` field. Pass `access=manage&access=view` to also return events that are listed on the Calendar but managed elsewhere — those come back with `access: \"view\"`, their location obfuscated to city level, and host-only fields like `meeting_url`, `registration_questions`, and `feedback_email` omitted. Private events the Calendar doesn't manage are never returned.",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "allOf": [
                          {
                            "$ref": "#/components/schemas/CalendarEvent"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "tags": {
                                "type": "array",
                                "items": {
                                  "$ref": "#/components/schemas/Tag"
                                }
                              },
                              "submitted_by": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "name": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "avatar_url": {
                                        "type": "string"
                                      },
                                      "email": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ],
                                        "description": "The submitter's account email. Null when not returned."
                                      },
                                      "first_name": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "last_name": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "name",
                                      "avatar_url",
                                      "email",
                                      "first_name",
                                      "last_name"
                                    ]
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "description": "The user who submitted or added this event to the calendar. Null when the submitter's account no longer exists or is blocked."
                              }
                            },
                            "required": [
                              "tags",
                              "submitted_by"
                            ]
                          }
                        ]
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    },
                    "next_cursor": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "entries",
                    "has_more"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/guests/get": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "Get Guest",
        "parameters": [
          {
            "name": "event_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Event ID, this usually starts with evt-"
            },
            "description": "Event ID, this usually starts with evt-"
          },
          {
            "name": "id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Guest identifier — the guest ID (gst-), a ticket key, a guest key (g-), or the user's email."
            },
            "description": "Guest identifier — the guest ID (gst-), a ticket key, a guest key (g-), or the user's email."
          }
        ],
        "description": "Get detailed information for an event guest by looking them up by their ID. This supports looking them up by different parameters.\n\nThis response includes `event_ticket_orders`, which includes `coupon_info` when a coupon was applied.",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuestDetailed"
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/guests/list": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "List Guests",
        "parameters": [
          {
            "name": "event_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Event ID, this usually starts with evt-"
            },
            "description": "Event ID, this usually starts with evt-"
          },
          {
            "name": "approval_status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "approved",
                "session",
                "pending_approval",
                "invited",
                "declined",
                "waitlist"
              ]
            }
          },
          {
            "name": "pagination_cursor",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Value of `next_cursor` from a previous request.",
              "type": "string"
            },
            "description": "Value of `next_cursor` from a previous request."
          },
          {
            "name": "pagination_limit",
            "in": "query",
            "required": false,
            "schema": {
              "description": "The number of items to return. The server will enforce a maximum number.",
              "type": "number"
            },
            "description": "The number of items to return. The server will enforce a maximum number."
          },
          {
            "name": "sort_column",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "name",
                "email",
                "created_at",
                "registered_at",
                "checked_in_at"
              ]
            }
          },
          {
            "name": "sort_direction",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc",
                "asc nulls last",
                "desc nulls last"
              ]
            }
          }
        ],
        "description": "Get list of guests who have registered or been invited to an event.\n\nThis list response includes guest summaries and `event_tickets`, but not order-level details like `event_ticket_orders`. Use `/v1/events/guests/get` when you need detailed ticket order data for a specific guest.",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Guest"
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    },
                    "next_cursor": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "entries",
                    "has_more"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/users/get-self": {
      "get": {
        "tags": [
          "Miscellaneous"
        ],
        "summary": "Get Self",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/contact-tags/list": {
      "get": {
        "tags": [
          "Calendars"
        ],
        "summary": "List Contact Tags",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "color": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "color"
                        ]
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "entries",
                    "has_more"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/event-tags/list": {
      "get": {
        "tags": [
          "Calendars"
        ],
        "summary": "List Event Tags",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "color": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "color"
                        ]
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "entries",
                    "has_more"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/admins/list": {
      "get": {
        "tags": [
          "Calendars"
        ],
        "summary": "List Calendar Admins",
        "parameters": [],
        "description": "List all admins for the calendar.",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/User"
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "entries",
                    "has_more"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/entities/lookup": {
      "get": {
        "tags": [
          "Miscellaneous"
        ],
        "summary": "Lookup Entity",
        "parameters": [
          {
            "name": "slug",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "Lookup an entity on Luma by its slug.",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entity": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Entity"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "entity"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/events/lookup": {
      "get": {
        "tags": [
          "Calendars"
        ],
        "summary": "Lookup Event",
        "parameters": [
          {
            "name": "platform",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "external",
                "luma"
              ]
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event_id",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Event ID, this usually starts with evt-",
              "type": "string"
            },
            "description": "Event ID, this usually starts with evt-"
          },
          {
            "name": "event_api_id",
            "in": "query",
            "required": false,
            "schema": {
              "deprecated": true,
              "description": "Use `event_id` instead.",
              "type": "string"
            },
            "description": "Use `event_id` instead."
          }
        ],
        "description": "See if an event already exists on the calendar. This is useful when figuring out if you want to submit an event to the calendar.",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "event": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string"
                            },
                            "status": {
                              "type": "string",
                              "enum": [
                                "approved",
                                "pending",
                                "rejected"
                              ]
                            },
                            "submitted_by": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "name": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "avatar_url": {
                                      "type": "string"
                                    },
                                    "email": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ],
                                      "description": "The submitter's account email. Null when not returned."
                                    },
                                    "first_name": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "last_name": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "name",
                                    "avatar_url",
                                    "email",
                                    "first_name",
                                    "last_name"
                                  ]
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "The user who submitted or added this event to the calendar. Null when the submitter's account no longer exists or is blocked."
                            }
                          },
                          "required": [
                            "id",
                            "status",
                            "submitted_by"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "event"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/contacts/list": {
      "get": {
        "tags": [
          "Calendars"
        ],
        "summary": "List Contacts",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Search over names and emails.",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "description": "Search over names and emails."
          },
          {
            "name": "tags",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Tag names or tag IDs to filter contacts. Pass as repeated query params, e.g. `?tags=vip&tags=sponsor`. Returns contacts who have any of the specified tags.",
              "anyOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                {
                  "type": "null"
                }
              ]
            },
            "description": "Tag names or tag IDs to filter contacts. Pass as repeated query params, e.g. `?tags=vip&tags=sponsor`. Returns contacts who have any of the specified tags."
          },
          {
            "name": "calendar_membership_tier_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "name": "membership_status",
            "in": "query",
            "required": false,
            "schema": {
              "description": "This is relevant for Calendar Memberships but not relevant otherwise.",
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "approved",
                    "pending",
                    "approved-pending-payment",
                    "declined"
                  ]
                },
                {
                  "type": "null"
                }
              ]
            },
            "description": "This is relevant for Calendar Memberships but not relevant otherwise."
          },
          {
            "name": "pagination_cursor",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Value of `next_cursor` from a previous request.",
              "type": "string"
            },
            "description": "Value of `next_cursor` from a previous request."
          },
          {
            "name": "pagination_limit",
            "in": "query",
            "required": false,
            "schema": {
              "description": "The number of items to return. The server will enforce a maximum number.",
              "type": "number"
            },
            "description": "The number of items to return. The server will enforce a maximum number."
          },
          {
            "name": "sort_column",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "event_checked_in_count",
                "event_approved_count",
                "name",
                "revenue_usd_cents"
              ]
            }
          },
          {
            "name": "sort_direction",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc",
                "asc nulls last",
                "desc nulls last"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/CalendarContact"
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    },
                    "next_cursor": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "entries",
                    "has_more"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/coupons/list": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "List Event Coupons",
        "parameters": [
          {
            "name": "event_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Event ID, this usually starts with evt-"
            },
            "description": "Event ID, this usually starts with evt-"
          },
          {
            "name": "pagination_cursor",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Value of `next_cursor` from a previous request.",
              "type": "string"
            },
            "description": "Value of `next_cursor` from a previous request."
          },
          {
            "name": "pagination_limit",
            "in": "query",
            "required": false,
            "schema": {
              "description": "The number of items to return. The server will enforce a maximum number.",
              "type": "number"
            },
            "description": "The number of items to return. The server will enforce a maximum number."
          }
        ],
        "description": "List all coupons that have been created for an event.",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Coupon"
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    },
                    "next_cursor": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "entries",
                    "has_more"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/coupons/list": {
      "get": {
        "tags": [
          "Calendars"
        ],
        "summary": "List Calendar Coupons",
        "parameters": [
          {
            "name": "pagination_cursor",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Value of `next_cursor` from a previous request.",
              "type": "string"
            },
            "description": "Value of `next_cursor` from a previous request."
          },
          {
            "name": "pagination_limit",
            "in": "query",
            "required": false,
            "schema": {
              "description": "The number of items to return. The server will enforce a maximum number.",
              "type": "number"
            },
            "description": "The number of items to return. The server will enforce a maximum number."
          }
        ],
        "description": "List all coupons that have been created for a calendar.",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Coupon"
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    },
                    "next_cursor": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "entries",
                    "has_more"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/ticket-types/list": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "List Ticket Types",
        "parameters": [
          {
            "name": "event_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Event ID, this usually starts with evt-"
            },
            "description": "Event ID, this usually starts with evt-"
          },
          {
            "name": "include_hidden",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Include hidden ticket types",
              "type": "string"
            },
            "description": "Include hidden ticket types"
          }
        ],
        "description": "List all ticket types for an event",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TicketType"
                      }
                    }
                  },
                  "required": [
                    "entries"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/ticket-types/get": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "Get Ticket Type",
        "parameters": [
          {
            "name": "event_ticket_type_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Ticket type ID, this usually starts with ttype-"
            },
            "description": "Ticket type ID, this usually starts with ttype-"
          }
        ],
        "description": "Get a single ticket type by ID",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketType"
                }
              }
            }
          }
        }
      }
    },
    "/v1/memberships/tiers/list": {
      "get": {
        "tags": [
          "Memberships"
        ],
        "summary": "List Membership Tiers",
        "parameters": [
          {
            "name": "pagination_cursor",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Value of `next_cursor` from a previous request.",
              "type": "string"
            },
            "description": "Value of `next_cursor` from a previous request."
          },
          {
            "name": "pagination_limit",
            "in": "query",
            "required": false,
            "schema": {
              "description": "The number of items to return. The server will enforce a maximum number.",
              "type": "number"
            },
            "description": "The number of items to return. The server will enforce a maximum number."
          }
        ],
        "description": "List available membership tiers for the calendar.",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/MembershipTier"
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    },
                    "next_cursor": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "entries",
                    "has_more"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhooks/list": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "summary": "List Webhooks",
        "parameters": [
          {
            "name": "pagination_cursor",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Value of `next_cursor` from a previous request.",
              "type": "string"
            },
            "description": "Value of `next_cursor` from a previous request."
          },
          {
            "name": "pagination_limit",
            "in": "query",
            "required": false,
            "schema": {
              "description": "The number of items to return. The server will enforce a maximum number.",
              "type": "number"
            },
            "description": "The number of items to return. The server will enforce a maximum number."
          }
        ],
        "description": "List all webhook endpoints for the calendar.",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string"
                          },
                          "event_types": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "*",
                                "calendar.event.added",
                                "calendar.event.submitted",
                                "calendar.person.subscribed",
                                "event.canceled",
                                "event.created",
                                "event.updated",
                                "guest.registered",
                                "guest.updated",
                                "ticket.registered"
                              ]
                            }
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "active",
                              "paused"
                            ]
                          },
                          "secret": {
                            "type": "string"
                          },
                          "created_at": {
                            "type": "string",
                            "format": "date-time",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                          }
                        },
                        "required": [
                          "id",
                          "url",
                          "event_types",
                          "status",
                          "secret",
                          "created_at"
                        ]
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    },
                    "next_cursor": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "entries",
                    "has_more"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v2/webhooks/get": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Get Webhook",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "Get details about a specific webhook endpoint.",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    },
                    "event_types": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "*",
                          "calendar.event.added",
                          "calendar.event.submitted",
                          "calendar.person.subscribed",
                          "event.canceled",
                          "event.created",
                          "event.updated",
                          "guest.registered",
                          "guest.updated",
                          "ticket.registered"
                        ]
                      }
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "active",
                        "paused"
                      ]
                    },
                    "secret": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                      "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                    }
                  },
                  "required": [
                    "id",
                    "url",
                    "event_types",
                    "status",
                    "secret",
                    "created_at"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/organizations/admins/list": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "List Organization Admins",
        "parameters": [],
        "description": "List all admins for the organization.",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/UserLegacy"
                      }
                    }
                  },
                  "required": [
                    "entries"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/organizations/calendars/list": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "List Organization Calendars",
        "parameters": [
          {
            "name": "pagination_cursor",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Value of `next_cursor` from a previous request.",
              "type": "string"
            },
            "description": "Value of `next_cursor` from a previous request."
          },
          {
            "name": "pagination_limit",
            "in": "query",
            "required": false,
            "schema": {
              "description": "The number of items to return. The server will enforce a maximum number.",
              "type": "number"
            },
            "description": "The number of items to return. The server will enforce a maximum number."
          }
        ],
        "description": "List all calendars belonging to the organization.",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Calendar"
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    },
                    "next_cursor": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "entries",
                    "has_more"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/organizations/events/list": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "List Organization Events",
        "parameters": [
          {
            "name": "before",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
              "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
            },
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          {
            "name": "after",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
              "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
            },
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          {
            "name": "pagination_cursor",
            "in": "query",
            "required": false,
            "schema": {
              "description": "Value of `next_cursor` from a previous request.",
              "type": "string"
            },
            "description": "Value of `next_cursor` from a previous request."
          },
          {
            "name": "pagination_limit",
            "in": "query",
            "required": false,
            "schema": {
              "description": "The number of items to return. The server will enforce a maximum number.",
              "type": "number"
            },
            "description": "The number of items to return. The server will enforce a maximum number."
          },
          {
            "name": "sort_direction",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc",
                "asc nulls last",
                "desc nulls last"
              ]
            }
          }
        ],
        "description": "List all events across all calendars belonging to the organization. Events are deduplicated if they appear on multiple calendars within the organization.",
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "platform": {
                            "type": "string",
                            "const": "luma"
                          },
                          "id": {
                            "type": "string"
                          },
                          "user_id": {
                            "type": "string"
                          },
                          "calendar_id": {
                            "type": "string"
                          },
                          "start_at": {
                            "type": "string",
                            "format": "date-time",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                          },
                          "duration_interval": {
                            "type": "string"
                          },
                          "end_at": {
                            "type": "string",
                            "format": "date-time",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                          },
                          "created_at": {
                            "type": "string",
                            "format": "date-time",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                          },
                          "timezone": {
                            "type": "string",
                            "description": "IANA Timezone, e.g. America/New_York. https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"
                          },
                          "name": {
                            "type": "string"
                          },
                          "geo_address_json": {
                            "anyOf": [
                              {
                                "$ref": "#/components/schemas/Address"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "coordinate": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "longitude": {
                                    "type": "number"
                                  },
                                  "latitude": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "longitude",
                                  "latitude"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Latitude and longitude of the event location. Null for online events or when the address can't be geocoded."
                          },
                          "meeting_url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "location_type": {
                            "type": "string",
                            "enum": [
                              "discord",
                              "meet",
                              "twitch",
                              "twitter",
                              "youtube",
                              "zoom",
                              "offline",
                              "missing",
                              "unknown"
                            ],
                            "description": "`offline` for in-person events. Online events have the meeting platform (`zoom`, `meet`, etc.), or `unknown` if we don't recognize the meeting link. `missing` if the event has no location set."
                          },
                          "location_visibility": {
                            "type": "string",
                            "enum": [
                              "public",
                              "guests-only"
                            ],
                            "description": "Whether the event's address is shown to everyone or only to approved guests. This API always returns the full address."
                          },
                          "cover_url": {
                            "type": "string"
                          },
                          "registration_questions": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/RegistrationQuestion"
                            }
                          },
                          "url": {
                            "type": "string"
                          },
                          "visibility": {
                            "type": "string",
                            "enum": [
                              "public",
                              "members-only",
                              "private"
                            ]
                          },
                          "waitlist_status": {
                            "type": "string",
                            "enum": [
                              "disabled",
                              "enabled"
                            ],
                            "description": "`enabled` if the event has a waitlist. New registrations join the waitlist once the event reaches capacity."
                          },
                          "registration_open": {
                            "type": "boolean",
                            "description": "Whether the host is accepting registrations. When `false`, registration is closed and new guests can't sign up. Independent of capacity — a sold-out event with `waitlist_status` disabled still reports `true`."
                          },
                          "require_approval": {
                            "type": "boolean",
                            "description": "`true` if registering requires host approval — i.e. any currently available ticket has approval turned on."
                          },
                          "spots_remaining": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Spots left before the event hits its max capacity. Null when the event has no capacity limit (even if individual ticket types are capped). Refreshed by a background job, so this can lag a few seconds behind registrations."
                          },
                          "display_price": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "amount": {
                                    "type": "number",
                                    "description": "Starting (lowest) ticket price in the currency's minor unit (e.g. cents for USD), tax included."
                                  },
                                  "currency": {
                                    "description": "Lowercase ISO 4217 currency code, e.g. `usd`.",
                                    "$ref": "#/components/schemas/Currency"
                                  },
                                  "is_flexible": {
                                    "type": "boolean",
                                    "description": "`true` for pay-what-you-want pricing — `amount` is the suggested price and guests can pay more."
                                  }
                                },
                                "required": [
                                  "amount",
                                  "currency",
                                  "is_flexible"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "The starting ticket price shown on the event card. Null when registration is free — or, rarely, when nothing is currently purchasable (e.g. all paid tickets have expired). Refreshed by a background job, so this can lag a few seconds behind ticket changes."
                          },
                          "feedback_email": {
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether to send the feedback email."
                              },
                              "delay": {
                                "description": "How long after the event ends to send the feedback email. Defaults to PT0M (immediately). Maximum is P7D (7 days).",
                                "type": "string"
                              }
                            },
                            "required": [
                              "enabled"
                            ],
                            "description": "Settings for the post-event feedback email sent to guests."
                          },
                          "api_id": {
                            "type": "string",
                            "deprecated": true,
                            "description": "Use `id` instead."
                          },
                          "user_api_id": {
                            "type": "string",
                            "deprecated": true,
                            "description": "Use `user_id` instead."
                          },
                          "calendar_api_id": {
                            "type": "string",
                            "deprecated": true,
                            "description": "Use `calendar_id` instead."
                          },
                          "zoom_meeting_url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "deprecated": true,
                            "description": "Use `meeting_url` instead. Not all meetings use Zoom."
                          },
                          "geo_latitude": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "deprecated": true,
                            "description": "Use `coordinate.latitude` instead."
                          },
                          "geo_longitude": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "deprecated": true,
                            "description": "Use `coordinate.longitude` instead."
                          },
                          "managing_calendars": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "name": {
                                  "type": "string"
                                },
                                "slug": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "avatar_url": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "url": {
                                  "type": "string"
                                },
                                "description": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "social_image_url": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "cover_image_url": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "is_personal": {
                                  "type": "boolean"
                                },
                                "location": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "city": {
                                          "type": "string",
                                          "description": "City name, e.g. 'New York'."
                                        },
                                        "region": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ],
                                          "description": "State or province, e.g. 'New York' or 'California'."
                                        },
                                        "country": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ],
                                          "description": "Country name, e.g. 'United States'. Null for cities in disputed territories where Google omits the country."
                                        },
                                        "country_code": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ],
                                          "description": "ISO 3166-1 alpha-2 country code, e.g. 'US'."
                                        },
                                        "timezone": {
                                          "type": "string",
                                          "description": "IANA timezone of the city, e.g. 'America/New_York'."
                                        }
                                      },
                                      "required": [
                                        "city",
                                        "region",
                                        "country",
                                        "country_code",
                                        "timezone"
                                      ]
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ],
                                  "description": "City the calendar is based in (e.g. for city calendars). Null when the calendar isn't tied to a place."
                                },
                                "coordinate": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "longitude": {
                                          "type": "number"
                                        },
                                        "latitude": {
                                          "type": "number"
                                        }
                                      },
                                      "required": [
                                        "longitude",
                                        "latitude"
                                      ]
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ],
                                  "description": "Latitude and longitude of the calendar's primary location (e.g. city calendars). Null when the calendar isn't tied to a place."
                                },
                                "instagram_handle": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "twitter_handle": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "youtube_handle": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "website": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "status": {
                                  "type": "string",
                                  "enum": [
                                    "approved",
                                    "pending"
                                  ],
                                  "description": "Status of the event on this calendar."
                                }
                              },
                              "required": [
                                "id",
                                "name",
                                "slug",
                                "avatar_url",
                                "url",
                                "description",
                                "social_image_url",
                                "cover_image_url",
                                "is_personal",
                                "location",
                                "coordinate",
                                "instagram_handle",
                                "twitter_handle",
                                "youtube_handle",
                                "website",
                                "status"
                              ]
                            },
                            "description": "Calendars with manage access to this event, with the event's status on each. Calendars that only list the event without manage access are not included."
                          }
                        },
                        "required": [
                          "platform",
                          "id",
                          "user_id",
                          "calendar_id",
                          "start_at",
                          "duration_interval",
                          "end_at",
                          "created_at",
                          "timezone",
                          "name",
                          "geo_address_json",
                          "coordinate",
                          "meeting_url",
                          "location_type",
                          "location_visibility",
                          "cover_url",
                          "url",
                          "visibility",
                          "waitlist_status",
                          "registration_open",
                          "require_approval",
                          "spots_remaining",
                          "display_price",
                          "feedback_email",
                          "api_id",
                          "user_api_id",
                          "calendar_api_id",
                          "zoom_meeting_url",
                          "geo_latitude",
                          "geo_longitude",
                          "managing_calendars"
                        ]
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    },
                    "next_cursor": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "entries",
                    "has_more"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/create": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Create Event",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "$ref": "#/components/schemas/EventCreateUpdateInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/update": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Update Event",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "event_id": {
                    "type": "string",
                    "description": "Event ID, this usually starts with evt-"
                  },
                  "suppress_notifications": {
                    "description": "If true, Luma will not notify guests (via email or push notification) when updating the event name, time, or location.",
                    "type": "boolean"
                  },
                  "can_register_for_multiple_tickets": {
                    "type": "boolean"
                  },
                  "cover_url": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https:\\/\\/images\\.lumacdn\\.com\\/.*",
                    "description": "Specify an image that has been uploaded to the Luma CDN. You can upload an image after getting an upload URL from the Luma API."
                  },
                  "coordinate": {
                    "type": "object",
                    "properties": {
                      "longitude": {
                        "type": "number"
                      },
                      "latitude": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "longitude",
                      "latitude"
                    ]
                  },
                  "description_md": {
                    "type": "string",
                    "description": "Luma stores rich text in a special format called Spark. We don't expose an API for that format, but we can convert Markdown to Spark for you. Some Spark features, like Luma event embeds, are not supported by Markdown. Images are supported using standard markdown syntax (![alt](url)) — image URLs must be hosted on the Luma CDN (images.lumacdn.com). Upload images via the /v1/images/create-upload-url endpoint first. YouTube, Vimeo and Loom videos are embedded by putting the video URL on a line of its own."
                  },
                  "end_at": {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                    "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                  },
                  "font": {
                    "description": "Font for the event name and headings on the event page. Setting a `theme` without a `font` applies the theme’s default font; pass `null` to clear the font and use the standard font. Fonts may be retired over time — a retired font stops being accepted here, and event pages still using one fall back to the standard font.",
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "alternate",
                          "alverata",
                          "avant-garde",
                          "beaufort",
                          "blithe",
                          "caslon",
                          "degular",
                          "departure",
                          "factoria",
                          "futura",
                          "garamond",
                          "geist-mono",
                          "google",
                          "ivy-mode",
                          "ivy-presto",
                          "museo",
                          "neuzeit",
                          "new-spirit",
                          "poster",
                          "roc-grotesk",
                          "snpro",
                          "strenuous",
                          "pearl"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "geo_address_json": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "manual"
                          },
                          "address": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "address"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "google"
                          },
                          "place_id": {
                            "type": "string"
                          },
                          "description": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "place_id"
                        ]
                      }
                    ]
                  },
                  "location_visibility": {
                    "description": "Set to `guests-only` to hide the precise location from people who haven't been approved — they'll see only the city and approximate area. Defaults to `public`.",
                    "type": "string",
                    "enum": [
                      "public",
                      "guests-only"
                    ]
                  },
                  "max_capacity": {
                    "description": "Once an event hits the max capacity, the event will be marked as sold out and registration will automatically be closed.\n\nIf the event has a waitlist (`waitlist_status` is `enabled`), new registrations join the waitlist instead of being closed.\n\nIf `can_register_for_multiple_tickets` is `true`, each ticket will count towards the max capacity.",
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "meeting_url": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "name_requirement": {
                    "type": "string",
                    "enum": [
                      "full-name",
                      "first-last"
                    ],
                    "description": "Luma collects the name of every guest as they register. Choose if you'd like to split this into two fields to encourage guests to enter their first and last name."
                  },
                  "phone_number_requirement": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "optional",
                          "required"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "registration_open": {
                    "description": "Whether to accept registrations. Set to `false` to close registration so new guests can't sign up. Defaults to `true`.",
                    "type": "boolean"
                  },
                  "registration_questions": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/RegistrationQuestion"
                    }
                  },
                  "reminders_disabled": {
                    "description": "By default, Luma will send reminders before the event. Turn off if you'd like more control over event communications.",
                    "type": "boolean"
                  },
                  "feedback_email": {
                    "description": "Settings for the post-event feedback email sent to guests. If not specified on create, inherits from calendar defaults.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether to send the feedback email."
                      },
                      "delay": {
                        "description": "How long after the event ends to send the feedback email. Defaults to PT0M (immediately). Maximum is P7D (7 days).",
                        "type": "string"
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "show_guest_list": {
                    "description": "When the guest list is shown, approved guests will be able to see who else is going to the event.",
                    "type": "boolean"
                  },
                  "slug": {
                    "description": "The URL slug for the event. If the slug is `aloha`, the URL will be `https://luma.com/aloha`. If the slug is not available, the event creation will fail.\n\nYou can use `/v1/entities/lookup` to check if a slug is available.",
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 50
                  },
                  "start_at": {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                    "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                  },
                  "theme": {
                    "type": "string",
                    "enum": [
                      "standard",
                      "cross",
                      "diamond",
                      "falling-leaves",
                      "fireworks",
                      "floral",
                      "grain-dark",
                      "grain-light",
                      "grid",
                      "bats",
                      "holiday-diwali",
                      "holiday-foliage",
                      "holiday-hanukkah",
                      "holiday-pie",
                      "holiday-santa",
                      "holiday-sweater",
                      "holiday-turkey",
                      "hypnotic",
                      "life",
                      "matrix",
                      "particles-bokeh",
                      "particles-champagne",
                      "plus",
                      "iridescent-dark",
                      "iridescent-light",
                      "polkadot",
                      "pool-dark",
                      "pool-light",
                      "snake",
                      "snow-dark",
                      "snow-light",
                      "space-war",
                      "sunny-shades",
                      "tamagotchi",
                      "warp",
                      "wave",
                      "zigzag"
                    ],
                    "description": "Theme for the event page. Themes may be retired over time — a retired theme stops being accepted here, and event pages still using one fall back to `standard`. Setting a theme also applies the theme’s default font unless you pass `font`."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "IANA Timezone, e.g. America/New_York. https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"
                  },
                  "tint_color": {
                    "description": "Accent color for the event page, as a 3 or 6-digit hex code like `#bb2dc7`. We adjust the shade as needed so text and buttons stay accessible against the background.",
                    "type": "string"
                  },
                  "visibility": {
                    "type": "string",
                    "enum": [
                      "public",
                      "members-only",
                      "private"
                    ]
                  },
                  "waitlist_status": {
                    "type": "string",
                    "enum": [
                      "disabled",
                      "enabled"
                    ],
                    "description": "`enabled` if the event has a waitlist. New registrations join the waitlist once the event reaches capacity."
                  }
                },
                "required": [
                  "event_id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/guests/update-status": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Update Guest Status",
        "description": "Update a guest’s status. Set `status` to `approved` (\"Going\"), `declined`, `pending_approval`, or `waitlist`. Use `should_refund` to refund a paid guest when moving them out of an approved state. Use `message` to include a personal note in the email we send the guest. To send a soft invite that guests can accept, use `/v1/events/guests/send-invites` instead.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "event_id": {
                    "type": "string",
                    "description": "Event ID, this usually starts with evt-"
                  },
                  "guest_id": {
                    "type": "string",
                    "description": "Guest identifier — the guest ID (gst-), a ticket key, a guest key (g-), or the user's email."
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "approved",
                      "declined",
                      "pending_approval",
                      "waitlist"
                    ]
                  },
                  "should_refund": {
                    "description": "If you are moving a guest who has paid to `declined`, `waitlist`, or `pending_approval`, should we refund their payment? Defaults to false.",
                    "type": "boolean"
                  },
                  "send_email": {
                    "description": "Optional. Whether Luma should email the guest about the status change. Defaults to true. Set to false if your integration sends its own notifications.",
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "message": {
                    "description": "Optional. Personal message included in the email we send the guest about the status change. Max of 200 characters. Can't be combined with `send_email: false`.",
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "event_id",
                  "guest_id",
                  "status"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/guests/update-tickets": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Update Guest Tickets",
        "description": "Add or remove tickets from an existing guest. This is an administrative operation: added tickets are complimentary, removed tickets are invalidated, and no payment or refund is processed. You can’t change tickets for guests with pending payment holds. Administrative ticket changes can exceed event or ticket-type capacity.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "event_id": {
                    "type": "string",
                    "description": "Event ID, this usually starts with evt-"
                  },
                  "guest_id": {
                    "type": "string",
                    "description": "Guest identifier — the guest ID (gst-), a ticket key, a guest key (g-), or the user's email."
                  },
                  "ticket_ids_to_remove": {
                    "default": [],
                    "description": "Existing ticket IDs to invalidate. Removing tickets does not issue a refund, and at least one valid ticket must remain on the guest.",
                    "type": "array",
                    "items": {
                      "type": "string",
                      "description": "Ticket ID, this usually starts with tkt-"
                    }
                  },
                  "tickets_to_add": {
                    "default": [],
                    "description": "Complimentary tickets to grant. Each entry creates a new $0 administrative ticket, even when the ticket type is normally paid.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "event_ticket_type_id": {
                          "type": "string",
                          "description": "Ticket type ID, this usually starts with ttype-"
                        }
                      },
                      "required": [
                        "event_ticket_type_id"
                      ]
                    }
                  },
                  "send_email": {
                    "description": "Optional. Whether Luma may email the guest about the ticket change. Defaults to true and still respects their notification preferences. This only controls email — the guest still gets an in-app notification, and push follows their preferences.",
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "event_id",
                  "guest_id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/guests/send-invites": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Send Invites",
        "description": "Send guests an invite to an event. We'll send an email, and if their phone number is linked to their Luma account, they'll also receive an SMS.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "event_id": {
                    "type": "string",
                    "description": "Event ID, this usually starts with evt-"
                  },
                  "guests": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "email": {
                          "type": "string"
                        },
                        "name": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "email"
                      ]
                    },
                    "description": "Information about the guests you want to invite to the event. If a user already has a name, this will not overwrite their name."
                  },
                  "message": {
                    "description": "Personalize the message that will be included in the invite. Max of 200 characters.",
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "event_id",
                  "guests"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/guests/add": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Add Guests",
        "description": "Add guests to the event. By default, guests are added with the status \"Going\" (approved) and receive one ticket of the default ticket type. Use the `ticket` or `tickets` parameter to specify custom ticket assignments. Get available ticket types using `/v1/events/ticket-types/list`. Use `approval_status` to add guests as pending approval or on the waitlist instead of immediately approved. Use `registration_answers` on each guest to record answers to the event's registration questions — question IDs come from the `registration_questions` field of Get Event.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "event_id": {
                    "type": "string",
                    "description": "Event ID, this usually starts with evt-"
                  },
                  "guests": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "email": {
                          "type": "string"
                        },
                        "name": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "registration_answers": {
                          "description": "Optional. The guest's answers to the event's registration questions. If the guest is already registered with answers, their existing answers are kept.",
                          "anyOf": [
                            {
                              "type": "array",
                              "items": {
                                "$ref": "#/components/schemas/RegistrationAnswerInput"
                              }
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "email"
                      ],
                      "description": "Information about the guests you want to add to the event. If a user already has a name, this will not overwrite their name."
                    }
                  },
                  "ticket": {
                    "description": "Optional. Assign a single ticket of the specified type to each guest. Cannot be used with `tickets` parameter.",
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "event_ticket_type_id": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "event_ticket_type_id"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "tickets": {
                    "description": "Optional. Assign multiple tickets to each guest. Each guest receives all tickets in the array. Use this to add multiple tickets of the same or different types. Cannot be used with `ticket` parameter.",
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "event_ticket_type_id": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "event_ticket_type_id"
                          ]
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "approval_status": {
                    "description": "Optional. Status to assign to each added guest. Defaults to `approved` (\"Going\"). Use `pending_approval` to add guests for host review, or `waitlist` to add to the event waitlist. To send a soft invite that guests can accept, use `/v1/events/guests/send-invites` instead.",
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "approved",
                          "pending_approval",
                          "waitlist"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "send_email": {
                    "description": "Optional. Whether Luma should email each added guest. Defaults to true. Set to false if your integration sends its own notifications.",
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "event_id",
                  "guests"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/hosts/add": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Add Host",
        "description": "Add a host to an event. This works for both managers and check-in staff — use the access_level parameter to control permissions.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "event_id": {
                    "type": "string",
                    "description": "Event ID, this usually starts with evt-"
                  },
                  "email": {
                    "type": "string"
                  },
                  "access_level": {
                    "description": "Defaults to manager.",
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "none",
                          "check-in",
                          "manager"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "is_visible": {
                    "description": "Defaults to true.",
                    "type": "boolean"
                  },
                  "name": {
                    "description": "Name of the host you are adding. If they already have a Luma profile, this will be ignored.",
                    "type": "string"
                  }
                },
                "required": [
                  "event_id",
                  "email"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/hosts/update": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Update Host",
        "description": "Update a host's permissions or visibility on an event. Use this to change a host between check-in and manager access levels. The event creator's access level cannot be changed.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "event_id": {
                    "type": "string",
                    "description": "Event ID, this usually starts with evt-"
                  },
                  "email": {
                    "type": "string",
                    "description": "Email of the host to update."
                  },
                  "access_level": {
                    "description": "The new access level for the host. One of \"none\", \"check-in\", or \"manager\". The event creator’s access level cannot be changed.",
                    "type": "string",
                    "enum": [
                      "none",
                      "check-in",
                      "manager"
                    ]
                  },
                  "is_visible": {
                    "description": "Whether the host is visible on the event page.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "event_id",
                  "email"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/hosts/remove": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Remove Host",
        "description": "Remove a host from an event. The event creator cannot be removed.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "event_id": {
                    "type": "string",
                    "description": "Event ID, this usually starts with evt-"
                  },
                  "email": {
                    "type": "string",
                    "description": "Email of the host to remove."
                  }
                },
                "required": [
                  "event_id",
                  "email"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/coupons/create": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Create Coupon",
        "description": "Create a coupon that can be applied when a guest is registering for an event. Restrict it to a ticket type with `event_ticket_type_id` — when that ticket type is hidden, this creates an unlock (access) code. You are not able to edit the coupon terms after it has been created.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 20,
                    "description": "This is the code that the user will enter on the event page. It is not case sensitive. Maximum 20 characters."
                  },
                  "remaining_count": {
                    "description": "Number of times the coupon can be used. Set to 1000000 for unlimited uses.",
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 1000000
                  },
                  "valid_start_at": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                        "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "valid_end_at": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                        "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "discount": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "discount_type": {
                            "type": "string",
                            "const": "percent"
                          },
                          "percent_off": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100
                          }
                        },
                        "required": [
                          "discount_type",
                          "percent_off"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "discount_type": {
                            "type": "string",
                            "const": "amount"
                          },
                          "cents_off": {
                            "type": "number",
                            "minimum": 0
                          },
                          "currency": {
                            "$ref": "#/components/schemas/Currency"
                          }
                        },
                        "required": [
                          "discount_type",
                          "cents_off",
                          "currency"
                        ]
                      }
                    ]
                  },
                  "event_id": {
                    "type": "string",
                    "description": "Event ID, this usually starts with evt-"
                  },
                  "event_ticket_type_id": {
                    "description": "Optional. Restrict the coupon to a single ticket type. If that ticket type is hidden, the coupon acts as an unlock (access) code that reveals the ticket during registration. Pair a hidden ticket type that has Require Approval turned off with an unlock code to let invited guests register and pay directly, skipping the Apply to Attend step. For a code that unlocks the ticket without changing the price, set the discount to 0% (`percent_off: 0`).",
                    "type": "string"
                  }
                },
                "required": [
                  "code",
                  "discount",
                  "event_id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Coupon"
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/coupons/update": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Update Coupon",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "event_id": {
                    "type": "string",
                    "description": "Event ID, this usually starts with evt-"
                  },
                  "code": {
                    "type": "string"
                  },
                  "remaining_count": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "valid_start_at": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                        "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "valid_end_at": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                        "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "event_id",
                  "code"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/coupons/create": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Create Coupon",
        "description": "Create a coupon that can be applied to any event that is managed by the calendar. Be careful not to have the same code on an event and on the calendar.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CouponCreateInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Coupon"
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/coupons/update": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Update Coupon",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "remaining_count": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "valid_start_at": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                        "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "valid_end_at": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                        "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "code"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/contacts/import": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Import Contacts",
        "description": "Import contacts to your calendar to easily invite them to events and send them newsletters.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "contacts": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "email": {
                          "type": "string"
                        },
                        "name": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "email"
                      ]
                    },
                    "description": "Information about the contacts you want to import. You can include a name and email. Note that we will not set the name of a user once it has already been set."
                  },
                  "tags": {
                    "description": "Tag IDs or tag names to apply to the contacts.",
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "contacts"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/contacts/block": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Block Contact",
        "description": "Block a contact so they can’t follow your calendar or join its events. They stop receiving your invites and newsletters until you restore them.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "contact_id": {
                    "description": "Contact ID (the `id` from contacts/list, usually starts with usr-). Provide this or email.",
                    "type": "string"
                  },
                  "email": {
                    "description": "Email of the contact. Provide this or contact_id.",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/contacts/remove": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Remove Contact",
        "description": "Remove a contact from your calendar. They stop receiving your invites and newsletters but can follow again on their own later.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "contact_id": {
                    "description": "Contact ID (the `id` from contacts/list, usually starts with usr-). Provide this or email.",
                    "type": "string"
                  },
                  "email": {
                    "description": "Email of the contact. Provide this or contact_id.",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/contacts/restore": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Restore Contact",
        "description": "Restore a blocked or removed contact, returning them to your active contacts.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "contact_id": {
                    "description": "Contact ID (the `id` from contacts/list, usually starts with usr-). Provide this or email.",
                    "type": "string"
                  },
                  "email": {
                    "description": "Email of the contact. Provide this or contact_id.",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/contact-tags/create": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Create Contact Tag",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "color": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "cranberry",
                          "barney",
                          "red",
                          "green",
                          "blue",
                          "purple",
                          "yellow",
                          "orange"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Tag ID, this usually starts with tag-"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/contact-tags/update": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Update Contact Tag",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "tag_id": {
                    "type": "string",
                    "description": "Tag ID, this usually starts with tag-"
                  },
                  "name": {
                    "type": "string"
                  },
                  "color": {
                    "type": "string",
                    "enum": [
                      "cranberry",
                      "barney",
                      "red",
                      "green",
                      "blue",
                      "purple",
                      "yellow",
                      "orange"
                    ]
                  }
                },
                "required": [
                  "tag_id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/contact-tags/delete": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Delete Contact Tag",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "tag_id": {
                    "type": "string",
                    "description": "Tag ID, this usually starts with tag-"
                  }
                },
                "required": [
                  "tag_id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/contact-tags/apply": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Apply Contact Tag",
        "description": "Apply a tag to existing calendar contacts. This will not create new contacts.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "description": "Tag ID (e.g., 'tag-123') or tag name"
                  },
                  "user_ids": {
                    "description": "Array of user IDs to apply the tag to",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "emails": {
                    "description": "Array of email addresses to apply the tag to",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "tag"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "applied_count": {
                      "type": "number",
                      "description": "Number of contacts the tag was successfully applied to"
                    },
                    "skipped_count": {
                      "type": "number",
                      "description": "Number of users skipped because they are not calendar contacts"
                    }
                  },
                  "required": [
                    "applied_count",
                    "skipped_count"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/contact-tags/unapply": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Unapply Contact Tag",
        "description": "Unapply a tag from calendar contacts. Only affects existing contacts.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "description": "Tag ID (e.g., 'tag-123') or tag name"
                  },
                  "user_ids": {
                    "description": "Array of user IDs to remove the tag from",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "emails": {
                    "description": "Array of email addresses to remove the tag from",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "tag"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "removed_count": {
                      "type": "number",
                      "description": "Number of contacts the tag was successfully removed from"
                    },
                    "skipped_count": {
                      "type": "number",
                      "description": "Number of users skipped because they are not calendar contacts"
                    }
                  },
                  "required": [
                    "removed_count",
                    "skipped_count"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/event-tags/create": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Create Event Tag",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "color": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "cranberry",
                          "barney",
                          "red",
                          "green",
                          "blue",
                          "purple",
                          "yellow",
                          "orange"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Tag ID, this usually starts with tag-"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/event-tags/update": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Update Event Tag",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "tag_id": {
                    "type": "string",
                    "description": "Tag ID, this usually starts with tag-"
                  },
                  "name": {
                    "type": "string"
                  },
                  "color": {
                    "type": "string",
                    "enum": [
                      "cranberry",
                      "barney",
                      "red",
                      "green",
                      "blue",
                      "purple",
                      "yellow",
                      "orange"
                    ]
                  }
                },
                "required": [
                  "tag_id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/event-tags/delete": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Delete Event Tag",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "tag_id": {
                    "type": "string",
                    "description": "Tag ID, this usually starts with tag-"
                  }
                },
                "required": [
                  "tag_id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/event-tags/apply": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Apply Event Tag",
        "description": "Apply a tag to events on the calendar.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "description": "Tag ID (e.g., 'tag-123') or tag name"
                  },
                  "event_ids": {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Array of event IDs to apply the tag to"
                  }
                },
                "required": [
                  "tag",
                  "event_ids"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "applied_count": {
                      "type": "number",
                      "description": "Number of events the tag was successfully applied to"
                    },
                    "skipped_count": {
                      "type": "number",
                      "description": "Number of events skipped because they are not on this calendar"
                    }
                  },
                  "required": [
                    "applied_count",
                    "skipped_count"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/event-tags/unapply": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Unapply Event Tag",
        "description": "Unapply a tag from events on the calendar.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "description": "Tag ID (e.g., 'tag-123') or tag name"
                  },
                  "event_ids": {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Array of event IDs to remove the tag from"
                  }
                },
                "required": [
                  "tag",
                  "event_ids"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "removed_count": {
                      "type": "number",
                      "description": "Number of events the tag was successfully removed from"
                    },
                    "skipped_count": {
                      "type": "number",
                      "description": "Number of events skipped because they are not on this calendar"
                    }
                  },
                  "required": [
                    "removed_count",
                    "skipped_count"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/events/add": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Add Event",
        "description": "Add or submit an existing event (on Luma or on an external platform) to the Luma calendar. By default, events added by a calendar manager are approved immediately. Use `submission_mode: \"pending\"` to keep the submission pending.\n\nOn calendars with `require-manage-access`, submitting a Luma event you manage can also grant the target calendar manage access once the submission is approved.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "platform": {
                        "type": "string",
                        "const": "external"
                      },
                      "submission_mode": {
                        "default": "auto",
                        "description": "`auto` approves the event immediately. `pending` keeps the event pending for calendar admin approval.",
                        "type": "string",
                        "enum": [
                          "auto",
                          "pending"
                        ]
                      },
                      "url": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "start_at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                        "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                      },
                      "duration_interval": {
                        "type": "string"
                      },
                      "timezone": {
                        "type": "string",
                        "description": "IANA Timezone, e.g. America/New_York. https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"
                      },
                      "geo_address_json": {
                        "anyOf": [
                          {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "type": {
                                    "type": "string",
                                    "const": "manual"
                                  },
                                  "address": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "type",
                                  "address"
                                ]
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "type": {
                                    "type": "string",
                                    "const": "google"
                                  },
                                  "place_id": {
                                    "type": "string"
                                  },
                                  "description": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "type",
                                  "place_id"
                                ]
                              }
                            ]
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "host": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "geo_longitude": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "geo_latitude": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "coordinate": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "longitude": {
                                "type": "number"
                              },
                              "latitude": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "longitude",
                              "latitude"
                            ]
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "platform",
                      "url",
                      "name",
                      "start_at",
                      "duration_interval",
                      "timezone"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "platform": {
                        "type": "string",
                        "const": "luma"
                      },
                      "submission_mode": {
                        "default": "auto",
                        "description": "`auto` approves the event immediately. `pending` keeps the event pending for calendar admin approval.",
                        "type": "string",
                        "enum": [
                          "auto",
                          "pending"
                        ]
                      },
                      "event_id": {
                        "description": "Event ID, this usually starts with evt-",
                        "type": "string"
                      },
                      "event_api_id": {
                        "deprecated": true,
                        "description": "Use `event_id` instead.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "platform"
                    ]
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "approved",
                        "pending"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "status"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/events/approve": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Approve Event",
        "description": "Approve a pending event submission on your calendar. The event becomes visible on the calendar and the submitter is notified.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "calendar_event_id": {
                    "type": "string",
                    "description": "Calendar event ID (starts with `calev-`). You can also pass the Luma event ID (starts with `evt-`) — we'll resolve it to the active submission on your calendar."
                  }
                },
                "required": [
                  "calendar_event_id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/events/reject": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Reject Event",
        "description": "Reject a pending event submission on your calendar. If the event is still pending, the submitter is notified.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "calendar_event_id": {
                    "type": "string",
                    "description": "Calendar event ID (starts with `calev-`). You can also pass the Luma event ID (starts with `evt-`) — we'll resolve it to the active submission on your calendar."
                  },
                  "message": {
                    "description": "Optional message to send to the submitter explaining the rejection.",
                    "type": "string"
                  }
                },
                "required": [
                  "calendar_event_id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/images/create-upload-url": {
      "post": {
        "tags": [
          "Miscellaneous"
        ],
        "summary": "Create Upload URL",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "content_type": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "image/jpeg",
                          "image/png"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "upload_url": {
                      "type": "string",
                      "description": "You'll upload your image here using a PUT request."
                    },
                    "file_url": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "upload_url",
                    "file_url"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/ticket-types/create": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Create Ticket Type",
        "description": "Create a new ticket type for an event",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "event_id": {
                        "type": "string",
                        "description": "Event ID, this usually starts with evt-"
                      }
                    },
                    "required": [
                      "event_id"
                    ]
                  },
                  {
                    "$ref": "#/components/schemas/TicketTypeCreateInput"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketType"
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/ticket-types/update": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Update Ticket Type",
        "description": "Update an existing ticket type configuration",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "event_ticket_type_id": {
                        "type": "string",
                        "description": "Ticket type ID, this usually starts with ttype-"
                      }
                    },
                    "required": [
                      "event_ticket_type_id"
                    ]
                  },
                  {
                    "$ref": "#/components/schemas/TicketTypeUpdateInput"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketType"
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/ticket-types/delete": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Delete Ticket Type",
        "description": "Soft delete a ticket type. Cannot delete if tickets have been sold or if it's the last visible ticket type.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "event_ticket_type_id": {
                    "type": "string",
                    "description": "Ticket type ID, this usually starts with ttype-"
                  }
                },
                "required": [
                  "event_ticket_type_id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/memberships/members/add": {
      "post": {
        "tags": [
          "Memberships"
        ],
        "summary": "Add Member to Tier",
        "description": "Add a user to a membership tier. For paid tiers, set skip_payment to true if you are handling payment externally.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email",
                    "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                  },
                  "membership_tier_id": {
                    "type": "string"
                  },
                  "registration_answers": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string"
                            },
                            "question_id": {
                              "type": "string"
                            },
                            "value": {
                              "type": "boolean"
                            },
                            "question_type": {
                              "type": "string",
                              "const": "agree-check"
                            }
                          },
                          "required": [
                            "label",
                            "question_id",
                            "question_type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string"
                            },
                            "question_id": {
                              "type": "string"
                            },
                            "value": {
                              "type": "object",
                              "properties": {
                                "company": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "job_title": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              }
                            },
                            "question_type": {
                              "type": "string",
                              "const": "company"
                            }
                          },
                          "required": [
                            "label",
                            "question_id",
                            "value",
                            "question_type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string"
                            },
                            "question_id": {
                              "type": "string"
                            },
                            "value": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "question_type": {
                              "type": "string",
                              "const": "dropdown"
                            }
                          },
                          "required": [
                            "label",
                            "question_id",
                            "value",
                            "question_type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string"
                            },
                            "question_id": {
                              "type": "string"
                            },
                            "value": {
                              "anyOf": [
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "question_type": {
                              "type": "string",
                              "const": "multi-select"
                            }
                          },
                          "required": [
                            "label",
                            "question_id",
                            "value",
                            "question_type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string"
                            },
                            "question_id": {
                              "type": "string"
                            },
                            "value": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "question_type": {
                              "type": "string",
                              "const": "phone-number"
                            }
                          },
                          "required": [
                            "label",
                            "question_id",
                            "value",
                            "question_type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string"
                            },
                            "question_id": {
                              "type": "string"
                            },
                            "value": {
                              "anyOf": [
                                {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "boolean",
                                      "const": true
                                    }
                                  ]
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "question_type": {
                              "type": "string",
                              "const": "terms"
                            }
                          },
                          "required": [
                            "label",
                            "question_id",
                            "question_type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string"
                            },
                            "question_id": {
                              "type": "string"
                            },
                            "value": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "question_type": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "const": "github"
                                },
                                {
                                  "type": "string",
                                  "const": "instagram"
                                },
                                {
                                  "type": "string",
                                  "const": "linkedin"
                                },
                                {
                                  "type": "string",
                                  "const": "long-text"
                                },
                                {
                                  "type": "string",
                                  "const": "telegram"
                                },
                                {
                                  "type": "string",
                                  "const": "text"
                                },
                                {
                                  "type": "string",
                                  "const": "twitter"
                                },
                                {
                                  "type": "string",
                                  "const": "youtube"
                                }
                              ]
                            }
                          },
                          "required": [
                            "label",
                            "question_id",
                            "value",
                            "question_type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string"
                            },
                            "question_id": {
                              "type": "string"
                            },
                            "value": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "question_type": {
                              "type": "string",
                              "const": "url"
                            }
                          },
                          "required": [
                            "label",
                            "question_id",
                            "value",
                            "question_type"
                          ]
                        }
                      ]
                    }
                  },
                  "skip_payment": {
                    "description": "Set to true for paid tiers when handling payment externally. Required for paid tiers.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "email",
                  "membership_tier_id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "membership_id": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "approved",
                        "pending",
                        "approved-pending-payment",
                        "declined"
                      ]
                    }
                  },
                  "required": [
                    "membership_id",
                    "status"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/memberships/members/update-status": {
      "post": {
        "tags": [
          "Memberships"
        ],
        "summary": "Update Member Status",
        "description": "Update a member's membership status. Approving a paid tier member captures their payment. Declining cancels any active subscription.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "user_id": {
                    "type": "string",
                    "description": "User ID (e.g., 'usr-xxx') or email address"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "approved",
                      "declined"
                    ]
                  }
                },
                "required": [
                  "user_id",
                  "status"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v2/webhooks/create": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Create Webhook",
        "description": "Create a new webhook endpoint to receive event notifications.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^http.*"
                  },
                  "event_types": {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "*",
                        "calendar.event.added",
                        "calendar.event.submitted",
                        "calendar.person.subscribed",
                        "event.canceled",
                        "event.created",
                        "event.updated",
                        "guest.registered",
                        "guest.updated",
                        "ticket.registered"
                      ]
                    }
                  }
                },
                "required": [
                  "url",
                  "event_types"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    },
                    "event_types": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "*",
                          "calendar.event.added",
                          "calendar.event.submitted",
                          "calendar.person.subscribed",
                          "event.canceled",
                          "event.created",
                          "event.updated",
                          "guest.registered",
                          "guest.updated",
                          "ticket.registered"
                        ]
                      }
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "active",
                        "paused"
                      ]
                    },
                    "secret": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                      "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                    }
                  },
                  "required": [
                    "id",
                    "url",
                    "event_types",
                    "status",
                    "secret",
                    "created_at"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v2/webhooks/update": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Update Webhook",
        "description": "Update a webhook endpoint's event types or status (active/paused).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "event_types": {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "*",
                        "calendar.event.added",
                        "calendar.event.submitted",
                        "calendar.person.subscribed",
                        "event.canceled",
                        "event.created",
                        "event.updated",
                        "guest.registered",
                        "guest.updated",
                        "ticket.registered"
                      ]
                    }
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "active",
                      "paused"
                    ]
                  }
                },
                "required": [
                  "id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    },
                    "event_types": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "*",
                          "calendar.event.added",
                          "calendar.event.submitted",
                          "calendar.person.subscribed",
                          "event.canceled",
                          "event.created",
                          "event.updated",
                          "guest.registered",
                          "guest.updated",
                          "ticket.registered"
                        ]
                      }
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "active",
                        "paused"
                      ]
                    },
                    "secret": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                      "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                    }
                  },
                  "required": [
                    "id",
                    "url",
                    "event_types",
                    "status",
                    "secret",
                    "created_at"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhooks/delete": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Delete Webhook",
        "description": "Delete a webhook endpoint.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  }
                },
                "required": [
                  "id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/cancel/request": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Request Event Cancellation",
        "description": "Request a cancellation token for an event. Canceling an event is irreversible — it notifies all guests, processes refunds, and permanently deletes the event. Because of this, cancellation uses a two-step flow: first request a token here, then pass it to /events/cancel to execute. The token expires after 15 minutes.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "event_id": {
                    "type": "string",
                    "description": "Event ID, this usually starts with evt-"
                  }
                },
                "required": [
                  "event_id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "cancellation_token": {
                      "type": "string",
                      "description": "A short-lived token to confirm the cancellation. Expires after 15 minutes."
                    },
                    "is_paid": {
                      "type": "boolean",
                      "description": "Whether the event has paid guests. If true, you must pass should_refund in the confirm step."
                    },
                    "guest_count": {
                      "type": "number",
                      "description": "The number of approved guests for this event."
                    }
                  },
                  "required": [
                    "cancellation_token",
                    "is_paid",
                    "guest_count"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/cancel": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Cancel Event",
        "description": "Cancel an event. You must first call /events/cancel/request to get a cancellation_token, then pass it here. This is irreversible — the event will be deleted, all guests will be notified, and refunds will be processed if should_refund is true. For paid events, you must specify should_refund.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "event_id": {
                    "type": "string",
                    "description": "Event ID, this usually starts with evt-"
                  },
                  "cancellation_token": {
                    "type": "string",
                    "description": "The cancellation token returned from the request endpoint."
                  },
                  "should_refund": {
                    "description": "Whether to refund paid guests. Required if the event has paid guests.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "event_id",
                  "cancellation_token"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/calendars/update": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Update Calendar",
        "description": "Update a calendar's settings. Only the provided fields are changed.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "calendar_id": {
                    "type": "string",
                    "description": "Calendar ID, this usually starts with cal-."
                  },
                  "name": {
                    "description": "Name of the calendar.",
                    "type": "string"
                  },
                  "slug": {
                    "description": "URL slug for the calendar page (e.g. 'my-community' → lu.ma/my-community).",
                    "type": "string"
                  },
                  "description": {
                    "description": "Short description of the calendar.",
                    "type": "string"
                  },
                  "avatar_url": {
                    "description": "Specify an image that has been uploaded to the Luma CDN.",
                    "type": "string",
                    "format": "uri"
                  },
                  "tint_color": {
                    "description": "Tint color for the calendar in hex format (e.g. '#E3CBEF').",
                    "type": "string"
                  }
                },
                "required": [
                  "calendar_id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Calendar"
                }
              }
            }
          }
        }
      }
    },
    "/v2/organizations/calendars/create": {
      "post": {
        "tags": [
          "Organizations"
        ],
        "summary": "Create Calendar",
        "description": "Create a new calendar within the organization. The calendar will be managed by the API key owner.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Name of the calendar."
                  },
                  "slug": {
                    "description": "URL slug for the calendar page (e.g. 'my-community' → lu.ma/my-community).",
                    "type": "string"
                  },
                  "description": {
                    "description": "Short description of the calendar.",
                    "type": "string"
                  },
                  "avatar_url": {
                    "description": "Specify an image that has been uploaded to the Luma CDN. If not provided, a random default avatar will be used.",
                    "type": "string",
                    "format": "uri"
                  },
                  "tint_color": {
                    "description": "Tint color for the calendar in hex format (e.g. '#E3CBEF'). If not provided, a random color matching the default avatar will be used.",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Calendar"
                }
              }
            }
          }
        }
      }
    },
    "/v1/organizations/events/transfer-calendar": {
      "post": {
        "tags": [
          "Organizations"
        ],
        "summary": "Transfer Event Calendar",
        "description": "Transfer an event from its current managing calendar to a different calendar within the organization. The event's managing calendar changes to the destination calendar. Both the source and destination calendars must belong to the organization.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "event_id": {
                    "type": "string",
                    "description": "Event ID, this usually starts with evt-"
                  },
                  "calendar_id": {
                    "type": "string",
                    "description": "Destination calendar ID, this usually starts with cal-. Must belong to the organization."
                  }
                },
                "required": [
                  "event_id",
                  "calendar_id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Empty response",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    }
  },
  "security": [
    {
      "apiKeyAuth": []
    }
  ],
  "components": {
    "securitySchemes": {
      "apiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "x-luma-api-key",
        "description": "API key to authenticate requests to the Luma API. Generate an API key on your Luma dashboard."
      }
    },
    "schemas": {
      "Address": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string"
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "region": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "city_state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "full_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "google_maps_place_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "apple_maps_place_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "address",
          "city",
          "region",
          "country",
          "city_state",
          "full_address",
          "google_maps_place_id",
          "apple_maps_place_id",
          "description"
        ]
      },
      "Calendar": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "avatar_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "social_image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "cover_image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_personal": {
            "type": "boolean"
          },
          "location": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "city": {
                    "type": "string",
                    "description": "City name, e.g. 'New York'."
                  },
                  "region": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "State or province, e.g. 'New York' or 'California'."
                  },
                  "country": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Country name, e.g. 'United States'. Null for cities in disputed territories where Google omits the country."
                  },
                  "country_code": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "ISO 3166-1 alpha-2 country code, e.g. 'US'."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "IANA timezone of the city, e.g. 'America/New_York'."
                  }
                },
                "required": [
                  "city",
                  "region",
                  "country",
                  "country_code",
                  "timezone"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "City the calendar is based in (e.g. for city calendars). Null when the calendar isn't tied to a place."
          },
          "coordinate": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "longitude": {
                    "type": "number"
                  },
                  "latitude": {
                    "type": "number"
                  }
                },
                "required": [
                  "longitude",
                  "latitude"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Latitude and longitude of the calendar's primary location (e.g. city calendars). Null when the calendar isn't tied to a place."
          },
          "instagram_handle": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "twitter_handle": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "youtube_handle": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "website": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "avatar_url",
          "url",
          "description",
          "social_image_url",
          "cover_image_url",
          "is_personal",
          "location",
          "coordinate",
          "instagram_handle",
          "twitter_handle",
          "youtube_handle",
          "website"
        ]
      },
      "CalendarContact": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "event_approved_count": {
            "type": "number"
          },
          "event_checked_in_count": {
            "type": "number"
          },
          "revenue_usd_cents": {
            "type": "number"
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "membership": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "approved",
                      "pending",
                      "approved-pending-payment",
                      "declined"
                    ]
                  },
                  "calendar_membership_tier_id": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "status",
                  "calendar_membership_tier_id"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "avatar_url": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "first_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "last_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "user_id",
          "created_at",
          "event_approved_count",
          "event_checked_in_count",
          "revenue_usd_cents",
          "tags",
          "membership",
          "name",
          "avatar_url",
          "email",
          "first_name",
          "last_name"
        ]
      },
      "CalendarEvent": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/Event"
          },
          {
            "$ref": "#/components/schemas/ExternalEvent"
          }
        ]
      },
      "Coupon": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string",
            "description": "This code is case insensitive."
          },
          "remaining_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "valid_start_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ]
          },
          "valid_end_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ]
          },
          "percent_off": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "cents_off": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Currency"
              },
              {
                "type": "null"
              }
            ]
          },
          "event_ticket_type_id": {
            "description": "The ticket type this coupon is restricted to, if any. Set for unlock (access) codes that reveal a hidden ticket type.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "code",
          "remaining_count",
          "valid_start_at",
          "valid_end_at",
          "percent_off",
          "cents_off",
          "currency"
        ]
      },
      "CouponCreateInput": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "minLength": 1,
            "maxLength": 20,
            "description": "This is the code that the user will enter on the event page. It is not case sensitive. Maximum 20 characters."
          },
          "remaining_count": {
            "description": "Number of times the coupon can be used. Set to 1000000 for unlimited uses.",
            "type": "integer",
            "minimum": 0,
            "maximum": 1000000
          },
          "valid_start_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ]
          },
          "valid_end_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ]
          },
          "discount": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "discount_type": {
                    "type": "string",
                    "const": "percent"
                  },
                  "percent_off": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 100
                  }
                },
                "required": [
                  "discount_type",
                  "percent_off"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "discount_type": {
                    "type": "string",
                    "const": "amount"
                  },
                  "cents_off": {
                    "type": "number",
                    "minimum": 0
                  },
                  "currency": {
                    "$ref": "#/components/schemas/Currency"
                  }
                },
                "required": [
                  "discount_type",
                  "cents_off",
                  "currency"
                ]
              }
            ]
          }
        },
        "required": [
          "code",
          "discount"
        ]
      },
      "Currency": {
        "type": "string",
        "enum": [
          "solana_sol",
          "solana_usdc",
          "aed",
          "afn",
          "all",
          "amd",
          "ang",
          "aoa",
          "ars",
          "aud",
          "awg",
          "azn",
          "bam",
          "bbd",
          "bdt",
          "bgn",
          "bhd",
          "bif",
          "bmd",
          "bnd",
          "bob",
          "brl",
          "bsd",
          "bwp",
          "byn",
          "bzd",
          "cad",
          "cdf",
          "chf",
          "clp",
          "cny",
          "cop",
          "crc",
          "cve",
          "czk",
          "djf",
          "dkk",
          "dop",
          "dzd",
          "egp",
          "etb",
          "eur",
          "fjd",
          "fkp",
          "gbp",
          "gel",
          "ghs",
          "gip",
          "gmd",
          "gnf",
          "gtq",
          "gyd",
          "hkd",
          "hnl",
          "htg",
          "huf",
          "idr",
          "ils",
          "inr",
          "isk",
          "jmd",
          "jod",
          "jpy",
          "kes",
          "kgs",
          "khr",
          "kmf",
          "krw",
          "kwd",
          "kyd",
          "kzt",
          "lak",
          "lbp",
          "lkr",
          "lrd",
          "lsl",
          "mad",
          "mdl",
          "mga",
          "mkd",
          "mmk",
          "mnt",
          "mop",
          "mur",
          "mvr",
          "mwk",
          "mxn",
          "myr",
          "mzn",
          "nad",
          "ngn",
          "nio",
          "nok",
          "npr",
          "nzd",
          "omr",
          "pab",
          "pen",
          "pgk",
          "php",
          "pkr",
          "pln",
          "pyg",
          "qar",
          "ron",
          "rsd",
          "rub",
          "rwf",
          "sar",
          "sbd",
          "scr",
          "sek",
          "sgd",
          "shp",
          "sle",
          "sos",
          "srd",
          "std",
          "szl",
          "thb",
          "tjs",
          "tnd",
          "top",
          "try",
          "ttd",
          "twd",
          "tzs",
          "uah",
          "ugx",
          "usd",
          "uyu",
          "uzs",
          "vnd",
          "vuv",
          "wst",
          "xaf",
          "xcd",
          "xof",
          "xpf",
          "yer",
          "zar",
          "zmw"
        ]
      },
      "Entity": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "calendar"
              },
              "calendar": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "slug": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "avatar_url": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "id",
                  "name",
                  "slug"
                ]
              }
            },
            "required": [
              "type",
              "calendar"
            ]
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "event"
              },
              "event": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "cover_url": {
                    "type": "string"
                  },
                  "start_at": {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                    "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                  },
                  "end_at": {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                    "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                  }
                },
                "required": [
                  "id",
                  "name",
                  "slug",
                  "cover_url",
                  "start_at",
                  "end_at"
                ]
              }
            },
            "required": [
              "type",
              "event"
            ]
          }
        ]
      },
      "Event": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/EventForView"
          },
          {
            "$ref": "#/components/schemas/EventForManage"
          }
        ]
      },
      "EventCreateUpdateInput": {
        "type": "object",
        "properties": {
          "can_register_for_multiple_tickets": {
            "type": "boolean"
          },
          "cover_url": {
            "type": "string",
            "format": "uri",
            "pattern": "^https:\\/\\/images\\.lumacdn\\.com\\/.*",
            "description": "Specify an image that has been uploaded to the Luma CDN. You can upload an image after getting an upload URL from the Luma API."
          },
          "coordinate": {
            "type": "object",
            "properties": {
              "longitude": {
                "type": "number"
              },
              "latitude": {
                "type": "number"
              }
            },
            "required": [
              "longitude",
              "latitude"
            ]
          },
          "description_md": {
            "type": "string",
            "description": "Luma stores rich text in a special format called Spark. We don't expose an API for that format, but we can convert Markdown to Spark for you. Some Spark features, like Luma event embeds, are not supported by Markdown. Images are supported using standard markdown syntax (![alt](url)) — image URLs must be hosted on the Luma CDN (images.lumacdn.com). Upload images via the /v1/images/create-upload-url endpoint first. YouTube, Vimeo and Loom videos are embedded by putting the video URL on a line of its own."
          },
          "end_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "font": {
            "description": "Font for the event name and headings on the event page. Setting a `theme` without a `font` applies the theme’s default font; pass `null` to clear the font and use the standard font. Fonts may be retired over time — a retired font stops being accepted here, and event pages still using one fall back to the standard font.",
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "alternate",
                  "alverata",
                  "avant-garde",
                  "beaufort",
                  "blithe",
                  "caslon",
                  "degular",
                  "departure",
                  "factoria",
                  "futura",
                  "garamond",
                  "geist-mono",
                  "google",
                  "ivy-mode",
                  "ivy-presto",
                  "museo",
                  "neuzeit",
                  "new-spirit",
                  "poster",
                  "roc-grotesk",
                  "snpro",
                  "strenuous",
                  "pearl"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "geo_address_json": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "manual"
                  },
                  "address": {
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "address"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "google"
                  },
                  "place_id": {
                    "type": "string"
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "type",
                  "place_id"
                ]
              }
            ]
          },
          "location_visibility": {
            "description": "Set to `guests-only` to hide the precise location from people who haven't been approved — they'll see only the city and approximate area. Defaults to `public`.",
            "type": "string",
            "enum": [
              "public",
              "guests-only"
            ]
          },
          "max_capacity": {
            "description": "Once an event hits the max capacity, the event will be marked as sold out and registration will automatically be closed.\n\nIf the event has a waitlist (`waitlist_status` is `enabled`), new registrations join the waitlist instead of being closed.\n\nIf `can_register_for_multiple_tickets` is `true`, each ticket will count towards the max capacity.",
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "meeting_url": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "name_requirement": {
            "type": "string",
            "enum": [
              "full-name",
              "first-last"
            ],
            "description": "Luma collects the name of every guest as they register. Choose if you'd like to split this into two fields to encourage guests to enter their first and last name."
          },
          "phone_number_requirement": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "optional",
                  "required"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "registration_open": {
            "description": "Whether to accept registrations. Set to `false` to close registration so new guests can't sign up. Defaults to `true`.",
            "type": "boolean"
          },
          "registration_questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RegistrationQuestion"
            }
          },
          "reminders_disabled": {
            "description": "By default, Luma will send reminders before the event. Turn off if you'd like more control over event communications.",
            "type": "boolean"
          },
          "feedback_email": {
            "description": "Settings for the post-event feedback email sent to guests. If not specified on create, inherits from calendar defaults.",
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "Whether to send the feedback email."
              },
              "delay": {
                "description": "How long after the event ends to send the feedback email. Defaults to PT0M (immediately). Maximum is P7D (7 days).",
                "type": "string"
              }
            },
            "required": [
              "enabled"
            ]
          },
          "show_guest_list": {
            "description": "When the guest list is shown, approved guests will be able to see who else is going to the event.",
            "type": "boolean"
          },
          "slug": {
            "description": "The URL slug for the event. If the slug is `aloha`, the URL will be `https://luma.com/aloha`. If the slug is not available, the event creation will fail.\n\nYou can use `/v1/entities/lookup` to check if a slug is available.",
            "type": "string",
            "minLength": 3,
            "maxLength": 50
          },
          "start_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "theme": {
            "type": "string",
            "enum": [
              "standard",
              "cross",
              "diamond",
              "falling-leaves",
              "fireworks",
              "floral",
              "grain-dark",
              "grain-light",
              "grid",
              "bats",
              "holiday-diwali",
              "holiday-foliage",
              "holiday-hanukkah",
              "holiday-pie",
              "holiday-santa",
              "holiday-sweater",
              "holiday-turkey",
              "hypnotic",
              "life",
              "matrix",
              "particles-bokeh",
              "particles-champagne",
              "plus",
              "iridescent-dark",
              "iridescent-light",
              "polkadot",
              "pool-dark",
              "pool-light",
              "snake",
              "snow-dark",
              "snow-light",
              "space-war",
              "sunny-shades",
              "tamagotchi",
              "warp",
              "wave",
              "zigzag"
            ],
            "description": "Theme for the event page. Themes may be retired over time — a retired theme stops being accepted here, and event pages still using one fall back to `standard`. Setting a theme also applies the theme’s default font unless you pass `font`."
          },
          "timezone": {
            "type": "string",
            "description": "IANA Timezone, e.g. America/New_York. https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"
          },
          "tint_color": {
            "description": "Accent color for the event page, as a 3 or 6-digit hex code like `#bb2dc7`. We adjust the shade as needed so text and buttons stay accessible against the background.",
            "type": "string"
          },
          "visibility": {
            "type": "string",
            "enum": [
              "public",
              "members-only",
              "private"
            ]
          },
          "waitlist_status": {
            "type": "string",
            "enum": [
              "disabled",
              "enabled"
            ],
            "description": "`enabled` if the event has a waitlist. New registrations join the waitlist once the event reaches capacity."
          }
        },
        "required": [
          "name",
          "start_at",
          "timezone"
        ]
      },
      "EventDetail": {
        "type": "object",
        "properties": {
          "platform": {
            "type": "string",
            "const": "luma"
          },
          "id": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          },
          "calendar_id": {
            "type": "string"
          },
          "start_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "duration_interval": {
            "type": "string"
          },
          "end_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "timezone": {
            "type": "string",
            "description": "IANA Timezone, e.g. America/New_York. https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"
          },
          "name": {
            "type": "string"
          },
          "geo_address_json": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Address"
              },
              {
                "type": "null"
              }
            ]
          },
          "coordinate": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "longitude": {
                    "type": "number"
                  },
                  "latitude": {
                    "type": "number"
                  }
                },
                "required": [
                  "longitude",
                  "latitude"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Latitude and longitude of the event location. Null for online events or when the address can't be geocoded."
          },
          "meeting_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "location_type": {
            "type": "string",
            "enum": [
              "discord",
              "meet",
              "twitch",
              "twitter",
              "youtube",
              "zoom",
              "offline",
              "missing",
              "unknown"
            ],
            "description": "`offline` for in-person events. Online events have the meeting platform (`zoom`, `meet`, etc.), or `unknown` if we don't recognize the meeting link. `missing` if the event has no location set."
          },
          "location_visibility": {
            "type": "string",
            "enum": [
              "public",
              "guests-only"
            ],
            "description": "Whether the event's address is shown to everyone or only to approved guests. This API always returns the full address."
          },
          "cover_url": {
            "type": "string"
          },
          "registration_questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RegistrationQuestion"
            }
          },
          "url": {
            "type": "string"
          },
          "visibility": {
            "type": "string",
            "enum": [
              "public",
              "members-only",
              "private"
            ]
          },
          "waitlist_status": {
            "type": "string",
            "enum": [
              "disabled",
              "enabled"
            ],
            "description": "`enabled` if the event has a waitlist. New registrations join the waitlist once the event reaches capacity."
          },
          "registration_open": {
            "type": "boolean",
            "description": "Whether the host is accepting registrations. When `false`, registration is closed and new guests can't sign up. Independent of capacity — a sold-out event with `waitlist_status` disabled still reports `true`."
          },
          "require_approval": {
            "type": "boolean",
            "description": "`true` if registering requires host approval — i.e. any currently available ticket has approval turned on."
          },
          "spots_remaining": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Spots left before the event hits its max capacity. Null when the event has no capacity limit (even if individual ticket types are capped). Refreshed by a background job, so this can lag a few seconds behind registrations."
          },
          "display_price": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Starting (lowest) ticket price in the currency's minor unit (e.g. cents for USD), tax included."
                  },
                  "currency": {
                    "description": "Lowercase ISO 4217 currency code, e.g. `usd`.",
                    "$ref": "#/components/schemas/Currency"
                  },
                  "is_flexible": {
                    "type": "boolean",
                    "description": "`true` for pay-what-you-want pricing — `amount` is the suggested price and guests can pay more."
                  }
                },
                "required": [
                  "amount",
                  "currency",
                  "is_flexible"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "The starting ticket price shown on the event card. Null when registration is free — or, rarely, when nothing is currently purchasable (e.g. all paid tickets have expired). Refreshed by a background job, so this can lag a few seconds behind ticket changes."
          },
          "feedback_email": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "Whether to send the feedback email."
              },
              "delay": {
                "description": "How long after the event ends to send the feedback email. Defaults to PT0M (immediately). Maximum is P7D (7 days).",
                "type": "string"
              }
            },
            "required": [
              "enabled"
            ],
            "description": "Settings for the post-event feedback email sent to guests."
          },
          "access": {
            "type": "string",
            "const": "manage"
          },
          "description": {
            "type": "string"
          },
          "description_md": {
            "type": "string"
          },
          "hosts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Host"
            }
          },
          "guest_counts": {
            "type": "object",
            "properties": {
              "approved": {
                "type": "object",
                "properties": {
                  "guests": {
                    "type": "number",
                    "description": "Number of guests (people) with this status. A guest who registered for several tickets still counts once here."
                  },
                  "tickets": {
                    "type": "number",
                    "description": "Number of tickets held by guests with this status. Pending approval and waitlist count at least one ticket per guest; invited guests hold none, so this is 0."
                  }
                },
                "required": [
                  "guests",
                  "tickets"
                ],
                "description": "Guests who are going (approved)."
              },
              "pending_approval": {
                "type": "object",
                "properties": {
                  "guests": {
                    "type": "number",
                    "description": "Number of guests (people) with this status. A guest who registered for several tickets still counts once here."
                  },
                  "tickets": {
                    "type": "number",
                    "description": "Number of tickets held by guests with this status. Pending approval and waitlist count at least one ticket per guest; invited guests hold none, so this is 0."
                  }
                },
                "required": [
                  "guests",
                  "tickets"
                ],
                "description": "Guests waiting for the host to approve their registration."
              },
              "waitlist": {
                "type": "object",
                "properties": {
                  "guests": {
                    "type": "number",
                    "description": "Number of guests (people) with this status. A guest who registered for several tickets still counts once here."
                  },
                  "tickets": {
                    "type": "number",
                    "description": "Number of tickets held by guests with this status. Pending approval and waitlist count at least one ticket per guest; invited guests hold none, so this is 0."
                  }
                },
                "required": [
                  "guests",
                  "tickets"
                ],
                "description": "Guests on the waitlist."
              },
              "invited": {
                "type": "object",
                "properties": {
                  "guests": {
                    "type": "number",
                    "description": "Number of guests (people) with this status. A guest who registered for several tickets still counts once here."
                  },
                  "tickets": {
                    "type": "number",
                    "description": "Number of tickets held by guests with this status. Pending approval and waitlist count at least one ticket per guest; invited guests hold none, so this is 0."
                  }
                },
                "required": [
                  "guests",
                  "tickets"
                ],
                "description": "Guests who were invited but haven't registered yet."
              },
              "declined": {
                "type": "object",
                "properties": {
                  "guests": {
                    "type": "number",
                    "description": "Number of guests (people) with this status. A guest who registered for several tickets still counts once here."
                  },
                  "tickets": {
                    "type": "number",
                    "description": "Number of tickets held by guests with this status. Pending approval and waitlist count at least one ticket per guest; invited guests hold none, so this is 0."
                  }
                },
                "required": [
                  "guests",
                  "tickets"
                ],
                "description": "Guests who declined their invite."
              },
              "checked_in": {
                "type": "object",
                "properties": {
                  "guests": {
                    "type": "number",
                    "description": "Number of guests (people) with this status. A guest who registered for several tickets still counts once here."
                  },
                  "tickets": {
                    "type": "number",
                    "description": "Number of tickets held by guests with this status. Pending approval and waitlist count at least one ticket per guest; invited guests hold none, so this is 0."
                  }
                },
                "required": [
                  "guests",
                  "tickets"
                ],
                "description": "Guests who have checked in at the event."
              }
            },
            "required": [
              "approved",
              "pending_approval",
              "waitlist",
              "invited",
              "declined",
              "checked_in"
            ]
          }
        },
        "required": [
          "platform",
          "id",
          "user_id",
          "calendar_id",
          "start_at",
          "duration_interval",
          "end_at",
          "created_at",
          "timezone",
          "name",
          "geo_address_json",
          "coordinate",
          "meeting_url",
          "location_type",
          "location_visibility",
          "cover_url",
          "url",
          "visibility",
          "waitlist_status",
          "registration_open",
          "require_approval",
          "spots_remaining",
          "display_price",
          "feedback_email",
          "access",
          "description",
          "description_md",
          "hosts",
          "guest_counts"
        ]
      },
      "EventForManage": {
        "type": "object",
        "properties": {
          "platform": {
            "type": "string",
            "const": "luma"
          },
          "id": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          },
          "calendar_id": {
            "type": "string"
          },
          "start_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "duration_interval": {
            "type": "string"
          },
          "end_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "timezone": {
            "type": "string",
            "description": "IANA Timezone, e.g. America/New_York. https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"
          },
          "name": {
            "type": "string"
          },
          "geo_address_json": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Address"
              },
              {
                "type": "null"
              }
            ]
          },
          "coordinate": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "longitude": {
                    "type": "number"
                  },
                  "latitude": {
                    "type": "number"
                  }
                },
                "required": [
                  "longitude",
                  "latitude"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Latitude and longitude of the event location. Null for online events or when the address can't be geocoded."
          },
          "meeting_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "location_type": {
            "type": "string",
            "enum": [
              "discord",
              "meet",
              "twitch",
              "twitter",
              "youtube",
              "zoom",
              "offline",
              "missing",
              "unknown"
            ],
            "description": "`offline` for in-person events. Online events have the meeting platform (`zoom`, `meet`, etc.), or `unknown` if we don't recognize the meeting link. `missing` if the event has no location set."
          },
          "location_visibility": {
            "type": "string",
            "enum": [
              "public",
              "guests-only"
            ],
            "description": "Whether the event's address is shown to everyone or only to approved guests. This API always returns the full address."
          },
          "cover_url": {
            "type": "string"
          },
          "registration_questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RegistrationQuestion"
            }
          },
          "url": {
            "type": "string"
          },
          "visibility": {
            "type": "string",
            "enum": [
              "public",
              "members-only",
              "private"
            ]
          },
          "waitlist_status": {
            "type": "string",
            "enum": [
              "disabled",
              "enabled"
            ],
            "description": "`enabled` if the event has a waitlist. New registrations join the waitlist once the event reaches capacity."
          },
          "registration_open": {
            "type": "boolean",
            "description": "Whether the host is accepting registrations. When `false`, registration is closed and new guests can't sign up. Independent of capacity — a sold-out event with `waitlist_status` disabled still reports `true`."
          },
          "require_approval": {
            "type": "boolean",
            "description": "`true` if registering requires host approval — i.e. any currently available ticket has approval turned on."
          },
          "spots_remaining": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Spots left before the event hits its max capacity. Null when the event has no capacity limit (even if individual ticket types are capped). Refreshed by a background job, so this can lag a few seconds behind registrations."
          },
          "display_price": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Starting (lowest) ticket price in the currency's minor unit (e.g. cents for USD), tax included."
                  },
                  "currency": {
                    "description": "Lowercase ISO 4217 currency code, e.g. `usd`.",
                    "$ref": "#/components/schemas/Currency"
                  },
                  "is_flexible": {
                    "type": "boolean",
                    "description": "`true` for pay-what-you-want pricing — `amount` is the suggested price and guests can pay more."
                  }
                },
                "required": [
                  "amount",
                  "currency",
                  "is_flexible"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "The starting ticket price shown on the event card. Null when registration is free — or, rarely, when nothing is currently purchasable (e.g. all paid tickets have expired). Refreshed by a background job, so this can lag a few seconds behind ticket changes."
          },
          "feedback_email": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "Whether to send the feedback email."
              },
              "delay": {
                "description": "How long after the event ends to send the feedback email. Defaults to PT0M (immediately). Maximum is P7D (7 days).",
                "type": "string"
              }
            },
            "required": [
              "enabled"
            ],
            "description": "Settings for the post-event feedback email sent to guests."
          },
          "access": {
            "type": "string",
            "const": "manage"
          }
        },
        "required": [
          "platform",
          "id",
          "user_id",
          "calendar_id",
          "start_at",
          "duration_interval",
          "end_at",
          "created_at",
          "timezone",
          "name",
          "geo_address_json",
          "coordinate",
          "meeting_url",
          "location_type",
          "location_visibility",
          "cover_url",
          "url",
          "visibility",
          "waitlist_status",
          "registration_open",
          "require_approval",
          "spots_remaining",
          "display_price",
          "feedback_email",
          "access"
        ]
      },
      "EventForView": {
        "type": "object",
        "properties": {
          "platform": {
            "type": "string",
            "const": "luma"
          },
          "id": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          },
          "calendar_id": {
            "type": "string"
          },
          "start_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "duration_interval": {
            "type": "string"
          },
          "end_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "timezone": {
            "type": "string",
            "description": "IANA Timezone, e.g. America/New_York. https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"
          },
          "name": {
            "type": "string"
          },
          "cover_url": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "visibility": {
            "type": "string",
            "enum": [
              "public",
              "members-only",
              "private"
            ]
          },
          "location_type": {
            "type": "string",
            "enum": [
              "discord",
              "meet",
              "twitch",
              "twitter",
              "youtube",
              "zoom",
              "offline",
              "missing",
              "unknown"
            ],
            "description": "`offline` for in-person events. Online events have the meeting platform (`zoom`, `meet`, etc.), or `unknown` if we don't recognize the meeting link. `missing` if the event has no location set."
          },
          "location_visibility": {
            "type": "string",
            "enum": [
              "public",
              "guests-only"
            ],
            "description": "Whether the event's address is shown to everyone or only to approved guests. This API always returns the full address."
          },
          "waitlist_status": {
            "type": "string",
            "enum": [
              "disabled",
              "enabled"
            ],
            "description": "`enabled` if the event has a waitlist. New registrations join the waitlist once the event reaches capacity."
          },
          "access": {
            "type": "string",
            "const": "view"
          },
          "geo_address_json": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Address"
              },
              {
                "type": "null"
              }
            ],
            "description": "Address info for events you don't manage. When the host has set the address to be visible only to guests, only city-level fields (city, region, country, city_state) are populated."
          },
          "coordinate": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "longitude": {
                    "type": "number"
                  },
                  "latitude": {
                    "type": "number"
                  }
                },
                "required": [
                  "longitude",
                  "latitude"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Latitude and longitude of the event. Obfuscated to a coarse area when the host has set the address to be visible only to guests. Null for online events or when no coordinate is set."
          }
        },
        "required": [
          "platform",
          "id",
          "user_id",
          "calendar_id",
          "start_at",
          "duration_interval",
          "end_at",
          "created_at",
          "timezone",
          "name",
          "cover_url",
          "url",
          "visibility",
          "location_type",
          "location_visibility",
          "waitlist_status",
          "access",
          "geo_address_json",
          "coordinate"
        ]
      },
      "EventTicket": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "amount_discount": {
            "type": "number"
          },
          "amount_tax": {
            "type": "number"
          },
          "currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Currency"
              },
              {
                "type": "null"
              }
            ]
          },
          "checked_in_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ]
          },
          "event_ticket_type_id": {
            "type": "string"
          },
          "is_captured": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "amount",
          "amount_discount",
          "amount_tax",
          "currency",
          "checked_in_at",
          "event_ticket_type_id",
          "is_captured",
          "name"
        ]
      },
      "EventTicketLegacy": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "amount_discount": {
            "type": "number"
          },
          "amount_tax": {
            "type": "number"
          },
          "currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Currency"
              },
              {
                "type": "null"
              }
            ]
          },
          "checked_in_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ]
          },
          "event_ticket_type_id": {
            "type": "string"
          },
          "is_captured": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "api_id": {
            "type": "string",
            "deprecated": true,
            "description": "Use `id` instead."
          }
        },
        "required": [
          "id",
          "amount",
          "amount_discount",
          "amount_tax",
          "currency",
          "checked_in_at",
          "event_ticket_type_id",
          "is_captured",
          "name",
          "api_id"
        ]
      },
      "EventTicketOrder": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "amount_discount": {
            "type": "number"
          },
          "amount_tax": {
            "type": "number"
          },
          "currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Currency"
              },
              {
                "type": "null"
              }
            ]
          },
          "coupon_info": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "api_id": {
                    "type": "string"
                  },
                  "percent_off": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "cents_off": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "currency": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/Currency"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "code": {
                    "type": "string"
                  }
                },
                "required": [
                  "api_id",
                  "percent_off",
                  "cents_off",
                  "currency",
                  "code"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "The coupon that was applied to this ticket order, if any."
          },
          "is_captured": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "amount",
          "amount_discount",
          "amount_tax",
          "currency",
          "coupon_info",
          "is_captured"
        ]
      },
      "EventTicketOrderLegacy": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "amount_discount": {
            "type": "number"
          },
          "amount_tax": {
            "type": "number"
          },
          "currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Currency"
              },
              {
                "type": "null"
              }
            ]
          },
          "coupon_info": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "api_id": {
                    "type": "string"
                  },
                  "percent_off": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "cents_off": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "currency": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/Currency"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "code": {
                    "type": "string"
                  }
                },
                "required": [
                  "api_id",
                  "percent_off",
                  "cents_off",
                  "currency",
                  "code"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "The coupon that was applied to this ticket order, if any."
          },
          "is_captured": {
            "type": "boolean"
          },
          "api_id": {
            "type": "string",
            "deprecated": true,
            "description": "Use `id` instead."
          }
        },
        "required": [
          "id",
          "amount",
          "amount_discount",
          "amount_tax",
          "currency",
          "coupon_info",
          "is_captured",
          "api_id"
        ]
      },
      "ExternalEvent": {
        "type": "object",
        "properties": {
          "platform": {
            "type": "string",
            "const": "external"
          },
          "id": {
            "type": "string"
          },
          "calendar_id": {
            "type": "string"
          },
          "start_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "duration_interval": {
            "type": "string"
          },
          "end_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "timezone": {
            "type": "string",
            "description": "IANA Timezone, e.g. America/New_York. https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"
          },
          "name": {
            "type": "string"
          },
          "geo_address_json": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Address"
              },
              {
                "type": "null"
              }
            ]
          },
          "coordinate": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "longitude": {
                    "type": "number"
                  },
                  "latitude": {
                    "type": "number"
                  }
                },
                "required": [
                  "longitude",
                  "latitude"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Latitude and longitude of the event location. Null for online events or when the address can't be geocoded."
          },
          "url": {
            "type": "string"
          },
          "host": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "platform",
          "id",
          "calendar_id",
          "start_at",
          "duration_interval",
          "end_at",
          "created_at",
          "timezone",
          "name",
          "geo_address_json",
          "coordinate",
          "url",
          "host"
        ]
      },
      "Guest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          },
          "user_email": {
            "type": "string"
          },
          "user_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "user_first_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "user_last_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "approval_status": {
            "type": "string",
            "enum": [
              "approved",
              "session",
              "pending_approval",
              "invited",
              "declined",
              "waitlist"
            ]
          },
          "check_in_qr_code": {
            "type": "string"
          },
          "eth_address": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^0x[0-9a-fA-F]{40}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "invited_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ],
            "description": "When the guest was invited to the event. Null if they registered on their own."
          },
          "joined_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ],
            "description": "When the guest first clicked the virtual join link (luma.com/join/...). Only set for online events. Null if the guest has not joined."
          },
          "phone_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "registered_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ],
            "description": "When the guest registered for the event."
          },
          "registration_answers": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "type": "boolean"
                        },
                        "question_type": {
                          "type": "string",
                          "const": "agree-check"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "type": "object",
                          "properties": {
                            "company": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "job_title": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          }
                        },
                        "question_type": {
                          "type": "string",
                          "const": "company"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "dropdown"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "multi-select"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "phone-number"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "boolean",
                                  "const": true
                                }
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "terms"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "anyOf": [
                            {
                              "type": "string",
                              "const": "github"
                            },
                            {
                              "type": "string",
                              "const": "instagram"
                            },
                            {
                              "type": "string",
                              "const": "linkedin"
                            },
                            {
                              "type": "string",
                              "const": "long-text"
                            },
                            {
                              "type": "string",
                              "const": "telegram"
                            },
                            {
                              "type": "string",
                              "const": "text"
                            },
                            {
                              "type": "string",
                              "const": "twitter"
                            },
                            {
                              "type": "string",
                              "const": "youtube"
                            }
                          ]
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "url"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    }
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "solana_address": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[5KL1-9A-HJ-NP-Za-km-z]{32,44}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "utm_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The UTM source parameter captured when the guest registered (from the `?utm_source=` query parameter)."
          },
          "event_tickets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventTicket"
            }
          }
        },
        "required": [
          "id",
          "user_id",
          "user_email",
          "user_name",
          "user_first_name",
          "user_last_name",
          "approval_status",
          "check_in_qr_code",
          "eth_address",
          "invited_at",
          "joined_at",
          "phone_number",
          "registered_at",
          "registration_answers",
          "solana_address",
          "utm_source",
          "event_tickets"
        ]
      },
      "GuestDetailed": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          },
          "user_email": {
            "type": "string"
          },
          "user_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "user_first_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "user_last_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "approval_status": {
            "type": "string",
            "enum": [
              "approved",
              "session",
              "pending_approval",
              "invited",
              "declined",
              "waitlist"
            ]
          },
          "check_in_qr_code": {
            "type": "string"
          },
          "eth_address": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^0x[0-9a-fA-F]{40}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "invited_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ],
            "description": "When the guest was invited to the event. Null if they registered on their own."
          },
          "joined_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ],
            "description": "When the guest first clicked the virtual join link (luma.com/join/...). Only set for online events. Null if the guest has not joined."
          },
          "phone_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "registered_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ],
            "description": "When the guest registered for the event."
          },
          "registration_answers": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "type": "boolean"
                        },
                        "question_type": {
                          "type": "string",
                          "const": "agree-check"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "type": "object",
                          "properties": {
                            "company": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "job_title": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          }
                        },
                        "question_type": {
                          "type": "string",
                          "const": "company"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "dropdown"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "multi-select"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "phone-number"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "boolean",
                                  "const": true
                                }
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "terms"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "anyOf": [
                            {
                              "type": "string",
                              "const": "github"
                            },
                            {
                              "type": "string",
                              "const": "instagram"
                            },
                            {
                              "type": "string",
                              "const": "linkedin"
                            },
                            {
                              "type": "string",
                              "const": "long-text"
                            },
                            {
                              "type": "string",
                              "const": "telegram"
                            },
                            {
                              "type": "string",
                              "const": "text"
                            },
                            {
                              "type": "string",
                              "const": "twitter"
                            },
                            {
                              "type": "string",
                              "const": "youtube"
                            }
                          ]
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "url"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    }
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "solana_address": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[5KL1-9A-HJ-NP-Za-km-z]{32,44}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "utm_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The UTM source parameter captured when the guest registered (from the `?utm_source=` query parameter)."
          },
          "event_tickets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventTicket"
            }
          },
          "event_ticket_orders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventTicketOrder"
            },
            "description": "Detailed ticket orders for this guest. Use this to inspect applied coupon_info per order."
          }
        },
        "required": [
          "id",
          "user_id",
          "user_email",
          "user_name",
          "user_first_name",
          "user_last_name",
          "approval_status",
          "check_in_qr_code",
          "eth_address",
          "invited_at",
          "joined_at",
          "phone_number",
          "registered_at",
          "registration_answers",
          "solana_address",
          "utm_source",
          "event_tickets",
          "event_ticket_orders"
        ]
      },
      "Host": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "first_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "last_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "avatar_url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "email",
          "name",
          "first_name",
          "last_name",
          "avatar_url"
        ]
      },
      "MembershipTier": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "tint_color": {
            "description": "A hex color like '#bb2dc7'. Alpha channels (#rgba, #rrggbbaa) are automatically stripped.",
            "type": "string"
          },
          "access_info": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "free"
                  },
                  "require_approval": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "type",
                  "require_approval"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "payment-once"
                  },
                  "amount": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  },
                  "currency": {
                    "$ref": "#/components/schemas/Currency"
                  },
                  "require_approval": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "type",
                  "amount",
                  "currency",
                  "require_approval"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "payment-recurring"
                  },
                  "currency": {
                    "$ref": "#/components/schemas/Currency"
                  },
                  "stripe_account_id": {
                    "type": "string"
                  },
                  "stripe_product_id": {
                    "type": "string"
                  },
                  "stripe_monthly_price_id": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "amount_monthly": {
                    "anyOf": [
                      {
                        "type": "number",
                        "exclusiveMinimum": 0
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "stripe_yearly_price_id": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "amount_yearly": {
                    "anyOf": [
                      {
                        "type": "number",
                        "exclusiveMinimum": 0
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "require_approval": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "type",
                  "currency",
                  "stripe_account_id",
                  "stripe_product_id",
                  "require_approval"
                ]
              }
            ]
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "tint_color",
          "access_info"
        ]
      },
      "PublicUser": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "avatar_url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "avatar_url"
        ]
      },
      "RegistrationAnswerInput": {
        "type": "object",
        "properties": {
          "question_id": {
            "type": "string",
            "description": "ID of one of the event's registration questions. Question IDs are returned in the `registration_questions` field of Get Event."
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "object",
                "properties": {
                  "company": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "job_title": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                }
              }
            ],
            "description": "The guest's answer. Use a string for text-style questions (`text`, `long-text`, `dropdown`, `url`, `phone-number`, and social handles), an array of strings for `multi-select`, a boolean for `agree-check`, and an object with `company` and `job_title` for `company` questions."
          }
        },
        "required": [
          "question_id",
          "value"
        ]
      },
      "RegistrationQuestion": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "question_type": {
                "type": "string",
                "const": "agree-check"
              }
            },
            "required": [
              "id",
              "label",
              "required",
              "question_type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "question_type": {
                "type": "string",
                "const": "company"
              },
              "collect_job_title": {
                "anyOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "job_title_label": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "id",
              "label",
              "required",
              "question_type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "question_type": {
                "type": "string",
                "const": "dropdown"
              },
              "options": {
                "maxItems": 250,
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "required": [
              "id",
              "label",
              "required",
              "question_type",
              "options"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "question_type": {
                "type": "string",
                "const": "github"
              }
            },
            "required": [
              "id",
              "label",
              "required",
              "question_type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "question_type": {
                "type": "string",
                "const": "instagram"
              }
            },
            "required": [
              "id",
              "label",
              "required",
              "question_type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "question_type": {
                "type": "string",
                "const": "linkedin"
              }
            },
            "required": [
              "id",
              "label",
              "required",
              "question_type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "question_type": {
                "type": "string",
                "const": "long-text"
              }
            },
            "required": [
              "id",
              "label",
              "required",
              "question_type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "question_type": {
                "type": "string",
                "const": "multi-select"
              },
              "options": {
                "maxItems": 250,
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "required": [
              "id",
              "label",
              "required",
              "question_type",
              "options"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "question_type": {
                "type": "string",
                "const": "phone-number"
              }
            },
            "required": [
              "id",
              "label",
              "required",
              "question_type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "question_type": {
                "type": "string",
                "const": "telegram"
              }
            },
            "required": [
              "id",
              "label",
              "required",
              "question_type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "question_type": {
                "type": "string",
                "const": "text"
              }
            },
            "required": [
              "id",
              "label",
              "required",
              "question_type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "question_type": {
                "type": "string",
                "const": "twitter"
              }
            },
            "required": [
              "id",
              "label",
              "required",
              "question_type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "question_type": {
                "type": "string",
                "const": "url"
              }
            },
            "required": [
              "id",
              "label",
              "required",
              "question_type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "question_type": {
                "type": "string",
                "const": "youtube"
              }
            },
            "required": [
              "id",
              "label",
              "required",
              "question_type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "question_type": {
                "type": "string",
                "const": "terms"
              },
              "terms": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "content_type": {
                        "type": "string",
                        "const": "text"
                      },
                      "content_md": {
                        "type": "string",
                        "description": "Markdown content for the terms. Luma converts this to rich text internally."
                      },
                      "collect_signature": {
                        "type": "boolean"
                      },
                      "require_review": {
                        "description": "When true, guests must open the hosted terms before accepting.",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "content_type",
                      "content_md",
                      "collect_signature"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "content_type": {
                        "type": "string",
                        "const": "link"
                      },
                      "url": {
                        "type": "string",
                        "format": "uri"
                      },
                      "collect_signature": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "content_type",
                      "url",
                      "collect_signature"
                    ]
                  }
                ]
              }
            },
            "required": [
              "id",
              "label",
              "required",
              "question_type",
              "terms"
            ]
          }
        ]
      },
      "Tag": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "TicketType": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "require_approval": {
            "type": "boolean"
          },
          "is_hidden": {
            "type": "boolean"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "valid_start_at": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO 8601 Date. For example, 2025-09-01"
              },
              {
                "type": "null"
              }
            ]
          },
          "valid_end_at": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO 8601 Date. For example, 2025-09-01"
              },
              {
                "type": "null"
              }
            ]
          },
          "max_capacity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "type": {
            "type": "string",
            "enum": [
              "free",
              "paid"
            ]
          },
          "cents": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_flexible": {
            "type": "boolean"
          },
          "min_cents": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "type",
          "id"
        ]
      },
      "TicketTypeCreateInput": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "require_approval": {
            "type": "boolean"
          },
          "is_hidden": {
            "type": "boolean"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "valid_start_at": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO 8601 Date. For example, 2025-09-01"
              },
              {
                "type": "null"
              }
            ]
          },
          "valid_end_at": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO 8601 Date. For example, 2025-09-01"
              },
              {
                "type": "null"
              }
            ]
          },
          "max_capacity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "type": {
            "type": "string",
            "enum": [
              "free",
              "paid"
            ]
          },
          "cents": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_flexible": {
            "type": "boolean"
          },
          "min_cents": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "name",
          "type"
        ]
      },
      "TicketTypeUpdateInput": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "require_approval": {
            "type": "boolean"
          },
          "is_hidden": {
            "type": "boolean"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "valid_start_at": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO 8601 Date. For example, 2025-09-01"
              },
              {
                "type": "null"
              }
            ]
          },
          "valid_end_at": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO 8601 Date. For example, 2025-09-01"
              },
              {
                "type": "null"
              }
            ]
          },
          "max_capacity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "type": {
            "type": "string",
            "enum": [
              "free",
              "paid"
            ]
          },
          "cents": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_flexible": {
            "type": "boolean"
          },
          "min_cents": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "User": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "avatar_url": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "first_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "last_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "name",
          "avatar_url",
          "email",
          "first_name",
          "last_name"
        ]
      },
      "UserLegacy": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "avatar_url": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "first_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "last_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "api_id": {
            "type": "string",
            "deprecated": true,
            "description": "Use `id` instead."
          }
        },
        "required": [
          "id",
          "name",
          "avatar_url",
          "email",
          "first_name",
          "last_name",
          "api_id"
        ]
      },
      "WebhookCalendarEvent": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "platform": {
                "type": "string",
                "const": "luma"
              },
              "id": {
                "type": "string",
                "description": "The event ID"
              },
              "api_id": {
                "description": "Deprecated, use id instead",
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "cover_url": {
                "type": "string"
              },
              "start_at": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              "end_at": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              "timezone": {
                "type": "string"
              },
              "calendar": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/Calendar"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The event's owning calendar."
              },
              "hosts": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PublicUser"
                }
              }
            },
            "required": [
              "platform",
              "id",
              "name",
              "url",
              "cover_url",
              "start_at",
              "end_at",
              "timezone",
              "calendar",
              "hosts"
            ]
          },
          {
            "type": "object",
            "properties": {
              "platform": {
                "type": "string",
                "const": "external"
              },
              "id": {
                "type": "string",
                "description": "The calendar event ID"
              },
              "api_id": {
                "description": "Deprecated, use id instead",
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "start_at": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              "end_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                    "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "timezone": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "host_name": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "platform",
              "id",
              "name",
              "url",
              "start_at",
              "end_at",
              "timezone",
              "host_name"
            ]
          }
        ]
      },
      "WebhookCalendarEventSubmission": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "platform": {
                "type": "string",
                "const": "luma"
              },
              "id": {
                "type": "string",
                "description": "The event ID"
              },
              "api_id": {
                "description": "Deprecated, use id instead",
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "cover_url": {
                "type": "string"
              },
              "start_at": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              "end_at": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              "timezone": {
                "type": "string"
              },
              "calendar": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/Calendar"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The event's owning calendar."
              },
              "hosts": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PublicUser"
                }
              },
              "submitted_to_calendar": {
                "description": "The calendar the event was submitted to. With an organization API key, pass its `id` as the `x-luma-calendar-id` header when approving or rejecting the submission.",
                "$ref": "#/components/schemas/Calendar"
              }
            },
            "required": [
              "platform",
              "id",
              "name",
              "url",
              "cover_url",
              "start_at",
              "end_at",
              "timezone",
              "calendar",
              "hosts",
              "submitted_to_calendar"
            ]
          },
          {
            "type": "object",
            "properties": {
              "platform": {
                "type": "string",
                "const": "external"
              },
              "id": {
                "type": "string",
                "description": "The calendar event ID"
              },
              "api_id": {
                "description": "Deprecated, use id instead",
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "start_at": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              "end_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                    "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "timezone": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "host_name": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "submitted_to_calendar": {
                "description": "The calendar the event was submitted to. With an organization API key, pass its `id` as the `x-luma-calendar-id` header when approving or rejecting the submission.",
                "$ref": "#/components/schemas/Calendar"
              }
            },
            "required": [
              "platform",
              "id",
              "name",
              "url",
              "start_at",
              "end_at",
              "timezone",
              "host_name",
              "submitted_to_calendar"
            ]
          }
        ]
      },
      "WebhookCalendarPerson": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "event_approved_count": {
            "type": "number"
          },
          "event_checked_in_count": {
            "type": "number"
          },
          "revenue_usd_cents": {
            "type": "number"
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "membership": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "approved",
                      "pending",
                      "approved-pending-payment",
                      "declined"
                    ]
                  },
                  "calendar_membership_tier_id": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "status",
                  "calendar_membership_tier_id"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "email": {
            "type": "string"
          },
          "user": {
            "$ref": "#/components/schemas/User"
          }
        },
        "required": [
          "id",
          "created_at",
          "event_approved_count",
          "event_checked_in_count",
          "revenue_usd_cents",
          "tags",
          "membership",
          "email",
          "user"
        ]
      },
      "WebhookEvent": {
        "type": "object",
        "properties": {
          "platform": {
            "type": "string",
            "const": "luma"
          },
          "id": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          },
          "calendar_id": {
            "type": "string"
          },
          "start_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "duration_interval": {
            "type": "string"
          },
          "end_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
          },
          "timezone": {
            "type": "string",
            "description": "IANA Timezone, e.g. America/New_York. https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"
          },
          "name": {
            "type": "string"
          },
          "geo_address_json": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Address"
              },
              {
                "type": "null"
              }
            ]
          },
          "coordinate": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "longitude": {
                    "type": "number"
                  },
                  "latitude": {
                    "type": "number"
                  }
                },
                "required": [
                  "longitude",
                  "latitude"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Latitude and longitude of the event location. Null for online events or when the address can't be geocoded."
          },
          "meeting_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "location_type": {
            "type": "string",
            "enum": [
              "discord",
              "meet",
              "twitch",
              "twitter",
              "youtube",
              "zoom",
              "offline",
              "missing",
              "unknown"
            ],
            "description": "`offline` for in-person events. Online events have the meeting platform (`zoom`, `meet`, etc.), or `unknown` if we don't recognize the meeting link. `missing` if the event has no location set."
          },
          "location_visibility": {
            "type": "string",
            "enum": [
              "public",
              "guests-only"
            ],
            "description": "Whether the event's address is shown to everyone or only to approved guests. This API always returns the full address."
          },
          "cover_url": {
            "type": "string"
          },
          "registration_questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RegistrationQuestion"
            }
          },
          "url": {
            "type": "string"
          },
          "visibility": {
            "type": "string",
            "enum": [
              "public",
              "members-only",
              "private"
            ]
          },
          "waitlist_status": {
            "type": "string",
            "enum": [
              "disabled",
              "enabled"
            ],
            "description": "`enabled` if the event has a waitlist. New registrations join the waitlist once the event reaches capacity."
          },
          "registration_open": {
            "type": "boolean",
            "description": "Whether the host is accepting registrations. When `false`, registration is closed and new guests can't sign up. Independent of capacity — a sold-out event with `waitlist_status` disabled still reports `true`."
          },
          "require_approval": {
            "type": "boolean",
            "description": "`true` if registering requires host approval — i.e. any currently available ticket has approval turned on."
          },
          "spots_remaining": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Spots left before the event hits its max capacity. Null when the event has no capacity limit (even if individual ticket types are capped). Refreshed by a background job, so this can lag a few seconds behind registrations."
          },
          "display_price": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Starting (lowest) ticket price in the currency's minor unit (e.g. cents for USD), tax included."
                  },
                  "currency": {
                    "description": "Lowercase ISO 4217 currency code, e.g. `usd`.",
                    "$ref": "#/components/schemas/Currency"
                  },
                  "is_flexible": {
                    "type": "boolean",
                    "description": "`true` for pay-what-you-want pricing — `amount` is the suggested price and guests can pay more."
                  }
                },
                "required": [
                  "amount",
                  "currency",
                  "is_flexible"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "The starting ticket price shown on the event card. Null when registration is free — or, rarely, when nothing is currently purchasable (e.g. all paid tickets have expired). Refreshed by a background job, so this can lag a few seconds behind ticket changes."
          },
          "feedback_email": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "Whether to send the feedback email."
              },
              "delay": {
                "description": "How long after the event ends to send the feedback email. Defaults to PT0M (immediately). Maximum is P7D (7 days).",
                "type": "string"
              }
            },
            "required": [
              "enabled"
            ],
            "description": "Settings for the post-event feedback email sent to guests."
          },
          "description": {
            "type": "string"
          },
          "description_md": {
            "type": "string"
          },
          "geo_latitude": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "deprecated": true,
            "description": "Use `coordinate.latitude` instead."
          },
          "geo_longitude": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "deprecated": true,
            "description": "Use `coordinate.longitude` instead."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name"
              ]
            }
          }
        },
        "required": [
          "platform",
          "id",
          "user_id",
          "calendar_id",
          "start_at",
          "duration_interval",
          "end_at",
          "created_at",
          "timezone",
          "name",
          "geo_address_json",
          "coordinate",
          "meeting_url",
          "location_type",
          "location_visibility",
          "cover_url",
          "url",
          "visibility",
          "waitlist_status",
          "registration_open",
          "require_approval",
          "spots_remaining",
          "display_price",
          "feedback_email",
          "description",
          "description_md",
          "geo_latitude",
          "geo_longitude",
          "tags"
        ]
      },
      "WebhookEventTicket": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          },
          "user_email": {
            "type": "string"
          },
          "user_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "user_first_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "user_last_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "approval_status": {
            "type": "string",
            "enum": [
              "approved",
              "session",
              "pending_approval",
              "invited",
              "declined",
              "waitlist"
            ]
          },
          "check_in_qr_code": {
            "type": "string"
          },
          "eth_address": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^0x[0-9a-fA-F]{40}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "invited_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ],
            "description": "When the guest was invited to the event. Null if they registered on their own."
          },
          "joined_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ],
            "description": "When the guest first clicked the virtual join link (luma.com/join/...). Only set for online events. Null if the guest has not joined."
          },
          "phone_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "registered_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ],
            "description": "When the guest registered for the event."
          },
          "registration_answers": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "type": "boolean"
                        },
                        "question_type": {
                          "type": "string",
                          "const": "agree-check"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "type": "object",
                          "properties": {
                            "company": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "job_title": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          }
                        },
                        "question_type": {
                          "type": "string",
                          "const": "company"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "dropdown"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "multi-select"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "phone-number"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "boolean",
                                  "const": true
                                }
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "terms"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "anyOf": [
                            {
                              "type": "string",
                              "const": "github"
                            },
                            {
                              "type": "string",
                              "const": "instagram"
                            },
                            {
                              "type": "string",
                              "const": "linkedin"
                            },
                            {
                              "type": "string",
                              "const": "long-text"
                            },
                            {
                              "type": "string",
                              "const": "telegram"
                            },
                            {
                              "type": "string",
                              "const": "text"
                            },
                            {
                              "type": "string",
                              "const": "twitter"
                            },
                            {
                              "type": "string",
                              "const": "youtube"
                            }
                          ]
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "url"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    }
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "solana_address": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[5KL1-9A-HJ-NP-Za-km-z]{32,44}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "utm_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The UTM source parameter captured when the guest registered (from the `?utm_source=` query parameter)."
          },
          "event_tickets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventTicketLegacy"
            }
          },
          "custom_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "deprecated": true,
            "description": "Use `utm_source` instead."
          },
          "event_ticket_orders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventTicketOrderLegacy"
            },
            "description": "Detailed ticket orders for this guest. Use this to inspect applied coupon_info per order."
          },
          "event": {
            "$ref": "#/components/schemas/WebhookEvent"
          },
          "event_ticket": {
            "$ref": "#/components/schemas/EventTicket"
          }
        },
        "required": [
          "id",
          "user_id",
          "user_email",
          "user_name",
          "user_first_name",
          "user_last_name",
          "approval_status",
          "check_in_qr_code",
          "eth_address",
          "invited_at",
          "joined_at",
          "phone_number",
          "registered_at",
          "registration_answers",
          "solana_address",
          "utm_source",
          "event_tickets",
          "custom_source",
          "event_ticket_orders",
          "event",
          "event_ticket"
        ]
      },
      "WebhookGuest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          },
          "user_email": {
            "type": "string"
          },
          "user_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "user_first_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "user_last_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "approval_status": {
            "type": "string",
            "enum": [
              "approved",
              "session",
              "pending_approval",
              "invited",
              "declined",
              "waitlist"
            ]
          },
          "check_in_qr_code": {
            "type": "string"
          },
          "eth_address": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^0x[0-9a-fA-F]{40}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "invited_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ],
            "description": "When the guest was invited to the event. Null if they registered on their own."
          },
          "joined_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ],
            "description": "When the guest first clicked the virtual join link (luma.com/join/...). Only set for online events. Null if the guest has not joined."
          },
          "phone_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "registered_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "description": "ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z"
              },
              {
                "type": "null"
              }
            ],
            "description": "When the guest registered for the event."
          },
          "registration_answers": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "type": "boolean"
                        },
                        "question_type": {
                          "type": "string",
                          "const": "agree-check"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "type": "object",
                          "properties": {
                            "company": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "job_title": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          }
                        },
                        "question_type": {
                          "type": "string",
                          "const": "company"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "dropdown"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "multi-select"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "phone-number"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "boolean",
                                  "const": true
                                }
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "terms"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "anyOf": [
                            {
                              "type": "string",
                              "const": "github"
                            },
                            {
                              "type": "string",
                              "const": "instagram"
                            },
                            {
                              "type": "string",
                              "const": "linkedin"
                            },
                            {
                              "type": "string",
                              "const": "long-text"
                            },
                            {
                              "type": "string",
                              "const": "telegram"
                            },
                            {
                              "type": "string",
                              "const": "text"
                            },
                            {
                              "type": "string",
                              "const": "twitter"
                            },
                            {
                              "type": "string",
                              "const": "youtube"
                            }
                          ]
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "question_id": {
                          "type": "string"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "question_type": {
                          "type": "string",
                          "const": "url"
                        }
                      },
                      "required": [
                        "label",
                        "question_id",
                        "value",
                        "question_type"
                      ]
                    }
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "solana_address": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[5KL1-9A-HJ-NP-Za-km-z]{32,44}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "utm_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The UTM source parameter captured when the guest registered (from the `?utm_source=` query parameter)."
          },
          "event_tickets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventTicketLegacy"
            }
          },
          "custom_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "deprecated": true,
            "description": "Use `utm_source` instead."
          },
          "event_ticket_orders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventTicketOrderLegacy"
            },
            "description": "Detailed ticket orders for this guest. Use this to inspect applied coupon_info per order."
          },
          "event": {
            "$ref": "#/components/schemas/WebhookEvent"
          }
        },
        "required": [
          "id",
          "user_id",
          "user_email",
          "user_name",
          "user_first_name",
          "user_last_name",
          "approval_status",
          "check_in_qr_code",
          "eth_address",
          "invited_at",
          "joined_at",
          "phone_number",
          "registered_at",
          "registration_answers",
          "solana_address",
          "utm_source",
          "event_tickets",
          "custom_source",
          "event_ticket_orders",
          "event"
        ]
      }
    }
  },
  "webhooks": {
    "event.created": {
      "post": {
        "summary": "Event Created",
        "description": "Triggered when a new event is created on your calendar.",
        "operationId": "webhook_event_created",
        "tags": [
          "Webhook Types"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "event.created"
                  },
                  "data": {
                    "$ref": "#/components/schemas/WebhookEvent"
                  }
                },
                "required": [
                  "type",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 2xx status to acknowledge receipt of the webhook."
          }
        }
      }
    },
    "event.updated": {
      "post": {
        "summary": "Event Updated",
        "description": "Triggered when an event's details are updated (name, time, location, etc.).",
        "operationId": "webhook_event_updated",
        "tags": [
          "Webhook Types"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "event.updated"
                  },
                  "data": {
                    "$ref": "#/components/schemas/WebhookEvent"
                  }
                },
                "required": [
                  "type",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 2xx status to acknowledge receipt of the webhook."
          }
        }
      }
    },
    "event.canceled": {
      "post": {
        "summary": "Event Canceled",
        "description": "Triggered when an event is canceled.",
        "operationId": "webhook_event_canceled",
        "tags": [
          "Webhook Types"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "event.canceled"
                  },
                  "data": {
                    "$ref": "#/components/schemas/WebhookEvent"
                  }
                },
                "required": [
                  "type",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 2xx status to acknowledge receipt of the webhook."
          }
        }
      }
    },
    "guest.registered": {
      "post": {
        "summary": "Guest Registered",
        "description": "Triggered when a guest registers for an event, including re-registrations after cancellation.",
        "operationId": "webhook_guest_registered",
        "tags": [
          "Webhook Types"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "guest.registered"
                  },
                  "data": {
                    "$ref": "#/components/schemas/WebhookGuest"
                  }
                },
                "required": [
                  "type",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 2xx status to acknowledge receipt of the webhook."
          }
        }
      }
    },
    "guest.updated": {
      "post": {
        "summary": "Guest Updated",
        "description": "Triggered when a guest's registration is updated (approval status changed, answers updated, etc.).",
        "operationId": "webhook_guest_updated",
        "tags": [
          "Webhook Types"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "guest.updated"
                  },
                  "data": {
                    "$ref": "#/components/schemas/WebhookGuest"
                  }
                },
                "required": [
                  "type",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 2xx status to acknowledge receipt of the webhook."
          }
        }
      }
    },
    "ticket.registered": {
      "post": {
        "summary": "Ticket Registered",
        "description": "Triggered when a ticket is purchased or registered. Includes ticket and guest details.",
        "operationId": "webhook_ticket_registered",
        "tags": [
          "Webhook Types"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "ticket.registered"
                  },
                  "data": {
                    "$ref": "#/components/schemas/WebhookEventTicket"
                  }
                },
                "required": [
                  "type",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 2xx status to acknowledge receipt of the webhook."
          }
        }
      }
    },
    "calendar.person.subscribed": {
      "post": {
        "summary": "Calendar Person Subscribed",
        "description": "Triggered when someone subscribes to your calendar (becomes a follower).",
        "operationId": "webhook_calendar_person_subscribed",
        "tags": [
          "Webhook Types"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "calendar.person.subscribed"
                  },
                  "data": {
                    "$ref": "#/components/schemas/WebhookCalendarPerson"
                  }
                },
                "required": [
                  "type",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 2xx status to acknowledge receipt of the webhook."
          }
        }
      }
    },
    "calendar.event.added": {
      "post": {
        "summary": "Calendar Event Added",
        "description": "Triggered when an event is added to a calendar — created on it, approved, transferred in, or made public. This can be a Luma event or an external event.",
        "operationId": "webhook_calendar_event_added",
        "tags": [
          "Webhook Types"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "calendar.event.added"
                  },
                  "data": {
                    "$ref": "#/components/schemas/WebhookCalendarEvent"
                  }
                },
                "required": [
                  "type",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 2xx status to acknowledge receipt of the webhook."
          }
        }
      }
    },
    "calendar.event.submitted": {
      "post": {
        "summary": "Calendar Event Submitted",
        "description": "Triggered when an event is submitted to your calendar and is pending approval. This can be a Luma event or an external event. Use the `id` with the Approve Event or Reject Event endpoint to process the submission — with an organization API key, pass `submitted_to_calendar.id` as the `x-luma-calendar-id` header.",
        "operationId": "webhook_calendar_event_submitted",
        "tags": [
          "Webhook Types"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "calendar.event.submitted"
                  },
                  "data": {
                    "$ref": "#/components/schemas/WebhookCalendarEventSubmission"
                  }
                },
                "required": [
                  "type",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 2xx status to acknowledge receipt of the webhook."
          }
        }
      }
    }
  }
}
```