You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Install wakatime-to-toggl with npm i -g wakatime-to-toggl
Run the following command to sync data from yesterday: wakatime-to-toggl -w <wakatime-api-key> -t <toggl-api-key>
Ideally, run wakatime-to-toggl everyday
Option 2 - Run automatically everyday using GitHub Actions
Fork this repository
From your new fork, go to Settings > Secrets and variables > Actions
Add the following secrets using the New repository secret button:
TOGGL_API_KEY: Your Toggl API Key
WAKATIME_API_KEY: Your Wakatime API Key
Go to the Actions tab of your fork
Click set up a workflow yourself
Copy-paste this workflow:
name: Run wakatime-to-toggl everydayon:
schedule:
- cron: 30 2 * * * # Everyday at 02:30 AM UTC. You can change it according to your timezonejobs:
run:
runs-on: ubuntu-lateststeps:
- uses: actions/setup-node@v4with:
node-version: 20
- run: npx wakatime-to-toggl -w "$WAKATIME_API_KEY" -t "$TOGGL_API_KEY"env:
TOGGL_API_KEY: '${{ secrets.TOGGL_API_KEY }}'WAKATIME_API_KEY: '${{ secrets.WAKATIME_API_KEY }}'
Click Commit changes then Commit changes to save
That's it! wakatime-to-toggl will run every day at 2:30 AM UTC (unless you changed it in the workflow)
You can come back to the Actions tab later to see the logs
Things to know
Entries shorter than 2 minutes will be ignored. This duration is configurable
Duplicate entries won't be added if they are detected
Projects will be created in your default workspace. You can move them to another workspace if you want
Time entries will be created with a default description ("Development"). You can edit it, it won't break duplicates detection
Detailed usage
$ wakatime-to-toggl --help
Usage
$ wakatime-to-toggl -w <wakatime-api-key> -t <toggl-api-key>
Options
--wakatime, -w Your Wakatime api key
--toggl, -t Your Toggl api key
--day, -d The day to fetch. 0 is today, 1 is yesterday... Default: 1
--min-duration -m Minimum duration (in seconds) of entries to sync. Default: 120