{"id":16568993,"url":"https://github.com/thehale/habitsync-for-todoist","last_synced_at":"2025-10-29T00:31:50.583Z","repository":{"id":223388508,"uuid":"717378399","full_name":"thehale/HabitSync-for-Todoist","owner":"thehale","description":"Sync completed tasks from Todoist to Loop Habit Tracker. Keeping track of your habits has never been easier!","archived":false,"fork":false,"pushed_at":"2024-07-28T03:45:54.000Z","size":1181,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-01T20:45:00.630Z","etag":null,"topics":["android","habit-tracking","loop-habit-tracker","react-native","todoist"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thehale.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2023-11-11T09:55:06.000Z","updated_at":"2024-08-29T17:37:54.000Z","dependencies_parsed_at":"2024-02-21T06:30:51.901Z","dependency_job_id":"62258a72-0200-4f08-a734-b40f1f42eeb6","html_url":"https://github.com/thehale/HabitSync-for-Todoist","commit_stats":null,"previous_names":["thehale/todoisthabitsync","thehale/habitsync-for-todoist"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thehale%2FHabitSync-for-Todoist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thehale%2FHabitSync-for-Todoist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thehale%2FHabitSync-for-Todoist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thehale%2FHabitSync-for-Todoist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thehale","download_url":"https://codeload.github.com/thehale/HabitSync-for-Todoist/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238751273,"owners_count":19524536,"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":["android","habit-tracking","loop-habit-tracker","react-native","todoist"],"created_at":"2024-10-11T21:12:08.696Z","updated_at":"2025-10-29T00:31:50.193Z","avatar_url":"https://github.com/thehale.png","language":"TypeScript","funding_links":["https://github.com/sponsors/thehale"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Todoist -\u003e Loop Habit Tracker\n![The app icon which uses a light green on black backaground. Shows the Loop Habit Tracker on the left and the Todoist logo on\nthe right.](icon.svg)\n\nKeeping track of your habits has never been easier\n\n[![](https://badgen.net/github/license/thehale/HabitSync-for-Todoist)](https://github.com/thehale/HabitSync-for-Todoist/blob/master/LICENSE)\n[![](https://badgen.net/badge/icon/Sponsor/pink?icon=github\u0026label)](https://github.com/sponsors/thehale)\n[![Joseph Hale's software engineering blog](https://jhale.dev/badges/website.svg)](https://jhale.dev)\n[![Follow Joseph Hale!](https://jhale.dev/badges/follow.svg)](https://www.linkedin.com/comm/mynetwork/discovery-see-all?usecase=PEOPLE_FOLLOWS\u0026followMember=thehale)\n\n[![Habit Sync for Todoist on the Google Play Store](docs/get_it_on_google_play.svg)](https://play.google.com/store/apps/details?id=dev.jhale.todoisthabitsync)\n\n\u003c/div\u003e\n\n\n[Todoist](https://todoist.com/) is an excellent task tracking app, but has poor\nhabit tracking capabilities. [Loop Habit\nTracker](https://play.google.com/store/apps/details?id=org.isoron.uhabits) is an\nexcellent habit tracking app, but has no task tracking capabilities.\n\nEnter **Todoist Habit Sync** which automatically marks off habits in Loop\nHabit Tracker when you complete a recurring task in Todoist. Now you have the\nbest of both worlds!\n\nHere's how:\n\n1. Open the app\n2. Link your Todoist tasks to Loop Habits\n3. Done! 🎉\n\n\u003cdiv align=\"center\"\u003e\n\n![](./docs/demo.gif)\n\n\u003c/div\u003e\n\n\n## FAQ\n\n### Why are some of my Todoist tasks not listed?\n\nTodoist Habit Sync only works with completed [recurring\ntasks](https://todoist.com/help/articles/set-a-recurring-due-date). Get a solid\nstart on your new habit by completing the task at least once for it to show up.\n\n### Why are my habits not being marked automatically?\n\nMake sure your API key has been entered correctly. Without valid credentials,\nthis app cannot get the necessary data from Todoist to mark off your habits.\n\nNext, try a manual habit sync using the button at the bottom of the main screen.\nIf that works, you most likely need to open your phone's battery settings and\nallow Todoist Habit Sync to [run in the background without\nrestrictions](https://www.droidviews.com/turn-off-battery-optimization-for-individual-android-apps/).\n\nIf the manual habit sync didn't work, also check the following:\n 1. Have you completed the task in Todoist since midnight today?\n 2. Is the task linked to the habit correctly? Consider unlinking and trying\n    again.\n\nIf things still aren't working, [create an\nissue](https://github.com/thehale/TodoistHabitSync/issues/new/choose) to report\nthe problem.\n\n### How is my data accessed/used/protected?\n\nAfter opening the app for the first time, you will be prompted to enter a\n[Todoist API Token](https://todoist.com/help/articles/find-your-api-token) so\nthat Todoist Habit Sync can pull data about your completed tasks without needing\nyour Todoist username or password. The token never leaves your device except for\ncommunicating with Todoist's servers over a secure connection.\n\nYour tasks are similarly protected. Todoist Habit Sync only downloads data about\nthe tasks completed in the last 24 hours and only saves a [few key fields about\nthe task](./src/lib/Todoist.ts) (e.g. title, Todoist ID, and precise completion\ntime). All other task data like descriptions, assignees, comments, and\nattachments are discarded immediately. Tasks linked to a habit are stored on the\ndevice until you delete them.\n\nYour habits are fully controlled by Loop Habit Tracker which only shares the\nhabit name with Todoist Habit Sync. Habit data never leaves your device.\n\nYou can read my privacy policy to learn more about [my philosophy on apps and\ndata usage](https://jhale.dev/privacy-policy.html).\n\n\n## License\n\nCopyright (c) 2023 - Joseph Hale. All Rights Reserved.\n\n```\nTodoist Habit Sync by Joseph Hale is licensed under the terms of the Mozilla\nPublic License, v 2.0, which are available at https://mozilla.org/MPL/2.0/.\n\nYou can download the source code for Todoist Habit Sync for free from\nhttps://github.com/thehale/TodoistHabitSync.\n```\n\u003cdetails\u003e\n\n\u003csummary\u003e\u003cb\u003eWhat does the MPL-2.0 license allow/require?\u003c/b\u003e\u003c/summary\u003e\n\n### TL;DR\n\nYou can use files from this project in both open source and proprietary\napplications, provided you include the above attribution. However, if\nyou modify any code in this project, or copy blocks of it into your own\ncode, you must publicly share the resulting files (note, not your whole\nprogram) under the MPL-2.0. The best way to do this is via a Pull\nRequest back into this project.\n\nIf you have any other questions, you may also find Mozilla's [official\nFAQ](https://www.mozilla.org/en-US/MPL/2.0/FAQ/) for the MPL-2.0 license\ninsightful.\n\nIf you dislike this license, you can contact me about negotiating a paid\ncontract with different terms.\n\n**Disclaimer:** This TL;DR is just a summary. All legal questions\nregarding usage of this project must be handled according to the\nofficial terms specified in the `LICENSE` file.\n\n### Why the MPL-2.0 license?\n\nI believe that an open-source software license should ensure that code\ncan be used everywhere.\n\nStrict copyleft licenses, like the GPL family of licenses, fail to\nfulfill that vision because they only permit code to be used in other\nGPL-licensed projects. Permissive licenses, like the MIT and Apache\nlicenses, allow code to be used everywhere but fail to prevent\nproprietary or GPL-licensed projects from limiting access to any\nimprovements they make.\n\nIn contrast, the MPL-2.0 license allows code to be used in any software\nproject, while ensuring that any improvements remain available for\neveryone.\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthehale%2Fhabitsync-for-todoist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthehale%2Fhabitsync-for-todoist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthehale%2Fhabitsync-for-todoist/lists"}