Your appointments.
A clearer handover.
Move appointments from a spreadsheet. Prepare the file, check each appointment and confirm only when the details are right.
Set up your services and team first.
Add your services and practitioners, confirm their hours and set the business time zone. Identify each service and practitioner by its unique name or numeric BookVaya ID. Keep an untouched source export and choose a clear date range for each batch.
Contact CSV import and appointment CSV import are separate tools. Start with the contact import guide if you are only moving names, email addresses and phone numbers.
Start with a spreadsheet
Download the blank template to add your information. The example file contains made-up details to show the format; do not import its sample rows into your real records.
- Open the blank file in Excel, Google Sheets or another spreadsheet app.
- Keep the column headings. Put one record on each row.
- In Excel, choose Save As and CSV UTF-8. In Google Sheets, choose File, Download, Comma-separated values (.csv).
- Review the file in BookVaya before confirming the import. Keep your original records until you have checked the result.
Check your spreadsheet before uploading.
Use a UTF-8 CSV with no more than 100 appointment rows and a file size up to 256 KB.
File columns and rules, explained
Required columns
- source_id: the appointment’s original number or code from your old system. Each appointment needs its own code. Keep that code unchanged if you correct or upload the same appointment again.
- starts_at: the appointment start date and time. Include the date, time and time-zone offset. For example, 2026-11-18T10:30:00-06:00 means November 18 at 10:30 a.m. in a time zone six hours behind UTC. Check the local time shown in BookVaya before importing.
- service: the existing service’s unique name or numeric ID.
- practitioner: the existing practitioner’s unique name or numeric ID.
- name and email: the client’s contact details.
Optional columns
- status: confirmed, completed, cancelled or no_show. A blank status uses confirmed.
- duration_minutes: the recorded visit length, where supported for historical records.
- price_cad: the recorded service price in Canadian dollars, where supported for historical records.
Each row supports one service only. Upcoming records use confirmed status and must pass the current service, practitioner and availability checks. Services requiring online payment or intake cannot be imported as upcoming appointments. For historical completed, cancelled and no-show records, both duration_minutes and price_cad are required: use a whole-number duration from 1 to 480 minutes and a numeric price from 0 to 999999.99, with no currency symbol or thousands separators and no more than two decimal places. Review the importer’s row-level messages before proceeding.
Preview, fix, then confirm.
- Open appointment import as the business owner and select your prepared file.
- Review the preview. Check the date, local time, client, service, practitioner, status, duration and price.
- Fix flagged rows in your source copy, then preview the corrected file again. Don’t bypass a conflict by changing a source ID just to force a duplicate through.
- Confirm the same reviewed file within the 30-minute preview window. If it expires or you edit the file, run a fresh preview.
- Read the result and compare it with your source. Check upcoming visits individually before opening your new booking link.
Duplicate checks and reviewed-file verification help prevent repeat imports. If you are unsure whether a batch completed, check the result and existing records before retrying.
History is not a payment transfer.
Imported historical appointments are record-only. They do not send old confirmations or reminders, create payments, or establish a BookVaya balance to collect. The price in the file is a service-history value, not proof of payment.
Notes, forms, attachments, deposits, gift cards, credits and saved payment methods do not move with this appointment CSV. Keep and reconcile those separately.
Still need help?
Send your question to the BookVaya team through Fisher Digital Design. Tell us what you tried and what happened.
Contact BookVaya support