How to Leave Harvest in One Afternoon (Export to owntime)
Contents
- What you need before you start
- Step 1. Export your history from Harvest
- Step 2. Open owntime and find the import
- Step 3. Run the dry-run preview
- Step 4. Confirm and let it import
- Step 5. Check your rates and clients
- Step 6. Reconcile against your last Harvest report
- Step 7. Keep Harvest alive until you are sure
- What if you would rather not do it yourself?
- What stays behind when you leave Harvest
- FAQ
- Next step
#What you need before you start
The one thing that usually stops people from switching trackers is not features. It is history. Years of entries are your billing memory, your tax trail, your evidence in a dispute. Losing that feels like losing the business.
I know that feeling from the other side of the desk now. The first person who took me up on the free concierge migration sent me a Harvest CSV with about three years of entries, and I remember being nervous the night I opened it. Their whole billing memory was in that file, and it was sitting on my laptop. I built the dry-run preview because I was scared of my own import. I wanted to see exactly what would change before I changed it, and I wanted the person on the other end to see it too. That preview is not a marketing feature. It is the insurance I wanted the night I opened someone else's history.
So the migration is designed to make history the easy part. You export from Harvest. You drag the file into owntime. You see exactly what will come in before anything writes. You confirm. Done.
Here is the whole walkthrough.
#Step 1. Export your history from Harvest
In Harvest, open Settings, then find the Export section. Harvest provides a CSV export of your time entries. Choose the full date range you want to bring over. If you have years of data, export it all. owntime has been tested with 10,000 rows and it holds.
A note on format. Harvest's detailed CSV export is the one that carries the most with it. If Harvest offers you a choice of export types, pick the detailed one. That is the file owntime's import understands best.
Keep the file somewhere you can find it. Desktop is fine. You will drag it into the app in a moment.
#Step 2. Open owntime and find the import
Launch owntime. The import entry point is impossible to miss: you can drag a CSV file anywhere onto the app window, or open the import screen from the menu.
You do not need to set up clients, projects, or tasks first. The import builds that structure for you from your Harvest data. If your Harvest setup had clients with projects and tasks underneath, owntime recreates that hierarchy. If you had per-project rates, those come across too.
#Step 3. Run the dry-run preview
This is the step that makes the move feel safe, because nothing has been written yet.
When you drop your Harvest CSV into owntime, the app parses the whole file and shows you a preview: how many rows it found, how many it will import, and how many it will skip and why. A typical result reads something like 1,234 rows, 2 skipped. The skipped rows are usually entries missing a required field, and the preview tells you which ones they are.
Read that preview before you do anything else. If something looks wrong, cancel. The import has not touched your data. You can fix the file and try again, or come back later.
#Step 4. Confirm and let it import
When the preview looks right, confirm. The import runs against your local owntime database, a single SQLite file at ~/Documents/owntime/timesheet.db. Nothing leaves your machine. There is no upload step, because there is no server to upload to.
The import parses the whole file and shows you a preview: how many rows it found, how many it will import, and how many it will skip and why. A typical result reads something like 1,234 rows, 2 skipped. The skipped rows are usually entries missing a required field, and the preview tells you which ones they are.
One thing to know upfront: re-importing the same file will create duplicate entries. The app does not silently dedupe, and it does not track what it has already brought in across separate imports. That is why the preview matters, and why you import once and reconcile, rather than importing the same file twice to "make sure." The preview shows you exactly what will happen. If you import the same file again on purpose, you will see the dupes in your timesheet. This is stated plainly, not hidden.
#Step 5. Check your rates and clients
After the import, open the clients and projects views. Your Harvest structure should be there: clients, projects under them, tasks where you used them.
Two things to verify:
- Rates. If you billed different rates per project or per client in Harvest, confirm they came across the way you expect. owntime stores rates per client and per project, so adjust anything that looks off before you invoice.
- Billable flags. Harvest entries carry a billable or non-billable flag. owntime preserves that, and your reports and invoices will respect it. Skim a few entries from different projects to confirm the flags landed correctly.
#Step 6. Reconcile against your last Harvest report
Before you cancel Harvest, do a sanity check.
Run a report in owntime for the same date range as your most recent Harvest report. Compare the totals. They should match, because the import is lossless for the fields owntime supports. If you spot a difference, it will be in a field owntime does not carry, and the dry-run preview will have flagged those rows when you imported.
This reconciliation is the step that turns "I hope the move worked" into "I know the move worked." It takes five minutes and it is worth every second.
#Step 7. Keep Harvest alive until you are sure
You do not have to cancel Harvest the same afternoon.
The honest way to switch is to run owntime in parallel for a week or two. Keep your timer in owntime, reconcile your Friday invoice against what Harvest would have produced, and cancel Harvest only when the numbers match twice in a row.
Your Harvest data is not going anywhere while you check. And once owntime is your daily driver, the export you made in Step 1 is still on your disk as a backup. Keep it. It costs nothing and it is another copy of your history.
#What if you would rather not do it yourself?
The self-serve import above takes about ten minutes. If you would rather hand the whole thing off, owntime is offering free concierge migration to the first ten switchers.
Send your Harvest export and your rate card to migrate@owntime.click. You get back a ready timesheet.db with your clients and rates set up, usually the same day on weekdays, within a 24 hour window. If anything looks wrong after the move, it gets fixed during launch week.
This is a short list on purpose. The migration page tells you exactly what is included and what is not, so there are no surprises.
A quick honest note on the concierge, because you are trusting a stranger with your history. I am the one who opens those files, and I am a solo developer, not a data-processing company. When someone sends me a Harvest export, I treat it the way I would want my own billing memory treated. It goes into the migration, I set up their clients and rates, I send back a ready timesheet.db, and I do not keep a copy. That is also why the free migration is capped at the first ten switchers. It is genuinely hand-done, and I only have so many evenings.
#What stays behind when you leave Harvest
Leaving Harvest does not have to mean losing everything. Here is what comes with you and what does not.
Comes with you:
- Every time entry in your export, with dates, projects, tasks, and notes
- Your client and project structure
- Per-project and per-client rates
- Billable and non-billable flags
Stays behind:
- Harvest's team and scheduling features. owntime is a local-first tool for solo consultants and small agencies, not a hosted team platform.
- Anything Harvest's CSV export itself leaves out. The dry-run preview shows you the boundaries before you commit.
That last point is worth repeating, because it is the difference between a migration and a leap of faith. You see the scope before anything writes. If the preview shows something you do not want, you cancel and nothing changes. The control is yours the whole way through.
#FAQ
Does owntime import from Toggl or Clockify too?
Yes. owntime imports CSV from Harvest, Toggl, Clockify, and FreshBooks, with the same dry-run preview before anything writes. The workflow is identical to the Harvest one above.
Will I lose my billable rates in the move?
No. owntime imports per-client and per-project rates from Harvest's detailed CSV. The import preserves your client and project structure, including rates, and the dry-run preview flags any rows it cannot map before you confirm.
Is my Harvest data uploaded anywhere?
No. owntime is local-first. The import reads your CSV and writes to the local SQLite file at ~/Documents/owntime/timesheet.db. There is no upload because there is no owntime server.
Can I keep using Harvest while I test owntime?
Yes, and that is the recommended path. Run them in parallel, reconcile a couple of invoices, and cancel Harvest only when the numbers match twice in a row. Your export file stays on your disk as a backup.
How long does the concierge migration take?
Free concierge migration for the first ten switchers is usually turned around the same day on weekdays, within a 24 hour window. Send your Harvest export and rate card to migrate@owntime.click and you get back a ready timesheet.
#Next step
Your history is the only real lock-in Harvest ever had, and the export above breaks it in an afternoon.
Download owntime, drop in your Harvest CSV, and watch the preview show you exactly what you are getting. If you have been putting off the switch because of your history, that excuse just expired.
Download owntime free trial · See the honest migration scope · Ask for free concierge migration
Sources & further reading
- owntime migration scope (https://owntime.click/migration), accessed 2026-09-02
Your time tracker can't raise your price if you own it.
Try owntime free for 14 days. No email wall. Or buy once for $99 early bird.
Download free trialSee pricing