Help & Support · CSV format

CSV format for import and export

Last updated 21 September 2026

Daroha imports and exports plain CSV — one header row, then one row per trip. This page is the exact contract: which columns are required, what each value may contain, and what every error message means.

Columns

The first row must be a header. Column names are matched in any order and are not case-sensitive, so Date and date both work. Four columns are required:

Column Required Contents
date Yes The day of the trip, as YYYY-MM-DD.
direction Yes A direction code such as hw or wh. See Direction codes.
departure Yes The time you left, 24-hour HH:MM. The column must exist; individual cells may be empty.
duration Yes Whole minutes, 1 to 999.
notes No Free text. Empty cells are stored as no note.
source No Where a trip came from. Only manual, import, demo or unknown are accepted. Written by export; you rarely need to set it yourself.
Any other column is ignored. A file exported from a spreadsheet with extra columns still imports, as long as the four required ones are present.

Value rules

date

Four-digit year, month, day, separated by hyphens: 2026-09-15. Other orders are rejected rather than guessed, because 03-04-2026 is ambiguous between March and April.

departure

A 24-hour clock time — 8:05 and 08:05 are both fine, and trailing seconds such as 08:05:00 are accepted and dropped. Hours run 0–23 and minutes 0–59. Leave the cell empty when you don't know when you left; the trip still counts towards durations, it just can't contribute to your typical departure window.

duration

A whole number of minutes between 1 and 999. No decimals, no 1h 20m — write 80.

Quotes, commas and line breaks

Standard CSV quoting works. Wrap a cell in double quotes if it contains a comma or a line break, and double an internal quote: "Roadworks on the bridge, again". Files saved with Windows line endings or a byte-order mark import fine. Fully blank rows are skipped.

Example file

Two commuting days — out in the morning, back in the evening — with an optional note on one trip:

date,direction,departure,duration,notes
2026-09-15,hw,08:12,34,
2026-09-15,wh,17:48,44,Left late
2026-09-16,hw,08:05,29,
2026-09-16,wh,18:02,38,

The same four-column shape without the notes column is equally valid. Inside the app, Settings → Import tripsTry with sample data generates a file in exactly this format if you want something to look at first.

Direction codes

A direction code is a slug, not a label: lowercase letters, digits and underscores, starting with a letter or digit, up to 31 characters. to_gym is valid; To Gym is not.

  • hw — To Work, the built-in morning leg.
  • wh — To Home, the built-in return leg.

Codes you have created in Settings → Directions work too. If a file uses a code you don't have yet, the import screen's Create missing directions option — on by default — adds it for you. Turn it off and the import stops instead, listing the codes it doesn't recognise.

Error messages

Import validates the whole file before saving anything, and stops at the first problem so you can fix the source and try again. Row numbers count the header as row 1.

Message What to do
Missing columns The header is missing one of date, direction, departure, duration. Check spelling and that the header really is the first row.
invalid date Reformat that row's date as YYYY-MM-DD. Spreadsheets often re-format dates on save — export as plain text if so.
direction must be a slug Replace the label with a code: lowercase, no spaces. To Work becomes hw.
invalid departure time Use HH:MM on a 24-hour clock, or clear the cell if you don't know it. 6:15 PM becomes 18:15.
duration must be 1–999 minutes Write whole minutes as a plain number. Remove text such as min from the cell.
File is empty or has no data rows The file has a header but no trips, or is empty. Check you exported the right sheet.
All rows are duplicates Every row matches a trip you already have, by date, time and direction. Nothing was added — this is safe to ignore.

Export format

Settings → Export trips writes all six columns, so an exported file can be imported back without editing:

date,direction,departure,duration,notes,source

Export covers your own trips. Sample demo data is left out, so the file is a clean copy of your real history — useful as a backup before Settings → Reset data or Settings → Delete account.

← Back to Import & export