Shift Import allows you to create multiple shifts at once by uploading a CSV file. Shift Import enables you to add a large quantity of shifts into the system instead of creating them manually, saving valuable time and mitigating possible mistakes.
Shift Import is available starting from Premium and above subscription plans and can be managed by Superadmin users only.
1. Shift Import Requirements
Before importing shifts, make sure:
The user has Superadmin permissions.
The employees, companies, locations and positions referenced in the file already exist in Parim.
The file is saved in CSV format.
We recommend using the Shift Import template (can be obtained on the Shift Import page, under Schedule tab) to ensure the file structure is correct before importing shifts.
2. CSV file requirements
The import file must:
Be a CSV file.
Use UTF-8 encoding.
Include a header row.
Contain all required columns.
Must meet the (time) format requirements.
File size must be smaller than 5MB.
If any required columns are missing, the import will fail.
2.1 Required columns
The following columns must be filled in the file:
positions_total - the number of shifts
user_email - employee email
date - specified date when the shift occurs
time_from - shift start time
time_to - shift end time
break_hours - break time
company - Client as it is inside your Parim environment
location - Location as it is inside your Parim environment
position - Position as it is inside your Parim environment
2.2 Time Format requirements
The time_from and time_to fields must use the following format:
HH:MM (H- hour; M- minute)
Times must use 15-minute increments - XX:00, XX:15, XX:30, XX:45.
Examples of valid times:
09:00
09:15
09:30
09:45
Examples of invalid times:
09:01
09:22
09:59
Disclaimer:
Please note that shifts cannot be longer than 24 hours. If they exceed it, please consider separating the shifts into 2 or more parts.
2.3 Break handling
The break_hours field is optional.
If break_hours is empty:
- The system uses the default break value configured in System Settings → Scheduling → Calendar → General → Shift Break Length.
If break_hours is 0:
- The shift is created without a break.
2.4 Entity matching
Entities like Company, Location and Position names require a character match - they are not case-insensitive.
However, we recommend exporting the data at their respective pages.
Examples:
Client A = client a
Location Z = locaTION z
Security Officer = security officer
The referenced company, location and position must already exist in Parim.
3. Import Assigned and Open Shifts
Shift import allows shifts to be imported either already assigned and/or created as open shifts.
3.1 Assigned shifts
If the user_email field contains a value, the system creates an assigned shift.
For assigned shifts:
The employee (user_email) must exist in Parim.
The employee must be assignable to the shift.
If your system is configured to require position matching, qualification matching, or preferred person matching, the employee must meet those requirements. Otherwise, the import row will fail.
Subcontractors cannot be imported.
positions_total must be 1 (cannot be more than 1).
3.2 Open shifts
If the user_email field is empty, the system creates open shifts.
For open shifts:
positions_total determines how many open shifts are created.
count can be 1 or higher (more than 1).
Example
Disclaimer: shown info is filled with fictional/generated data → no relation to actual people and/or locations. Similarities are accidental, not intended.
4. How to Import Shifts
Instructions on how to import shifts.
Open Shift Import under Schedule.
Download the template (if needed).
Populate the CSV file with your shift data.
Upload the file.
Wait for the import to complete.
Review the import results.
4.1 Import results
Each row in the file is processed separately.
This means:
Valid rows create shifts.
Invalid rows fail.
Successful rows are not affected by failed rows.
When the import finishes:
Results are displayed on the Shift Import page if the page remains open.
A summary email containing the import results is sent to the user.
Important! Clear the successful shifts when importing shifts with amended errors again.
Any shifts which are imported without errors are imported successfully. This means you don't need to import them again; only import shifts which appeared with an error.
If the successful shifts are not cleared, you will create duplicate shifts.
4.2 Common import failures
A row may fail for the following reasons:
Missing required fields.
→ Check if all required fields have been filled.Invalid date format.
→ Please ensure the date format matches the requirements.Invalid time format.
→ Please ensure the time format matches the requirements.Time not using 15-minute intervals.
→ Time values are not accepted, as 15-minute increments are not used.Employee not found.
→ Please ensure the employee email is attached to an Active staff memberCompany not found.
→ Please confirm the Client is present/existing in your Parim team environment. Can be checked in the Locations > Clients page.Location not found.
→ Please confirm the Location is present/existing in your Parim team environment. Can be checked in the Locations page.Position not found.
→ Please confirm the Position is present/existing in your Parim team environment. Can be checked in the System Settings > People > Positions (accessible to superadmins).Employee cannot be assigned to the shift.
→ The selected employee has the slot already allocated by a shift, absence, or availability.User is a subcontractor.
→ Cannot import shifts for a subcontractor (type).Invalid CSV structure.
→ Please ensure the CSV file has not been changed and matches the downloadable template.
5. FAQ
Why doesn't my file upload
Please ensure that the file meets the import file requirements
Where can I get the upload file?
The file can be downloaded on the same page where you upload it, under the Schedule tab → Shift Import. Before uploading, please ensure the data matches the requirements.Some of my shifts did not import and were returned with an error message.
Please amend any of the errors and only try those failed shifts again.
It is important to note that shifts which are imported without errors, are imported successfully




