Importing time from a CSV file
Bringing time entries in from another tracker's CSV export: Toggl Track, Clockify, Harvest, Timely, or any CSV file with the columns.
Every time tracker can export its entries as a CSV file. Alba Ticket reads such a file into time entries: one row becomes one activity of the person it names, with its start and end, its description, its labels, the customer and project it belongs to, and whether it is billable. Use it to move a team's history from another tracker, or your own. A file from Toggl Track imports with nothing to set up; the other trackers below are recognised by their column names too.
An import keeps every row whole as the entry's original record, skips a row that is already here, and can be run again without doubling anything.
What you need
- The export as a CSV file. Its first row must hold the column names.
- The time zone the file's times are in, when they carry no offset. A time written as
2026-09-01T09:00:00+02:00or…Zsays where it is from and needs nothing; one written as2026-09-01 09:00, or as a date in one column and a time in another, is read in the zone you choose on the form. - Dates written as
YYYY-MM-DD(or a month by name). A day, month and year that are all digits, such as03/01/2026, are refused rather than guessed, because they mean different days in different countries. Clockify and some others let you choose the date format under your profile; set it before exporting. - For an administrator's import, the people the file names as members of the workspace, by email address. A row whose address matches nobody is skipped and counted, unless you ask for a placeholder to be made for it. For your own import from the Time pages, every row is yours whatever the file says.
The import is under Administration, Imports, Time entries for an administrator, and under Time, Activities, Import for your own entries. The file is uploaded from the page; it is kept in the workspace's storage for a day, so the import can be run again from the same analysis, and the workspace needs a storage location.
Step 1: read the file
Upload the file. It is read once, and the page shows its columns, the first rows, which tracker it looks like, and a suggested mapping. Nothing is imported yet.
Step 2: map the columns
Each field of an entry is fed by one column. The suggestion knows the names Toggl Track, Clockify, Harvest, Timely and Elastic Time write, so for those every field is already mapped; for a spreadsheet of your own, choose the columns yourself.
| Field | Column | Notes |
|---|---|---|
Email |
Whose entry it is. A row with an unknown address is skipped, or given a placeholder person if you ask. | |
| User name | User, Name |
Whose entry it is when there is no email column; matched to a member's username or name. |
| Customer | Client, Customer |
Found by name, created when new (an administrator's import only). |
| Project | Project |
Found by name or key under the customer, or across the workspace without one; created when new, with a key made from its name. |
| Description | Description, Notes |
Required. |
| Start | Start |
A date and time in one cell, with or without an offset. |
| End | End |
The same. |
| Start date, Start time | Start date, Start time, Date, From |
The two halves of a start. A date alone, with no time of day, starts at nine in the morning, or where the same person's previous row of that day ended, so a tracker that exports hours alone reads as a day's work. |
| End date, End time | End date, End time, To |
The two halves of an end. An end earlier than the start is the next day. |
| Duration | Duration, Hours |
Used when there is no end: 1:30:00, 1h 30m, 1.5 hours or a number of seconds. |
| Labels | Tags |
Several in one cell, separated by commas. A label that is a ticket's key, such as WEB-12, links the entry to the ticket. |
| Note | Note, Comment |
The longer text under an entry. |
| Billable | Billable |
Yes, true or 1. Without the column, an entry with a customer is billable. |
| Task | Task |
Toggl's and Harvest's task; it becomes a label unless you tick Drop the task column. |
| Ticket key | Ticket, Issue key |
A column of keys, when the tracker has one. |
A row with neither an end nor a duration becomes a running activity.
Choose the time zone the file's times are in, then Dry run to see the counts without writing anything, or Import.
Step 3: import
The run reports how many entries were created, how many rows were skipped as duplicates (an entry of the same person with the same start and description was already here, typed by hand or imported from elsewhere), how many were already imported by an earlier run, the customers and projects it created, the tickets it linked, and the people it could not match. Review items name the rows it could not read. A second run of the same file changes nothing.
Time linked to a ticket counts towards the ticket's time spent, as time logged on the ticket page does.