Skip to main content
Both volunteers and shifts can be imported in bulk using a CSV file. This is the fastest way to populate a new event from an existing spreadsheet or external system.

What you can import

Volunteers

Name, group, max hours, email, and phone for each volunteer.

Shifts

Shift name, start time, end time, and group requirements.

CSV format for volunteers

The importer recognizes multiple header aliases for each field. Use any of the accepted column names below:
FieldAccepted column names
NameName, name, Volunteer, volunteer, Full Name, full name
GroupGroup, group, Role, role
Max hoursMax Hours, max_hours, Hours, hours, Limit, limit
PhonePhone, phone, Mobile, mobile, Tel, tel
EmailEmail, email, Mail, mail
A Name (or one of its aliases) column is required. All other columns are optional. Sample volunteers CSV (sample_volunteers.csv):
Name,Group,Max Hours,Email,Phone
Delegate 1,Delegates,10,delegate1@example.com,(555) 101-0001
Delegate 2,Delegates,10,delegate2@example.com,(555) 101-0002
Adult 66,Adults,12,adult66@example.com,(555) 201-0066

CSV format for shifts

The shifts importer uses the following columns:
ColumnDescription
NameHuman-readable shift label (e.g. Shift 1).
StartStart date and time in MM/DD/YYYY HH:MM AM/PM format.
EndEnd date and time in the same format.
GroupsRequired group requirements as GroupName:count pairs, comma-separated (e.g. Delegates:2, Adults:2).
Sample shifts CSV (sample_shifts.csv):
Name,Start,End,Groups
Shift 1,12/01/2025 08:00 AM,12/01/2025 10:00 AM,"Delegates:2, Adults:2"
Shift 2,12/01/2025 10:00 AM,12/01/2025 12:00 PM,"Delegates:2, Adults:2"
Shift 3,12/01/2025 12:00 PM,12/01/2025 02:00 PM,"Delegates:2, Adults:2"
Wrap the Groups value in double quotes when it contains commas, as shown above. Standard CSV quoting rules apply.

How to import

Importing volunteers

1

Navigate to Volunteers

Open your event and click Volunteers in the sidebar.
2

Open the import modal

Click the Import button (upload icon) in the toolbar. The import modal opens.
3

Download the template (optional)

If you do not have a file ready, click Download CSV Template to get a pre-formatted Google Sheets template you can copy and fill in.
4

Select your file

Click Select File and choose your .csv file. The importer parses the file client-side using PapaParse.
5

Review the preview

A preview table shows the first 50 parsed rows with Name, Group, and Hours columns. If the data looks correct, proceed.
6

Confirm import

Click Confirm Import (N) where N is the total number of rows. All volunteers are inserted into the event in one batch.

Importing shifts

1

Navigate to Shifts

Open your event and click Shifts in the sidebar.
2

Click Import CSV

Click the Import CSV button in the Shifts toolbar.
3

Upload and confirm

Select your shifts .csv file and confirm the import.

Column auto-matching

The volunteer importer automatically detects which column maps to which field using the alias lists above. For example, a column named Role is treated as the group field, and a column named Mobile is treated as the phone field. You do not need to rename your columns as long as they match one of the accepted aliases. The matching is case-sensitive — Name is recognized but NAME is not.

Error handling

The importer validates the file before inserting any rows and will show an error if:
The file does not contain a Name, Volunteer, or Full Name column (or any recognized alias). No rows are imported. Add a name column and re-upload.
One or more column headers are not in the recognized alias list. The error message lists every unrecognized column name. Either rename the columns or use the official CSV template.
Invalid file format: Unrecognized columns found: badge_number, region.
Please use the template.
If you upload a shifts file (which contains Start, End, or similar headers) on the Volunteers page, the importer detects the mismatch and blocks the import:
It looks like you are trying to upload a Shift CSV.
Please use the Shift Import feature in the "Shifts" tab.
Every row either has an empty name or failed to parse. A warning is shown and nothing is inserted.
The file is malformed (e.g. invalid encoding or binary content). PapaParse returns an error message that is displayed directly.
Bulk import adds volunteers on top of any existing records — it does not replace them. If you need to start fresh, use the Delete All button on the Volunteers page before importing.

Sample CSV templates

You can download ready-to-use templates to get the correct column format:
  • Volunteers templateOpen in Google Sheets (creates a personal copy you can edit and export as CSV)
  • Shifts template — use sample_shifts.csv in the repository root as a reference

Volunteers

Manually add and edit volunteer records.

Shifts

Create and manage shifts for your event.

Build docs developers (and LLMs) love