{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/luma/main/json-schema/v1_events_create_post_request.json", "title": "V1 Events Create Post Request", "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)) \u2014 image URLs must be hosted on the Luma CDN (images.lumacdn.com). Upload images via the /v1/images/create-upload-url endpoint first." }, "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" }, "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" ] } ] }, "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 `can_register_for_multiple_tickets` is `true`, each ticket will count towards the max capacity.", "anyOf": [ { "type": "integer", "minimum": -9007199254740991, "maximum": 9007199254740991 }, { "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_questions": { "type": "array", "items": { "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" ] } ] } }, "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 `/public/v1/entity/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" }, "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": "A hex color like '#bb2dc7'. Alpha channels (#rgba, #rrggbbaa) are automatically stripped.", "type": "string" }, "visibility": { "type": "string", "enum": [ "public", "members-only", "private" ] } }, "required": [ "name", "start_at", "timezone" ] }