Requires a series API key. A mobile token, a global API token and an
event API key are all refused with 403 — an event has to land in a
series, and only a series key names one unambiguously.
The series is taken from the key, never from the request body. You
cannot create an event in another series by passing a different
event_series_id: a foreign value is rejected with 403 rather than
silently overridden (passing the key’s own series id or slug is fine and
redundant).
Required fields
name and support_email — exactly what the web’s new-event form
requires. support_email must be on @hackclub.com,
@events.hackclub.com, or @haven.hackclub.com: it is the from and
reply-to address on every participant and guardian email, so it has to
be an address Hack Club controls.
Everything else is optional here because it is optional on the web too:
slug is generated from name when omitted (lowercase, dashes).
timezone defaults to UTC.
Schedule, location and module fields are collected by the web’s setup
wizard after creation, and may all be sent in this one call instead.
What this does not do
Logo and banner are not accepted. Upload them from the event’s
dashboard; multipart uploads are out of scope for this endpoint.
Setup is not marked complete. Like the web’s create step, the new
event is a draft (setup_complete: false) until someone finishes the
setup wizard — which is also where waiver templates are configured.
Registration should not be opened before that.
Waiver / DocuSeal templates are not settable here.
Side effects
The key’s owner is given an explicit event_admin role on the new
event, mirroring what the web does for the series member who creates
one. The creation is written to the audit log, attributed to the key’s
owner with the key’s name in the metadata.
Every event field this API can write — the same set as the web's event settings form plus its setup wizard, minus the series (decided by the key), the logo/banner (uploaded from the dashboard) and the DocuSeal waiver templates (configured in the setup wizard).
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Attend","description":"Help articles and the API reference for Attend, Hack Club's event platform.","colors":{"primary":"#ec3750","light":"#ff6b7d","dark":"#d42f46"},"favicon":"https://mintcdn.com/hack-club/JxHviSe0hsr-zlFr/favicon.png?fit=max\u0026auto=format\u0026n=JxHviSe0hsr-zlFr\u0026q=85\u0026s=c87622b7179125623f4fd97cb75760c9","navbar":{"links":[{"href":"https://attend.hackclub.com","label":"Attend"}],"primary":{"type":"github","href":"https://github.com/hackclub/attend"}},"footer":{"socials":{"github":"https://github.com/hackclub/attend","website":"https://hackclub.com"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hack-club","hasAudioNarration":false,"actualSubdomain":"hack-club","customDomains":["attend.hackclub.com"],"gitSource":{"type":"github","owner":"hackclub","repo":"attend","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6aec497507f9eeebb2937881","collectionId":"ef92b0b0-73f7-4666-9b5f-a79f3e716254","liveDeploymentHistoryId":"6aec497507f9eeebb2937881","schemaVersion":"v3"},"feedback":{"thumbs":true,"agentFeedback":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aec497507f9eeebb2937881","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"API reference","count":74},{"language":"default","tag":"Endpoints","count":73},{"language":"default","tag":"Help","count":21},{"language":"default","tag":"Messages","count":12},{"language":"default","tag":"Participants","count":8},{"language":"default","tag":"Incidents","count":7},{"language":"default","tag":"Series","count":6},{"language":"default","tag":"Your event","count":5},{"language":"default","tag":"Getting started","count":4},{"language":"default","tag":"Travel","count":4}],"searchSettings":{"showContentSnippets":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"[email protected]"}},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/series/create-an-event-in-the-series","slug":"/api-reference/series/create-an-event-in-the-series","pageMetadata":{"title":"Create an event in the series","description":"**Requires a series API key.** A mobile token, a global API token and an\nevent API key are all refused with `403` — an event has to land in a\nseries, and only a series key names one unambiguously.\n\nThe series is taken from the key, never from the request body. You\ncannot create an event in another series by passing a different\n`event_series_id`: a foreign value is rejected with `403` rather than\nsilently overridden (passing the key's own series id or slug is fine and\nredundant).\n\n### Required fields\n\n`name` and `support_email` — exactly what the web's new-event form\nrequires. `support_email` must be on `@hackclub.com`,\n`@events.hackclub.com`, or `@haven.hackclub.com`: it is the from and\nreply-to address on every participant and guardian email, so it has to\nbe an address Hack Club controls.\n\nEverything else is optional here because it is optional on the web too:\n\n- `slug` is generated from `name` when omitted (lowercase, dashes).\n- `timezone` defaults to `UTC`.\n- Schedule, location and module fields are collected by the web's setup\n wizard *after* creation, and may all be sent in this one call instead.\n\n### What this does not do\n\n- **Logo and banner** are not accepted. Upload them from the event's\n dashboard; multipart uploads are out of scope for this endpoint.\n- **Setup is not marked complete.** Like the web's create step, the new\n event is a draft (`setup_complete: false`) until someone finishes the\n setup wizard — which is also where waiver templates are configured.\n Registration should not be opened before that.\n- **Waiver / DocuSeal templates** are not settable here.\n\n### Side effects\n\nThe key's owner is given an explicit `event_admin` role on the new\nevent, mirroring what the web does for the series member who creates\none. The creation is written to the audit log, attributed to the key's\nowner with the key's name in the metadata.\n","deprecated":null,"version":null,"sidebarTitle":"Create an event in the series","openapi":"/openapi.yml post /series/{series_id}/events","href":"/api-reference/series/create-an-event-in-the-series","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n em: \"em\",\n h3: \"h3\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Requires a series API key.\"\n }), \" A mobile token, a global API token and an\\nevent API key are all refused with \", _jsx(_components.code, {\n children: \"403\"\n }), \" — an event has to land in a\\nseries, and only a series key names one unambiguously.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The series is taken from the key, never from the request body. You\\ncannot create an event in another series by passing a different\\n\", _jsx(_components.code, {\n children: \"event_series_id\"\n }), \": a foreign value is rejected with \", _jsx(_components.code, {\n children: \"403\"\n }), \" rather than\\nsilently overridden (passing the key’s own series id or slug is fine and\\nredundant).\"]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Required fields\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"name\"\n }), \" and \", _jsx(_components.code, {\n children: \"support_email\"\n }), \" — exactly what the web’s new-event form\\nrequires. \", _jsx(_components.code, {\n children: \"support_email\"\n }), \" must be on \", _jsx(_components.code, {\n children: \"@hackclub.com\"\n }), \",\\n\", _jsx(_components.code, {\n children: \"@events.hackclub.com\"\n }), \", or \", _jsx(_components.code, {\n children: \"@haven.hackclub.com\"\n }), \": it is the from and\\nreply-to address on every participant and guardian email, so it has to\\nbe an address Hack Club controls.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Everything else is optional here because it is optional on the web too:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"slug\"\n }), \" is generated from \", _jsx(_components.code, {\n children: \"name\"\n }), \" when omitted (lowercase, dashes).\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"timezone\"\n }), \" defaults to \", _jsx(_components.code, {\n children: \"UTC\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Schedule, location and module fields are collected by the web’s setup\\nwizard \", _jsx(_components.em, {\n children: \"after\"\n }), \" creation, and may all be sent in this one call instead.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"What this does not do\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Logo and banner\"\n }), \" are not accepted. Upload them from the event’s\\ndashboard; multipart uploads are out of scope for this endpoint.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Setup is not marked complete.\"\n }), \" Like the web’s create step, the new\\nevent is a draft (\", _jsx(_components.code, {\n children: \"setup_complete: false\"\n }), \") until someone finishes the\\nsetup wizard — which is also where waiver templates are configured.\\nRegistration should not be opened before that.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Waiver / DocuSeal templates\"\n }), \" are not settable here.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Side effects\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The key’s owner is given an explicit \", _jsx(_components.code, {\n children: \"event_admin\"\n }), \" role on the new\\nevent, mirroring what the web does for the series member who creates\\none. The creation is written to the audit log, attributed to the key’s\\nowner with the key’s name in the metadata.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create an event in the series","description":"**Requires a series API key.** A mobile token, a global API token and an\nevent API key are all refused with `403` — an event has to land in a\nseries, and only a series key names one unambiguously.\n\nThe series is taken from the key, never from the request body. You\ncannot create an event in another series by passing a different\n`event_series_id`: a foreign value is rejected with `403` rather than\nsilently overridden (passing the key's own series id or slug is fine and\nredundant).\n\n### Required fields\n\n`name` and `support_email` — exactly what the web's new-event form\nrequires. `support_email` must be on `@hackclub.com`,\n`@events.hackclub.com`, or `@haven.hackclub.com`: it is the from and\nreply-to address on every participant and guardian email, so it has to\nbe an address Hack Club controls.\n\nEverything else is optional here because it is optional on the web too:\n\n- `slug` is generated from `name` when omitted (lowercase, dashes).\n- `timezone` defaults to `UTC`.\n- Schedule, location and module fields are collected by the web's setup\n wizard *after* creation, and may all be sent in this one call instead.\n\n### What this does not do\n\n- **Logo and banner** are not accepted. Upload them from the event's\n dashboard; multipart uploads are out of scope for this endpoint.\n- **Setup is not marked complete.** Like the web's create step, the new\n event is a draft (`setup_complete: false`) until someone finishes the\n setup wizard — which is also where waiver templates are configured.\n Registration should not be opened before that.\n- **Waiver / DocuSeal templates** are not settable here.\n\n### Side effects\n\nThe key's owner is given an explicit `event_admin` role on the new\nevent, mirroring what the web does for the series member who creates\none. The creation is written to the audit log, attributed to the key's\nowner with the key's name in the metadata.\n","deprecated":null,"version":null,"sidebarTitle":"Create an event in the series","openapi":"/openapi.yml post /series/{series_id}/events","href":"/api-reference/series/create-an-event-in-the-series","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Series"],"summary":"Create an event in the series","x-mint":{"href":"/api-reference/series/create-an-event-in-the-series"},"description":"**Requires a series API key.** A mobile token, a global API token and an\nevent API key are all refused with `403` — an event has to land in a\nseries, and only a series key names one unambiguously.\n\nThe series is taken from the key, never from the request body. You\ncannot create an event in another series by passing a different\n`event_series_id`: a foreign value is rejected with `403` rather than\nsilently overridden (passing the key's own series id or slug is fine and\nredundant).\n\n### Required fields\n\n`name` and `support_email` — exactly what the web's new-event form\nrequires. `support_email` must be on `@hackclub.com`,\n`@events.hackclub.com`, or `@haven.hackclub.com`: it is the from and\nreply-to address on every participant and guardian email, so it has to\nbe an address Hack Club controls.\n\nEverything else is optional here because it is optional on the web too:\n\n- `slug` is generated from `name` when omitted (lowercase, dashes).\n- `timezone` defaults to `UTC`.\n- Schedule, location and module fields are collected by the web's setup\n wizard *after* creation, and may all be sent in this one call instead.\n\n### What this does not do\n\n- **Logo and banner** are not accepted. Upload them from the event's\n dashboard; multipart uploads are out of scope for this endpoint.\n- **Setup is not marked complete.** Like the web's create step, the new\n event is a draft (`setup_complete: false`) until someone finishes the\n setup wizard — which is also where waiver templates are configured.\n Registration should not be opened before that.\n- **Waiver / DocuSeal templates** are not settable here.\n\n### Side effects\n\nThe key's owner is given an explicit `event_admin` role on the new\nevent, mirroring what the web does for the series member who creates\none. The creation is written to the audit log, attributed to the key's\nowner with the key's name in the metadata.\n","parameters":["09655c30-317e-458a-a1a9-9a7a8a2f0197"],"requestBody":"e912dc05-ab5e-4645-8965-3aed4a464b64","responses":{"201":"9e2e012f-58b7-47a6-b53b-a0b3cb955575","401":"4d7947fc-7ca2-4b98-89fa-1753f9efc9d0","403":"fab4595c-2f84-4d86-b8d3-60dc1481742d","404":"c302cc12-e66c-41d6-b35e-3e619e481fdd","422":"f5875856-d0e4-4992-a308-8029ecffac54"},"method":"post","type":"path","servers":["cdc77891-66a2-41cc-83da-2876c8717128","c9030575-29d2-4e8c-8e07-86c6cfeebdd3"],"security":["a99530a7-e390-40b8-a239-5b04fc3ebc3f"],"path":"/series/{series_id}/events","baseUrlOptions":["https://attend.hackclub.com/api/v1","http://localhost:3000/api/v1"],"title":"Create an event in the series","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"09655c30-317e-458a-a1a9-9a7a8a2f0197":{"name":"series_id","in":"path","required":true,"schema":{"type":"string","isRequired":true,"description":"Series UUID, series slug, or the literal `current` — the series the calling series API key belongs to. `current` is only valid for a series API key.","uniqueKey":"","typeLabel":"string"},"description":"Series UUID, series slug, or the literal `current` — the series the calling series API key belongs to. `current` is only valid for a series API key."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["event"],"properties":{"event":{"type":"object","description":"Every event field this API can write — the same set as the web's event settings form plus its setup wizard, minus the series (decided by the key), the logo/banner (uploaded from the dashboard) and the DocuSeal waiver templates (configured in the setup wizard).","required":["name","support_email"],"properties":{"name":{"type":"string","example":"Sunbeam Summer 2027","isRequired":true,"uniqueKey":"event.name","typeLabel":"string"},"support_email":{"type":"string","format":"email","description":"Must be `@hackclub.com`, `@events.hackclub.com`, or `@haven.hackclub.com` — it is the from and reply-to address on every participant and guardian email.","example":"[email protected]","isRequired":true,"uniqueKey":"event.support_email","typeLabel":"string\u003cemail>"},"slug":{"type":"string","description":"Lowercase letters, numbers and dashes. Generated from `name` when omitted. Must be unique, and cannot be a reserved word (`new`, `admin`, `api`, `series`, …).","example":"sunbeam-summer-2027","uniqueKey":"event.slug","typeLabel":"string"},"timezone":{"type":"string","description":"IANA identifier or Rails zone name. Defaults to `UTC`. Zone-less timestamps (`2027-07-12T09:00`) are interpreted in this zone, so send it alongside the schedule; timestamps with an offset or `Z` are taken as given.","example":"Europe/Helsinki","uniqueKey":"event.timezone","typeLabel":"string"},"starts_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"event.starts_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"event.starts_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.starts_at","typeLabel":"string\u003cdate-time> | null"},"ends_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"event.ends_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"event.ends_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.ends_at","typeLabel":"string\u003cdate-time> | null"},"registration_open_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"event.registration_open_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"event.registration_open_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.registration_open_at","typeLabel":"string\u003cdate-time> | null"},"registration_close_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"event.registration_close_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"event.registration_close_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.registration_close_at","typeLabel":"string\u003cdate-time> | null"},"arrival_opens_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"event.arrival_opens_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"event.arrival_opens_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.arrival_opens_at","typeLabel":"string\u003cdate-time> | null"},"arrival_closes_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"event.arrival_closes_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"event.arrival_closes_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.arrival_closes_at","typeLabel":"string\u003cdate-time> | null"},"venue_name":{"oneOf":[{"type":"string","example":"Kaapelitehdas","uniqueKey":"event.venue_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Kaapelitehdas","uniqueKey":"event.venue_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.venue_name","typeLabel":"string | null"},"location_city":{"oneOf":[{"type":"string","example":"Helsinki","uniqueKey":"event.location_city.oneOf.0","typeLabel":"string"},{"type":"null","example":"Helsinki","uniqueKey":"event.location_city.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.location_city","typeLabel":"string | null"},"location_country":{"oneOf":[{"type":"string","example":"Finland","uniqueKey":"event.location_country.oneOf.0","typeLabel":"string"},{"type":"null","example":"Finland","uniqueKey":"event.location_country.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.location_country","typeLabel":"string | null"},"location_address":{"oneOf":[{"type":"string","description":"Saving an address, venue, city or country geocodes it in the background, filling in latitude and longitude — so a later `GET` may show coordinates you never sent.","example":"Tallberginkatu 1","uniqueKey":"event.location_address.oneOf.0","typeLabel":"string"},{"type":"null","description":"Saving an address, venue, city or country geocodes it in the background, filling in latitude and longitude — so a later `GET` may show coordinates you never sent.","example":"Tallberginkatu 1","uniqueKey":"event.location_address.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.location_address","typeLabel":"string | null"},"location_latitude":{"oneOf":[{"type":"number","format":"double","uniqueKey":"event.location_latitude.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"event.location_latitude.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.location_latitude","typeLabel":"number\u003cdouble> | null"},"location_longitude":{"oneOf":[{"type":"number","format":"double","uniqueKey":"event.location_longitude.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"event.location_longitude.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.location_longitude","typeLabel":"number\u003cdouble> | null"},"freedom_waivers_enabled":{"type":"boolean","description":"Defaults to true on create.","uniqueKey":"event.freedom_waivers_enabled","typeLabel":"boolean"},"travel_enabled":{"type":"boolean","description":"Defaults to true on create.","uniqueKey":"event.travel_enabled","typeLabel":"boolean"},"visa_options_enabled":{"type":"boolean","description":"Defaults to true on create.","uniqueKey":"event.visa_options_enabled","typeLabel":"boolean"},"visa_application_url":{"oneOf":[{"type":"string","uniqueKey":"event.visa_application_url.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"event.visa_application_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.visa_application_url","typeLabel":"string | null"},"accommodation_enabled":{"type":"boolean","description":"Defaults to true on create.","uniqueKey":"event.accommodation_enabled","typeLabel":"boolean"},"roommate_preferences_enabled":{"type":"boolean","description":"Defaults to true on create.","uniqueKey":"event.roommate_preferences_enabled","typeLabel":"boolean"},"guardian_invites_locked":{"type":"boolean","uniqueKey":"event.guardian_invites_locked","typeLabel":"boolean"},"onboarding_invites_held":{"type":"boolean","description":"Setting this from true to false sends every held invitation on the event, exactly like the dashboard's release button.","uniqueKey":"event.onboarding_invites_held","typeLabel":"boolean"},"nfc_badges_enabled":{"type":"boolean","uniqueKey":"event.nfc_badges_enabled","typeLabel":"boolean"},"nfc_badge_write_on_checkin_enabled":{"type":"boolean","uniqueKey":"event.nfc_badge_write_on_checkin_enabled","typeLabel":"boolean"},"groups_enabled":{"type":"boolean","uniqueKey":"event.groups_enabled","typeLabel":"boolean"},"hotel_scan_context_id":{"oneOf":[{"type":"string","format":"uuid","description":"Must be a scan context belonging to this event.","uniqueKey":"event.hotel_scan_context_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Must be a scan context belonging to this event.","uniqueKey":"event.hotel_scan_context_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.hotel_scan_context_id","typeLabel":"string\u003cuuid> | null"},"event_series_id":{"type":"string","description":"Not needed — the series comes from the key. If sent it must match the key's own series (id or slug); any other value is rejected with `403`.","uniqueKey":"event.event_series_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"event","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"minimal":{"title":"minimal","value":{"event":{"name":"Sunbeam Summer 2027","support_email":"[email protected]"}}},"fully_configured":{"title":"fully_configured","value":{"event":{"name":"Sunbeam Summer 2027","slug":"sunbeam-summer-2027","support_email":"[email protected]","timezone":"Europe/Helsinki","starts_at":"2027-07-12T09:00:00Z","ends_at":"2027-07-15T17:00:00Z","registration_open_at":"2027-04-01T00:00:00Z","registration_close_at":"2027-06-01T00:00:00Z","venue_name":"Kaapelitehdas","location_city":"Helsinki","location_country":"Finland","location_address":"Tallberginkatu 1","travel_enabled":true,"accommodation_enabled":true,"groups_enabled":true}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"9e2e012f-58b7-47a6-b53b-a0b3cb955575":{"description":"Event created, in the key's own series.","content":{"application/json":{"schema":{"type":"object","properties":{"event":{"type":"object","properties":{"id":{"type":"string","format":"uuid","uniqueKey":"event.id","typeLabel":"string\u003cuuid>"},"slug":{"type":"string","example":"sunbeam-summer-2027","uniqueKey":"event.slug","typeLabel":"string"},"name":{"type":"string","example":"Sunbeam Summer 2027","uniqueKey":"event.name","typeLabel":"string"},"series":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"event.series.id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"event.series.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.series.id","typeLabel":"string\u003cuuid> | null"},"slug":{"oneOf":[{"type":"string","uniqueKey":"event.series.slug.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"event.series.slug.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.series.slug","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","uniqueKey":"event.series.name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"event.series.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.series.name","typeLabel":"string | null"}},"uniqueKey":"event.series","typeLabel":"object"},"support_email":{"oneOf":[{"type":"string","format":"email","uniqueKey":"event.support_email.oneOf.0","typeLabel":"string\u003cemail>"},{"type":"null","format":"email","uniqueKey":"event.support_email.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.support_email","typeLabel":"string\u003cemail> | null"},"timezone":{"oneOf":[{"type":"string","description":"IANA identifier, e.g. `Europe/Helsinki`.","example":"Europe/Helsinki","uniqueKey":"event.timezone.oneOf.0","typeLabel":"string"},{"type":"null","description":"IANA identifier, e.g. `Europe/Helsinki`.","example":"Europe/Helsinki","uniqueKey":"event.timezone.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.timezone","typeLabel":"string | null"},"starts_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"event.starts_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"event.starts_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.starts_at","typeLabel":"string\u003cdate-time> | null"},"ends_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"event.ends_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"event.ends_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.ends_at","typeLabel":"string\u003cdate-time> | null"},"registration_open_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"event.registration_open_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"event.registration_open_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.registration_open_at","typeLabel":"string\u003cdate-time> | null"},"registration_close_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"event.registration_close_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"event.registration_close_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.registration_close_at","typeLabel":"string\u003cdate-time> | null"},"arrival_opens_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"event.arrival_opens_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"event.arrival_opens_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.arrival_opens_at","typeLabel":"string\u003cdate-time> | null"},"arrival_closes_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"event.arrival_closes_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"event.arrival_closes_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.arrival_closes_at","typeLabel":"string\u003cdate-time> | null"},"venue_name":{"oneOf":[{"type":"string","uniqueKey":"event.venue_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"event.venue_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.venue_name","typeLabel":"string | null"},"location_city":{"oneOf":[{"type":"string","uniqueKey":"event.location_city.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"event.location_city.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.location_city","typeLabel":"string | null"},"location_country":{"oneOf":[{"type":"string","uniqueKey":"event.location_country.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"event.location_country.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.location_country","typeLabel":"string | null"},"location_address":{"oneOf":[{"type":"string","uniqueKey":"event.location_address.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"event.location_address.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.location_address","typeLabel":"string | null"},"location_latitude":{"oneOf":[{"type":"number","format":"double","uniqueKey":"event.location_latitude.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"event.location_latitude.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.location_latitude","typeLabel":"number\u003cdouble> | null"},"location_longitude":{"oneOf":[{"type":"number","format":"double","uniqueKey":"event.location_longitude.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"event.location_longitude.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.location_longitude","typeLabel":"number\u003cdouble> | null"},"setup_complete":{"type":"boolean","description":"False until someone finishes the setup wizard on the web. An event created through this API starts as a draft.","uniqueKey":"event.setup_complete","typeLabel":"boolean"},"created_at":{"type":"string","format":"date-time","uniqueKey":"event.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","uniqueKey":"event.updated_at","typeLabel":"string\u003cdate-time>"},"modules":{"type":"object","description":"The event's feature toggles, always returned as real booleans (they are stored loosely, so read them from here rather than assuming a shape).","properties":{"freedom_waivers_enabled":{"type":"boolean","uniqueKey":"event.modules.freedom_waivers_enabled","typeLabel":"boolean"},"travel_enabled":{"type":"boolean","uniqueKey":"event.modules.travel_enabled","typeLabel":"boolean"},"visa_options_enabled":{"type":"boolean","uniqueKey":"event.modules.visa_options_enabled","typeLabel":"boolean"},"visa_application_url":{"oneOf":[{"type":"string","uniqueKey":"event.modules.visa_application_url.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"event.modules.visa_application_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.modules.visa_application_url","typeLabel":"string | null"},"accommodation_enabled":{"type":"boolean","uniqueKey":"event.modules.accommodation_enabled","typeLabel":"boolean"},"roommate_preferences_enabled":{"type":"boolean","uniqueKey":"event.modules.roommate_preferences_enabled","typeLabel":"boolean"},"guardian_invites_locked":{"type":"boolean","uniqueKey":"event.modules.guardian_invites_locked","typeLabel":"boolean"},"onboarding_invites_held":{"type":"boolean","description":"While true, participants added by any route (dashboard, import, this API) are recorded without an onboarding email. Releasing the hold sends every held invitation.","uniqueKey":"event.modules.onboarding_invites_held","typeLabel":"boolean"},"nfc_badges_enabled":{"type":"boolean","uniqueKey":"event.modules.nfc_badges_enabled","typeLabel":"boolean"},"nfc_badge_write_on_checkin_enabled":{"type":"boolean","uniqueKey":"event.modules.nfc_badge_write_on_checkin_enabled","typeLabel":"boolean"},"groups_enabled":{"type":"boolean","uniqueKey":"event.modules.groups_enabled","typeLabel":"boolean"}},"uniqueKey":"event.modules","typeLabel":"object"},"hotel_scan_context_id":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"event.hotel_scan_context_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"event.hotel_scan_context_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"event.hotel_scan_context_id","typeLabel":"string\u003cuuid> | null"},"participant_count":{"type":"integer","example":120,"uniqueKey":"event.participant_count","typeLabel":"integer"}},"uniqueKey":"event","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"event":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","slug":"sunbeam-summer-2027","name":"Sunbeam Summer 2027","series":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","slug":"\u003cstring>","name":"\u003cstring>"},"support_email":"[email protected]","timezone":"Europe/Helsinki","starts_at":"2023-11-07T05:31:56Z","ends_at":"2023-11-07T05:31:56Z","registration_open_at":"2023-11-07T05:31:56Z","registration_close_at":"2023-11-07T05:31:56Z","arrival_opens_at":"2023-11-07T05:31:56Z","arrival_closes_at":"2023-11-07T05:31:56Z","venue_name":"\u003cstring>","location_city":"\u003cstring>","location_country":"\u003cstring>","location_address":"\u003cstring>","location_latitude":123,"location_longitude":123,"setup_complete":true,"created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","modules":{"freedom_waivers_enabled":true,"travel_enabled":true,"visa_options_enabled":true,"visa_application_url":"\u003cstring>","accommodation_enabled":true,"roommate_preferences_enabled":true,"guardian_invites_locked":true,"onboarding_invites_held":true,"nfc_badges_enabled":true,"nfc_badge_write_on_checkin_enabled":true,"groups_enabled":true},"hotel_scan_context_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","participant_count":120}}}},"exampleType":"generated"}},"exampleType":"generated"},"4d7947fc-7ca2-4b98-89fa-1753f9efc9d0":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Unauthorized"}}},"exampleType":"generated"}},"exampleType":"generated"},"fab4595c-2f84-4d86-b8d3-60dc1481742d":{"description":"One of:\n\n- the caller is not a series API key (`Creating an event requires a\n series API key.`)\n- the key belongs to a different series\n- the body named a different series in `event_series_id`\n","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Unauthorized"}}},"exampleType":"generated"}},"exampleType":"generated"},"c302cc12-e66c-41d6-b35e-3e619e481fdd":{"description":"Event or record not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Unauthorized"}}},"exampleType":"generated"}},"exampleType":"generated"},"f5875856-d0e4-4992-a308-8029ecffac54":{"description":"A required field was missing, or the event failed validation (bad support-email domain, slug already taken, reserved slug).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"missing_required":{"title":"missing_required","value":{"error":"name and support_email are required"}},"bad_support_email":{"title":"bad_support_email","value":{"error":"Support email must be a @hackclub.com, @events.hackclub.com, or @haven.hackclub.com address"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"a99530a7-e390-40b8-a239-5b04fc3ebc3f":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Mobile token, global API token, series API key, or event API key. See Authentication above for which endpoints each one reaches.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"cdc77891-66a2-41cc-83da-2876c8717128":{"url":"https://attend.hackclub.com/api/v1","description":"Production"},"c9030575-29d2-4e8c-8e07-86c6cfeebdd3":{"url":"http://localhost:3000/api/v1","description":"Local development"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Mobile token, global API token, series API key, or event API key. See Authentication above for which endpoints each one reaches.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Mobile token, global API token, series API key, or event API key. See Authentication above for which endpoints each one reaches.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.yml"},"subdomain":"hack-club","siteName":"Attend","title":"Create an event in the series - Attend","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T09:16:43.449Z","originalFileLocation":"api-reference/series/create-an-event-in-the-series.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Requires a series API key. A mobile token, a global API token and an event API key are all refused with 403 — an event has to land in a series, and only a series key names one unambiguously. The series is taken from the key, never from the request body. You cannot create an event in another series by passing a different event_series_id: a foreign value is rejected with 403 rather than silently overridden (passing the key\u0026#x27;s own series id or slug is fine and redundant). ### Required fields name and support_email — exactly what the web\u0026#x27;s new-event form requires. support_email must be on @hackclub.com, @events.hackclub.com, or @haven.hackclub.com: it is the from and reply-to address on every participant and guardian email, so it has to be an address Hack Club controls. Everything else is optional here because it is optional on the web too: - slug is generated from name when omitted (lowercase, dashes). - timezone defaults to UTC. - Schedule, location and module fields are collected by the web\u0026#x27;s setup wizard after creation, and may all be sent in this one call instead. ### What this does not do - Logo and banner are not accepted. Upload them from the event\u0026#x27;s dashboard; multipart uploads are out of scope for this endpoint. - Setup is not marked complete. Like the web\u0026#x27;s create step, the new event is a draft (setup_complete: false) until someone finishes the setup wizard — which is also where waiver templates are configured. Registration should not be opened before that. - Waiver / DocuSeal templates are not settable here. ### Side effects The key\u0026#x27;s owner is given an explicit event_admin role on the new event, mirroring what the web does for the series member who creates one. The creation is written to the audit log, attributed to the key\u0026#x27;s owner with the key\u0026#x27;s name in the metadata.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Attend\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/hack-club/TahJjYfFb5J4CmpN/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/hack-club/TahJjYfFb5J4CmpN/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/hack-club/TahJjYfFb5J4CmpN/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/hack-club/TahJjYfFb5J4CmpN/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/hack-club/TahJjYfFb5J4CmpN/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/hack-club/TahJjYfFb5J4CmpN/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/hack-club/TahJjYfFb5J4CmpN/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/hack-club/TahJjYfFb5J4CmpN/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/hack-club/TahJjYfFb5J4CmpN/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create an event in the series - Attend\">\u003cmeta data-mint-head property=\"og:description\" content=\"Requires a series API key. A mobile token, a global API token and an event API key are all refused with 403 — an event has to land in a series, and only a series key names one unambiguously. The series is taken from the key, never from the request body. You cannot create an event in another series by passing a different event_series_id: a foreign value is rejected with 403 rather than silently overridden (passing the key\u0026#x27;s own series id or slug is fine and redundant). ### Required fields name and support_email — exactly what the web\u0026#x27;s new-event form requires. support_email must be on @hackclub.com, @events.hackclub.com, or @haven.hackclub.com: it is the from and reply-to address on every participant and guardian email, so it has to be an address Hack Club controls. Everything else is optional here because it is optional on the web too: - slug is generated from name when omitted (lowercase, dashes). - timezone defaults to UTC. - Schedule, location and module fields are collected by the web\u0026#x27;s setup wizard after creation, and may all be sent in this one call instead. ### What this does not do - Logo and banner are not accepted. Upload them from the event\u0026#x27;s dashboard; multipart uploads are out of scope for this endpoint. - Setup is not marked complete. Like the web\u0026#x27;s create step, the new event is a draft (setup_complete: false) until someone finishes the setup wizard — which is also where waiver templates are configured. Registration should not be opened before that. - Waiver / DocuSeal templates are not settable here. ### Side effects The key\u0026#x27;s owner is given an explicit event_admin role on the new event, mirroring what the web does for the series member who creates one. The creation is written to the audit log, attributed to the key\u0026#x27;s owner with the key\u0026#x27;s name in the metadata.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Attend\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://attend.hackclub.com/docs/api-reference/series/create-an-event-in-the-series\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://hack-club.mintlify.app/_mintlify/api/og/v2?division=Series\u0026amp;title=Create+an+event+in+the+series\u0026amp;description=**Requires+a+series+API+key.**+A+mobile+token%2C+a+global+API+token+and+an%0Aevent+API+key+are+all+refused+with+%60403%60+%E2%80%94+an+event+has+to+land+in+a%0Aseries%2C+and+only+a\u0026amp;theme=2570de8427322b889b74e8dd\u0026amp;signature=7cab813fbacc1764fdd3151b5be48836b42358f6ebaecaab4a37c95721652503\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create an event in the series - Attend\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Requires a series API key. A mobile token, a global API token and an event API key are all refused with 403 — an event has to land in a series, and only a series key names one unambiguously. The series is taken from the key, never from the request body. You cannot create an event in another series by passing a different event_series_id: a foreign value is rejected with 403 rather than silently overridden (passing the key\u0026#x27;s own series id or slug is fine and redundant). ### Required fields name and support_email — exactly what the web\u0026#x27;s new-event form requires. support_email must be on @hackclub.com, @events.hackclub.com, or @haven.hackclub.com: it is the from and reply-to address on every participant and guardian email, so it has to be an address Hack Club controls. Everything else is optional here because it is optional on the web too: - slug is generated from name when omitted (lowercase, dashes). - timezone defaults to UTC. - Schedule, location and module fields are collected by the web\u0026#x27;s setup wizard after creation, and may all be sent in this one call instead. ### What this does not do - Logo and banner are not accepted. Upload them from the event\u0026#x27;s dashboard; multipart uploads are out of scope for this endpoint. - Setup is not marked complete. Like the web\u0026#x27;s create step, the new event is a draft (setup_complete: false) until someone finishes the setup wizard — which is also where waiver templates are configured. Registration should not be opened before that. - Waiver / DocuSeal templates are not settable here. ### Side effects The key\u0026#x27;s owner is given an explicit event_admin role on the new event, mirroring what the web does for the series member who creates one. The creation is written to the audit log, attributed to the key\u0026#x27;s owner with the key\u0026#x27;s name in the metadata.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hack-club.mintlify.app/_mintlify/api/og/v2?division=Series\u0026amp;title=Create+an+event+in+the+series\u0026amp;description=**Requires+a+series+API+key.**+A+mobile+token%2C+a+global+API+token+and+an%0Aevent+API+key+are+all+refused+with+%60403%60+%E2%80%94+an+event+has+to+land+in+a%0Aseries%2C+and+only+a\u0026amp;theme=2570de8427322b889b74e8dd\u0026amp;signature=7cab813fbacc1764fdd3151b5be48836b42358f6ebaecaab4a37c95721652503\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/hack-club/TahJjYfFb5J4CmpN/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Attend\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ec3750\">\u003clink data-mint-head rel=\"canonical\" href=\"https://attend.hackclub.com/docs/api-reference/series/create-an-event-in-the-series\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/series/create-an-event-in-the-series.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://attend.hackclub.com/#organization\",\"name\":\"Attend\",\"url\":\"https://attend.hackclub.com\"},{\"@type\":\"WebSite\",\"@id\":\"https://attend.hackclub.com/docs#website\",\"name\":\"Attend\",\"url\":\"https://attend.hackclub.com/docs\",\"publisher\":{\"@id\":\"https://attend.hackclub.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://attend.hackclub.com/docs/api-reference/series/create-an-event-in-the-series#webpage\",\"url\":\"https://attend.hackclub.com/docs/api-reference/series/create-an-event-in-the-series\",\"name\":\"Create an event in the series\",\"description\":\"Requires a series API key. A mobile token, a global API token and an event API key are all refused with 403 — an event has to land in a series, and only a series key names one unambiguously. The series is taken from the key, never from the request body. You cannot create an event in another series by passing a different event_series_id: a foreign value is rejected with 403 rather than silently overridden (passing the key's own series id or slug is fine and redundant). ### Required fields name and support_email — exactly what the web's new-event form requires. support_email must be on @hackclub.com, @events.hackclub.com, or @haven.hackclub.com: it is the from and reply-to address on every participant and guardian email, so it has to be an address Hack Club controls. Everything else is optional here because it is optional on the web too: - slug is generated from name when omitted (lowercase, dashes). - timezone defaults to UTC. - Schedule, location and module fields are collected by the web's setup wizard after creation, and may all be sent in this one call instead. ### What this does not do - Logo and banner are not accepted. Upload them from the event's dashboard; multipart uploads are out of scope for this endpoint. - Setup is not marked complete. Like the web's create step, the new event is a draft (setup_complete: false) until someone finishes the setup wizard — which is also where waiver templates are configured. Registration should not be opened before that. - Waiver / DocuSeal templates are not settable here. ### Side effects The key's owner is given an explicit event_admin role on the new event, mirroring what the web does for the series member who creates one. The creation is written to the audit log, attributed to the key's owner with the key's name in the metadata.\",\"dateModified\":\"2026-11-05T09:16:43.449Z\",\"isPartOf\":{\"@id\":\"https://attend.hackclub.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://attend.hackclub.com/docs/api-reference/series/create-an-event-in-the-series#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://attend.hackclub.com/docs/api-reference/series/create-an-event-in-the-series#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://attend.hackclub.com/docs/api-reference/authentication/create-a-mobile-token\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Series\",\"item\":\"https://attend.hackclub.com/docs/api-reference/series/list-series\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Create an event in the series\",\"item\":\"https://attend.hackclub.com/docs/api-reference/series/create-an-event-in-the-series\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://attend.hackclub.com/docs/api-reference/series/create-an-event-in-the-series#apireference\",\"headline\":\"Create an event in the series\",\"name\":\"Create an event in the series\",\"description\":\"Requires a series API key. A mobile token, a global API token and an event API key are all refused with 403 — an event has to land in a series, and only a series key names one unambiguously. The series is taken from the key, never from the request body. You cannot create an event in another series by passing a different event_series_id: a foreign value is rejected with 403 rather than silently overridden (passing the key's own series id or slug is fine and redundant). ### Required fields name and support_email — exactly what the web's new-event form requires. support_email must be on @hackclub.com, @events.hackclub.com, or @haven.hackclub.com: it is the from and reply-to address on every participant and guardian email, so it has to be an address Hack Club controls. Everything else is optional here because it is optional on the web too: - slug is generated from name when omitted (lowercase, dashes). - timezone defaults to UTC. - Schedule, location and module fields are collected by the web's setup wizard after creation, and may all be sent in this one call instead. ### What this does not do - Logo and banner are not accepted. Upload them from the event's dashboard; multipart uploads are out of scope for this endpoint. - Setup is not marked complete. Like the web's create step, the new event is a draft (setup_complete: false) until someone finishes the setup wizard — which is also where waiver templates are configured. Registration should not be opened before that. - Waiver / DocuSeal templates are not settable here. ### Side effects The key's owner is given an explicit event_admin role on the new event, mirroring what the web does for the series member who creates one. The creation is written to the audit log, attributed to the key's owner with the key's name in the metadata.\",\"url\":\"https://attend.hackclub.com/docs/api-reference/series/create-an-event-in-the-series\",\"mainEntityOfPage\":{\"@id\":\"https://attend.hackclub.com/docs/api-reference/series/create-an-event-in-the-series#webpage\"},\"dateModified\":\"2026-11-05T09:16:43.449Z\",\"publisher\":{\"@id\":\"https://attend.hackclub.com/#organization\"},\"isPartOf\":{\"@id\":\"https://attend.hackclub.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Attend\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Attend","nav":{"global":null,"tabs":[{"tab":"Help","pages":[{"title":"Help","href":""}]},{"tab":"Organizers","pages":[{"title":"Organizers","href":"/organizers/reporting-incidents"}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"API overview","href":"/api-introduction"}]},{"group":"Endpoints","pages":[{"group":"Authentication","pages":[{"title":"Create a mobile token","deprecated":null,"version":null,"sidebarTitle":"Create a mobile token","openapi":"/openapi.yml post /session","href":"/api-reference/authentication/create-a-mobile-token"},{"title":"Revoke the current token (log out)","deprecated":null,"version":null,"sidebarTitle":"Revoke the current token log out","openapi":"/openapi.yml delete /session","href":"/api-reference/authentication/revoke-the-current-token-log-out"},{"title":"Rotate the current token","deprecated":null,"version":null,"sidebarTitle":"Rotate the current token","openapi":"/openapi.yml post /session/refresh","href":"/api-reference/authentication/rotate-the-current-token"}]},{"group":"Account","pages":[{"title":"Current user profile","deprecated":null,"version":null,"sidebarTitle":"Current user profile","openapi":"/openapi.yml get /me","href":"/api-reference/account/current-user-profile"},{"title":"Look up an event admin by Slack ID","deprecated":null,"version":null,"sidebarTitle":"Look up an event admin by slack id","openapi":"/openapi.yml get /users/lookup","href":"/api-reference/account/look-up-an-event-admin-by-slack-id"},{"title":"List accessible events","deprecated":null,"version":null,"sidebarTitle":"List accessible events","openapi":"/openapi.yml get /events","href":"/api-reference/account/list-accessible-events"}]},{"group":"Push Tokens","pages":[{"title":"Register a push token","deprecated":null,"version":null,"sidebarTitle":"Register a push token","openapi":"/openapi.yml post /push_tokens","href":"/api-reference/push-tokens/register-a-push-token"},{"title":"Delete a push token","deprecated":null,"version":null,"sidebarTitle":"Delete a push token","openapi":"/openapi.yml delete /push_tokens/{token}","href":"/api-reference/push-tokens/delete-a-push-token"}]},{"group":"Inbox","pages":[{"title":"List inbox messages","deprecated":null,"version":null,"sidebarTitle":"List inbox messages","openapi":"/openapi.yml get /messages","href":"/api-reference/inbox/list-inbox-messages"},{"title":"Get an inbox message","deprecated":null,"version":null,"sidebarTitle":"Get an inbox message","openapi":"/openapi.yml get /messages/{id}","href":"/api-reference/inbox/get-an-inbox-message"}]},{"group":"Incident Reports","pages":[{"title":"Report form options","deprecated":null,"version":null,"sidebarTitle":"Report form options","openapi":"/openapi.yml get /incident_reports/options","href":"/api-reference/incident-reports/report-form-options"},{"title":"File an incident report","deprecated":null,"version":null,"sidebarTitle":"File an incident report","openapi":"/openapi.yml post /incident_reports","href":"/api-reference/incident-reports/file-an-incident-report"}]},{"group":"Bans","pages":[{"title":"Add emails to the ban list","deprecated":null,"version":null,"sidebarTitle":"Add emails to the ban list","openapi":"/openapi.yml post /bans","href":"/api-reference/bans/add-emails-to-the-ban-list"}]},{"group":"Series","pages":[{"title":"List series","deprecated":null,"version":null,"sidebarTitle":"List series","openapi":"/openapi.yml get /series","href":"/api-reference/series/list-series"},{"title":"Get one series","deprecated":null,"version":null,"sidebarTitle":"Get one series","openapi":"/openapi.yml get /series/{id}","href":"/api-reference/series/get-one-series"},{"title":"List the events in a series","description":"Summary records for every event in the series, earliest start first (events with no start date last).","deprecated":null,"version":null,"sidebarTitle":"List the events in a series","openapi":"/openapi.yml get /series/{series_id}/events","href":"/api-reference/series/list-the-events-in-a-series"},{"title":"Create an event in the series","deprecated":null,"version":null,"sidebarTitle":"Create an event in the series","openapi":"/openapi.yml post /series/{series_id}/events","href":"/api-reference/series/create-an-event-in-the-series"},{"title":"Get one event in the series","description":"An event outside the series returns `404`, not `403` — from this key's point of view it does not exist.","deprecated":null,"version":null,"sidebarTitle":"Get one event in the series","openapi":"/openapi.yml get /series/{series_id}/events/{id}","href":"/api-reference/series/get-one-event-in-the-series"},{"title":"Update an event in the series","deprecated":null,"version":null,"sidebarTitle":"Update an event in the series","openapi":"/openapi.yml patch /series/{series_id}/events/{id}","href":"/api-reference/series/update-an-event-in-the-series"}]},{"group":"Event Setup","pages":[{"title":"Setup progress","deprecated":null,"version":null,"sidebarTitle":"Setup progress","openapi":"/openapi.yml get /events/{event_id}/setup","href":"/api-reference/event-setup/setup-progress"},{"title":"Configure waivers","deprecated":null,"version":null,"sidebarTitle":"Configure waivers","openapi":"/openapi.yml put /events/{event_id}/setup/waivers","href":"/api-reference/event-setup/configure-waivers"},{"title":"Finish setup","deprecated":null,"version":null,"sidebarTitle":"Finish setup","openapi":"/openapi.yml post /events/{event_id}/setup/complete","href":"/api-reference/event-setup/finish-setup"}]},{"group":"Event Staff","pages":[{"title":"List staff","deprecated":null,"version":null,"sidebarTitle":"List staff","openapi":"/openapi.yml get /events/{event_id}/staff","href":"/api-reference/event-staff/list-staff"},{"title":"Add a staff member","deprecated":null,"version":null,"sidebarTitle":"Add a staff member","openapi":"/openapi.yml post /events/{event_id}/staff","href":"/api-reference/event-staff/add-a-staff-member"},{"title":"Remove a staff member","deprecated":null,"version":null,"sidebarTitle":"Remove a staff member","openapi":"/openapi.yml delete /events/{event_id}/staff/{id}","href":"/api-reference/event-staff/remove-a-staff-member"},{"title":"Change a staff member's role","deprecated":null,"version":null,"sidebarTitle":"Change a staff members role","openapi":"/openapi.yml patch /events/{event_id}/staff/{id}","href":"/api-reference/event-staff/change-a-staff-members-role"}]},{"group":"Participants","pages":[{"title":"List participants","deprecated":null,"version":null,"sidebarTitle":"List participants","openapi":"/openapi.yml get /events/{event_id}/participants","href":"/api-reference/participants/list-participants"},{"title":"Invite a participant","deprecated":null,"version":null,"sidebarTitle":"Invite a participant","openapi":"/openapi.yml post /events/{event_id}/participants","href":"/api-reference/participants/invite-a-participant"},{"title":"Search participants","deprecated":null,"version":null,"sidebarTitle":"Search participants","openapi":"/openapi.yml get /events/{event_id}/participants/search","href":"/api-reference/participants/search-participants"},{"title":"Look up a registration by email","deprecated":null,"version":null,"sidebarTitle":"Look up a registration by email","openapi":"/openapi.yml get /events/{event_id}/participants/lookup","href":"/api-reference/participants/look-up-a-registration-by-email"},{"title":"Minimal roster","deprecated":null,"version":null,"sidebarTitle":"Minimal roster","openapi":"/openapi.yml get /events/{event_id}/participants/roster","href":"/api-reference/participants/minimal-roster"},{"title":"Get a participant","deprecated":null,"version":null,"sidebarTitle":"Get a participant","openapi":"/openapi.yml get /events/{event_id}/participants/{id}","href":"/api-reference/participants/get-a-participant"},{"title":"Remove a participant from the event","deprecated":null,"version":null,"sidebarTitle":"Remove a participant from the event","openapi":"/openapi.yml delete /events/{event_id}/participants/{id}","href":"/api-reference/participants/remove-a-participant-from-the-event"},{"title":"Update a participant","deprecated":null,"version":null,"sidebarTitle":"Update a participant","openapi":"/openapi.yml patch /events/{event_id}/participants/{id}","href":"/api-reference/participants/update-a-participant"}]},{"group":"Notes","pages":[{"title":"List notes","deprecated":null,"version":null,"sidebarTitle":"List notes","openapi":"/openapi.yml get /events/{event_id}/participants/{participant_id}/notes","href":"/api-reference/notes/list-notes"},{"title":"Create a note","deprecated":null,"version":null,"sidebarTitle":"Create a note","openapi":"/openapi.yml post /events/{event_id}/participants/{participant_id}/notes","href":"/api-reference/notes/create-a-note"}]},{"group":"Scans","pages":[{"title":"List scans","deprecated":null,"version":null,"sidebarTitle":"List scans","openapi":"/openapi.yml get /events/{event_id}/scans","href":"/api-reference/scans/list-scans"},{"title":"Record a scan","deprecated":null,"version":null,"sidebarTitle":"Record a scan","openapi":"/openapi.yml post /events/{event_id}/scans","href":"/api-reference/scans/record-a-scan"},{"title":"Undo scans for a participant","deprecated":null,"version":null,"sidebarTitle":"Undo scans for a participant","openapi":"/openapi.yml delete /events/{event_id}/scans/{id}","href":"/api-reference/scans/undo-scans-for-a-participant"}]},{"group":"Scan Contexts","pages":[{"title":"List scan contexts","deprecated":null,"version":null,"sidebarTitle":"List scan contexts","openapi":"/openapi.yml get /events/{event_id}/scan_contexts","href":"/api-reference/scan-contexts/list-scan-contexts"}]},{"group":"Stays","pages":[{"title":"List stays","deprecated":null,"version":null,"sidebarTitle":"List stays","openapi":"/openapi.yml get /events/{event_id}/stays","href":"/api-reference/stays/list-stays"},{"title":"List a stay's roster","deprecated":null,"version":null,"sidebarTitle":"List a stays roster","openapi":"/openapi.yml get /events/{event_id}/stays/{stay_id}/roster","href":"/api-reference/stays/list-a-stays-roster"},{"title":"Add someone to a stay's roster","deprecated":null,"version":null,"sidebarTitle":"Add someone to a stays roster","openapi":"/openapi.yml post /events/{event_id}/stays/{stay_id}/roster","href":"/api-reference/stays/add-someone-to-a-stays-roster"},{"title":"Remove someone from a stay's roster","deprecated":null,"version":null,"sidebarTitle":"Remove someone from a stays roster","openapi":"/openapi.yml delete /events/{event_id}/stays/{stay_id}/roster/{id}","href":"/api-reference/stays/remove-someone-from-a-stays-roster"}]},{"group":"Travel Calendar","pages":[{"title":"Show the travel calendar","deprecated":null,"version":null,"sidebarTitle":"Show the travel calendar","openapi":"/openapi.yml get /events/{event_id}/travel","href":"/api-reference/travel-calendar/show-the-travel-calendar"},{"title":"Show the travel calendar (legacy path)","deprecated":true,"version":null,"sidebarTitle":"Show the travel calendar legacy path","openapi":"/openapi.yml get /events/{event_id}/airport_mode","href":"/api-reference/travel-calendar/show-the-travel-calendar-legacy-path"}]},{"group":"Slack Blasts","pages":[{"title":"List Slack blasts","deprecated":null,"version":null,"sidebarTitle":"List slack blasts","openapi":"/openapi.yml get /events/{event_id}/slack_blasts","href":"/api-reference/slack-blasts/list-slack-blasts"},{"title":"Send a Slack blast","deprecated":null,"version":null,"sidebarTitle":"Send a slack blast","openapi":"/openapi.yml post /events/{event_id}/slack_blasts","href":"/api-reference/slack-blasts/send-a-slack-blast"},{"title":"Get a Slack blast","deprecated":null,"version":null,"sidebarTitle":"Get a slack blast","openapi":"/openapi.yml get /events/{event_id}/slack_blasts/{id}","href":"/api-reference/slack-blasts/get-a-slack-blast"}]},{"group":"Messages","pages":[{"title":"List messages","deprecated":null,"version":null,"sidebarTitle":"List messages","openapi":"/openapi.yml get /events/{event_id}/messages","href":"/api-reference/messages/list-messages"},{"title":"Create a draft message","deprecated":null,"version":null,"sidebarTitle":"Create a draft message","openapi":"/openapi.yml post /events/{event_id}/messages","href":"/api-reference/messages/create-a-draft-message"},{"title":"Composer options","deprecated":null,"version":null,"sidebarTitle":"Composer options","openapi":"/openapi.yml get /events/{event_id}/messages/options","href":"/api-reference/messages/composer-options"},{"title":"Get a message","deprecated":null,"version":null,"sidebarTitle":"Get a message","openapi":"/openapi.yml get /events/{event_id}/messages/{id}","href":"/api-reference/messages/get-a-message"},{"title":"Delete a message","deprecated":null,"version":null,"sidebarTitle":"Delete a message","openapi":"/openapi.yml delete /events/{event_id}/messages/{id}","href":"/api-reference/messages/delete-a-message"},{"title":"Update a message","deprecated":null,"version":null,"sidebarTitle":"Update a message","openapi":"/openapi.yml patch /events/{event_id}/messages/{id}","href":"/api-reference/messages/update-a-message"},{"title":"Preview a message","deprecated":null,"version":null,"sidebarTitle":"Preview a message","openapi":"/openapi.yml get /events/{event_id}/messages/{id}/preview","href":"/api-reference/messages/preview-a-message"},{"title":"Send a message","deprecated":null,"version":null,"sidebarTitle":"Send a message","openapi":"/openapi.yml post /events/{event_id}/messages/{id}/send_now","href":"/api-reference/messages/send-a-message"},{"title":"Cancel a scheduled message","deprecated":null,"version":null,"sidebarTitle":"Cancel a scheduled message","openapi":"/openapi.yml post /events/{event_id}/messages/{id}/cancel","href":"/api-reference/messages/cancel-a-scheduled-message"},{"title":"Retry failed deliveries","deprecated":null,"version":null,"sidebarTitle":"Retry failed deliveries","openapi":"/openapi.yml post /events/{event_id}/messages/{id}/retry_failed","href":"/api-reference/messages/retry-failed-deliveries"},{"title":"Retry one delivery","deprecated":null,"version":null,"sidebarTitle":"Retry one delivery","openapi":"/openapi.yml post /events/{event_id}/messages/{id}/retry_delivery","href":"/api-reference/messages/retry-one-delivery"},{"title":"Send to new recipients","deprecated":null,"version":null,"sidebarTitle":"Send to new recipients","openapi":"/openapi.yml post /events/{event_id}/messages/{id}/send_to_new_recipients","href":"/api-reference/messages/send-to-new-recipients"}]},{"group":"Incidents","pages":[{"title":"List incidents","deprecated":null,"version":null,"sidebarTitle":"List incidents","openapi":"/openapi.yml get /events/{event_id}/incidents","href":"/api-reference/incidents/list-incidents"},{"title":"Log an incident","deprecated":null,"version":null,"sidebarTitle":"Log an incident","openapi":"/openapi.yml post /events/{event_id}/incidents","href":"/api-reference/incidents/log-an-incident"},{"title":"Incident form options","deprecated":null,"version":null,"sidebarTitle":"Incident form options","openapi":"/openapi.yml get /events/{event_id}/incidents/options","href":"/api-reference/incidents/incident-form-options"},{"title":"Get an incident","deprecated":null,"version":null,"sidebarTitle":"Get an incident","openapi":"/openapi.yml get /events/{event_id}/incidents/{id}","href":"/api-reference/incidents/get-an-incident"},{"title":"Update an incident","deprecated":null,"version":null,"sidebarTitle":"Update an incident","openapi":"/openapi.yml patch /events/{event_id}/incidents/{id}","href":"/api-reference/incidents/update-an-incident"},{"title":"Escalate an incident to HQ","deprecated":null,"version":null,"sidebarTitle":"Escalate an incident to hq","openapi":"/openapi.yml post /events/{event_id}/incidents/{id}/escalate","href":"/api-reference/incidents/escalate-an-incident-to-hq"},{"title":"Comment on an incident","deprecated":null,"version":null,"sidebarTitle":"Comment on an incident","openapi":"/openapi.yml post /events/{event_id}/incidents/{incident_id}/comments","href":"/api-reference/incidents/comment-on-an-incident"}]},{"group":"NFC Badges","pages":[{"title":"Ensure an NFC badge token","deprecated":null,"version":null,"sidebarTitle":"Ensure an nfc badge token","openapi":"/openapi.yml post /events/{event_id}/participant_events/{participant_event_id}/nfc_badge/ensure","href":"/api-reference/nfc-badges/ensure-an-nfc-badge-token"},{"title":"Confirm an NFC badge assignment","deprecated":null,"version":null,"sidebarTitle":"Confirm an nfc badge assignment","openapi":"/openapi.yml post /events/{event_id}/participant_events/{participant_event_id}/nfc_badge/confirm","href":"/api-reference/nfc-badges/confirm-an-nfc-badge-assignment"},{"title":"Reset an NFC badge token","deprecated":null,"version":null,"sidebarTitle":"Reset an nfc badge token","openapi":"/openapi.yml post /events/{event_id}/participant_events/{participant_event_id}/nfc_badge/reset","href":"/api-reference/nfc-badges/reset-an-nfc-badge-token"}]},{"group":"Travel","pages":[{"title":"Search airports","deprecated":null,"version":null,"sidebarTitle":"Search airports","openapi":"/openapi.yml get /travel/search_airports","href":"/api-reference/travel/search-airports"},{"title":"Validate a flight","deprecated":null,"version":null,"sidebarTitle":"Validate a flight","openapi":"/openapi.yml post /travel/validate_flight","href":"/api-reference/travel/validate-a-flight"}]}]}]}]},"basePath":"","title":"Create an event in the series - Attend","buildId":"dpl_9yaRmq8qi7yyMZn9oEWmKEdYMvGZ","deploymentId":"dpl_9yaRmq8qi7yyMZn9oEWmKEdYMvGZ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Bsljvftq.js","utils-BEZX0tmN.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BrDD79Na.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-2c3Nf5XI.js","snippetPresets-CWWkg29k.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-SJmWKHmz.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BYc8UL58.js","shallow-UTXCq4wY.js","getApiPlaygroundDisplay-D1ZcrmBl.js","CodeSnippet-CTS7L7R4.js","CodeSnippets-MsBYl-gd.js","Page-BxumJvVQ.js","getPastedJson-C_5Mq0uv.js","icon-D7sYgD4k.js","MethodPill-B7Q6uD_j.js","DuplicateIcon-DXGzB8u_.js","createIcon-UDYg_Gk8.js","DynamicMarkdown-BBrVIqs3.js","SectionHeading-BxanXFN4.js","axios-vUo_bRtp.js","Markdown-DAhL0GAo.js","clsx-BZ8NiN2w.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CpdUkuDP.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sMo3-CxC.js"]}