# Event scheduling ## `POST /api/events` **Schedule an event** Creates a new guild event. An officer must be signed in. **Request body** Model: {ref}`EventCreate ` | Field | Type | Required | Description | |---|---|---|---| | `kind` | {ref}`EventKind ` | yes | | | `title` | string | yes | | | `location` | string | no | | | `starts_at` | string (date-time) | yes | | | `ends_at` | string (date-time) \| null | no | | | `size` | integer \| null | no | | | `ep_override` | integer \| null | no | Overrides the kind's default EP (effort points) award for this event. None uses the preset. | | `notes` | string \| null | no | | **Response `201` — The newly created event.** Model: {ref}`EventDetail ` | Field | Type | Required | Description | |---|---|---|---| | `id` | string (uuid) | yes | | | `kind` | {ref}`EventKind ` | yes | | | `title` | string | yes | | | `location` | string | yes | | | `starts_at` | string (date-time) | yes | | | `ends_at` | string (date-time) \| null | yes | | | `size` | integer \| null | yes | | | `ep` | integer | yes | Effort points (EP, shown as Renown on the site) that attending awards. | | `ep_override` | integer \| null | yes | The officer-set EP value behind ep. None means the event's kind sets the preset. | | `status` | {ref}`EventStatus ` | yes | | | `notes` | string \| null | yes | | | `counts` | {ref}`EventCounts ` \| null | yes | | | `series` | {ref}`SeriesRef ` \| null | yes | | | `signups` | array of {ref}`Signup ` | yes | | | `my_signup` | {ref}`Signup ` \| null | yes | | | `discord_interest` | {ref}`DiscordInterest ` \| null | yes | | | `away` | array of {ref}`SignupMember ` \| null | yes | | ## `DELETE /api/events/{event_id}` **Delete an event** Deletes an event and its signups. An officer must be signed in. **Parameters** | Name | In | Type | Required | Description | |---|---|---|---|---| | `event_id` | path | string (uuid) | yes | The event's ID. | **Response `204`** — The event was deleted. ## `PATCH /api/events/{event_id}` **Edit an event** Edits an event, including its kind and status. An officer must be signed in. Editing an event that belongs to a series detaches it, so later series-wide edits stop touching it. **Parameters** | Name | In | Type | Required | Description | |---|---|---|---|---| | `event_id` | path | string (uuid) | yes | The event's ID. | **Request body** Model: {ref}`EventUpdate ` | Field | Type | Required | Description | |---|---|---|---| | `kind` | {ref}`EventKind ` \| null | no | | | `title` | string \| null | no | | | `location` | string \| null | no | | | `starts_at` | string (date-time) \| null | no | | | `ends_at` | string (date-time) \| null | no | | | `size` | integer \| null | no | | | `ep_override` | integer \| null | no | Overrides the kind's default EP (effort points) award for this event. None uses the preset. | | `notes` | string \| null | no | | | `status` | {ref}`EventStatus ` \| null | no | | **Response `200` — The updated event.** Model: {ref}`EventDetail ` | Field | Type | Required | Description | |---|---|---|---| | `id` | string (uuid) | yes | | | `kind` | {ref}`EventKind ` | yes | | | `title` | string | yes | | | `location` | string | yes | | | `starts_at` | string (date-time) | yes | | | `ends_at` | string (date-time) \| null | yes | | | `size` | integer \| null | yes | | | `ep` | integer | yes | Effort points (EP, shown as Renown on the site) that attending awards. | | `ep_override` | integer \| null | yes | The officer-set EP value behind ep. None means the event's kind sets the preset. | | `status` | {ref}`EventStatus ` | yes | | | `notes` | string \| null | yes | | | `counts` | {ref}`EventCounts ` \| null | yes | | | `series` | {ref}`SeriesRef ` \| null | yes | | | `signups` | array of {ref}`Signup ` | yes | | | `my_signup` | {ref}`Signup ` \| null | yes | | | `discord_interest` | {ref}`DiscordInterest ` \| null | yes | | | `away` | array of {ref}`SignupMember ` \| null | yes | | ## `PATCH /api/events/{event_id}/signups/{signup_id}` **Set a raid chart slot** Places a signed-up player into a raid chart group (1 to 8) or the bench. An officer must be signed in. Returns 409 for any event that is not a raid. **Parameters** | Name | In | Type | Required | Description | |---|---|---|---|---| | `event_id` | path | string (uuid) | yes | The event's ID. | | `signup_id` | path | string (uuid) | yes | The signup's ID. | **Request body** Model: {ref}`ChartUpdate ` | Field | Type | Required | Description | |---|---|---|---| | `group` | integer \| null | no | | | `bench` | boolean \| null | no | | **Response `200` — The updated signup.** Model: {ref}`Signup ` | Field | Type | Required | Description | |---|---|---|---| | `id` | string (uuid) | yes | | | `member` | {ref}`SignupMember ` | yes | | | `character` | string \| null | yes | | | `class` | {ref}`WowClass ` \| null | yes | | | `role` | {ref}`SignupRole ` \| null | yes | | | `status` | {ref}`SignupStatus ` | yes | | | `comment` | string \| null | yes | | | `group` | integer \| null | yes | | | `bench` | boolean | yes | | | `updated_at` | string (date-time) | yes | |