Importing data
Settings → Import moves your history into Tick in three steps: pick a source and file → review a dry-run preview (nothing is written yet) → commit. Files up to 5 MB are accepted.
Supported formats
Toggl Track
Export from Toggl via Reports → Detailed → Export → CSV. Keeps client, project, task, tags and the billable flag. Expected columns:
Email, Client, Project, Task, Description, Billable,
Start date, Start time, End date, End time, Duration, Tags
Clockify
Export via Reports → Detailed → Export → Save as CSV. Keeps project, client, task, tags and the billable flag. Expected columns:
Project, Client, Description, Task, Tags, Billable,
Start Date, Start Time, End Date, End Time, Duration (h)
Generic CSV
Anything else — a spreadsheet, another tracker, a script. Header row:
| Column | Required | Format |
|---|---|---|
name | no | entry description |
start | yes | ISO datetime, e.g. 2025-03-14T09:00:00 |
end | yes | ISO datetime; must be after start |
client | no | client name |
project | no | project name |
task | no | task name |
tags | no | comma- or semicolon-separated |
billable | no | true/false, yes/no, 1/0 |
rate | no | $/h, becomes the entry's rate override |
The CSV parser is forgiving about the mechanics: UTF-8 BOM, quoted fields, escaped quotes (""), commas and newlines inside quotes, and CRLF/LF/CR line endings all work.
The preview
Uploading runs the whole import as a dry run and shows:
- Entry count and the date range they span.
- Catalog reconciliation: which clients, projects, tasks and tags will be matched to existing rows (by case-insensitive name, within your org, trash excluded) and which will be created.
- The first 10 rows as they will land.
- Warnings: rows that will be skipped, each with its line number and reason (unparseable dates,
end ≤ start, …). Bad rows never abort the import — they are simply left out, and the commit result reports the skip count.
After commit
Commit creates the missing catalog rows, inserts the entries (each pointing at its deepest reference per Rule 1), attaches tags, and reports what happened: entries inserted, created vs matched counts per entity, and rows skipped. Imported entries behave exactly like native ones — rates resolve per Rule 2 unless the row carried an explicit rate override.