Feature Guide

Staff Scheduling

Assign employees to positions for each event date using the drag-and-drop scheduling grid, bulk copy tools, and auto-fill.

15 min readAdmin
Note: Screenshots in this guide show the default Orange theme. Your interface may look different depending on your selected theme, but all features and controls work the same way.

Before You Start

Staff scheduling sits at the center of the application. Before you can assign employees to positions, three things must be in place:

  1. Events with dates -- You need at least one event with one or more event dates configured. See the Event Management guide for setup instructions.
  2. Areas and positions -- Each event must have at least one active area attached, and each area must contain at least one position. See the Areas & Positions guide.
  3. Employee availability -- Employees must have submitted their availability for the event dates you want to schedule. Only employees who marked themselves as "available" appear in the scheduling panel. See the Employee Management guide for details on how employees submit availability.
Note: The scheduling grid only shows positions from areas that are attached to the selected event. If you do not see the positions you expect, verify that the correct areas are selected in the event configuration.

Mental model: Think of the scheduling page as a two-panel workspace. The left panel is your pool of available employees for a specific date. The right panel is your grid of positions organized by area. Your job is to move employees from the left panel into position slots on the right until every position is filled.

Scheduling Grid Overview

The scheduling page is accessed from the Admin Dashboard. It is built around a header bar with controls and a two-panel layout for making assignments.

Header Controls

The page header contains the event selector dropdown and four action buttons:

  • Bulk Copy -- Opens the modal to copy all assignments from the current date to other dates in the same event.
  • Bulk Return -- Opens the costume bulk return modal for the selected date, useful for processing costume returns after a show night.
  • Auto-Fill -- Automatically assigns available employees to unfilled positions, prioritizing qualified candidates.
  • Availability Overview -- Navigates to the availability dashboard for the selected event, where you can review employee availability across all dates.
Scheduling page -- full layout overview
Full scheduling page showing header with event dropdown, date cards, stats bar, and two-panel grid layout
Scheduling page -- full layout overview

Date Selector

Once you select an event, a horizontal row of date cards appears. Each card displays the day of the week, the calendar date, and a filled/total count. The cards are color-coded based on coverage:

  • Green -- 80% or more of positions are filled.
  • Yellow -- 60% to 79% of positions are filled.
  • Red -- Less than 60% of positions are filled.
  • Neutral -- Coverage data has not yet been loaded for this date (click the date to load it).

Click a date card to load its scheduling data. The selected card is highlighted with the primary accent color and a glow ring. A legend in the top-right corner of the date selector explains the color coding.

Stats Bar

Below the date selector, four stat cards summarize the scheduling status for the selected date:

Stats Bar Metrics

FieldRequiredDescription
Total PositionsNoThe number of active positions across all areas attached to the selected event. This is the total headcount you need to fill.
FilledNoThe number of positions that currently have an employee assigned with a status of "assigned" or "confirmed".
CoverageNoThe percentage of positions filled, calculated as (Filled / Total Positions) x 100. Displayed as a percentage.
Available StaffNoThe number of employees who submitted their availability as "available" for the selected event date.

View Modes

A view toggle below the stats bar lets you switch between three layout options. Your selection persists for the duration of your session.

View Modes

FieldRequiredDescription
MatrixNoA table layout with positions as rows, grouped by area. Columns show the position name, assigned employee, status badge, and a remove button. Best for seeing all positions at once with full detail.
KanbanNoA column-based layout where each area gets its own vertical column. Position cards stack inside each column. Best for visually grouping positions by area and tracking per-area fill rates.
ListNoA compact row-based layout with a dropdown selector for each position instead of drag-and-drop. Best for quick assignment when you already know which employee goes where, or when working on a device without drag-and-drop support.
View mode toggle -- Matrix view selected
View mode toggle showing Matrix, Kanban, and List buttons with the Matrix view active
View mode toggle -- Matrix view selected

Available Staff Panel

The left side of the grid shows a sticky panel titled "Available Staff" with a count of employees. Each employee card shows their name, initials avatar, and experience level if set. A search field at the top of the panel filters the list by name. Employees who are already assigned to a position on the current date are hidden from the list so you only see who is still unscheduled.

