Generic CSV format
What it is
Section titled “What it is”The generic CSV path is the fallback import flow for any booking system other than Goboko. You upload a CSV, map the columns that carry booking data to the fields Syndik8 understands, and the wizard parses the rest.
Unlike the Goboko CSV path where columns are fixed, the generic path requires you to tell Syndik8 which column is “Start Date/Time”, which is “Member Email”, and so on.
Who can use it
Section titled “Who can use it”Admin and owner of a syndicate.
Where to find it
Section titled “Where to find it”- Syndicate settings → Import bookings.
- Route:
/syndicates/:syndicateId/settings/import-bookings.
Fields / options
Section titled “Fields / options”Detection
Section titled “Detection”A file routes to the generic path if any of these is true:
- It is not UTF-16 encoded.
- It is UTF-16 but the header row is not
#,Start Time,End Time,TimeZone(the Goboko signature).
Mappable fields
Section titled “Mappable fields”The column mapping step shows these Syndik8 fields next to dropdowns of the CSV’s own headers:
| Field | Required? | Notes |
|---|---|---|
| Start Date/Time | yes | Used as booking start. Unmapped → the row is skipped. |
| End Date/Time | yes | Used as booking end. Unmapped → the row is skipped. |
| Member Name | no | Display name for matching and to show in the UI. |
| Member Email | no | Email for exact-match member lookup and invite generation. |
| Aircraft Registration | no | For asset matching. When absent and the syndicate has a single asset, every row auto-matches that asset. |
| Notes | no | Copied onto the booking. |
| Flight Time | no | Read but not currently used to populate usage logs. |
Any CSV column that is not mapped is ignored.
Supported date formats
Section titled “Supported date formats”The generic parser tries these formats in order:
| Format | Example |
|---|---|
| ISO 8601 with date and time | 2026-04-25T10:00:00 |
| ISO 8601 with UTC marker | 2026-04-25T10:00:00Z |
| ISO 8601 with UTC offset | 2026-04-25T10:00:00+01:00 |
| Spaced ISO | 2026-04-25 10:00:00 or 2026-04-25 10:00 |
| British with seconds | 25/04/2026 10:00:00 |
| British without seconds | 25/04/2026 10:00 |
If none parses, the row is skipped.
Wizard steps for a generic import
Section titled “Wizard steps for a generic import”All six steps are visible:
- Upload — choose the CSV.
- Columns — map each Syndik8 field to a column in your CSV, or leave it unmapped.
- Members — confirm each unique member maps to an existing member, an invite, or an aircraft-maintenance entry.
- Assets — confirm each unique aircraft registration maps to an existing asset.
- Review — counts and warnings before commit.
- Done — import complete.
Behaviour rules
Section titled “Behaviour rules”- Start and End Date/Time are required. Without both mapped, the wizard cannot move past column mapping. Every row missing either value is skipped at parse time.
- Dates without an offset are treated as UTC.
2026-04-25 10:00is read as 10:00 UTC, not 10:00 in your local time. When your source system stores local times, look for an ISO variant with a UTC offset — otherwise bookings will land an hour off during BST. - Unparseable dates skip the row. They are not saved as “pending” or pushed to the review step — they simply do not appear in the import.
- Registration normalisation. The same case-insensitive, alphanumeric-only match used by the Goboko path applies here.
G-TESTandGTESTare one aircraft. - Single-asset inference. If the syndicate has only one asset, every row matches that asset regardless of whether a registration column was mapped.
- Member matching. Email is tried first (case-insensitive exact). If no email match, display name is tried next (case-insensitive exact). If both fail and a row has an email, you can invite them from the matching step. If both fail and there is no email, the row is skipped.
- Maintenance classification. For a generic CSV there is no auto-detection of maintenance rows. If your source system used a “Maintenance” sentinel in the member field, you can mark that entry as maintenance on the member matching step.
- Re-imports are deduplicated. A row whose combination of start time, end time, member, and aircraft matches a previously imported booking in the same syndicate is skipped — see deduplication.
- Goboko detection wins if it applies. Uploading a real Goboko export on this path is not possible — it will be detected as Goboko before you reach column mapping.
See also
Section titled “See also”- Goboko CSV format — the auto-detected Goboko path
- Deduplication — how Syndik8 avoids importing the same booking twice