1.0.0 • Published 2 years ago
wakatime-to-toggl v1.0.0
WakaTime to Toggl
Sync your WakaTime data in Toggl
- Works with free accounts
- Can be automated with GitHub Actions
Prerequisites
- Get your Wakatime API key in your settings
- Get your Toggl "API Token" at the bottom of your profile page
Option 1 - Run manually on your computer
- Download and install Node.js
- 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
- Add the following secrets using the New 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 everyday
on:
  schedule:
    - cron: 30 2 * * * # Everyday at 02:30 AM UTC. You can change it according to your timezone
jobs:
  run:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/setup-node@v4
        with:
          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 Start commit then Commit new file 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