Sync your Todoist tasks with your timeline!
- Syncs your Todoist tasks with due date and time to the timeline
- Tasks show up as timeline pins for quick, glanceable reminders
- Completely free and open source
Note: A Rebble subscription is required for tasks due within the next 2 hours to appear correctly in timeline future. Without it, they may show up in timeline past.
Rebble link: Pebble Appstore
Discord: Discord
1 Like
This app by itself has me so tempted to switch my whole life over to ToDoist
3 Likes
I mean, not to be a todoist evangelist, buuuut itâs pretty awesome 
1 Like
Recently circled back to the idea of merging this into Todoist Mini. I figured I might as well post some of my findings and thoughts here, since itâs quite hard to track this stuff down in Discord later.
To catch people up:
- Todoist Mini is a neat little app that allows to you view your Todoist tasks and stuff on your wrist.
- TimeToDo pushes Todoist tasks to your timeline.
- Instead of two apps, UX extroidinare @lavender said âhey, like, why not just merge the two?â
- And now weâre here

Some of my main findings:
-
Todoist Mini currently works via the Sync v9 API. Somewhat recently, as part of a "unificationâ effort, Todoist merged Sync v9 and REST v2 into a new API simply called âAPI v1â.
-
Up until TimeToDo 2.x, I used REST v2 because it covered all my bases. I have since migrated it to the new âv1â API.
-
Now that TimeToDo uses the new API, Todoist Mini would also have to undergo some refactoring to use the new v1 /sync endpoint. Itâs not terribly different, and Todoist has migration guides which should make this a bit easier.
On the topic of backends:
-
Todoist Mini doesnât have a backend. It never has.
-
Meanwhile, with TimeToDo, essentially everything is done on the server
. Login, configuration, webhooks, pushing pinsâeverything. In fact, the entire watchapp for TimeToDo is only about 26 lines of code.
I use a library I built called shale for the TimeToDo config page. Itâs pretty extensible and supports almost everything Todoist Mini would need as far as config goes, so thatâs a non-issue.
How do you do a migration that doesnât suck?
For current TimeToDo users, Technically, they should have no problem. They wouldnât even have to move to the new app immediately. However, if they do move, the App UUID will change, meaning weâll need a new Timeline Token. I imagine the flow would look like this:
-
Once we migrate, TimeToDo is un-indexed from the app store (itâll still be there, just not searchable).
-
At this time, Iâll move the userâs Timeline Token to a new database column, probably named legacyTimelineToken.
-
If the user never migrates: Theyâd still get pins just fine. The legacy token remains usable until the user deletes the app from their locker. The logic will basically be: âDoes this user have a new timeline token? Yes? Use that. No? Use the old token.â
-
There is already logic to delete the user when Rebble reports the token is inactive. I reach out to Todoist to deactivate the access token, then delete their account from the DB.
-
If the user downloads the new app: Iâll need a warning to tell the user to delete the old TimeToDo from their locker to avoid duplicate pins. Or maybe I could add some logic to not do this. I donât see why youâd keep TimeToDo around though.
For Todoist Mini users, This is where the problem is. Their token is stored on the phone. Sending it up to my server would break things because that token is associated with Todoist Miniâs specific Client ID, not mine.
-
Absolute best case: everybody has to sign back in. Which doesnât suck that bad, but I really wouldâve liked to see a âseamlessâ migration.
-
The thermonuclear option is I just wipe the DB and everybody starts over. 100% success rate, but it definitely sucks.
As far as next steps go, I may try and put together a POC sometime this weekend or next week. First, I just wanted to put my thoughts somewhere and maybe get some community feedback. As an avid user of both Todoist Mini and TimeToDo, I think a unified app would be awesome.
Random cliffnote: One other thing Iâve been thinking aboutânow that the app will be calling the server moreâis how to verify that requests actually came from the Todoist Mini app. This would probably require some sort of app attestation thingy. I have some thoughts on this I should probably manifest somewhere; if RWS and new mobile apps provide this feature, it would be quite valuable to any developer with an app that calls their own API.
2 Likes
Iâm still very much in favor of some merger being worked out - pins being provided by the same app opens up options like Launch Codes to view more details of a task right on your wrist, and of course a single login to set up for new users. I hope there is a path forward that makes sense for everyone.
1 Like