---
title: "Assign a staff member to an event"
method: POST
path: "/api/v1/events/{event_id}/event_staff_members"
tags: ["Proposals/Confirmed Bookings"]
---

# Assign a staff member to an event

`POST /api/v1/events/{event_id}/event_staff_members`

## Request

- Base URL: `https://api.checkcherry.com`
- URL: `https://api.checkcherry.com/api/v1/events/{event_id}/event_staff_members`
- Auth: none declared. Required headers: `Api-Key`

Assigns a staff member to an event (booking or proposal). The staff member must belong to the same franchise. Use the `role` field to label what the staff member is doing on the event (e.g., "DJ", "Photographer", "Assistant"). The same user can be assigned to the same event multiple times with different roles.

By default the staff member is assigned to the whole event (every package). To scope the assignment to specific packages, send `all_event_bookings: false` together with `event_booking_ids` listing the packages (EventBooking IDs) they cover; ids that don't belong to this event are ignored. Arrival time is per-package: set arrival times via `event_booking_arrives_at_times`, an object keyed by EventBooking ID (e.g. { "123": "5:30 PM" }). An all-packages member may set per-package arrivals too.

For confirmed bookings, assigning a staff member also applies any configured staff expenses, sends the "Employee Assigned" automated message, dispatches push notifications, and fires the staff-assigned webhook. None of these side effects run for proposals.

**Required permission:** `assigned_event_write` or `unassigned_event_write`

## Path parameters

- `event_id` integer, required

## Headers

- `Api-Key` string, required

## Request body

- object
  - `staff_id` integer, required: The ID of the staff user to assign
  - `role` string: The role this staff member will fill on the event (e.g., "DJ", "Photographer")
  - `all_event_bookings` boolean: Assign to every package on the event (default true). Send false with event_booking_ids to scope to specific packages.
  - `event_booking_ids` integer[]: When all_event_bookings is false, the EventBooking (package) IDs this staff member covers.
  - `event_booking_arrives_at_times` object: Optional per-package arrival times, keyed by EventBooking ID, e.g. { "123": "5:30 PM" }.

## Response `200`

staff member assigned to specific packages

---

[API](https://skmtc.dev/checkcherry/apis/check-cherry-business-api.md) · [All operations](https://skmtc.dev/checkcherry/apis/check-cherry-business-api/llms.txt) · [OpenAPI document](https://skmtc.dev/checkcherry/apis/check-cherry-business-api/revisions/84a9aabdf519?raw)
