Overview
Importing shifts adds a batch of them to one opportunity from a spreadsheet, instead of creating them one at a time.
The reason to import rather than generate shifts over a date range is per-shift detail. When you generate, one title, one description and one location apply to the whole batch. When you import, every row can carry its own title, description and location, which is what you want for a schedule where each shift is a different job.
One row becomes one shift.
One opportunity per file. You choose the opportunity these shifts belong to before you upload, and every row in the file lands under it. If your shifts span several opportunities, that is one spreadsheet and one import each.
1. Where do I find the shift importer?
Go to your Schedule, open Actions in the top right, and choose Import shifts.
It opens as a full-page wizard. Importing counts as creating shifts, so any admin whose role lets them create a shift can import.
2. What are the steps?
- Instructions. What the file needs, and the template download.
- Select opportunity. The opportunity these shifts will be created under.
- Upload file. Your spreadsheet, then the location matching.
- Edit details & settings. Everything that applies to the whole batch.
- Review & Save. A preview of the result, the notification choice, and the button that publishes.
3. What does my spreadsheet need to look like?
Upload a .xlsx or .csv file. The first row is your column titles, and every row after that is one shift.
Four columns are required:
- Date
- Start time
- End time
- Spots, shown in the wizard as Number of spots
Five are optional:
- Title and Description, per shift.
- Location, a location name or an address.
- Minimum time, which turns the shift into a flexible time slot.
- Timezone, an IANA name such as America/Toronto.
A template is available to download on the Instructions step, and it is the easiest way to get the column titles right. You do not have to use it. Your own Excel or CSV file imports fine as long as the four required columns are there and the order does not matter.
If your workbook has several sheets, Vome looks for the first one whose header row carries all four required columns, so an export that keeps its import-ready rows on a later tab still works without you rearranging anything.
Formats:
- Dates. YYYY-MM-DD is the safest. Slash dates, written-out months such as March 4, 2026, and standard Excel date cells are also read.
- Times. Either 09:00 or 9:00 AM.
- Spots. A number, so 6 rather than six.
- Minimum time. Either minutes (15, 30.5) or a duration (00:15, 1:00, 00:15:00).
A slash date is read month first. 03/04/2026 imports as 4 March, not 3 April. Vome tries the month-first reading before the day-first one, and a date like that is valid either way, so nothing warns you: the shifts are simply created on the wrong days. If your file was written day first, or you are not sure, convert the column to YYYY-MM-DD before you upload. That format is never ambiguous.
One timezone per file. If the Timezone column holds more than one distinct value, the whole file is rejected rather than partly imported. Shifts in a second timezone need their own import.
4. What about overnight shifts?
They work, and you do not have to do anything special. If the end time is earlier than the start time, for example starting at 22:00 and ending at 02:00, Vome reads it as an overnight shift that finishes the next day.
5. How do locations work?
After you upload, Vome collects the distinct values in your Location column and asks you to match them. For each one you can map it to an existing shift location, leave it on the opportunity's default location, or create a new shift location on the spot.
Where a value is close to a shift location you already have, Vome matches it for you. Where it cannot recognise a value, it falls back to the opportunity's default location and waits for you to decide.
If your file has no Location column at all, every shift simply uses the opportunity's default location.
Three headings stay in English even in a French file. Most column titles are recognised in both languages, but Location, Minimum time and Timezone are matched on their English spelling only. A French heading on one of those three is not recognised, and the column is quietly ignored rather than reported, so keep those three in English whatever language the rest of your file is in.
6. What comes from my file, and what applies to the whole batch?
These come from each row:
- Date, start time and end time.
- Spots.
- Title, description and location, where you filled them in.
- Minimum time.
These are set once on Edit details & settings and apply to every shift in the import:
- Coordinators and watchers.
- Shift tags.
- Waitlist policy.
- Notification policy.
- Reservation restrictions using profile tags.
Title, description and location are the exception. On the Edit details & settings step those three act as a fallback, not an override. They fill in only the shifts whose rows left them blank, so the per-shift detail in your spreadsheet is never overwritten.
7. What does the review step show me?
Two previews, so you can catch a formatting problem before anything is published:
- Admin view, how these shifts will appear in your schedule list.
- End user view, how users will see them when reserving.
The notification choice sits on the same step. This is also where a wrongly read date shows up, so it is worth checking a few dates in the preview against your file before you save.
8. Do users get notified about the new shifts?
Only if you turn it on. The toggle is Notify eligible users about newly published upcoming shifts, it starts switched off, and it applies to upcoming shifts only, so backfilling a past schedule never emails anyone.
9. Why will my file not import?
Almost always one of these:
- The file could not be read. It is not a real .csv or .xlsx, or it is password protected or corrupted. Re-save it and try again.
- No rows were found. The first row is missing its column titles, or the sheet is empty below them.
- Missing required columns. One of Date, Start time, End time or Spots is not there. Check spelling in the first row.
- Row X is invalid. That row is missing a date, a time or a spots value, or its spots value is not a number. The message names the row.
- Multiple timezones were found. Use a single timezone for the whole file.
Avoid blank rows in the middle of the file, which is a common cause of a row that reads as invalid.
Summary
- Schedule, Actions, then Import shifts.
- One row per shift, one opportunity per file, .xlsx or .csv.
- Required columns: Date, Start time, End time, Spots. Optional: Title, Description, Location, Minimum time, Timezone.
- Write dates as YYYY-MM-DD. A slash date is read month first and will not warn you.
- Keep Location, Minimum time and Timezone spelled in English, even in a French file.
- Import rather than generate when each shift needs its own title, description or location.
- Coordinators, watchers, tags, waitlist policy, notification policy and reservation restrictions are set once for the batch.
- Title, description and location on that step only fill the gaps your file left blank.
- One timezone per file, and nobody is notified unless you turn the toggle on.