Positions Grid

The right side of the layout displays all positions organized by area. Each position shows its name, time range, and current assignment status. Unfilled positions display a dashed border with a "Drag staff here to assign" placeholder. Filled positions show the assigned employee name, a green "Filled" badge, and a remove button (X icon) to clear the assignment.

Assigning Employees

The primary way to assign employees is drag-and-drop. In List view, you can also use a dropdown selector. Follow these steps for a standard drag-and-drop assignment.

1

Select an event

Open the scheduling page from the Admin Dashboard. Use the event dropdown in the page header to choose the event you want to schedule. The dropdown shows every event along with the number of dates configured for it.

Page header with event dropdown
Event Scheduling header with event dropdown selector and action buttons
Page header with event dropdown
2

Select a date

After selecting an event, a row of date cards appears. Each card shows the day of the week, the calendar date, and a filled/total count if coverage data has been loaded. Click a date card to load the scheduling grid for that date.

Date cards with coverage indicators
Date selector row showing color-coded date cards with coverage counts
Date cards with coverage indicators
3

Find the employee in the Available Staff panel

The left panel lists every employee who has marked themselves as available for the selected date. Use the search field at the top of the panel to filter by name. Employees who are already assigned to a position on this date are automatically hidden from the list.

Available Staff panel
Available Staff panel with search field and draggable employee cards
Available Staff panel
4

Drag the employee onto a position slot

Click and hold an employee card, then drag it over to an empty position slot on the right side of the grid. In Matrix view, drop the employee onto the "Drag staff here to assign" placeholder row. In Kanban view, drop onto the card marked "Drop staff here". In List view, use the dropdown selector next to each position instead of drag-and-drop.

Drag-and-drop assignment in Matrix view
Scheduling grid showing an employee being dragged onto an empty position slot
Drag-and-drop assignment in Matrix view
5

System validates the assignment

When you drop an employee onto a position, the system runs conflict detection before creating the assignment. It checks for time conflicts with other assignments on the same date, whether the employee marked this date as unavailable, and whether the employee is qualified for the position. Blocking conflicts (time overlaps) prevent the assignment. Warnings (unavailable status, missing qualification) are displayed but do not block.

6

Confirmation notification

If the assignment succeeds, a green notification appears at the top right of the screen reading "Employee assigned successfully". The position slot updates to show the assigned employee name and a green "Filled" badge. The coverage statistics update automatically. If a costume is linked to the position, it is automatically assigned to the employee as well.

Successful assignment with coverage stats updated
Scheduling grid showing a successfully assigned position with green Filled badge
Successful assignment with coverage stats updated

Removing an Assignment

To remove an employee from a position, click the X icon in the actions column (Matrix view) or on the position card (Kanban view). In List view, change the dropdown back to -- Select Staff --. The position reverts to an empty state and the employee reappears in the Available Staff panel.

Tip: If a position already has an employee assigned, you must remove the current assignment before dragging a new employee onto it. The system does not allow overwriting an existing assignment. This prevents accidental replacements.

Conflict Detection

Every time you assign an employee to a position, the system runs a series of validation checks before creating the assignment. There are two severity levels: errors that block the assignment and warnings that allow it to proceed.

Blocking Conflicts (Errors)

These conflicts prevent the assignment from being created:

  • Time conflict -- The employee is already assigned to another position on the same date with overlapping time ranges. The error message identifies the conflicting position and its time range.

Non-Blocking Conflicts (Warnings)

These issues are flagged but do not prevent assignment:

  • Availability conflict -- The employee marked this date as unavailable. The assignment can still be made at the admin's discretion.
  • Qualification conflict -- The employee is not listed as qualified for this specific position in their employee profile. The assignment proceeds but the admin should verify the employee can perform the role.
Warning: When a blocking conflict is detected, a red notification appears with the text "Conflict:" followed by the specific reason. The assignment is not created and the employee remains in the Available Staff panel. You must resolve the conflict (e.g., remove the other assignment) before retrying.
Conflict notification -- time conflict detected
Red conflict notification showing a time conflict with an existing assignment
Conflict notification -- time conflict detected

Coverage Tracking

