Calendar import
Calendar import turns an existing schedule kept in Excel into real appointments in Scrivio. You upload the planning workbook, Scrivio validates it without changing anything, and only after you have read the validation report and confirmed are the appointments written. The screen is intended for the organization administrator migrating a practice to Scrivio.
Overview
| Route | /organization/agenda-import |
| Audience | Organization administrator |
| Required permissions | imports.agenda (validate a workbook and read the report), imports.agenda.commit (actually run the import) |
Open the screen through Organization settings → Calendar import. The import always runs within your own organization: the appointments land in the calendar of the organization you are signed in to.
How it works
The import has two deliberately separate steps: validate first, import after. Validation is read-only — the workbook is read and checked, but it is not stored and nothing is created. Only the import step writes appointments.
What the workbook must contain
The workbook is the practice's own planning export, not a Scrivio template. Scrivio does expect a fixed shape:
| File type | .xlsx (other files are rejected) |
| Sheets | Per behandelaar and Per cliënt |
| Column names | On row 3; data starts on row 4 |
| Columns | Behandelaar, Cliënt, Datum, Dag, Start, Type, Eind |
| Notation | Dates as dd-MM-yyyy, times as HH:mm. Genuine Excel date and time cells are read too |
Both sheets describe the same appointments from two sides. Per behandelaar reads as "who is doing what" — a group session appears once per practitioner. Per cliënt reads as "who is attending what" — the same group session appears once per attendee. Neither sheet is complete on its own, which is why Scrivio needs both: it combines the two into one appointment per session.
Errors block, warnings do not
Every finding in the report has one of two severities. The difference follows a single question: would the imported result differ from what the workbook says?
| Severity | Meaning | Effect |
|---|---|---|
| Error (ERROR) | Scrivio cannot import the row as intended — an unreadable cell, a name that cannot be matched to a user or appointment type, a session that appears on only one of the two sheets. | Blocks the import. As long as a single error remains, you cannot import. |
| Warning (WARNING) | The appointment lands exactly as the workbook describes it; the warning is about the surroundings it lands in (for example a practitioner without a matching role, or a duration that differs from the appointment type). | Blocks nothing. You can import with warnings outstanding. |
That distinction matters because the report for a full year's planning easily holds hundreds of warnings. That is normal and does not mean something is wrong. The hint next to the import button names the error count separately, so you don't have to read through a pile of warnings to judge whether you can proceed.
Every finding also carries a code (for example BEHANDELAAR_NIET_GEVONDEN or DUUR_WIJKT_AF). Codes belong to a rule family: the shape of the workbook, a single cell, matching a name to Scrivio, or the context of the calendar the appointment lands in.
Findings are grouped by code
The report does not list every finding separately, but shows one row per code with a count and an example message. In a large planning most findings are repetitions of the same rule. The individual findings are one click away, up to 50 per code — beyond that the downloaded CSV is the readable form, and a footnote says there are more.
Importing again does not create duplicates
When importing, Scrivio skips appointments identical to one from an earlier run of this import. Run the same workbook again and those rows show up in the result under Skipped instead of filling the calendar twice.
Validate the workbook
Drag the .xlsx file onto the upload area or click it to browse, then click Validate.
| Field | Required | Description |
|---|---|---|
| Workbook (.xlsx) | Yes | The planning workbook. Only .xlsx is accepted; another file type immediately shows "Choose an .xlsx file." The file is only validated, not stored. |
After validation the Summary appears:
| Card | Meaning |
|---|---|
| Appointments | The number of appointments the workbook describes. |
| Errors | The total number of ERROR findings across all sheets. |
| Warnings | The total number of WARNING findings. |
| Ready to import | Yes as soon as no errors remain — warnings do not count towards it. |
Below it, a Per sheet table lists the number of rows read, errors and warnings per sheet. That shows at a glance whether a problem affects the whole export or just one of the two sheets.
Choosing another file or validating again discards the previous report and any earlier import result.
Read the findings
Below the summary sits the Findings block, grouped per sheet and within that per code, showing the severity, the count and an example message for each code. Click a row to expand the individual findings; those show the row, the column, the message and the value from the workbook, so you can locate the cell in Excel.
The Filter by severity control switches between All, Errors only and Warnings only. Start with Errors only: that is the list you must resolve before you can import.
To resolve findings, correct the workbook in Excel and validate the corrected file again. If the workbook is completely clean, the block reports "No findings — the workbook is valid."
Download the report
Click Download report (CSV) to save all findings as a CSV file, for example to keep next to Excel while correcting the planning. The file is named <workbook name>-validatie.csv.
The CSV always holds every finding — the severity filter and the limit of 50 expanded findings per code apply to the screen only. The export is the complete list.
Run the import
This step requires the imports.agenda.commit permission; without it you can validate and read the report, but the import button is not shown.
Above the Import button a hint always states where you stand:
| Situation | Hint |
|---|---|
| Not validated yet | Validate the workbook first. |
| Errors outstanding | The number of errors to resolve; nothing is imported while they remain. |
| Warnings only | The number of appointments that will be created, plus the number of warnings to review before continuing. |
| Clean report | The number of appointments that will be created. |
Click Import. A confirmation dialog follows, because this creates real appointments in the organization's calendar and that cannot be undone in one step. Choose Import now to continue, or Cancel to return to the report.
Scrivio re-validates the workbook on the server before writing anything. If errors have appeared in the meantime (because a user or appointment type changed, for example), the import is refused and nothing changes.
Afterwards the Import result appears:
| Item | Meaning |
|---|---|
| Created | The total number of appointments created. |
| Skipped | Appointments that already existed from an earlier run of this import. |
| Per appointment type | The same two numbers broken down per type as the workbook names it. |
The created appointments then simply appear in the Calendar, where they can be viewed and edited.