{"id":18663517,"url":"https://github.com/st3iny/toggl-to-timeular","last_synced_at":"2025-06-24T16:37:36.056Z","repository":{"id":224180261,"uuid":"762645645","full_name":"st3iny/toggl-to-timeular","owner":"st3iny","description":"Migrate time entries from Toggl Track to Timeular","archived":false,"fork":false,"pushed_at":"2024-02-24T09:43:09.000Z","size":19,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-18T04:37:00.480Z","etag":null,"topics":["migration","time-tracking","timeular","toggl"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/st3iny.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-02-24T09:40:48.000Z","updated_at":"2024-02-26T12:48:21.000Z","dependencies_parsed_at":"2024-02-24T10:33:05.824Z","dependency_job_id":"317beea0-178f-4c70-be50-ffe6c5037e79","html_url":"https://github.com/st3iny/toggl-to-timeular","commit_stats":null,"previous_names":["st3iny/toggl-to-timeular"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/st3iny/toggl-to-timeular","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/st3iny%2Ftoggl-to-timeular","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/st3iny%2Ftoggl-to-timeular/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/st3iny%2Ftoggl-to-timeular/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/st3iny%2Ftoggl-to-timeular/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/st3iny","download_url":"https://codeload.github.com/st3iny/toggl-to-timeular/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/st3iny%2Ftoggl-to-timeular/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261715362,"owners_count":23198749,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["migration","time-tracking","timeular","toggl"],"created_at":"2024-11-07T08:18:16.422Z","updated_at":"2025-06-24T16:37:36.031Z","avatar_url":"https://github.com/st3iny.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"## toggl-to-timeular\n\nMigrate time entries from Toggl Track to Timeular.\n\n## How to use?\n\n1. Clone the repository.\n2. Create a new API key at Timeular: https://app.timeular.com/#/settings/account\n3. Save the API key in a file called `credentials.txt`. The file should contain 2 lines:\n   - The first line should contain the API key.\n   - The second line should contain the API secret.\n4. List all of your activites and save the output: `cargo run -- --credentials=credentials.txt list-activities \u003e activities.json`\n5. Create a time entry mapping spec at `activity_mapping.json`. The syntax is described below.\n6. Export time entries as csv files from Toggl Track and lookup your time zone. See below for\n   instructions. Ids of activities can be found in the `activities.json` file from step 4.\n7. Import time entries: `cargo run -- --credentials=credentials.txt import --activity-mappings=activity_mappings.json --toggl-time-zone=Europe/Berlin --dry-run ~/downloads/Toggl_time_entries*.csv`\n8. If the dry run looks good, remove the `--dry-run` flag and run the program again.\n\nRun `cargo run -- --help` or `cargo run -- \u003cCOMMAND\u003e --help` for more information.\nSet the `RUST_LOG` environment variable to `debug` to get more verbose logging.\n\n## Exporting time entries from Toggl\n\n1. Open your profile settings on Toggl Track: https://track.toggl.com/profile\n2. **Important:** Note your `reports timezone` at the top of the page. You will need it later.\n2. Click on `Export account data` on the top right.\n3. Enter the year you want to export below `Time entries` and click `Export time entries`.\n4. A csv file will downloaded, e.g `Toggl_time_entries_2023-01-01_to_2023-12-31.csv`\n5. *Optional:* Filter the time entries using your favorite text editor if you only want to import a\n   certain month.\n\n## Mapping spec\n\nThe rules to map Toggl Track time entries to Timeular activities are defined in a JSON file.\nThey will be matched from top to bottom, so the first match will be used.\nEntries without a match will be ignored.\n\n```json\n[\n  {\n    \"filter\": {\n      \"project\": \"work\",\n      \"description\": \"team call\"\n    },\n    \"activity_id\": \"100000\"\n  },\n  {\n    \"filter\": {\n      \"project\": \"work\"\n    },\n    \"activity_id\": \"100001\"\n  },\n  {\n    \"filter\": {\n      \"project\": \"uni\",\n      \"description\": \"algorithms lecture\"\n    },\n    \"activity_id\": \"100002\"\n  },\n  {\n    \"filter\": {\n      \"project\": \"uni\",\n      \"description\": \"thesis\"\n    },\n    \"activity_id\": \"100003\"\n  },\n  {\n    \"filter\": {\n      \"project\": \"uni\"\n    },\n    \"activity_id\": \"100004\"\n  }\n]\n```\n\nThe project is matched case sensitively.\nThe description is matched case insensitively and can be omitted.\n\nThe filter code is located in `src/mapping.rs` and can be extended to match more fields in case you\nneed more complex rules.\nThe code should be self-explanatory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fst3iny%2Ftoggl-to-timeular","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fst3iny%2Ftoggl-to-timeular","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fst3iny%2Ftoggl-to-timeular/lists"}