{"id":31752778,"url":"https://github.com/bergercookie/tw2vikunja","last_synced_at":"2025-10-09T17:27:21.251Z","repository":{"id":281623467,"uuid":"945853621","full_name":"bergercookie/tw2vikunja","owner":"bergercookie","description":"TW ➡️ Vikunja conversion script","archived":false,"fork":false,"pushed_at":"2025-03-10T08:52:17.000Z","size":102,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-02T06:38:34.600Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/bergercookie.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,"publiccode":null,"codemeta":null}},"created_at":"2025-03-10T08:27:48.000Z","updated_at":"2025-03-10T08:52:20.000Z","dependencies_parsed_at":"2025-03-10T09:42:33.588Z","dependency_job_id":"aeb46a36-2af4-423d-a919-5d6fa982872b","html_url":"https://github.com/bergercookie/tw2vikunja","commit_stats":null,"previous_names":["bergercookie/tw2vikunja"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bergercookie/tw2vikunja","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bergercookie%2Ftw2vikunja","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bergercookie%2Ftw2vikunja/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bergercookie%2Ftw2vikunja/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bergercookie%2Ftw2vikunja/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bergercookie","download_url":"https://codeload.github.com/bergercookie/tw2vikunja/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bergercookie%2Ftw2vikunja/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001872,"owners_count":26083197,"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","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-10-09T17:27:19.849Z","updated_at":"2025-10-09T17:27:21.245Z","avatar_url":"https://github.com/bergercookie.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `tw2vikunja`\n\nEasily convert your [`Taskwarrior`](https://taskwarrior.org/) tasks to\n[`Vikunja`](https://vikunja.io) tasks.\n\n## Installation\n\nThis script is currently not available on PyPi (PRs to convert it to a proper\npackage and upload to PyPI are more than welcome). To install it, just download\nthe `tw2vikunja.py` script somewhere locally and, assuming you have\n[`uv`](https://github.com/astral-sh/uv) installed locally, just execute the\nscript\n\n```sh\n/path/to/tw2vikunja.py\n```\n\nThis will install any dependencies of the `tw2vikunja.py` script (at the time of\nwriting only the `pyperclip` package), in a dedicated virtual environment and\nwill execute the script in that environment.\n\nAlternatively, you can also install the dependencies manually and execute the\nscript directly:\n\n```sh\npip install pyperclip\npython3 -m /path/to/tw2vikunja.py\n```\n\n## Usage\n\nYou can find some usage examples by running the script with the `--help` flag:\n\n- Get all the tasks from the pending `taskwarrior` database and convert them to\n  `Vikunja` tasks (doesn't include `+WAITING` tasks):\n\n  ```sh\n  task status:pending export | tw2vikunja.py\"\n  ```\n\n- Get all the tasks from the `myproject` project and convert them to `Vikunja`\n\n  ```sh\n  task pro:myproject export | tw2vikunja.py\"\n  ```\n\n- Get all the tasks from the `myproject` project and convert them to `Vikunja`,\n  but skip converting to the local timezone:\n\n  ```sh\n  task pro:myproject export | tw2vikunja.py --skip-convert-tz\"\n  ```\n\n- Get all the tasks from the `myproject` project and convert them to `Vikunja`,\n  but skip adding any tags:\n\n  ```sh\n  task pro:myproject export | tw2vikunja.py --skip-tags\"\n  ```\n\nCommands like the above (unless a relevant filter is applied) should create a\nformatted output, one line per task, which can be copy-pasted in the `Vikunja` task\naddition prompt so that the tasks are added to the `Vikunja` database. To\nfacilitate the pasting, the said output is automatically added to the clipboard\n(unless the `--skip-copy` flag is set).\n\n### Example output\n\n```sh\ntask pro:run export | tw2vikunja.py\n```\n\nThe above should create an output similar to the following, with `taskwarrior` tags\nconverted to `*{tag}` and `taskwarrior` projects converted to `+{project}`.\nDates are written as `MM/DD/YYYY` and times as `at HH:MM`:\n\n```txt\nHow many days to stay there? +paris *remindme 03/11/2025 at 00:00\nBook travel tickets +paris *remindme 03/12/2025 at 00:00\nBook for holiday on Thursday, Friday and Monday +paris\nBook airbnb +paris *remindme 03/13/2025 at 00:00\nRegister for marathon 03/14/2024 at 14:00 +paris\n```\n\nThe output can be copy-pasted to the `Vikunja` prompt:\n\n![Vikunja prompt](/share/images/vikunja-quick-add-prompt.png)\n\nAnd this is how it looks after the tasks are added:\n\n![Vikunja prompt](/share/images/vikunja-project-view.png)\n\n### Notes\n\n- Projects specified in the `Vikunja` prompt have to exist beforehand in `Vikunja`\n  otherwise this information is discarded.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbergercookie%2Ftw2vikunja","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbergercookie%2Ftw2vikunja","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbergercookie%2Ftw2vikunja/lists"}