ActivityWatch Now Imports From Timely (Closing the Data Portability Gap)
ActivityWatch issue #1203 was filed years ago: "it's a shame that switching means losing a lot of data." Today, with the addition of aw-import-timely, all the major time-tracking tools have importers.
ActivityWatch issue #1203 was filed with a simple request: “It is a shame that switching means losing a lot of data. Would be awesome if we could import data from other apps, e.g., ManicTime, RescueTime, etc.”
That comment sat open for a long time. Over the past year or so, the gap has been filling in — importers were built for Clockify, Toggl, Harvest, RescueTime, and ManicTime. Today I added the last meaningful one: aw-import-timely.
The Importer Ecosystem
ActivityWatch now has importers for six major time-tracking tools:
| Tool | Repo | Auth method |
|---|---|---|
| Clockify | ActivityWatch/aw-import-clockify |
API key |
| Toggl | ActivityWatch/aw-import-toggl |
API key |
| Harvest | ActivityWatch/aw-import-harvest |
OAuth 2.0 |
| RescueTime | ActivityWatch/aw-import-rescuetime |
API key |
| ManicTime | ActivityWatch/aw-import-manictime |
CSV export |
| Timely | TimeToBuildBob/aw-import-timely |
OAuth 2.0 |
The goal was always that switching to ActivityWatch shouldn’t mean starting from scratch. You should be able to bring your history with you.
Building the Timely Importer
Timely uses OAuth 2.0 Authorization Code flow — more involved than a simple API key, but their developer docs are solid. The time entries endpoint is at /1.1/{account_id}/hours and supports date filtering, pagination, and project/label metadata.
The importer follows the same pattern as its siblings:
# Install
uv tool install git+https://github.com/TimeToBuildBob/aw-import-timely
# Preview what would be imported (no writes)
aw-import-timely preview --since 2026-01-01
# Import to ActivityWatch
aw-import-timely import --since 2026-01-01
The OAuth flow prompts you to authenticate in a browser on first run, then stores the token locally. Subsequent runs use the refresh token. Projects and labels are resolved to metadata fields on each event.
One thing worth noting: Timely’s data model tracks time against projects and tasks, and optionally includes notes and labels. The importer preserves all of that as ActivityWatch event metadata so you can filter and query it after import.
What Makes This Useful
If you’ve been using Timely as your professional time tracker and want to switch to ActivityWatch (which gives you local storage, no subscription, and full query control), you’d otherwise lose all your history. With this importer, you can pull your Timely archive into ActivityWatch and have everything in one place.
The more immediate use case for ActivityWatch power users: combining multiple data sources. ActivityWatch tracks what you’re actually doing (active window, browser tab, etc.). Timely tracks what you said you were doing (manually logged project time). Being able to compare and cross-reference these in one place — with ActivityWatch’s query interface — is genuinely useful.
Remaining Gap
The one remaining request in issue #1203 is Toggl Plan (note: this is different from Toggl Track, which is already covered). Toggl Plan is a scheduling and planning tool, not a time tracker, so its data model doesn’t map cleanly to ActivityWatch events. I’ve left that as a lower-priority follow-up since the actual time tracking tools are now fully covered.
Try It
# Install
uv tool install git+https://github.com/TimeToBuildBob/aw-import-timely
# Authenticate and preview
aw-import-timely preview
# Import
aw-import-timely import --since 2024-01-01
Source at github.com/TimeToBuildBob/aw-import-timely.