Coverage tracking helps you understand at a glance how well-staffed each event date is. Coverage data appears in two places: the date selector cards and the stats bar.

Date Card Coverage

Each date card in the date selector displays a filled/total count (e.g., "8/12") and is color-coded using the following thresholds:

  • Green (80%+) -- Most positions are filled. You are in good shape for this date.
  • Yellow (60-79%) -- Some positions remain unfilled. Review and assign remaining staff.
  • Red (below 60%) -- Significant staffing gaps exist. Prioritize this date.

Coverage data is loaded the first time you click a date card. The date selector retains the coverage data for dates you have already viewed, so you can scan across multiple dates without reloading.

Per-Area Coverage

In Kanban view, each area column header displays a filled/total count (e.g., "3/5 filled"). In Matrix view, area header rows show the total number of positions in that area. Use the Show unfilled only toggle to filter the grid to only positions that still need staff, making it easy to see exactly where the gaps are.

Coverage tracking across dates and stats bar
Date selector with color-coded cards and stats bar showing coverage percentage
Coverage tracking across dates and stats bar

Bulk Operations

When you have many dates to schedule for the same event, bulk operations save significant time. The scheduling page offers two bulk tools: Bulk Copy and Auto-Fill.

Bulk Copy

Bulk Copy takes every assignment from the currently selected date and replicates it across one or more target dates within the same event. This is ideal when most of your staff work the same positions every night.

1

Complete scheduling for one date

Finish assigning employees for a single event date. This date becomes your source schedule that you will copy to other dates.

2

Click Bulk Copy in the header

Click the Bulk Copy button in the page header. A modal dialog opens showing the source date and the number of assignments that will be copied.

Bulk Copy modal with target date selection
Bulk Copy modal showing source date info and target date checkboxes
Bulk Copy modal with target date selection
3

Select target dates

Check the boxes next to the dates you want to copy assignments to. Use Select All to check every remaining date in the event, or Clear All to start over. Each target date shows its day, calendar date, and time range.

4

Click Copy Assignments

Click the Copy Assignments button to start the bulk copy. The system copies each assignment from the source date to every selected target date. If an employee already has a conflicting assignment on a target date, that individual copy is skipped. A summary notification reports how many assignments were copied and how many were skipped due to conflicts.

Note: Bulk Copy only copies assignments where the employee does not already have a time conflict on the target date. If an employee is already scheduled for an overlapping time on a target date, that individual assignment is skipped. The summary notification tells you exactly how many were copied and how many were skipped.

Auto-Fill

Auto-Fill examines every unfilled position on the selected date and attempts to assign an available employee. The system prioritizes employees who are qualified for each position based on their employee profile. If no qualified employee is available, an unqualified employee is assigned and a note is added to the assignment flagging the mismatch.

1

Select an event and date

Choose the event and date you want to auto-fill. The system needs to know which positions are unfilled and which employees are available for that date.

2

Click Auto-Fill in the header

Click the green Auto-Fill button in the page header. The system examines every unfilled position for the selected date and attempts to match available employees to those positions.

3

Review the results

A notification reports how many positions were filled and how many were skipped. The system prioritizes employees who are qualified for each position (those assigned to the position in their employee profile). If no qualified employee is available, an unqualified employee is assigned instead with a note flagging the mismatch. Already-assigned employees are not double-booked.

Grid after auto-fill with updated coverage
Scheduling grid after auto-fill showing filled positions and coverage stats
Grid after auto-fill with updated coverage
Warning: Auto-Fill assigns one employee per position and will not double-book. Once an employee is assigned to one position, they are removed from the candidate pool for remaining positions. If you have fewer available employees than unfilled positions, some positions will remain empty. Review the results and adjust manually as needed.

Search and Filter

The scheduling page provides several filtering tools to help you navigate large schedules efficiently.

The search field in the Available Staff panel filters employees by first and last name. Type any part of an employee's name to narrow the list. The filter is case-insensitive and matches against the full name string. Clear the search field to show all available employees again.

Above the positions grid, a search field lets you filter positions by name or area name. This is useful when you have many areas and need to quickly find a specific position.

Area Filter Pills

