Skip to content

Importing Opportunities

When a season’s worth of shifts already lives in a spreadsheet, import it instead of typing each one. Every row becomes a new opportunity in the season you choose.

  1. Go to Admin > Volunteer and click Import CSV
  2. Click Download CSV template (or Open in Google Sheets when offered)
  3. Fill in one opportunity per row and download it as CSV

The template columns are:

Column Notes
title Required
starts_at Required; e.g. 2026-06-15 17:00, in club time
ends_at Optional; must be after the start
description, location, category Optional text
max_signups Capacity; leave blank for an uncapped interest list
allow_waitlist yes/no (also accepts y, true, 1)
hours_credit A number such as 2 or 2.5
skill_level 1–5, or easy, light, moderate, difficult, hard
  1. Upload CSV — choose the Season for all rows, tick Publish all rows immediately if you don’t want them imported as drafts, then click Choose CSV file
  2. Map CSV columns — each column’s header is matched to a field automatically (“Spots” maps to capacity, “Difficulty” to skill level, and so on). Fix any mismatch in the Maps to dropdown; Title and Start time must be mapped. Click Review changes
  3. Review changes — check the Will create table and the badges (N to create, N errors, N warnings). Warnings flag rows that duplicate another row in the file or an existing opportunity with the same title and start time in that season; they don’t block the import. Errors (a missing title, an unparseable time, an end before the start) do — tick Import the N valid rows and skip N invalid rows to proceed without them
  4. Click Import N opportunities

The results screen shows Created and Failed counts. Click View all opportunities or Import another.