Sync with Todoist
2Do for Mac can sync through your Todoist account. Your Todoist projects appear as 2Do lists, and your tasks stay in step across every device signed in to the same Todoist account. Connecting is credential-free: you authorise 2Do in your browser and 2Do never sees or stores your Todoist password.
Connect
- Open 2Do > Settings > Sync and stay on the Setup tab.
- From the Account Type pop-up, choose Todoist.
- Click Connect. Your default browser opens the Todoist authorisation page.
- Sign in to Todoist (if needed) and approve 2Do's request. Your browser hands control back to 2Do and the account is linked.
There are no username or password fields; 2Do uses OAuth 2.0. Only the resulting access and refresh tokens are kept in your Mac's Keychain; your Todoist password is never stored.
The browser authorisation step times out after 180 seconds. If you don't finish signing in and approving within that window, click Connect again to restart.
Once connected, the Account Type pop-up is locked; 2Do syncs one account at a time. To connect a different Todoist account, reset Todoist sync first with Change Account on the Setup tab. If you authorise a different Todoist login than the one already attached, 2Do rejects it with "Todoist account changed. Please reset Todoist sync before connecting a different account."
What Syncs
When syncing with Todoist, your tasks, projects, tags, due dates, durations and starred status sync across your devices. Todoist sections, deadlines, comments, attachments and standalone locations aren't synced by 2Do. Replace Server is not available for Todoist.
In practice:
- Projects ↔ Lists — each Todoist project appears as a 2Do list, and vice versa.
- Tasks, including their tags, due dates, durations, and starred status.
- Sub-tasks and hierarchy are preserved between your 2Do devices.
What Stays on This Mac
Some 2Do-only features stay on this Mac and are not carried by Todoist sync:
- Smart Lists
- Tag groups
- List groups
- Unused tags
- Attachments
- Locations
A few Todoist-only concepts don't come into 2Do: sections stay in Todoist (preserved as provider metadata, not as structure in 2Do), and deadlines, comments, and Todoist attachments aren't imported.
Replace Server Data is not available for Todoist. Because Todoist is a full app you also use directly, 2Do won't wipe the Todoist side wholesale. You can still choose Merge Sync or Replace Local Data from the Next sync action picker; see Merge vs Replace.
Todoist Options
With Todoist selected, the Setup tab shows these controls.
Sync extra task properties in notes
A switch, on by default:
Stores 2Do start dates, starred state, actions, project/checklist type and repeat-from-completion in Todoist task descriptions. Duration is added here only if Todoist rejects native duration writes for this account.
Todoist has no native home for several 2Do fields, so with this switch on, 2Do records them as plain-text @tag:value lines inside each task's Todoist description. That's how those 2Do-only details survive the round-trip between your own devices; without them, properties like start dates and actions would simply be missing on your other 2Do installs. If you'd rather keep Todoist descriptions completely clean, turn it off, but those fields will then be dropped when they pass through Todoist.
The tags 2Do writes for Todoist:
| Tag | Meaning |
|---|---|
@startdate:YYYY-MM-DD (+ optional @starttime:HH:MM) | Start date/time |
@starred | The task is starred |
@action:<type> (+ @actionvalue:<value>) | Task action (call, email, URL, etc.) |
@tasktype:project / @tasktype:checklist | Whether the item is a project or a checklist |
@repeatfromcompletion | Recurrence counts from the completion date |
@duration:<seconds> | Task duration (written only when Todoist rejects native duration writes for the account) |
It's a shorter list than Reminders uses because Todoist stores more natively: tags map to Todoist labels, and parent/sub-task structure travels through Todoist's own parent relationship, so no identity tags are needed. Inside 2Do these lines are parsed out and hidden; you only see your real note text. Avoid hand-editing the @… lines in Todoist, as they carry the information 2Do needs to rebuild your task.
Keep completed tasks
A picker that sets how far back 2Do imports your completed Todoist history: 3 months, 6 months, or 12 months (the default is 12 months).
Older completed Todoist tasks outside this window are not imported into 2Do.
A shorter window means a lighter, faster first sync; a longer window pulls in more of your finished history.
This picker also works together with Auto-delete completed tasks (Settings > Tasks). With auto-delete on, importing months of finished history would be pointless — 2Do would delete those tasks again moments later, and every one of them would cost sync requests both ways. So 2Do imports completed history only as far back as the shorter of the two windows. With auto-delete set to 1 day, for example, the first sync fetches just the newest day of completed history, regardless of this picker.
Todoist enforces strict API rate limits, and completed history is the most request-hungry part of a first sync. Skipping completions that auto-delete would immediately remove keeps the first sync fast and spends none of that limited quota downloading — and then deleting — tasks you've told 2Do not to keep. Completions skipped this way are never touched: they stay safely in your Todoist account, they simply aren't pulled into 2Do. Completed tasks that do sync into 2Do follow the normal auto-delete rule; when their time is up, the deletion syncs like any other change and removes them from Todoist too.
Sync automatically
The shared Sync automatically switch ("Turn this off to sync manually."). Leave it on for continuous background sync, or turn it off on this Mac and sync on demand with ⌘S or the Sync toolbar button.
Daily Sync
Once connected, 2Do for Mac syncs continuously in the background while running (unless you've turned Sync automatically off on this Mac). Press ⌘S any time to force an immediate sync.
Troubleshooting
Sync seems stuck or throttled
Todoist enforces its own API rate limits. During a very large first import, or when sync is triggered repeatedly, Todoist may briefly throttle requests. 2Do backs off and resumes on the next cycle; give it a moment rather than forcing sync again.
Tips
Keep Sync extra task properties in notes on if you use 2Do features like start dates, actions, or project/checklist structure. It's the only way those details survive a trip through Todoist and reappear intact on your other 2Do devices.