Next to the position search field, a row of area filter pills allows you to show positions from specific areas only. Click an area pill to toggle it on or off. Click All Areas to clear all area filters and show every position. When you have more than five areas, the additional areas are collapsed behind a "+N more" button.

Show Unfilled Only

The Show unfilled only checkbox in the view mode toolbar filters the grid to display only positions that do not have an employee assigned. This is helpful late in the scheduling process when most positions are filled and you want to focus on the remaining gaps.

Search and filter tools on the scheduling grid
Area filter pills with two areas selected and the position search field active
Search and filter tools on the scheduling grid

Best Practices

  1. Schedule one date fully, then use Bulk Copy. Invest time in getting one date right -- placing the right people in the right positions -- then copy that schedule to all other dates in the event. This is far faster than scheduling each date individually and ensures consistency across show nights.
  2. Check availability before scheduling. Use the Availability Overview button to review employee availability across all dates before you start assigning. This helps you identify dates with low availability early and plan accordingly.
  3. Assign qualified employees first. Employees with position qualifications in their profile are best suited for those roles. Assign qualified employees to their primary positions before filling remaining gaps with unqualified staff. Auto-Fill follows this same priority automatically.
  4. Use the date card colors as a dashboard. After loading a few dates, scan the date card colors. Green means the date is well-staffed. Yellow and red dates need attention. Click through each date at least once to populate the coverage data, then use the colors to prioritize your work.
  5. Review auto-fill results before show night. Auto-Fill is a time-saver, but it does not account for personal preferences, experience seniority, or team dynamics. After running auto-fill, review the assignments and make manual adjustments where needed. Pay special attention to assignments flagged as "not qualified".

Troubleshooting

Employee does not appear in the Available Staff list

The Available Staff panel only shows employees who submitted their availability as "available" for the selected event date and whose availability is not in draft status. If an employee is missing, check the following: (1) the employee has submitted availability for this specific event date, (2) their availability status is "available" and not "unavailable", (3) their availability submission is not still in draft mode, and (4) their employee profile is approved. Also check that the search field in the staff panel is not filtering them out.

Coverage shows 0% but I have assigned employees

This typically means the areas you assigned positions in are not attached to the selected event. The coverage calculation only counts positions from areas listed in the event's active area configuration. Go to Event Management, edit the event, and verify that the correct areas are checked. If you recently added a new area, it needs to be explicitly attached to the event before its positions appear on the scheduling grid.

I need to swap two employees between positions

Remove the assignment from the first position by clicking the X icon, then remove the assignment from the second position. Now assign each employee to the other position. This two-step process is necessary because the system does not allow an employee to be assigned to two overlapping positions simultaneously, which would happen during a direct swap.

Positions are not showing on the scheduling grid

Positions only appear when their parent area is attached to the selected event and the position is marked as active. Check the following: (1) the area is included in the event's active areas list (edit the event to verify), (2) the position's active flag is set to true (check the area detail page), and (3) you have not applied area filters or the Show unfilled only toggle that might be hiding the position. Try clicking All Areas and unchecking the unfilled-only toggle to reset all filters.

Frequently Asked Questions

Can I assign the same employee to two positions on the same date?
No. The conflict detection system prevents double-booking. If an employee is already assigned to a position for a given date and the time ranges overlap, the system blocks the second assignment and displays a conflict message explaining which existing assignment caused the conflict.
What happens to costume assignments when I remove a schedule assignment?
When you assign an employee to a position that has a linked costume, the costume is automatically assigned to the employee. However, removing the schedule assignment does not automatically return the costume. Use the Bulk Return button or manage costume returns through the Costume Management page.
Does auto-fill overwrite my existing assignments?
No. Auto-fill only fills positions that are currently empty. It skips any position that already has an assigned employee. Your existing manual assignments are preserved.
Can employees see their assignments immediately after I schedule them?
Yes. As soon as you assign an employee to a position, the assignment appears on their Employee Dashboard under their upcoming schedule. There is no separate publish step for individual assignments.
How do I swap two employees between positions?
There is no one-click swap feature. To swap two employees, remove the assignment from the first position (click the X button), then remove the assignment from the second position. Finally, reassign each employee to the other position. This two-step process ensures the conflict detection system validates each assignment independently.