# 2Do > 2Do helps you manage tasks, lists, tags, notes, and projects on Mac, iPhone, iPad, and Android. - [2Do](/index.md) ## about About 2Do and Beehive Innovations. - [About 2Do](/about.md): About 2Do and Beehive Innovations. ## android 2Do for Android helps you capture tasks, organize lists, and keep plans moving on Android. - [2Do Android](/android.md): 2Do for Android helps you capture tasks, organize lists, and keep plans moving on Android. ### download Download 2Do for Android directly from our website. It is the same app as on Google Play, signed with the same certificate. - [Download 2Do for Android](/android/download.md): Download 2Do for Android directly from our website. It is the same app as on Google Play, signed with the same certificate. ## compare Compare 2Do with Things 3, OmniFocus, Todoist, Apple Reminders, TickTick, and GoodTask for task management, sync, list sharing, and collaboration. - [2Do Comparison Guides](/compare.md): Compare 2Do with Things 3, OmniFocus, Todoist, Apple Reminders, TickTick, and GoodTask for task management, sync, list sharing, and collaboration. ### apple-reminders Compare 2Do and Apple Reminders for task organization, alarms, sync, list sharing, and collaboration. Use both apps with two-way Reminders sync. - [2Do vs Apple Reminders](/compare/apple-reminders.md): Compare 2Do and Apple Reminders for task organization, alarms, sync, list sharing, and collaboration. Use both apps with two-way Reminders sync. ### goodtask Compare 2Do and GoodTask for task organization, scheduling, sync, list sharing, and collaboration. Both also work with Apple Reminders. - [2Do vs GoodTask](/compare/goodtask.md): Compare 2Do and GoodTask for task organization, scheduling, sync, list sharing, and collaboration. Both also work with Apple Reminders. ### omnifocus Compare 2Do and OmniFocus for task organization, scheduling, automation, sync, and collaboration through shared lists. - [2Do vs OmniFocus](/compare/omnifocus.md): Compare 2Do and OmniFocus for task organization, scheduling, automation, sync, and collaboration through shared lists. ### things-3 Compare 2Do and Things 3 for task organization, scheduling, search, sync, and collaboration through shared lists. - [2Do vs Things 3](/compare/things-3.md): Compare 2Do and Things 3 for task organization, scheduling, search, sync, and collaboration through shared lists. ### ticktick Compare 2Do and TickTick for task management, scheduling, sync, list sharing, and collaboration, plus TickTick’s habit tracker and focus timer. - [2Do vs TickTick](/compare/ticktick.md): Compare 2Do and TickTick for task management, scheduling, sync, list sharing, and collaboration, plus TickTick’s habit tracker and focus timer. ### todoist Compare 2Do and Todoist for task organization, scheduling, sync, list sharing, and collaboration. Use both apps with two-way Todoist sync. - [2Do vs Todoist](/compare/todoist.md): Compare 2Do and Todoist for task organization, scheduling, sync, list sharing, and collaboration. Use both apps with two-way Todoist sync. ## eula End-User License Agreement for 2Do. - [End-User License Agreement](/eula.md): End-User License Agreement for 2Do. ## ios Keep track of tasks, plan projects, and organize your day with 2Do for iPhone, with Quick Add, Smart Lists, and an Apple Watch app. - [2Do iOS](/ios.md): Keep track of tasks, plan projects, and organize your day with 2Do for iPhone, with Quick Add, Smart Lists, and an Apple Watch app. ## ipad Plan projects and manage tasks with room for your lists, editor, and calendar. Use 2Do for iPad with touch or a keyboard. - [2Do iOS](/ipad.md): Plan projects and manage tasks with room for your lists, editor, and calendar. Use 2Do for iPad with touch or a keyboard. ## macos ### releasenotes 2Do Version History - [2Do Version History](/macos/releasenotes.md): 2Do Version History ## press Press resources for 2Do. - [Press](/press.md): Press resources for 2Do. ## privacy Privacy Policy for 2Do. - [Privacy Policy](/privacy.md): Privacy Policy for 2Do. ## store Purchase a new 2Do Mac license, renew an existing 2Do license, or see how 2Do for iPhone and 2Do for iPad are sold on the App Store. - [Store](/store.md): Purchase a new 2Do Mac license, renew an existing 2Do license, or see how 2Do for iPhone and 2Do for iPad are sold on the App Store. ## docs Learn about Support & User Guides in 2Do. - [Support & User Guides](/docs.md): Learn about Support & User Guides in 2Do. ### android - [Actions](/docs/android/actions.md): Every task in 2Do can carry an Action — a URL, phone call, message, email, address, or search. The action turns the task itself into a one-tap step. - [Backups](/docs/android/backups.md): How 2Do for Android backs up your local database, where files live, and how to restore. - [Batch Editing](/docs/android/batch-editing.md): Enter batch-edit mode on Android to change dates, tags, priority, location, sharing, moving, or deletion for many tasks in one move. - [Calendar Events](/docs/android/calendar-integration.md): See calendar events above your tasks on Android, browse upcoming days, and add a task to your calendar. - [Dates and Durations — Start, Due, and Duration](/docs/android/dates-and-durations.md): How 2Do for Android interprets a task's Start Date, Due Date, and Duration — alone, combined, and with recurrence. Practical examples for the Today list, scheduled tasks, and lead-time reminders. - [Focus Filter](/docs/android/focus-filter.md): Toggle between everything you have and just what matters right now. The Focus Filter on Android uses the same rule builder as Smart Lists. - [Focus Lists — All, Today, Starred, Scheduled, Done, Inbox](/docs/android/focus-lists.md): The built-in Focus Lists in 2Do for Android — All, Today, Starred, Scheduled, Done, Inbox. How each is built and how to keep specific real lists out of it. - [Getting Started with 2Do for Android](/docs/android/getting-started.md): This tutorial walks you through setting up 2Do for Android and gives you an overview of the main features — Quick Add, lists, projects, tags, smart lists, alarms, sync, and widgets. - [Android Integrations](/docs/android/integrations.md): Android-specific ways to capture tasks, open 2Do views, use widgets, keep Today visible, and import backup files. - [Lists and List Groups](/docs/android/lists-and-list-groups.md): Lists, list groups, and the Focus Lists in the navigation drawer on Android. - [Natural Language Input](/docs/android/natural-language-input.md): Type dates, times, tags, and other details into a new task’s title in 2Do for Android. - [Nearby and Locations](/docs/android/nearby-locations.md): Attach a location to a task and 2Do can show it on the Nearby tab when you're close, or fire an alarm when you arrive or leave. - [Notifications and Alarms](/docs/android/notifications.md): Add multiple alerts to a task, choose preset or custom timing, control sound, and use Nag Me, snooze, precise alerts, and Android notification settings. - [Password Protection](/docs/android/password-protection.md): Protect selected lists with a password and control what widgets and notifications can show. - [Projects and Checklists](/docs/android/projects-and-checklists.md): Projects for goals made of multiple actions, checklists for ordered steps. How sub-tasks differ under each parent on Android and when to use each. - [Quick Add](/docs/android/quick-add.md): Long-press the floating action button to open Quick Add, or capture tasks from Android share, selected text, launcher shortcuts, and Quick Settings. - [Quick Open](/docs/android/quick-open.md): Find a task or list by name and jump to it with Quick Open in 2Do for Android. - [Repeating Tasks](/docs/android/repeating-tasks.md): Daily, weekly, monthly, yearly, or any custom recurrence rule. Choose between repeat-from-due-date and repeat-from-completion. - [Search](/docs/android/search.md): Find tasks with text, dates, and filters. Use Full Text or Soundex matching, then save useful searches as Smart Lists. - [Settings](/docs/android/settings.md): A guided reference to 2Do for Android settings, in the same order they appear in the app. - [Smart Lists, Smart Filters, and Search](/docs/android/smart-lists.md): Smart Lists are saved Smart Filters. This page covers the complete search and filter syntax on Android — keywords, type presets, tag and location syntax, dynamic dates, soundex, full-text wildcards, and dozens of worked examples. - [Stars and Priorities](/docs/android/stars-and-priorities.md): Stars and Priorities are different on purpose. This page explains what each is for, how they interact with the Today list, the Starred Focus List, and Smart Filters on Android. - [Sync — Overview](/docs/android/sync.md): 2Do for Android supports iCloud, Dropbox, CalDAV (including iCloud CalDAV, Fruux, Yahoo! and custom servers), and Toodledo. iCloud is recommended when you also use 2Do on iPhone, iPad, or Mac. - [Sync with Custom CalDAV (Fruux, Yahoo!, ownCloud, etc.)](/docs/android/sync-with-caldav.md): Sync 2Do for Android with any CalDAV-capable server: Fruux, Yahoo!, ownCloud, Nextcloud, Synology, Kerio, and other 3rd-party CalDAV providers. - [Sync with Dropbox](/docs/android/sync-with-dropbox.md): Dropbox syncs 2Do for Android with iPhone, iPad, and Mac, including every task property, attachments, List Groups, Tag Groups, Smart Lists, and Search Presets. It also works with older versions of 2Do. - [Sync with iCloud CalDAV](/docs/android/sync-with-icloud.md): Sync 2Do for Android with iCloud CalDAV using your Apple ID and an app-specific password. - [Sync with iCloud](/docs/android/sync-with-icloud-native.md): iCloud is the recommended way to sync 2Do for Android with 2Do on iPhone, iPad, and Mac. Sign in once with your Apple Account, with no app-specific password, and all of your 2Do data syncs privately through iCloud. - [Sync with Apple Reminders](/docs/android/sync-with-reminders.md): 2Do for Android can't sync directly with Apple Reminders. Learn what changed with the iOS 13 and macOS Catalina Reminders upgrade, and which sync methods 2Do for Android supports. - [Sync with Toodledo](/docs/android/sync-with-toodledo.md): Sync 2Do for Android with Toodledo. Useful if you already use Toodledo's web client, but not every 2Do feature is supported. - [Tags](/docs/android/tags.md): Tags add cross-list context to tasks — energy, place, person, status. This page covers tag basics, tag groups, and pausing a tag to hide its tasks. - [The Task Editor](/docs/android/task-editor.md): A complete reference for the 2Do task editor on Android — every field and how it behaves. - [The 2Do Screen](/docs/android/the-2do-screen.md): An anatomy of the 2Do interface on Android — the navigation drawer, task list, editor, FAB, sliding panels, and gestures. - [Widgets](/docs/android/widgets.md): Home-screen widgets for viewing task lists and task counts from Android's home screen. ### faqs Browse the most common questions about 2Do, covering sync, pricing, licensing, privacy, and troubleshooting. - [Frequently Asked Questions](/docs/faqs.md): Browse the most common questions about 2Do, covering sync, pricing, licensing, privacy, and troubleshooting. - [Does 2Do iOS still use Basic and Pro?](/docs/faqs/2do-basic-vs-pro-ios.md): No. 2Do for iPhone and 2Do for iPad are separate one-time App Store purchases, with no in-app purchases and no subscription. - [2Do isn't syncing in the background](/docs/faqs/2do-not-syncing-in-background.md): Common causes for stale background sync: force-quitting the app, Background App Refresh disabled, slow network, or large changesets. - [Why isn't my Alert playing a sound?](/docs/faqs/alarm-no-sound.md): Three causes (wrong Alert type, notification settings off, or device on Mute). - [Why does the app icon badge show a different count?](/docs/faqs/app-icon-badge-count.md): Understand Today, Today + Overdue, and Due Today Only badge counts, and compare settings when 2Do shows different totals on iPhone, iPad, and Mac. - [Does Auto-Prioritize send my tasks anywhere?](/docs/faqs/auto-prioritize-privacy.md): No. Auto-Prioritize works out priorities on your iPhone, iPad, or Mac using Apple Intelligence, and none of your task text is sent anywhere. - [Will the Birthday import option return?](/docs/faqs/birthday-import-return.md): No immediate plans. The feature was niche and high-maintenance, but it's still on the wishlist. - [Can I email tasks to 2Do?](/docs/faqs/can-i-email-tasks-to-2do.md): Mail to 2Do gives each Mac, iPhone, and iPad its own private, receive-only email address. Anything sent to it becomes a task in the list you choose. - [Can I print my tasks?](/docs/faqs/can-i-print-tasks.md): Yes, printing is supported in 2Do for Mac via File > Print. - [How do I change the maximum distance for Nearby alerts on iOS?](/docs/faqs/change-nearby-alert-distance-ios.md): Open Settings > Nearby and pick a new Maximum Distance, up to 10 kilometres. - [Does 2Do support collaborative editing or teamwork?](/docs/faqs/collaborative-editing-teamwork.md): Invite people to a 2Do list through iCloud, choose editing or view-only access, and keep your own list view. Wi-Fi sharing is also available for nearby devices. - [How do I create a new location on Mac?](/docs/faqs/create-new-location-mac.md): Open the Utility Panel from the toolbar, then the Locations panel via the Pin button. Drag and drop to assign. - [How do I create tasks with Siri?](/docs/faqs/creating-tasks-with-siri.md): Say "Add to 2Do" or "New task in 2Do". 2Do ships its own Siri phrases, so there is nothing to set up first. - [Reminders and iCloud CalDAV](/docs/faqs/data-deleted-after-ios-13-catalina-upgrade.md): Apple's Reminders app does not share its lists over iCloud CalDAV. 2Do also offers a dedicated Apple Reminders sync method, plus how to recover your data. - [My data is only partially syncing](/docs/faqs/data-only-partially-syncing.md): Usually the result of an interrupted sync. Re-trigger sync and let it complete. - [A list I delete keeps reappearing after sync](/docs/faqs/deleted-list-reappears-after-sync.md): Another device still has the list and is pushing it back up. Delete on every device, then sync. - [Do you accept donations?](/docs/faqs/do-you-accept-donations.md): No, 2Do does not accept donations. The team encourages users to recommend 2Do to friends instead. - [Does 2Do encrypt synced data?](/docs/faqs/does-2do-encrypt-synced-data.md): 2Do does not explicitly encrypt synced data on top of your provider's encryption. All sync traffic is over SSL. - [Does 2Do support IFTTT?](/docs/faqs/does-2do-support-ifttt.md): Indirectly, IFTTT can route email to your private Mail to 2Do address on Mac, iPhone, or iPad. - [Does 2Do support syncing with Exchange?](/docs/faqs/does-2do-sync-with-exchange.md): 2Do does not sync with Exchange directly. Available methods include iCloud, Dropbox, Apple Reminders, Todoist, Toodledo, and CalDAV (iCloud and custom); WebDAV is coming soon. - [Will 2Do get read/write access to all my Dropbox files?](/docs/faqs/dropbox-file-access-scope.md): No, 2Do uses Dropbox's App Folder permission. Only its own folder under Apps/ is accessible. - [Why does Dropbox sync show old or missing tasks?](/docs/faqs/dropbox-shows-old-or-missing-tasks.md): Check that every device and app version uses the same Dropbox account before replacing data. Recover the current copy through Dropbox or a version 3 backup, then move to iCloud if all devices support it. - [I'm getting a Forbidden error during iCloud sync](/docs/faqs/forbidden-icloud-error.md): Usually an iCloud CalDAV account or permission problem. Check the account, app-specific password, and affected list. - [How do I rename a tag?](/docs/faqs/how-to-rename-a-tag.md): On Mac, double-click the tag in the Tags panel. On iOS and Android, long-press the tag in the Tags view → Rename. - [How to Share Minimal 2Do Logs](/docs/faqs/how-to-send-minimal-logs.md): Share only the recent 2Do Mac logs needed for troubleshooting. - [My iCloud password keeps failing](/docs/faqs/icloud-password-keeps-failing.md): Apple requires app-specific passwords for third-party apps. Plus best practices around date/time, @icloud.com, and aliases. - [How do I import data from OmniFocus?](/docs/faqs/import-from-omnifocus.md): On Mac, import directly with File > Import > From OmniFocus. On other platforms, export to CSV, import to a free Toodledo account, then sync. - [How do I import data from Things?](/docs/faqs/import-from-things.md): On Mac, import directly with File > Import > From Things. Areas become List Groups, Projects become lists, headings become sections, and to-dos and checklists come across with their tags, dates, reminders, and repeats. - [Are my iPhone / iPad backups safe if I delete the 2Do app?](/docs/faqs/ios-backups-safe-if-app-deleted.md): No. Backups live inside 2Do's own container. Save a copy somewhere else so one survives an app deletion. - [Is 2Do free?](/docs/faqs/is-2do-free.md): 2Do Mac has a free trial, 2Do for iPhone and 2Do for iPad are separate one-time App Store purchases, and Android is a free download with an optional Pro upgrade. - [2Do Licensing Explained](/docs/faqs/licensing-explained.md): Learn how 2Do Mac licensing, subscriptions, renewals, and update eligibility work, and how the 2Do for iPhone and 2Do for iPad apps are sold. - [What does the Mac App Store subscription change mean for me?](/docs/faqs/mac-app-store-subscription-update.md): What the 2Do Mac subscription change means for existing Mac App Store customers, including complimentary access until October 2027 for recent buyers and a free direct license for existing customers who would rather not subscribe. - [What is the maximum length for a list name?](/docs/faqs/maximum-list-name-length.md): List names can be up to 200 characters long. Names sent to a CalDAV server are shortened to 25 characters there, while the name in 2Do stays as you typed it. - [How do I move my tasks from the old 2Do app to the new one?](/docs/faqs/moving-to-the-new-app.md): Moving from 2Do version 3 to version 4 on iPhone and iPad, and from 2.x to 2026.x on the Mac. Sync with the same method and account, then choose Replace Local Data. - [What are the new 2Do for iPhone and 2Do for iPad apps?](/docs/faqs/new-iphone-ipad-apps.md): 2Do for iPhone and 2Do for iPad are new apps, each a separate one-time App Store purchase. Here is what happens to the old app and how to move your tasks across. - [Why am I seeing "Nothing in Focus"?](/docs/faqs/nothing-in-focus-message.md): The Focus Filter is on with no matching tasks. Toggle the sun-shaped Focus button to turn it off. - [Can I read 2Do's content directly in Dropbox?](/docs/faqs/read-2do-content-in-dropbox.md): No. Dropbox is only the place where your devices exchange the sync file. - [How do I re-download the old 2Do for iOS app?](/docs/faqs/redownload-ios-app-while-unavailable.md): The previous 2Do for iOS app is no longer sold, but anyone who bought it can still download it from their App Store purchase history. - [I previously paid for 2Do, do I get a refund?](/docs/faqs/refund-for-previous-purchase.md): Previous iOS purchases remain App Store purchases, and refunds are handled by Apple. - [How do I repair a corrupt 2Do database on Mac?](/docs/faqs/repair-corrupt-database-mac.md): Restore from backup first. If 2Do still cannot open your data, contact support before attempting manual database repair. - [When syncing: Replace server data or Replace local data?](/docs/faqs/replace-server-data-vs-replace-local-data.md): Replace Server Data pushes your local 2Do tasks up; Replace Local Data pulls from the server down; Merge keeps both sides. - [Can I restore an iOS purchase?](/docs/faqs/restore-previous-purchase.md): iOS App Store purchases are tied to the Apple ID used to buy or download the app. - [How do I make reusable template tasks?](/docs/faqs/reusable-template-tasks.md): Create a Templates list with Exclude from All / Today, then duplicate from there into the destination list. - [What's the difference between Scheduling and Deferring a task?](/docs/faqs/schedule-vs-defer.md): Scheduling sets a future start date. Deferring pushes out the due date. - [Are iOS, Mac, and Android licenses sold separately?](/docs/faqs/separate-licenses-per-platform.md): Yes, each platform is a separate purchase. There's no cross-platform license bundle. - [Does Setapp include the iOS or Android apps?](/docs/faqs/setapp-mac-and-pro-on-ios-android.md): No. Setapp covers 2Do Mac only. iOS and Android are separate store purchases. - [How do I set up 2Do on a new iPhone, iPad, Mac, or Android device?](/docs/faqs/setting-up-new-device.md): Pick the same sync method and sign in to the same account. If 2Do asks on first sync, choose Replace local data when the server has the latest data, or Replace server data after restoring from a backup. - [Will 2Do show iCal events and tasks together in the same list?](/docs/faqs/show-events-and-tasks-together.md): No. Events and tasks are different types. 2Do shows your calendar in a day bar above your task lists and in a Calendar Events panel beside them. - [How do I sort tasks manually on iPhone and iPad?](/docs/faqs/sort-tasks-manually-ios.md): Choose Manually in the sort menu, tap Batch Editing, then touch and hold a task until it lifts and drag it into place. Other sorts snap dragged tasks back. - [How do I sort my tasks on Mac?](/docs/faqs/sort-tasks-on-mac.md): Use the toolbar's sort menu or View > Sort By. Each list remembers its own sort. - [Do you offer student discounts?](/docs/faqs/student-discounts.md): Current student-discount policy for 2Do. - [Tasks I add get deleted after some time when syncing with iCloud CalDAV](/docs/faqs/tasks-deleted-with-reminders-sync.md): Usually a stale sync state between devices. Apple Reminders does not share its lists through iCloud CalDAV. - [Why are tasks due tomorrow showing in the Today Focus list?](/docs/faqs/tasks-tomorrow-in-today-list.md): Common causes include task duration, "Still Working On" behavior, or "Include Starred Tasks" being enabled. - [My tasks are missing (Today counter shows a count but no tasks appear)](/docs/faqs/today-counter-shows-tasks-but-list-empty.md): Check scheduled-task visibility when tasks are missing from Today, and distinguish list counters from the app icon badge. - [How can I try the latest 2Do for Mac after using an older version?](/docs/faqs/try-latest-2do-mac-after-older-version.md): Start a clean 14-day trial of the latest direct-download version after using an older or Mac App Store copy of 2Do. - [How do I completely uninstall 2Do from my Mac?](/docs/faqs/uninstall-2do-from-mac.md): Reset preferences, delete the container directories, restart your Mac. Or use CleanMyMac. - [Do you have plans for a web app?](/docs/faqs/web-app-plans.md): No web app planned at this time. - [Where are backup files stored on my Mac?](/docs/faqs/where-are-mac-backup-files-stored.md): Inside 2Do's sandboxed Application Support container by default. - [Which sync method should I use?](/docs/faqs/which-sync-method-should-i-use.md): 2Do supports iCloud, Apple Reminders, Dropbox, Todoist, Toodledo, iCloud CalDAV, and custom CalDAV; WebDAV is coming soon. iCloud is the recommended method on iPhone, iPad, Mac, and Android when every device runs a version of 2Do with iCloud sync. Dropbox also works with older versions. - [Why don't you offer your own cloud sync solution?](/docs/faqs/why-no-own-cloud-sync.md): 2Do runs no cloud of its own. It syncs through services you already have, including your own iCloud account, so your task data stays with the provider you choose. - [My widget stopped working after an update](/docs/faqs/widget-broken-after-update.md): Restart your device. iOS sometimes fails to load an updated app's widget until the device has been restarted. - [Will iCloud CalDAV sync my projects and checklists?](/docs/faqs/will-icloud-sync-projects-checklists.md): Yes, between 2Do devices. Other CalDAV apps may show projects and checklists as plain tasks because they do not have the same model. ### ios - [Actions](/docs/ios/actions.md): Every task in 2Do can carry an Action: a call, message, email, address, link, or web search. The action turns the task itself into a one-tap step. - [Alerts and Nagging](/docs/ios/alarms-and-nagging.md): Add as many alerts to a task as you need on iPhone and iPad, set automatic reminders, choose how often 2Do nags you, silence individual lists, and ring alerts as full-screen alarms. - [2Do for Apple Watch](/docs/ios/apple-watch.md): The 2Do app for Apple Watch shows what is next, what is late, and what lands tomorrow, lets you complete, defer, delete, and add tasks from your wrist, and offers four watch-face complications. - [Auto-Prioritize with Apple Intelligence](/docs/ios/auto-prioritize.md): Use Apple Intelligence to set priorities for selected tasks on your iPhone or iPad. Processing stays on your device. - [Backups](/docs/ios/backups.md): How 2Do on iPhone and iPad backs up your database, how to restore a single list or the whole thing, and how to keep a copy of a backup somewhere outside the app. - [Batch Editing](/docs/ios/batch-editing.md): Select many tasks in 2Do for iPhone and iPad, then set dates, tags, priority, or a location, move them to a list or section, share them, or delete them in one action. - [Calendar Events](/docs/ios/calendar-integration.md): Show your Apple Calendar events above your task lists on iPhone and iPad, browse other days from the date ticker, drop a task on the day bar to add it to your calendar, and open the Calendar Events page in the utility panel. - [Dates and Durations: Start, Due, and Duration](/docs/ios/dates-and-durations.md): How 2Do interprets a task's Start Date, Due Date, and Duration: alone, combined, and with recurrence, with examples for tasks at home, at work, and at school. - [Drag and Drop](/docs/ios/drag-and-drop.md): Drag tasks onto lists, Focus Lists, tags, and calendar dates in 2Do for iPhone and iPad, drag tags and locations onto a task, and drag tasks between iPad windows. - [Mail to 2Do](/docs/ios/email-to-2do.md): Turn email into tasks with a private Mail to 2Do address for your iPhone or iPad, with encrypted delivery, automatic cleanup, and no separate mailbox or account. - [Focus Filter](/docs/ios/focus-filter.md): The Focus Filter is the switch between everything you have and just what matters right now. Pick built-in focus conditions for a list, then turn Focus on whenever the list gets crowded. - [Focus Lists: All, Today, Starred, Scheduled, Done, Inbox](/docs/ios/focus-lists.md): The built-in Focus Lists in 2Do for iPhone and iPad: All, Today, Starred, Scheduled, Done, and the optional Inbox. What each one shows, and how to keep a list out of it. - [Getting Started with 2Do for iPhone and iPad](/docs/ios/getting-started.md): A complete tour of 2Do for iPhone and iPad: every core feature explained briefly, with links to the deep-dive pages. Read this once and you'll know what 2Do can do for you. - [Share Lists over iCloud](/docs/ios/icloud-list-sharing.md): Share a 2Do list and collaborate from iPhone or iPad through iCloud. Manage invitations, editing permissions, personal views, and shared dates. - [iPad Features](/docs/ios/ipad-features.md): What the iPad adds to 2Do: the four-panel shell, the persistent editor pane with Recents and a task overview, Content Width, the fast-scroll rail, hardware keyboard support, and multiple windows. - [Keyboard Shortcuts](/docs/ios/keyboard-shortcuts.md): Hardware keyboard shortcuts for 2Do on iPhone and iPad: capture, navigation, dates, priority, tags, batch editing, the task editor, and view toggles. - [Share Lists over Wi-Fi](/docs/ios/list-sharing.md): Share a 2Do list directly with other people running 2Do on the same local network, with no cloud service or account. One device publishes a list; others discover it, subscribe, and edit it with changes syncing both ways. - [Lists and List Groups](/docs/ios/lists-and-list-groups.md): Lists, list groups, and the Focus Lists at the top of the panel in 2Do for iPhone and iPad: creating, coloring, grouping, excluding, hiding, archiving, and sharing. - [The Mini Calendar](/docs/ios/mini-calendar.md): Use the mini calendar on iPhone and iPad to spot busy days, filter tasks to one day or a range of days, and defer a task by dragging it onto a date. - [Multiple Windows](/docs/ios/multiple-windows.md): Open more than one 2Do window on iPad. Each window keeps its own list selection, task selection, search, and panel state, and you can drag tasks from one window into the other. - [Natural Language Input (Type Your Task in Plain Words)](/docs/ios/natural-language-input.md): Type a new task the way you would say it and 2Do for iPhone and iPad fills in the due date, time, repeat, alert, duration, priority, tags, list, and location as you go. - [Nearby and Locations](/docs/ios/nearby-locations.md): Attach a location to a task on iPhone and iPad, browse location-based work on the Nearby page, and let 2Do alert you when you arrive somewhere with tasks waiting. - [Notes, Markdown, and Links](/docs/ios/notes-and-markdown.md): How the notes field works on iPhone and iPad: the formatting toolbar, Markdown styling and preview, inserting date and time stamps, linking to other tasks, and sharing or printing a note. - [Password Protection](/docs/ios/password-protection.md): Protect 2Do on iPhone and iPad with a four-digit passcode, lock individual lists, hide lists from the side panel, and control widget and Apple Watch access. - [Pinch and Touch and Hold](/docs/ios/pinch-zoom-and-tap-hold.md): Two gestures that do most of the work in 2Do for iPhone and iPad: pinch the task list to change how much detail each row shows, and touch and hold a task for its full menu. - [Printing](/docs/ios/printing.md): Print a formatted task list, a single task, or a selection from 2Do on iPhone and iPad, with options for sections, sub-tasks, notes, tags, and font size. - [Projects and Checklists](/docs/ios/projects-and-checklists.md): Projects for goals made of several actions, checklists for items that only matter together, and sub-tasks for the small stuff. How each behaves in 2Do for iPhone and iPad. - [Quick Add](/docs/ios/quick-add.md): Touch and hold the add button to open Quick Add, a floating capture card that files one task after another without ever closing. - [Quick Open](/docs/ios/quick-open.md): Quick Open is a floating search card in 2Do for iPhone and iPad that jumps you straight to any task or list by typing part of its name. - [Repeating Tasks](/docs/ios/repeating-tasks.md): Tasks that recur on iPhone and iPad: the one-tap rules, custom intervals, weekdays and days of the month, end conditions, and repeating from completion instead of the due date. - [Search](/docs/ios/search.md): Find anything on iPhone and iPad: the search bar and its scope, the Search Presets sheet, the Search Dates editor, sound-alike matching, and saving a search as a Smart List. - [Settings](/docs/ios/settings.md): A full reference for 2Do on iPhone and iPad settings, pane by pane: General, Appearance, Tasks, Today & Lists, Calendar Events, Alerts & Badge, Nearby, Sync, Mail to 2Do, Sharing, Security, Backups & Export, and Diagnostics, plus the help links and version details on the main screen. - [Automate with Shortcuts](/docs/ios/shortcuts-actions.md): 2Do for iPhone and iPad ships a full catalogue of native Shortcuts actions. Create, find, update, complete, move, and delete tasks from the Shortcuts app and from Siri, even while 2Do isn't running. - [Siri and Shortcuts](/docs/ios/siri-and-shortcuts.md): Add, find, and complete 2Do tasks by speaking to Siri, and drive 2Do from the Shortcuts app with its native actions or the twodo:// URL scheme. - [Smart Lists, Smart Filters, and Search](/docs/ios/smart-lists.md): Smart Lists are saved Smart Filters. The complete search and filter syntax for iPhone and iPad: the nine keywords, every type token, AND and OR semantics, relative dates, and a library of ready-made queries. - [Stars and Priorities](/docs/ios/stars-and-priorities.md): Stars and Priorities are different on purpose. This page explains what each is for, how they interact with the Today list, the Starred Focus List, and Smart Filters on iPhone and iPad. - [Sync Overview](/docs/ios/sync.md): 2Do for iPhone and iPad syncs your lists and tasks across devices through a service you choose: iCloud, Apple Reminders, Dropbox, Todoist, Toodledo, or CalDAV. This page explains the account model, Merge vs Replace, and links out to every method. - [Sync with Custom CalDAV (Fruux, Yahoo, Nextcloud, and more)](/docs/ios/sync-with-caldav.md): Sync 2Do for iPhone and iPad with any CalDAV-capable server: Fruux, Yahoo, ownCloud, Nextcloud, Synology, Kerio, SabreDAV, and other CalDAV providers. - [Sync with Dropbox](/docs/ios/sync-with-dropbox.md): Dropbox sync carries task properties, picture and audio attachments, List Groups, Tag Groups, and Smart Lists across iPhone, iPad, Mac, and Android. Link-only attachments stay on the device. - [Sync with Fastmail](/docs/ios/sync-with-fastmail.md): Sync 2Do for iPhone and iPad with Fastmail over CalDAV. Create a Fastmail app password, pick Fastmail in the Account Type menu, and your tasks stay in step on every device signed in to the account. - [Sync with iCloud](/docs/ios/sync-with-icloud.md): iCloud is 2Do's recommended sync method on iPhone and iPad. Everything syncs through the iCloud account already signed in on the device, with no separate account or password. - [Sync with iCloud CalDAV](/docs/ios/sync-with-icloud-caldav.md): Sync 2Do for iPhone and iPad with iCloud over CalDAV, using your Apple Account and an app-specific password. Useful when non-Apple devices or other CalDAV apps read the same task lists. - [Sync with Apple Reminders](/docs/ios/sync-with-reminders.md): Apple Reminders is an integrated sync method in 2Do for iPhone and iPad, built on EventKit. Your 2Do tasks show up in the Reminders app while 2Do keeps your projects and sub-tasks intact across your own devices. - [Sync with Todoist](/docs/ios/sync-with-todoist.md): Sync 2Do for iPhone and iPad with your Todoist account. You sign in to Todoist itself, no password is stored by 2Do, and your Todoist projects appear as 2Do lists on every device. - [Sync with Toodledo](/docs/ios/sync-with-toodledo.md): Sync 2Do for iPhone and iPad with Toodledo. Useful if you already use Toodledo's web client, though Actions and attachments stay on the device. - [Tags](/docs/ios/tags.md): Tags add cross-list context to tasks on iPhone and iPad: energy, place, person, status. This page covers tagging, the Tags panel, tag groups, pausing a tag, and tags in search. - [The Task Editor](/docs/ios/task-editor.md): A complete reference for the 2Do task editor on iPhone and iPad: the header, the property panels for dates, alerts, repeat, tags, locations, action and attachments, notes, and moving a task. - [Linking to Other Tasks](/docs/ios/task-links.md): Link related 2Do tasks from their notes on iPhone and iPad. Find tasks as you type, insert their links, and open them from the note or the Open Links menu. - [Task Sections](/docs/ios/task-sections.md): Divide a regular list or your Inbox into named sections on iPhone and iPad. Add, rename, collapse, reorder, move, and duplicate sections, choose a section when you add or move tasks, or let Apple Intelligence create and name them for you. - [The Main Task List](/docs/ios/the-2do-screen.md): An anatomy of the 2Do interface on iPhone and iPad: the lists panel, the task list and its sort bar, the utility panel, the editor, and the gestures that connect them. - [URL Schemes](/docs/ios/url-schemes.md): Use 2Do iOS URL schemes to create tasks, open lists, search, and build iPhone or iPad automations from Shortcuts. - [Widgets](/docs/ios/widgets.md): 2Do's widgets for iPhone and iPad put your tasks on the home screen and lock screen, plus Control Center buttons for capturing a task and opening Today. ### macos - [Actions](/docs/macos/actions.md): Every task in 2Do can carry an Action: a call, message, email, address, URL, or search. The action turns the task itself into something you can do in one click. - [Alarms and Nagging](/docs/macos/alarms-and-nagging.md): Add multiple alerts to a task, use automatic due-date reminders, and choose how 2Do alerts you on the Mac. - [AppleScript Automation](/docs/macos/applescript.md): Use AppleScript to find and update tasks, manage projects and sections, pause tags, and navigate 2Do for Mac. - [Auto-Prioritize with Apple Intelligence](/docs/macos/auto-prioritize.md): Use Apple Intelligence to set priorities for selected tasks on your Mac. Processing stays on your device. - [Backups](/docs/macos/backups.md): 2Do's local backups, restore process, and where the files live. Recover lost data, migrate between Macs, or roll back from a sync issue. - [Calendar Events in Lists](/docs/macos/calendar-integration.md): Show your Apple Calendar events in a day bar above Today and other task lists in 2Do for Mac, pick where and which calendars appear, and add a task to your calendar to set time aside for it. - [Dates and Durations (Start, Due, and Duration)](/docs/macos/dates-and-durations.md): How 2Do for Mac interprets a task's Start Date, Due Date, and Duration: alone, combined, and with recurrence, with examples for tasks at home, at work, and at school. - [Mail to 2Do](/docs/macos/email-to-2do.md): Turn email into tasks with a private Mail to 2Do address for each Mac, with encrypted delivery, automatic cleanup, and no separate mailbox or account. - [Focus Filter](/docs/macos/focus-filter.md): The Focus Filter is the magic switch between everything you have and just what matters right now. Pick the built-in focus conditions that matter for a list, then toggle Focus on whenever you need a narrower view. - [Focus Lists (All, Today, Starred, Scheduled, Done)](/docs/macos/focus-lists.md): The built-in Focus Lists in 2Do for Mac (All, Today, Starred, Scheduled, Done) plus the optional Inbox. How each is built, what controls its membership, and how to tune the lists you see in each. - [Getting Started with 2Do for Mac](/docs/macos/getting-started.md): A complete tour of 2Do for Mac: every core feature explained briefly, with screenshots and links to the deep-dive pages. Read this once and you'll know what 2Do can do for you. - [Share Lists over iCloud](/docs/macos/icloud-list-sharing.md): Share a 2Do list over iCloud to collaborate on Mac, iPhone, and iPad. Manage invitations, permissions, personal views, and shared deadlines across time zones. - [Importing and Exporting](/docs/macos/import-and-export.md): Bring tasks into 2Do for Mac from Things, OmniFocus, and calendar files, and export your lists as .ics calendar files or .csv spreadsheets. - [Keyboard Shortcuts](/docs/macos/keyboard-shortcuts.md): The keyboard-shortcut reference for 2Do's own commands on Mac: capture, navigation, editing, dates, priority, view, sync, print, and standard edit. Standard macOS items are not repeated here. - [Share Lists over Wi-Fi](/docs/macos/list-sharing.md): Share a 2Do list directly with other people running 2Do on the same local network: no cloud service or account required. One Mac publishes a list; others discover, subscribe, and edit it with changes syncing both ways. - [Lists and List Groups](/docs/macos/lists-and-list-groups.md): Use lists and list groups to organize tasks by area of responsibility, project, or any system you prefer. Color-code them, hide them from Focus Lists, lock them, and drag them around freely. - [Claude Desktop MCP Extension](/docs/macos/mcp.md): Connect 2Do for Mac to Claude Desktop to find and update tasks, plan projects, and organize tasks into sections. - [Mini Calendar / Calendar Control](/docs/macos/mini-calendar.md): Use the Mini Calendar in 2Do for Mac to spot busy days, filter tasks by date, defer tasks by dragging, and create date-based tasks quickly. - [Multi-Task Actions](/docs/macos/multi-task-actions.md): Select many tasks, then copy, share, delete, schedule, tag, move, or defer them with drag-and-drop, menus, and shortcuts. - [Multiple Windows](/docs/macos/multiple-windows.md): Open more than one 2Do window on the Mac. Each window keeps its own list selection, task selection, search, scope, panel layout, and scroll position, and reopens the way you left it. - [Natural Language Input (Type Your Task in Plain Words)](/docs/macos/natural-language-input.md): Type a new task the way you would say it and 2Do fills in the due date, time, repeat, alert, duration, priority, tags, list, and location as you go. - [Nearby and Locations](/docs/macos/nearby-locations.md): Attach a location to a task, show location-based work in the Nearby panel, and sync locations to your other 2Do devices. - [Notes, Markdown, and Links](/docs/macos/notes-and-markdown.md): How the 2Do notes field on Mac handles Markdown styling and preview, inserting date and time stamps, linking to other tasks, and discovering links. - [Password Protection](/docs/macos/password-protection.md): Lock individual lists or the whole 2Do app behind a password. Configure auto-lock and reset behavior. - [Projects and Checklists](/docs/macos/projects-and-checklists.md): Use a project when each step needs its own dates and alerts, and a checklist when steps share one schedule. This page explains sub-tasks, how to add them, and how converting between types works. - [Quick Entry](/docs/macos/quick-entry.md): Quick Entry is the system-wide capture window for 2Do on Mac. Press a global hotkey from anywhere and a focused editor appears, ready for a new task. - [Quick Open](/docs/macos/quick-open.md): Quick Open is a Spotlight-style overlay in 2Do for Mac that jumps you straight to any task or list by typing part of its name: no scrolling, no scoping. - [Repeating Tasks](/docs/macos/repeating-tasks.md): Tasks that recur: daily, weekly, monthly, yearly, or any custom rule with intervals, weekdays, end conditions, and after-completion behavior. - [Search and Jump Bars](/docs/macos/search-and-jump-bars.md): 2Do for Mac has five distinct find surfaces: the Global Search Bar, the Task Find Bar, the List Jump Bar, the Tag Search Bar, and Quick Open. Each is built for a specific kind of "find me this" moment. - [Settings](/docs/macos/settings.md): A complete reference to 2Do for Mac settings: General, Appearance, Tasks, Today & Lists, Calendar, Alerts, Mail to 2Do, Sync, Security, Backups, Updates, and Diagnostics. - [Automate with Shortcuts](/docs/macos/shortcuts-actions.md): 2Do for Mac ships a full catalogue of native Shortcuts actions. Create, find, update, complete, move, and delete tasks from the Shortcuts app and Siri, even while 2Do isn't running. - [Siri and Shortcuts](/docs/macos/siri-and-shortcuts.md): Capture tasks by voice with Siri and build automations with the macOS Shortcuts app using 2Do's native actions, or the twodo:// URL scheme for callback-style flows. - [Smart Lists, Smart Filters, and Search](/docs/macos/smart-lists.md): Smart Lists are saved Smart Filters. This page covers the complete search and filter syntax (keywords, type presets, tag and location syntax, dynamic dates, soundex, full-text wildcards, and dozens of worked examples) and how to save any filter as a Smart List. - [Stars and Priorities](/docs/macos/stars-and-priorities.md): Stars and Priorities are different on purpose. This page explains exactly what each one is for, how they interact with the Today list, the Starred Focus List, and Smart Filters. - [Sync Overview](/docs/macos/sync.md): 2Do for Mac syncs your lists and tasks across devices through a service you choose: iCloud, Apple Reminders, Dropbox, Todoist, Toodledo, iCloud CalDAV, custom CalDAV, or WebDAV (coming soon). This page explains the account model, Merge vs Replace, and links out to every method. - [Sync with Custom CalDAV (Fruux, Yahoo!, ownCloud, etc.)](/docs/macos/sync-with-caldav.md): Sync 2Do for Mac with any CalDAV-capable server: Fruux, Yahoo!, ownCloud, Nextcloud, Synology, Kerio, Oracle, SabreDAV, and other 3rd-party CalDAV providers. - [Sync with Dropbox](/docs/macos/sync-with-dropbox.md): Dropbox sync carries task properties, attachments, List Groups, Tag Groups, Smart Lists, and Search Presets across iPhone, iPad, Mac, and Android. Manual order in the Focus Lists syncs only with iCloud. - [Sync with Fastmail](/docs/macos/sync-with-fastmail.md): Sync 2Do for Mac with Fastmail over CalDAV. Generate a Fastmail app password, choose the Fastmail account type, and your tasks stay in step on every device signed in to the account. - [Sync with iCloud](/docs/macos/sync-with-icloud.md): iCloud is 2Do's recommended sync method on the Mac. Everything syncs through the iCloud account already signed in on the Mac, with no separate account or password. - [Sync with iCloud CalDAV](/docs/macos/sync-with-icloud-caldav.md): Sync 2Do for Mac with iCloud over CalDAV, using your Apple Account and an app-specific password. Useful when non-Apple devices or other CalDAV apps read the same task lists. - [Sync with Apple Reminders](/docs/macos/sync-with-reminders.md): Apple Reminders is an integrated sync method in 2Do for Mac, built on native EventKit. Your 2Do tasks show up in the Reminders app while projects and sub-tasks stay intact across your own 2Do devices. - [Sync with Todoist](/docs/macos/sync-with-todoist.md): Sync 2Do for Mac with your Todoist account. Connect securely with OAuth in your browser (no password stored) and your Todoist projects appear as 2Do lists across all your devices. - [Sync with Toodledo](/docs/macos/sync-with-toodledo.md): Sync 2Do for Mac with Toodledo. Useful if you already use Toodledo's web client, but not every 2Do feature is supported. - [Sync with WebDAV](/docs/macos/sync-with-webdav.md): Sync 2Do for Mac to your own or any WebDAV server: every task property, including your picture and audio note attachments, stored as files you control. Works with Nextcloud, ownCloud, and any WebDAV-capable host. - [macOS Focus Filters (Do Not Disturb)](/docs/macos/system-focus-filters.md): Add 2Do to a macOS system Focus so its custom alarm cards are hidden and silenced while that Focus is active, then revealed when the Focus ends. - [Tags](/docs/macos/tags.md): Tags add cross-list context to tasks: energy, place, person, status. This page covers tag basics, tag groups, pausing a tag, and filtering. - [The Task Editor](/docs/macos/task-editor.md): A complete reference for the 2Do task editor on Mac: title, notes, dates, priority, tags, alerts, recurrence, location, action, attachment, and how each field behaves. - [Linking to Other Tasks](/docs/macos/task-links.md): Cross-link 2Do tasks from inside a note. Type @{Task Title} to drop a live link to any other task. Click it to jump straight there, and because links resolve by title they work across all your devices. - [Task Sections](/docs/macos/task-sections.md): Divide a regular list or your Inbox into named sections on your Mac. Add, rename, collapse, reorder, move, copy, and duplicate sections, or let Apple Intelligence create and name them for you. - [The 2Do Window](/docs/macos/the-2do-window.md): An anatomy of the main 2Do window on macOS: the Lists Panel, Task List, Utility Panel, toolbar, and Sort Bar. - [URL Schemes](/docs/macos/url-schemes.md): Use 2Do for Mac's twodo:// URL scheme to create tasks, open lists, search, and build automation workflows from Shortcuts or other apps. - [Widgets](/docs/macos/widgets.md): 2Do's Mac widgets put your lists, today's tasks, upcoming work, and tomorrow's plans on the desktop and in Notification Center. ### subscribe Subscribe to 2Do product news and updates. - [Subscribe to Updates](/docs/subscribe.md): Subscribe to 2Do product news and updates. --- # Full Documentation Content # About 2Do The busy bees 🐝 at Beehive craft focused, bee-utiful productivity apps. 2Do is a personal task manager for macOS, iPhone, iPad and Android — designed and built by Fahad Gilani, who started it as a single-screen iPhone app back in 2009 and has been refining it by hand ever since. What it does has grown a lot over the years; the idea behind it hasn't really changed. Powerful when you need it, out of the way when you don't. Beehive is a bootstrapped, independent studio. No committees, no investors, no growth-at-all-costs targets pushing things in odd directions — just careful, long-running work on a small set of apps for the people who rely on them every day. Beehive also develops the award-winning [Busy Apps](https://www.busymac.com/) — BusyCal and BusyContacts — for macOS and iOS. 2Do and [BusyCal](https://www.busymac.com/busycal/) address different parts of your day in different ways, but they share a common belief: productivity software should feel powerful and simple at the same time. All three have been honoured by the press and featured by Apple over the years. ![2Do app icon](/img/2do/icon_512.png) An indie project, since 2009 ![MacStories logo](/img/logos/macstories.svg) MacStories App of the Year · 2015 ## Recognized By the People Who Review Apps for a Living In 2015, MacStories named 2Do its *App of the Year* — a serious, well-built task manager that handles complex projects without getting in the way of a quick grocery list. Apple has featured 2Do many times since, most recently in *Apps We Love*. Recognition is one measure. The other is the writers, students, founders, parents and professionals who have trusted 2Do to organise their work and lives for more than fifteen years. [Read the MacStories write-up](https://www.macstories.net/stories/why-2do-is-my-new-favorite-ios-task-manager/). Independent software, shaped over more than fifteen years by the ideas, feedback and quiet patience of the people who use it every day — and still going. Beehive Innovations FZE holds exclusive worldwide rights to Busy Apps, BusyMac, "Busy Mac" and 2Do. --- ![](/img/2do/icon_128.png) # 2Do Android Handling Tasks, [Bee-utifully](/about.md) 🐝 on AndroidSince 2 0 2 1 6 5 4 3 2 1 9 8 7 0 The Task Manager That Knows What's Next 🔮 ![2Do for Android screenshot](https://downloads.2doapp.com/resources/img/2do-android/hero.png) [Free on Google Play](https://play.google.com/store/apps/details?id=com.guidedways.android2do\&hl=en)[![](https://downloads.2doapp.com/resources/img/icons/download.svg)Direct Download](/android/download.md) Requires Android 7.0 or later. Free on Google Play or [**directly from our website**](/android/download.md), with an optional Pro upgrade. ★★ ★★ ★★ ★★ ★★ [Loved ♥ on Google Play](https://play.google.com/store/apps/details?id=com.guidedways.android2do\&hl=en) ## For work, study, and everyday life ![University of Michigan](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/umich.svg "University of Michigan") ![UCLA](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/ucla.svg "UCLA") ![Cisco](https://downloads.2doapp.com/resources/img/company_logos/bcl/cisco.svg "Cisco") ![Meta](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/facebook.svg "Meta") ![Amazon](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/amazon.svg "Amazon") ![UC Berkeley](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/berkeley.svg "UC Berkeley") ![Stanford University](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/stanford.svg "Stanford University") ![University of Washington](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/uw_edu.svg "University of Washington") ![Apple](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/apple.svg "Apple") ![Automattic](/img/company_logos/2do/automattic.svg "Automattic") ![Zoho](/img/company_logos/2do/zoho.svg "Zoho") ![Ford](/img/company_logos/2do/ford.svg "Ford") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/umich.svg "University of Michigan") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/ucla.svg "UCLA") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl/cisco.svg "Cisco") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/facebook.svg "Meta") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/amazon.svg "Amazon") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/berkeley.svg "UC Berkeley") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/stanford.svg "Stanford University") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/uw_edu.svg "University of Washington") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/apple.svg "Apple") ![](/img/company_logos/2do/automattic.svg "Automattic") ![](/img/company_logos/2do/zoho.svg "Zoho") ![](/img/company_logos/2do/ford.svg "Ford") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/umich.svg "University of Michigan") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/ucla.svg "UCLA") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl/cisco.svg "Cisco") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/facebook.svg "Meta") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/amazon.svg "Amazon") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/berkeley.svg "UC Berkeley") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/stanford.svg "Stanford University") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/uw_edu.svg "University of Washington") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/apple.svg "Apple") ![](/img/company_logos/2do/automattic.svg "Automattic") ![](/img/company_logos/2do/zoho.svg "Zoho") ![](/img/company_logos/2do/ford.svg "Ford") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/umich.svg "University of Michigan") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/ucla.svg "UCLA") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl/cisco.svg "Cisco") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/facebook.svg "Meta") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/amazon.svg "Amazon") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/berkeley.svg "UC Berkeley") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/stanford.svg "Stanford University") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/uw_edu.svg "University of Washington") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/apple.svg "Apple") ![](/img/company_logos/2do/automattic.svg "Automattic") ![](/img/company_logos/2do/zoho.svg "Zoho") ![](/img/company_logos/2do/ford.svg "Ford") The most powerful personal task manager ## Tasks. Tamed. 2Do was designed to meet your need for speed. Capture a passing thought, turn it into a project when it deserves structure, and keep the details close — notes, tags, dates, alerts, and checklists, all one tap away. 2Do has been refined over years of careful work, with thoughtful feedback from students, parents, professionals, and lifelong list-keepers along the way. Every detail — from the way Quick Add behaves to the smallest gesture in the editor — has been considered, weighed, and earned its place. From a quick grocery list to a full-blown GTD® workflow, 2Do flexes to fit. Everything you need, nothing in your way 🐝 [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/slidingpanels.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/slidingpanels_poster.png) Be Quick ## Capture before it slips away Hold down the multi-purpose + button and Quick Add gives you a focused capture field, a destination list selector, and fast date shortcuts for Today, Tomorrow, the day after, or no date. Outside the app, use the launcher shortcut, Android share sheet, selected-text action, or 2Do Quick Add tile in Quick Settings. Sticky Alert can also keep today's tasks visible in the notification area. [Learn More →](/docs/android/getting-started.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/quickadd.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/quickadd_poster.png) Be Versatile ## Projects, Checklists & Project View Take control of your complicated life with a combination of tasks, projects, and checklists. Project View zooms straight into the work inside a single plan; color-coded lists and groups keep everything else calm and orderly. [Learn More →](/docs/android/getting-started.md) ![2Do Project View on Android](https://downloads.2doapp.com/resources/img/2do-android/projectview.png) Be Organized ## Tags, Focus Filters & Smart Lists Tap any tag in the panel to instantly filter the task list to just that context — work, errands, @phone, whatever fits the moment. Tap a second tag to combine. Tap once more to clear. The right slice of your day, one tap away. Group your tags into contexts that mirror how you actually think. Smart Lists turn your most-used filters into reusable views — overdue, this-week, errands nearby, or anything you can describe. [Learn More →](/docs/android/getting-started.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/filteringtags.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/filteringtags_poster.png) Be Calm ## Pause a tag — put tasks to sleep Some tasks belong in your system but not in your face — the home renovation, the someday reading list, the side project you’ll come back to next quarter. Pause the tag that holds them and every carrying task disappears from view. All. Today. Search. Quietly hidden, not deleted. Unpause when you’re ready, and the whole context returns exactly as you left it. It’s the calmest way to keep an honest task list without drowning in everything you might one day do. [Learn More →](/docs/android/tags.md) ![2Do pausing a tag on Android](https://downloads.2doapp.com/resources/img/2do-android/pausetag.png) Be Focused ## The Focus Filter — your magic switch One tap toggles between everything you have and just-what-matters-right-now. The Focus Filter is the lens 2Do quietly built around — sculpt a rule once (high-priority work due this week, tagged @phone, in your Home list), and from then on a single button switches your view to that perspective and back. Each list remembers its own focus. Your work list and your errands list don’t need to share the same idea of “important.” And because it’s the same rule engine that powers Smart Lists and Search, anything you can describe, you can focus on. [Learn More →](/docs/android/focus-filter.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/changingfocusmode.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/changingfocusmode_poster.png) Find the Needle ## Search like you’ve never experienced From dynamic date-range searches to full-text soundex matching, 2Do does search differently. Misspell a name? It still finds it. Describe a window of time? It still scopes it. [Learn More →](/docs/android/getting-started.md) ![2Do Search Presets on iPhone](https://downloads.2doapp.com/resources/img/2do-ios/searchpresets.png) Move Together ## Batch Editing — many tasks, one move Select several tasks to reschedule, tag, move, star, or delete them together. Drag the selection onto another list to move them there. Batch editing works in regular lists, Smart Lists, Today, and search results, so you can make the same change to tasks from several lists. [Learn More →](/docs/android/batch-editing.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/batchmove.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/batchmove_poster.png) Always In Reach ## Widgets & Sticky Alert Pin a list, Focus List, Smart List, or a counter directly to your home screen. The transparent Task List widget blends into your wallpaper while still keeping the day's work one glance away. Prefer a notification? Turn on **Sticky Alert** and 2Do keeps today's tasks visible in the notification drawer — capture and review without ever opening the app. [Learn More →](/docs/android/widgets.md) ![2Do home-screen widgets on Android](https://downloads.2doapp.com/resources/img/2do-android/widgets.png) Today, At a Glance ## The Sticky Alert The Sticky Alert is an ongoing notification that keeps today's tasks pinned in the notification drawer. Glance at it from the lock screen, your wrist, or any app — without losing your place. Pair it with the 2Do Quick Add tile in Quick Settings and you have a complete capture-and-review loop without leaving the system shade. [Learn More →](/docs/android/notifications.md#settings) ![2Do Sticky Alert ongoing notification on Android](https://downloads.2doapp.com/resources/img/2do-android/ongoingnotif.png) Private, Recoverable, Portable ## Sync, Backups & Protection Sync through [iCloud](/docs/android/sync-with-icloud-native.md), Dropbox, Toodledo, or a CalDAV service. Lock private lists and keep automatic backups. You choose where your tasks are stored and which devices share them. [Learn More →](/privacy.md) Recommended Sync ## iCloud Sync Keep your tasks and their details in sync with 2Do on iPhone, iPad, and Mac. [Learn More →](/docs/android/sync-with-icloud-native.md) Plan Around Your Day ## Calendar Events See appointments above your tasks and add tasks to your calendar. Part of 2Do Pro. [Learn More →](/docs/android/calendar-integration.md) Type the Details ## Natural Language Input Type dates, tags, and other details into a new task’s title and 2Do fills in the fields. [Learn More →](/docs/android/natural-language-input.md) Find It by Name ## Quick Open Tap the list title to find a task or list, or return to one you used recently. [Learn More →](/docs/android/quick-open.md) Be Versatile ## Projects Tasks, projects, and checklists working together — for the complicated life you actually live. Don’t Miss It ## Notifications Create multiple alerts for a single task, with sound or text. Persistent enough for the things that truly matter. Find the Needle ## Search From dynamic date-range searches to full-text soundex matching — search like you’ve never experienced. Context Everywhere ## Tag Groups Group related tags so a sprawling library stays tidy. Switch contexts without rebuilding your lists. Saved Perspectives ## Smart Lists Build powerful perspectives of your tasks. Save the time you’d otherwise spend hunting them down. Less Clutter ## Smart Scheduling Tasks not due to start yet stay quietly hidden until it’s their time. Result: a clutter-free workspace. Be Private ## Protection Protect private lists and decide whether their tasks can appear in widgets or notifications. Next Step ## Actions Tap-through URLs, addresses, calls, and SMS attached straight to the task that needs them. Repeat Reliably ## Repeating Tasks Recurring rules with start dates, end dates, iterations, and the flexibility real life demands. Move Together ## Batch Scheduling Schedule, move, or defer several tasks at once. Save the edits for the work itself. Safety Net ## Backups Frequent automatic backups, on-demand snapshots, and a recovery path that just works. Android Capture ## Quick Settings & Sticky Alert Open Quick Add from Android Quick Settings, and keep Today visible in the notification area with Sticky Alert. Tablet Flow ## Sliding Panels Phones stay focused; tablets open up. Slide between lists, tasks, side context, and the editor as the screen allows. Encrypted in Transit ## Secure Sync Synced data is encrypted on the wire — your tasks travel between devices, not into someone else’s hands. ## And Then There's More... [So Much More.](/docs/android/getting-started.md) ## Your Data, Your Rules Your tasks are stored on your devices. If you choose to sync, 2Do uses the service you select. Read our [privacy policy](/privacy.md) to learn more. ## The Word on the Street ### I love this app! I love this app! You can add URLs, phone numbers, etc that will open when you tap them. You can set up filters for most anything. Reminders work perfectly. Create lists, projects, checklists, single tasks, start date, due date, custom repeat, etc. Add tags. I can't think of anything this app is missing. I use it every day. [Google Play](https://play.google.com/store/apps/details?hl=en_US\&id=com.guidedways.android2do#christine-barker) ### THE BEST organizational todo list app I promise you this is THE BEST organizational todo list app out there! Believe me I have tried them all I should be an expert at this point lol I am all about organization and my todo list and this app has been a life saver, since I can remember! [Google Play](https://play.google.com/store/apps/details?hl=en_US\&id=com.guidedways.android2do#lesley) ### Easy to use & effective way to organize tasks Easy to use & effective way to organize tasks. I make different categories - work, home, school - then pop in tasks or lists. Easy to add things on the go. Love the reminder and due date features. [Google Play](https://play.google.com/store/apps/details?hl=en_US\&id=com.guidedways.android2do#donna-farren) --- # Download 2Do for Android This is the same app you get from Google Play, signed by us with the same certificate. We also publish it here so you can get fixes as soon as they are ready, without waiting for Google Play to finish its review. Open this page on the Android phone or tablet where you want 2Do, by going to **www\.2doapp.com/android/download** in its browser. [Download 2Do](https://www.2doapp.com/download/2Do-Android.apk) Free APK file. Requires Android 7.0 or later. For most people, Google Play is the easiest way to install 2Do and keep it up to date. [Get 2Do on Google Play](https://play.google.com/store/apps/details?id=com.guidedways.android2do\&hl=en) ## Install the app These steps are for Android 8 and later. The wording on your phone may differ a little. 1. Download the file On your Android phone or tablet, tap **Download 2Do** above. If the browser warns that the file could harm your device, choose to keep it. 2. Open it When the download finishes, open it from the notification or from your browser’s downloads. 3. Allow your browser to install apps The first time you install an app from a browser, Android asks for permission. Tap **Settings**, turn on **Allow from this source**, then go back. Android asks once for each browser. 4. Install 2Do Tap **Install**. If Google Play Protect offers to scan the app, you can let it scan, then continue. Samsung phones Phones that came with One UI 6.1.1 or later have Auto Blocker turned on by default, which stops apps from installing from outside the app stores. Turn it off in **Settings** > **Security and privacy** > **Auto Blocker**, install 2Do, then turn it back on if you like. To update later, download the new version from this page and install it the same way. Your tasks and settings stay as they are. ## If you already have 2Do from Google Play You can install this download over the app you have. Your tasks and settings stay as they are. * On Android 14 and later, your phone may say that 2Do usually gets updates from Google Play Store. Tap **Update anyway**. * After that, Google Play may ask you to confirm its next update of 2Do instead of installing it on its own. * Android won’t install an older version over a newer one. If your phone already has a newer version, keep using it. ## Buying Pro You buy Pro inside the app through Google Play, as before. If you already have Pro, it keeps working. Google Play can take a week or more to review a new version, and until this version is on Google Play, buying Pro may not be available in it. --- # 2Do Comparison Guides These guides compare 2Do with Things 3, OmniFocus, Todoist, Apple Reminders, TickTick, and GoodTask. Each guide explains the features and trade-offs, including where the other app may suit you better. Links to official product pages let you check the details. You can also use some of these apps together, since 2Do syncs directly with Apple Reminders and Todoist. The comparisons include [Task Sections](/docs/macos/task-sections.md) on Mac, iPhone, and iPad, which let you divide regular lists and the Inbox into named groups of tasks. They also cover 2Do’s [Apple Intelligence commands for creating and naming sections](/docs/macos/task-sections.md#apple-intelligence), with the device requirements and relevant features in the other apps. The guides also compare [iCloud list sharing](/docs/macos/icloud-list-sharing.md) with each app's collaboration options. In 2Do, invited people share task content while keeping personal views on supported Macs, iPhones, and iPads. 2Do does not include task assignees, @mentions, or comment threads. Last reviewed: October 17, 2026. ## Task Manager Comparisons[​](#task-manager-comparisons "Direct link to Task Manager Comparisons") * [2Do vs Things 3](/compare/things-3.md) * [2Do vs OmniFocus](/compare/omnifocus.md) * [2Do vs Todoist](/compare/todoist.md) * [2Do vs Apple Reminders](/compare/apple-reminders.md) * [2Do vs TickTick](/compare/ticktick.md) * [2Do vs GoodTask](/compare/goodtask.md) ## Official Product Links[​](#official-product-links "Direct link to Official Product Links") * [Things 3](https://culturedcode.com/things/) * [OmniFocus](https://www.omnigroup.com/omnifocus) * [Todoist](https://todoist.com/) * [Apple Reminders](https://apps.apple.com/app/reminders/id1108187841) * [TickTick](https://ticktick.com/) * [GoodTask](https://goodtask.io/) * [2Do](https://www.2doapp.com/index.md) ## 2Do Resources[​](#2do-resources "Direct link to 2Do Resources") * [2Do for Mac](/index.md) * [2Do for iPhone](/ios.md) * [2Do for iPad](/ipad.md) * [2Do for Android](/android.md) * [2Do documentation](/docs/macos/getting-started.md) * Task Sections guides: [Mac](/docs/macos/task-sections.md) and [iPhone and iPad](/docs/ios/task-sections.md) * iCloud list sharing: [Mac](/docs/macos/icloud-list-sharing.md) and [iPhone and iPad](/docs/ios/icloud-list-sharing.md) --- # 2Do vs Apple Reminders **2Do syncs two-way with Apple Reminders**, so you can use both apps. Reminders is free and works with Siri, Apple Watch, CarPlay, and HomePod. 2Do adds more options for organizing tasks, scheduling work, and setting alarms. Connect them to manage tasks from your synced Reminders lists in either app. Last reviewed: October 17, 2026. ## At a Glance[​](#at-a-glance "Direct link to At a Glance") | Criteria | 2Do | Apple Reminders | | ------------- | ------------------------------------------------------------------------------------ | ------------------------------------------------ | | Primary model | Flexible lists, projects, and checklists, stored locally and synced where you choose | The built-in reminders app | | Best fit | Power users who want depth, scheduling, and data control | Casual capture and shared household lists | | Strength | Feature depth, alarms, search, and sync choice | Free, with Siri and support across Apple devices | | Trade-off | Costs money | Limited scheduling and no structured export | You can have both Connect 2Do to Reminders (**Settings > Sync > Setup → Reminders**) to sync tasks between the apps. For example, ask Siri on your Apple Watch, in your car, or on a HomePod to remind you to pick up a cake. The task can then sync to 2Do, where you can organize it further. Some 2Do details do not sync through Reminders; see [Sync with Apple Reminders](/docs/macos/sync-with-reminders.md). ## Collaboration and List Sharing[​](#sharing-with-other-people "Direct link to Collaboration and List Sharing") 2Do lets you collaborate by [sharing a list through iCloud](/docs/macos/icloud-list-sharing.md) with other 2Do users on macOS 14, iOS 18, or iPadOS 18 or later, using a version with sharing support. The owner chooses editing or view-only access. Task content, sections, and manual order are shared; list names, colors, list sort, Focus filters, and alert choices remain personal. See the [iPhone and iPad guide](/docs/ios/icloud-list-sharing.md) for those steps. Apple Reminders also supports [shared iCloud lists and task assignment](https://support.apple.com/en-ca/guide/iphone/iph2a8f9121e/27/ios/27). 2Do's own iCloud shared lists are separate from Reminders, with editing or view-only access. They do not appear in the Reminders app; use 2Do's ordinary Reminders sync when that is where you want to keep your tasks. 2Do tasks use floating local time by default. For a shared deadline that must mean the same moment in different places, use [Fixed Time Zone](/docs/macos/dates-and-durations.md#fixed-time). ## Task Sections and Apple Intelligence[​](#task-sections-and-apple-intelligence "Direct link to Task Sections and Apple Intelligence") On Mac, iPhone, and iPad, divide a regular list or the Inbox into [named sections](/docs/macos/task-sections.md), such as Bookings and Packing in a trip list. Arrange sections in the order you want; tasks within each section follow the list's sort. **Auto-Create Sections** uses Apple Intelligence to organize selected unfinished tasks or all unfinished, unsectioned tasks in a list. It reuses suitable existing sections and creates new ones where needed. **Auto-Name Section** names an existing section from its task titles. Both commands run on your device; organizing tasks also considers existing section names. They require a supported Mac, iPhone, or iPad running macOS 26, iOS 26, or iPadOS 26 or later, with Apple Intelligence enabled. See [sections and Apple Intelligence](/docs/macos/task-sections.md#apple-intelligence). 2Do also uses Apple Intelligence to set priorities for selected tasks with **Auto-Prioritize**, available on [Mac](/docs/macos/auto-prioritize.md) and [iPhone and iPad](/docs/ios/auto-prioritize.md) under the same device and OS requirements. Apple Reminders also uses Apple Intelligence to group related tasks into sections with [Auto-Categorize](https://support.apple.com/en-ie/guide/ipad/ipadaeb26d92/ipados). In 2Do, you can organize a task selection or the list's unsectioned tasks, and name an existing section separately. Sections do not sync between 2Do and Reminders, even though both apps support them. ## Task Management & Sync Comparison[​](#task-management--sync-comparison "Direct link to Task Management & Sync Comparison") | Capability | 2Do | Apple Reminders | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | ----------------------------------------- | | [Projects with dates and tags for each sub-task](/docs/macos/projects-and-checklists.md) | **✓** | **✓** *(one level)* | | [Checklists](/docs/macos/projects-and-checklists.md#checklists) | **✓** | **✓** | | [Sub-tasks on any plain task](/docs/macos/projects-and-checklists.md) | *converts to a project* | **✓** | | [Named sections that divide a list](/docs/macos/task-sections.md) | **✓** *(Mac, iPhone and iPad; regular lists and the Inbox)* | **✓** | | [Sort a list's tasks into new sections with Apple Intelligence](/docs/macos/task-sections.md#auto-create) | **✓** *(Auto-Create Sections on Mac, iPhone and iPad)* | **✓** *(Auto-Categorize)* | | Column (board) view of a list's sections | | **✓** | | [Natural Language Input: type dates, times, repeats, alarms, tags, lists, and priority into a new task's title](/docs/macos/natural-language-input.md#what-you-can-type) | **✓** *(Mac, iPhone and iPad)* | **✓** *(dates, times and tags)* | | Capture by voice with Siri: iPhone, Watch, CarPlay, HomePod | **✓** *(Mac, iPhone and iPad directly; Watch, CarPlay and HomePod via Reminders sync)* | **✓** | | [Siri AI on iOS 27 and macOS 27: create and edit tasks by talking in your own words](/docs/macos/siri-and-shortcuts.md#new-siri) | **✓** | **✓** | | [Tasks show up in Spotlight search and open in the app](/docs/macos/shortcuts-actions.md#spotlight) | **✓** *(Mac, iPhone and iPad)* | **✓** | | [Tags](/docs/macos/tags.md) | **✓** | **✓** | | [Tag groups and pausable tags](/docs/macos/tags.md#tag-groups) | **✓** | | | [Saved Smart Lists with a full search syntax](/docs/macos/smart-lists.md) | **✓** | **✓** *(filter-based)* | | [Typo-tolerant Soundex search, plus exact wildcard matching](/docs/macos/smart-lists.md#modes) | **✓** | | | [A dozen sort options, remembered separately for each list](/docs/macos/the-2do-window.md#sort-bar) | **✓** | *basic* | | [Combine tag filters with AND / OR / NOT](/docs/macos/tags.md) | **✓** | *any / all only* | | [One-click Focus Filter per list](/docs/macos/focus-filter.md) | **✓** | *via Smart Lists* | | [Filter by List Group, on its own or with a search](/docs/macos/lists-and-list-groups.md#list-groups) | **✓** | *via Smart Lists* | | [Exclude any list from All, Today, or Done](/docs/macos/lists-and-list-groups.md#exclude-from-focus) | **✓** | *via Smart Lists* | | [Hide any list from the sidebar, even built-in ones](/docs/macos/password-protection.md#hide-unwanted) | **✓** | *built-in smart lists only* | | [Jump Bars: find tasks, lists, and tags as you type](/docs/macos/search-and-jump-bars.md) | **✓** | *via search* | | [Preview a task with Spacebar and run its action from Quick Look](/docs/macos/task-editor.md#quick-look) | **✓** | *via details popover* | | [Press `P` to perform a task's action or `U` to open every link in its notes](/docs/macos/keyboard-shortcuts.md#action) | **✓** | | | [Quick Open: jump to any task or list from anywhere](/docs/macos/quick-open.md) | **✓** | *via search* | | [Section heat bars for navigation and task counts in sort groups](/docs/macos/the-2do-window.md#heat-bars) | **✓** | | | [Stars in addition to priorities](/docs/macos/stars-and-priorities.md) | **✓** | **✓** *(flags)* | | [Point at a task to set its priority or star without opening the editor](/docs/macos/stars-and-priorities.md#hover-priority) | **✓** | *flag via keyboard shortcut* | | [Set dates, alarms, or recurrence with numbered presets (Option + digit)](/docs/macos/keyboard-shortcuts.md#picker-presets) | **✓** | *via date shortcuts* | | [Single-key commands: defer, schedule, star, tag, move, and prioritise without modifiers](/docs/macos/multi-task-actions.md#shortcuts) | **✓** | *basic* | | [Jump to any editor field from the keyboard (dates, alerts, tags, action, recurrence, list)](/docs/macos/keyboard-shortcuts.md#editing) | **✓** | *basic* | | [Start dates and times in addition to due dates](/docs/macos/dates-and-durations.md) | **✓** | *early reminders instead* | | [Task durations (time estimates that show when to begin before a deadline)](/docs/macos/dates-and-durations.md#duration-due) | **✓** | | | [Repeat from due date or from completion](/docs/macos/repeating-tasks.md#repeat-from) | **✓** | *from schedule only* | | [Custom repeat rules: every N days/weeks/months/years, chosen weekdays, the 15th, the last day, the second Tuesday](/docs/macos/repeating-tasks.md#custom) | **✓** | **✓** | | [Recurrence end conditions: stop after N occurrences or on a date](/docs/macos/repeating-tasks.md#custom) | **✓** | *end date only* | | [Repeating tasks keep the same start and due times and the interval between them](/docs/macos/repeating-tasks.md#completion) | **✓** | | | [Repeating projects and checklists reset their sub-tasks each cycle](/docs/macos/repeating-tasks.md#completion) | **✓** | *basic* | | [Edit one occurrence or all future ones](/docs/macos/repeating-tasks.md#editing) | **✓** | *basic* | | [Smart Scheduling: hide tasks until their start date, with an option to show them at any time](/docs/macos/focus-lists.md#smart-scheduling) | **✓** | *via Today and Scheduled* | | [Multiple alarms per task](/docs/macos/alarms-and-nagging.md) | **✓** | *one alert plus early and urgent options* | | [Repeating (nagging) alarm sounds until dismissed](/docs/macos/alarms-and-nagging.md#nagging) | **✓** | | | [2Do alarm window with snooze controls and the task's action](/docs/macos/alarms-and-nagging.md#alert-system) | **✓** | *urgent alarm on iOS* | | [Silence alarms one list at a time](/docs/macos/alarms-and-nagging.md#list-alerts) | **✓** | | | [Works with macOS Focus](/docs/macos/system-focus-filters.md) | **✓** | **✓** | | [Assign locations to tasks (Nearby view)](/docs/macos/nearby-locations.md) | **✓** | **✓** | | [Location-based alerts (iPhone / iPad)](/docs/macos/nearby-locations.md) | **✓** | **✓** | | [Task actions: call, message, email, visit, or open a link right from the task](/docs/macos/actions.md) | **✓** | *URL field* | | [Picture and audio attachments](/docs/macos/task-editor.md#attachment) | **✓** | *images only* | | [Markdown notes](/docs/macos/notes-and-markdown.md) | **✓** | *rich text* | | [Link to related tasks by typing their names in notes](/docs/macos/task-links.md) | **✓** | | | [Batch editing: tag, defer, schedule, or re-prioritise many tasks at once](/docs/macos/multi-task-actions.md) | **✓** | **✓** | | [System-wide Quick Entry on Mac](/docs/macos/quick-entry.md) | **✓** | *via Spotlight* | | [Calendar events shown alongside tasks](/docs/macos/calendar-integration.md) | **✓** | *in Apple Calendar* | | [Mini Calendar: filter by day or date range, see busy days as a heat map or dots, and drag tasks to defer them](/docs/macos/mini-calendar.md) | **✓** | *in Apple Calendar* | | [Email tasks to the app](/docs/macos/email-to-2do.md) | **✓** | *via Share Sheet* | | Shared iCloud lists, with reminders assigned to people | | **✓** | | Grocery lists that sort themselves into categories | | **✓** | | List templates | | **✓** | | Built into every Apple device: Watch, CarPlay, HomePod, Vision Pro, iCloud.com | | **✓** | | Free | | **✓** | | [Choose a sync service: Dropbox, iCloud CalDAV, CalDAV, **Reminders**, Todoist, or Toodledo](/docs/macos/sync.md) | **✓** | *via Reminders accounts* | | [Exclude chosen lists from sync](/docs/macos/settings.md#sync-exclusions) | **✓** | **✓** *(On My Mac lists)* | | [Defaults for new tasks (list, GTD Inbox, due date and time, and text from the clipboard)](/docs/macos/settings.md#tasks) | **✓** | *default list only* | | [Automatic reminders for dated tasks, at the deadline or a chosen offset](/docs/macos/settings.md#automatic-alerts) | **✓** | **✓** | | [Choose when to hide or automatically delete completed tasks](/docs/macos/settings.md#completed-tasks) | **✓** | *basic* | | [Choose what sidebar counts and the Dock badge include (a dozen badge options)](/docs/macos/settings.md#counts) | **✓** | *basic* | | [Separate themes for Light and Dark mode](/docs/macos/settings.md#appearance-theme) | **✓** | *list colors only* | | [Two-way Apple Reminders sync](/docs/macos/sync-with-reminders.md) | **✓** | *it is Reminders* | | [Collaboration through shared lists](/docs/macos/icloud-list-sharing.md) | **✓** *(iCloud; supported Mac, iPhone, iPad)* | **✓** *(iCloud Reminders)* | | [Share a list with others over the local network](/docs/macos/list-sharing.md) | **✓** | | | [Claude / AI integration (MCP)](/docs/macos/mcp.md) | **✓** | | | [Auto-Prioritize selected tasks with Apple Intelligence on your device (Mac, iPhone and iPad)](/docs/ios/auto-prioritize.md) | **✓** | | | [AppleScript automation](/docs/macos/applescript.md) | **✓** | **✓** | | [Shortcuts app support](/docs/macos/shortcuts-actions.md) | **✓** | **✓** | | [Password protection with Touch ID (lists or whole app)](/docs/macos/password-protection.md) | **✓** | *whole app via iOS app lock* | | [Print lists with your choice of fields and detail](/docs/macos/getting-started.md#printing) | **✓** | *basic* | | [Export whole lists or selected tasks as .ics calendar or .csv spreadsheet files](/docs/macos/import-and-export.md#export-ics) | **✓** | | | [Import to-dos from any .ics calendar file, hierarchy and alarms included](/docs/macos/import-and-export.md#import-ics) | **✓** | | | [Automatic local backups, on a schedule you choose](/docs/macos/backups.md) | **✓** | | | [Restore individual lists from automatic backups](/docs/macos/backups.md) | **✓** | *recently deleted reminders, 30 days* | | [Works fully offline, no account required](/docs/macos/sync.md) | **✓** | **✓** | | Native Mac app | **✓** | **✓** | | [Android app](/android.md) | **✓** | | | [One-time purchase available](/store.md) | **✓** | *free* | ## Where Apple Reminders May Be Better[​](#where-apple-reminders-may-be-better "Direct link to Where Apple Reminders May Be Better") * It's free and available across Apple devices, including Apple Watch, CarPlay, HomePod, and Vision Pro, and through iCloud.com in a browser. * You can add reminders with Siri across Apple devices. * Shared iCloud lists let household members add tasks and assign reminders to each other. * Grocery lists sort themselves into categories as you type. * The column (board) view shows a list's sections side by side. * List templates let you reuse a packing list or routine without copying it by hand. ## Where 2Do May Be Better[​](#where-2do-may-be-better "Direct link to Where 2Do May Be Better") * Set [start dates and times as well as due dates](/docs/macos/dates-and-durations.md). [Task durations](/docs/macos/dates-and-durations.md#duration-due) help show when to begin before a deadline, and [Smart Scheduling](/docs/macos/focus-lists.md#smart-scheduling) can hide tasks until their start date. * Repeating tasks can [repeat from completion or from the schedule](/docs/macos/repeating-tasks.md#repeat-from), [stop after a set number of occurrences](/docs/macos/repeating-tasks.md#custom), and [keep the interval between their start and due dates](/docs/macos/repeating-tasks.md#completion). You can also [edit individual occurrences](/docs/macos/repeating-tasks.md#editing). * You can set [several alarms on one task](/docs/macos/alarms-and-nagging.md), with [repeat sounds](/docs/macos/alarms-and-nagging.md#nagging) that keep going until you act, [2Do's own alarm window](/docs/macos/alarms-and-nagging.md#alert-system), and [per-list silencing](/docs/macos/alarms-and-nagging.md#list-alerts). * Find tasks with [Smart Lists that use a full search syntax](/docs/macos/smart-lists.md), [typo-tolerant search](/docs/macos/smart-lists.md#modes), [a dozen per-list sort options](/docs/macos/the-2do-window.md#sort-bar), a [one-click Focus Filter](/docs/macos/focus-filter.md), and [tag filtering with AND / OR / NOT](/docs/macos/tags.md). * Attach a [Call, Message, Email, Visit, or Browse action](/docs/macos/actions.md) to a task and run it with one click, or the `P` key. * Notes support [Markdown](/docs/macos/notes-and-markdown.md) and [links to related tasks](/docs/macos/task-links.md), and you can attach [audio recordings as well as pictures](/docs/macos/task-editor.md#attachment). * You can [export lists as .ics or .csv](/docs/macos/import-and-export.md#export-ics), [back up locally and restore individual lists](/docs/macos/backups.md), and [protect lists with a password and Touch ID](/docs/macos/password-protection.md). Reminders offers no structured export. * Choose your sync service: [Dropbox, iCloud CalDAV, CalDAV, Reminders itself, Todoist, or Toodledo](/docs/macos/sync.md), and 2Do also runs on [Android](/android.md). * Mac automation is covered by [AppleScript](/docs/macos/applescript.md), [Shortcuts](/docs/macos/shortcuts-actions.md), and a built-in [MCP server for Claude and other AI agents](/docs/macos/mcp.md). * You can keep using [Siri through Reminders sync](/docs/macos/sync-with-reminders.md) while planning in 2Do. [2Do also supports Siri directly](/docs/macos/siri-and-shortcuts.md#siri) on Mac, iPhone, and iPad. To use both apps together, see [Sync with Apple Reminders](/docs/macos/sync-with-reminders.md) for setup and sync limitations. ## Common Questions * Do I have to choose between 2Do and Apple Reminders? No. 2Do syncs two-way with Apple Reminders. Tasks added to synced lists in Reminders, including through Siri, appear in 2Do, and supported changes sync back. * Which details do not sync through Reminders? Attachments, standalone locations, sections, and 2Do’s own grouping features stay on the device and do not sync through Reminders. * Is 2Do free like Apple Reminders? No. Apple Reminders is free and built into every Apple device. 2Do for Mac is a one-time purchase with a free 14-day trial, and 2Do for Android is a free download from Google Play or the 2Do website, with an optional Pro upgrade. * What can 2Do do that Apple Reminders cannot? Start dates and times as well as due dates, task durations, several alarms on one task with repeat sounds, Smart Lists with a full query syntax, a dozen per-list sort options, and .ics or .csv export. ## Official Links[​](#official-links "Direct link to Official Links") * [Apple Reminders on the App Store](https://apps.apple.com/app/reminders/id1108187841) * [Reminders User Guide for Mac: grocery categories](https://support.apple.com/en-ie/guide/reminders/remnbb50db03/mac) * [2Do for Mac](/index.md) * [2Do documentation](/docs/macos/getting-started.md) Want to compare a few more options before deciding? Browse all [2Do comparison guides](/compare.md). --- # 2Do vs GoodTask GoodTask and 2Do are native Mac apps that store tasks differently. GoodTask uses **Apple Reminders and Calendar** for reminders and events, and stores extra details such as start dates, durations, attachments, and settings separately. 2Do stores tasks on your device and syncs through a service you choose, **including Apple Reminders**. Connect both apps to the same Reminders lists to work with the same tasks. Last reviewed: October 17, 2026. ## At a Glance[​](#at-a-glance "Direct link to At a Glance") | Criteria | 2Do | GoodTask | | ------------- | ------------------------------------------------------------------------------------ | ----------------------------------------------------------------- | | Primary model | Flexible lists, projects, and checklists, stored locally and synced where you choose | A native app for Apple Reminders and Calendar | | Best fit | Users who want detailed task organization and a choice of sync service | Reminders users who want more ways to manage their existing tasks | | Strength | Scheduling, recurrence, alarms, search, and portability | Calendar-first views, Quick Actions, and the Reminders ecosystem | | Trade-off | Reminders sync flattens 2Do's hierarchy inside Apple's apps | Some extra details are stored separately by GoodTask | Use both apps with the same lists GoodTask organizes Apple Reminders; 2Do [syncs two-way with Apple Reminders](/docs/macos/sync-with-reminders.md). Use the same lists in both apps to see tasks added through either app or Siri. There are two details to be aware of: 2Do stores extra fields such as start dates, stars, and actions as `@…` lines at the bottom of a reminder's notes, while GoodTask's text-based sub-tasks and hashtags appear as plain note text in 2Do. ## Collaboration and List Sharing[​](#sharing-with-other-people "Direct link to Collaboration and List Sharing") 2Do lets you collaborate by [sharing a list through iCloud](/docs/macos/icloud-list-sharing.md) with other 2Do users on macOS 14, iOS 18, or iPadOS 18 or later, using a version with sharing support. The owner chooses editing or view-only access. Task content, sections, and manual order are shared; list names, colors, list sort, Focus filters, and alert choices remain personal. See the [iPhone and iPad guide](/docs/ios/icloud-list-sharing.md) for those steps. GoodTask uses [lists shared through Apple Reminders](https://goodtaskapp.com/how-to-share-reminders-lists-with-others-and-use-it-on-goodtask/): share the list in Reminders, then use it in GoodTask. 2Do's iCloud sharing keeps the collaboration in 2Do, including its projects, checklists, sections, and attachments. The two kinds of shared list are separate. 2Do tasks use floating local time by default. For a shared deadline that must mean the same moment in different places, use [Fixed Time Zone](/docs/macos/dates-and-durations.md#fixed-time). ## Task Sections and Apple Intelligence[​](#task-sections-and-apple-intelligence "Direct link to Task Sections and Apple Intelligence") On Mac, iPhone, and iPad, divide a regular list or the Inbox into [named sections](/docs/macos/task-sections.md), such as Bookings and Packing in a trip list. Arrange sections in the order you want; tasks within each section follow the list's sort. **Auto-Create Sections** uses Apple Intelligence to organize selected unfinished tasks or all unfinished, unsectioned tasks in a list. It reuses suitable existing sections and creates new ones where needed. **Auto-Name Section** names an existing section from its task titles. Both commands run on your device; organizing tasks also considers existing section names. They require a supported Mac, iPhone, or iPad running macOS 26, iOS 26, or iPadOS 26 or later, with Apple Intelligence enabled. See [sections and Apple Intelligence](/docs/macos/task-sections.md#apple-intelligence). 2Do also uses Apple Intelligence to set priorities for selected tasks with **Auto-Prioritize**, available on [Mac](/docs/macos/auto-prioritize.md) and [iPhone and iPad](/docs/ios/auto-prioritize.md) under the same device and OS requirements. GoodTask also has [collapsible sections in List View](https://forum.goodtaskapp.com/t/goodtask-v8-4-1-release-note-calendar-view-improvements-collapsible-list-sections-more/3491). Its [Apple Intelligence features](https://forum.goodtaskapp.com/t/goodtask-v8-4-release-note-new-os-support-today-page-smart-capture-and-more/3488) include Smart Capture and suggestions for tasks on supported OS 27 devices. 2Do’s commands focus on creating and naming sections from existing tasks. Those sections stay in 2Do and do not sync through Reminders. ## Task Management & Sync Comparison[​](#task-management--sync-comparison "Direct link to Task Management & Sync Comparison") | Capability | 2Do | GoodTask | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | -------------------------------------------------- | | [Projects with dates and tags for each sub-task](/docs/macos/projects-and-checklists.md) | **✓** | *text-based sub-tasks in notes* | | [Checklists](/docs/macos/projects-and-checklists.md#checklists) | **✓** | *text-based* | | [Sub-tasks on any plain task](/docs/macos/projects-and-checklists.md) | *converts to a project* | *text-based* | | [Tags](/docs/macos/tags.md) | **✓** | **✓** *(hashtag-based)* | | [Tag groups and pausable tags](/docs/macos/tags.md#tag-groups) | **✓** | | | [Natural Language Input: type dates, times, repeats, alarms, tags, lists, and priority into a new task's title](/docs/macos/natural-language-input.md#what-you-can-type) | **✓** *(Mac, iPhone and iPad)* | *via Text Snippets (keyword shortcuts)* | | Capture by voice with Siri: iPhone, Watch, CarPlay, HomePod | **✓** *(Mac, iPhone and iPad directly; Watch, CarPlay and HomePod via Reminders sync)* | **✓** *(via Reminders)* | | [Siri AI on iOS 27 and macOS 27: create and edit tasks by talking in your own words](/docs/macos/siri-and-shortcuts.md#new-siri) | **✓** | **✓** *(via Reminders, plus its own Siri actions)* | | [Tasks show up in Spotlight search and open in the app](/docs/macos/shortcuts-actions.md#spotlight) | **✓** *(Mac, iPhone and iPad)* | **✓** | | [Saved Smart Lists with a full search syntax](/docs/macos/smart-lists.md) | **✓** | **✓** *(filter-based)* | | [Typo-tolerant Soundex search, plus exact wildcard matching](/docs/macos/smart-lists.md#modes) | **✓** | | | [A dozen sort options, remembered separately for each list](/docs/macos/the-2do-window.md#sort-bar) | **✓** | **✓** | | [Combine tag filters with AND / OR / NOT](/docs/macos/tags.md) | **✓** | **✓** *(include / exclude filters)* | | [One-click Focus Filter per list](/docs/macos/focus-filter.md) | **✓** | *Focus mode* | | [Filter by List Group, on its own or with a search](/docs/macos/lists-and-list-groups.md#list-groups) | **✓** | *via Smart Lists* | | [Exclude any list from All, Today, or Done](/docs/macos/lists-and-list-groups.md#exclude-from-focus) | **✓** | *via smart lists* | | [Hide any list from the sidebar, even built-in ones](/docs/macos/password-protection.md#hide-unwanted) | **✓** | *basic* | | [Jump Bars: find tasks, lists, and tags as you type](/docs/macos/search-and-jump-bars.md) | **✓** | *via search* | | [Preview a task with Spacebar and run its action from Quick Look](/docs/macos/task-editor.md#quick-look) | **✓** | *via task detail panel* | | [Press `P` to perform a task's action or `U` to open every link in its notes](/docs/macos/keyboard-shortcuts.md#action) | **✓** | | | [Quick Open: jump to any task or list from anywhere](/docs/macos/quick-open.md) | **✓** | *search only* | | [Section heat bars for navigation and task counts in sort groups](/docs/macos/the-2do-window.md#heat-bars) | **✓** | | | [Stars in addition to priorities](/docs/macos/stars-and-priorities.md) | **✓** | **✓** *(flags)* | | [Point at a task to set its priority or star without opening the editor](/docs/macos/stars-and-priorities.md#hover-priority) | **✓** | *via Quick Actions* | | Configurable Quick Actions: reusable one-tap date, tag, and text tweaks | | **✓** | | [Set dates, alarms, or recurrence with numbered presets (Option + digit)](/docs/macos/keyboard-shortcuts.md#picker-presets) | **✓** | *via Quick Actions* | | [Single-key commands: defer, schedule, star, tag, move, and prioritise without modifiers](/docs/macos/multi-task-actions.md#shortcuts) | **✓** | *basic* | | [Jump to any editor field from the keyboard (dates, alerts, tags, action, recurrence, list)](/docs/macos/keyboard-shortcuts.md#editing) | **✓** | *basic* | | [Start dates and times in addition to due dates](/docs/macos/dates-and-durations.md) | **✓** | **✓** | | [Task durations (time estimates that show when to begin before a deadline)](/docs/macos/dates-and-durations.md#duration-due) | **✓** | *start-to-due span* | | [Repeat from due date or from completion](/docs/macos/repeating-tasks.md#repeat-from) | **✓** | *basic* | | [Custom repeat rules: every N days/weeks/months/years, chosen weekdays, the 15th, the last day, the second Tuesday](/docs/macos/repeating-tasks.md#custom) | **✓** | **✓** | | [Recurrence end conditions: stop after N occurrences or on a date](/docs/macos/repeating-tasks.md#custom) | **✓** | *end date only* | | [Repeating tasks keep the same start and due times and the interval between them](/docs/macos/repeating-tasks.md#completion) | **✓** | | | [Repeating projects and checklists reset their sub-tasks each cycle](/docs/macos/repeating-tasks.md#completion) | **✓** | *basic* | | [Edit one occurrence or all future ones](/docs/macos/repeating-tasks.md#editing) | **✓** | *basic* | | [Smart Scheduling: hide tasks until their start date, with an option to show them at any time](/docs/macos/focus-lists.md#smart-scheduling) | **✓** | *via smart-list filters* | | [Multiple alarms per task](/docs/macos/alarms-and-nagging.md) | **✓** | **✓** *(version 8.4.8 and later)* | | [Repeating (nagging) alarm sounds until dismissed](/docs/macos/alarms-and-nagging.md#nagging) | **✓** | *urgent alerts; auto-snooze on Mac and iOS* | | [2Do alarm window with snooze controls and the task's action](/docs/macos/alarms-and-nagging.md#alert-system) | **✓** | *Mac urgent alerts with snooze controls* | | [Silence alarms one list at a time](/docs/macos/alarms-and-nagging.md#list-alerts) | **✓** | **✓** | | [Works with macOS Focus](/docs/macos/system-focus-filters.md) | **✓** | **✓** | | [Assign locations to tasks (Nearby view)](/docs/macos/nearby-locations.md) | **✓** | **✓** *(via Reminders)* | | [Location-based alerts (iPhone / iPad)](/docs/macos/nearby-locations.md) | **✓** | **✓** *(via Reminders)* | | [Task actions: call, message, email, visit, or open a link right from the task](/docs/macos/actions.md) | **✓** | *links, email, and phone numbers* | | [Picture and audio attachments](/docs/macos/task-editor.md#attachment) | **✓** | **✓** | | [Markdown notes](/docs/macos/notes-and-markdown.md) | **✓** | **✓** | | [Link to related tasks by typing their names in notes](/docs/macos/task-links.md) | **✓** | | | [Batch editing: tag, defer, schedule, or re-prioritise many tasks at once](/docs/macos/multi-task-actions.md) | **✓** | **✓** | | [System-wide Quick Entry on Mac](/docs/macos/quick-entry.md) | **✓** | **✓** | | [Calendar events shown alongside tasks](/docs/macos/calendar-integration.md) | **✓** | **✓** | | Full calendar views: day, week, and month with events and tasks together | | **✓** | | [Mini Calendar: filter by day or date range, see busy days as a heat map or dots, and drag tasks to defer them](/docs/macos/mini-calendar.md) | **✓** | **✓** *(calendar views)* | | [Email tasks to the app](/docs/macos/email-to-2do.md) | **✓** | *via Mail or Reminders sharing* | | Shared iCloud lists, with reminders assigned to people | | **✓** *(via Reminders)* | | [Choose a sync service: Dropbox, iCloud CalDAV, CalDAV, **Reminders**, Todoist, or Toodledo](/docs/macos/sync.md) | **✓** | *via Reminders accounts* | | [Exclude chosen lists from sync](/docs/macos/settings.md#sync-exclusions) | **✓** | **✓** *(On My Mac lists)* | | [Defaults for new tasks (list, GTD Inbox, due date and time, and text from the clipboard)](/docs/macos/settings.md#tasks) | **✓** | *basic* | | [Automatic reminders for dated tasks, at the deadline or a chosen offset](/docs/macos/settings.md#automatic-alerts) | **✓** | **✓** | | [Choose when to hide or automatically delete completed tasks](/docs/macos/settings.md#completed-tasks) | **✓** | *basic* | | [Choose what sidebar counts and the Dock badge include (a dozen badge options)](/docs/macos/settings.md#counts) | **✓** | **✓** | | [Separate themes for Light and Dark mode](/docs/macos/settings.md#appearance-theme) | **✓** | **✓** | | [Two-way Apple Reminders sync](/docs/macos/sync-with-reminders.md) | **✓** | **✓** *(uses Reminders directly)* | | [Collaboration through shared lists](/docs/macos/icloud-list-sharing.md) | **✓** *(iCloud; supported Mac, iPhone, iPad)* | **✓** *(shared Reminders lists)* | | [Share a list with others over the local network](/docs/macos/list-sharing.md) | **✓** | | | [Claude / AI integration (MCP)](/docs/macos/mcp.md) | **✓** | | | [Auto-Prioritize selected tasks with Apple Intelligence on your device (Mac, iPhone and iPad)](/docs/ios/auto-prioritize.md) | **✓** | | | [AppleScript automation](/docs/macos/applescript.md) | **✓** | | | [Shortcuts app support](/docs/macos/shortcuts-actions.md) | **✓** | **✓** | | [Password protection with Touch ID (lists or whole app)](/docs/macos/password-protection.md) | **✓** | *whole app via iOS app lock* | | [Print lists with your choice of fields and detail](/docs/macos/getting-started.md#printing) | **✓** | *basic* | | [Export whole lists or selected tasks as .ics calendar or .csv spreadsheet files](/docs/macos/import-and-export.md#export-ics) | **✓** | *completed-task CSV reports* | | [Import to-dos from any .ics calendar file, hierarchy and alarms included](/docs/macos/import-and-export.md#import-ics) | **✓** | | | [Automatic local backups, on a schedule you choose](/docs/macos/backups.md) | **✓** | | | [Restore individual lists from automatic backups](/docs/macos/backups.md) | **✓** | *via Reminders' Recently Deleted* | | [Works fully offline, no account required](/docs/macos/sync.md) | **✓** | **✓** | | Native Mac app | **✓** | **✓** | | [Android app](/android.md) | **✓** | | | [One-time purchase available](/store.md) | **✓** | **✓** *(lifetime unlock)* | ## Where GoodTask May Be Better[​](#where-goodtask-may-be-better "Direct link to Where GoodTask May Be Better") * Your tasks stay in Apple Reminders, so you can keep using shared iCloud lists, Siri, and other Reminders integrations. * Day, week, and month views show events and reminders side by side. * Quick Actions let you save repetitive edits, such as changing a date, replacing tags, or adding text, and apply them with one tap. * You can start with your existing Apple Reminders tasks; GoodTask stores its extra details separately. ## Where 2Do May Be Better[​](#where-2do-may-be-better "Direct link to Where 2Do May Be Better") * Organize work into [projects and checklists with dated, taggable sub-tasks](/docs/macos/projects-and-checklists.md). You can also set [start dates and times](/docs/macos/dates-and-durations.md), add [durations](/docs/macos/dates-and-durations.md#duration-due), and use [Smart Scheduling](/docs/macos/focus-lists.md#smart-scheduling) to hide tasks until their start date. * Repeating tasks can [repeat from completion](/docs/macos/repeating-tasks.md#repeat-from), [stop after a set number of occurrences](/docs/macos/repeating-tasks.md#custom), and [keep the interval between their start and due dates](/docs/macos/repeating-tasks.md#completion). You can also [edit individual occurrences](/docs/macos/repeating-tasks.md#editing). * Alarms keep going until you act, with [repeat sounds](/docs/macos/alarms-and-nagging.md#nagging), [2Do's own alarm window](/docs/macos/alarms-and-nagging.md#alert-system), and [per-list silencing](/docs/macos/alarms-and-nagging.md#list-alerts). * Notes support [Markdown](/docs/macos/notes-and-markdown.md) and [links to related tasks](/docs/macos/task-links.md), and [pictures and audio attach to the task itself](/docs/macos/task-editor.md#attachment). * Search goes deeper, with [Smart Lists built on a full query syntax](/docs/macos/smart-lists.md) and [typo-tolerant matching](/docs/macos/smart-lists.md#modes). * You can [export tasks as .ics or .csv](/docs/macos/import-and-export.md#export-ics), [back up locally and restore individual lists](/docs/macos/backups.md), and [protect lists with a password and Touch ID](/docs/macos/password-protection.md). * You're not tied to Apple's database, since 2Do also syncs via [Dropbox, iCloud CalDAV, CalDAV, Todoist, or Toodledo](/docs/macos/sync.md), and runs on [Android](/android.md). * Automate tasks with [AppleScript](/docs/macos/applescript.md), the built-in [MCP server for Claude and other AI agents](/docs/macos/mcp.md), or [Shortcuts](/docs/macos/shortcuts-actions.md). * [Connect 2Do to Reminders](/docs/macos/sync-with-reminders.md) to manage the same lists in GoodTask, Reminders, and 2Do. To use both apps together, see [Sync with Apple Reminders](/docs/macos/sync-with-reminders.md) for setup and sync limitations. ## Common Questions * Can 2Do and GoodTask work on the same lists? Yes. Connect both apps to the same Apple Reminders lists to manage those tasks in either app. * Where does each app store my tasks? GoodTask uses Apple Reminders for tasks and Apple Calendar for events, and stores extra details separately. 2Do stores tasks on your device and syncs through the service you choose, including Apple Reminders. * How does 2Do organize tasks? 2Do has projects and checklists with dated, taggable sub-tasks. Tasks can have start dates and times, durations, several alarms, and picture or audio attachments. On Mac, iPhone, and iPad, you can also divide regular lists and the Inbox into named sections. * Are both apps a one-time purchase? Both offer one. 2Do for Mac from our store is a perpetual license that includes 18 months of updates, and GoodTask offers a lifetime unlock. ## Official Links[​](#official-links "Direct link to Official Links") * [GoodTask official page](https://goodtask.io/) * [GoodTask release notes: multiple alerts and Mac urgent alerts](https://forum.goodtaskapp.com/t/goodtask-v8-4-8-release-note-multiple-task-alerts-more/3510) * [2Do for Mac](/index.md) * [2Do documentation](/docs/macos/getting-started.md) Want to compare a few more options before deciding? Browse all [2Do comparison guides](/compare.md). --- # 2Do vs OmniFocus OmniFocus is built around Getting Things Done (GTD), with defer dates, review cycles, sequential projects, and custom perspectives. 2Do offers lists, projects, search, and scheduling that you can use without following a set method. OmniFocus may suit you better if you follow GTD closely; 2Do may suit you better if you want to organize tasks your own way and choose your sync service. Last reviewed: October 17, 2026. ## At a Glance[​](#at-a-glance "Direct link to At a Glance") | Criteria | 2Do | OmniFocus | | ------------- | ------------------------------------------------------------------ | ---------------------------------------------------- | | Primary model | Flexible lists, projects, and checklists that adapt to your method | A structured GTD system with review and perspectives | | Best fit | Users who want detailed task management without a set method | Committed GTD practitioners | | Strength | Flexible organization, search, and sync choice | Structured projects and regular reviews | | Trade-off | No built-in review methodology | Steeper learning curve | Switching is easy 2Do **imports your OmniFocus data directly** on the Mac. Choose **File > Import > From OmniFocus…** and your folders, projects, actions, tags, defer/due dates, durations, and repeats come across. See [Import from OmniFocus](/docs/macos/import-and-export.md#omnifocus). ## Collaboration and List Sharing[​](#sharing-with-other-people "Direct link to Collaboration and List Sharing") 2Do lets you collaborate by [sharing a list through iCloud](/docs/macos/icloud-list-sharing.md) with other 2Do users on macOS 14, iOS 18, or iPadOS 18 or later, using a version with sharing support. The owner chooses editing or view-only access. Task content, sections, and manual order are shared; list names, colors, list sort, Focus filters, and alert choices remain personal. See the [iPhone and iPad guide](/docs/ios/icloud-list-sharing.md) for those steps. OmniFocus documents [one-way delegation](https://support.omnigroup.com/omnifocus-delegation-options/) through Mail Drop, TaskPaper, and email. Those methods send work to someone else. With 2Do's iCloud sharing, invited members continue to receive changes to the shared list and, when allowed, edit the same work. 2Do tasks use floating local time by default. For a shared deadline that must mean the same moment in different places, use [Fixed Time Zone](/docs/macos/dates-and-durations.md#fixed-time). ## Task Sections and Apple Intelligence[​](#task-sections-and-apple-intelligence "Direct link to Task Sections and Apple Intelligence") On Mac, iPhone, and iPad, divide a regular list or the Inbox into [named sections](/docs/macos/task-sections.md), such as Bookings and Packing in a trip list. Arrange sections in the order you want; tasks within each section follow the list's sort. **Auto-Create Sections** uses Apple Intelligence to organize selected unfinished tasks or all unfinished, unsectioned tasks in a list. It reuses suitable existing sections and creates new ones where needed. **Auto-Name Section** names an existing section from its task titles. Both commands run on your device; organizing tasks also considers existing section names. They require a supported Mac, iPhone, or iPad running macOS 26, iOS 26, or iPadOS 26 or later, with Apple Intelligence enabled. See [sections and Apple Intelligence](/docs/macos/task-sections.md#apple-intelligence). 2Do also uses Apple Intelligence to set priorities for selected tasks with **Auto-Prioritize**, available on [Mac](/docs/macos/auto-prioritize.md) and [iPhone and iPad](/docs/ios/auto-prioritize.md) under the same device and OS requirements. OmniFocus uses [action groups within projects](https://support.omnigroup.com/documentation/omnifocus/universal/4.9.3/en/print/). Its [Apple Intelligence support](https://support.omnigroup.com/documentation/omnifocus/universal/4.9.3/en/system/) includes date parsing and automation. 2Do’s section commands let you organize a regular list or the Inbox from task titles without setting up an automation. ## Task Management & Sync Comparison[​](#task-management--sync-comparison "Direct link to Task Management & Sync Comparison") Where a cell reads *via perspectives*, OmniFocus reaches the same result by configuring a custom perspective (a Pro feature) rather than with a built-in control. | Capability | 2Do | OmniFocus | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------- | ---------------------------------------------- | | [Projects with dates and tags for each sub-task](/docs/macos/projects-and-checklists.md) | **✓** | **✓** | | [Checklists](/docs/macos/projects-and-checklists.md#checklists) | **✓** | **✓** | | [Named sections that divide a list](/docs/macos/task-sections.md) | **✓** *(Mac, iPhone and iPad; regular lists and the Inbox)* | *nested action groups inside projects instead* | | Sequential (do-in-order) projects | | **✓** | | Custom perspectives / saved workspace views | | **✓** | | Built-in review mode | | **✓** | | [Natural Language Input: type dates, times, repeats, alarms, tags, lists, and priority into a new task's title](/docs/macos/natural-language-input.md#what-you-can-type) | **✓** *(Mac, iPhone and iPad)* | *dates only, in the date fields* | | [Add, find, and complete tasks by voice with Siri, no shortcut to set up](/docs/macos/siri-and-shortcuts.md#siri) | **✓** *(Mac, iPhone and iPad)* | **✓** | | [Siri AI on iOS 27 and macOS 27: create and edit tasks by talking in your own words](/docs/macos/siri-and-shortcuts.md#new-siri) | **✓** | **✓** | | [Tasks show up in Spotlight search and open in the app](/docs/macos/shortcuts-actions.md#spotlight) | **✓** *(Mac, iPhone and iPad)* | **✓** | | [Tags](/docs/macos/tags.md) | **✓** | **✓** | | [Tag groups and pausable tags](/docs/macos/tags.md#tag-groups) | **✓** | **✓** | | [Saved Smart Lists with a full search syntax](/docs/macos/smart-lists.md) | **✓** | *via perspectives* | | [Typo-tolerant Soundex search, plus exact wildcard matching](/docs/macos/smart-lists.md#modes) | **✓** | *basic* | | [A dozen sort options, remembered separately for each list](/docs/macos/the-2do-window.md#sort-bar) | **✓** | *via perspectives* | | [Combine tag filters with AND / OR / NOT](/docs/macos/tags.md) | **✓** | *via perspectives* | | [One-click Focus Filter per list](/docs/macos/focus-filter.md) | **✓** | *Focus (Pro)* | | [Filter by List Group, on its own or with a search](/docs/macos/lists-and-list-groups.md#list-groups) | **✓** | *via folders and search* | | [Exclude any list from All, Today, or Done](/docs/macos/lists-and-list-groups.md#exclude-from-focus) | **✓** | *via perspectives* | | [Hide any list from the sidebar, even built-in ones](/docs/macos/password-protection.md#hide-unwanted) | **✓** | *via collapsed folders* | | [Jump Bars: find tasks, lists, and tags as you type](/docs/macos/search-and-jump-bars.md) | **✓** | *via search and Quick Open* | | [Preview a task with Spacebar and run its action from Quick Look](/docs/macos/task-editor.md#quick-look) | **✓** | *via Inspector* | | [Press `P` to perform a task's action or `U` to open every link in its notes](/docs/macos/keyboard-shortcuts.md#action) | **✓** | | | [Quick Open: jump to any task or list from anywhere](/docs/macos/quick-open.md) | **✓** | **✓** | | [Section heat bars for navigation and task counts in sort groups](/docs/macos/the-2do-window.md#heat-bars) | **✓** | | | [Stars in addition to priorities](/docs/macos/stars-and-priorities.md) | **✓** | *flags only* | | [Point at a task to set its priority or star without opening the editor](/docs/macos/stars-and-priorities.md#hover-priority) | **✓** | *flags only* | | [Set dates, alarms, or recurrence with numbered presets (Option + digit)](/docs/macos/keyboard-shortcuts.md#picker-presets) | **✓** | *basic* | | [Single-key commands: defer, schedule, star, tag, move, and prioritise without modifiers](/docs/macos/multi-task-actions.md#shortcuts) | **✓** | *basic* | | [Jump to any editor field from the keyboard (dates, alerts, tags, action, recurrence, list)](/docs/macos/keyboard-shortcuts.md#editing) | **✓** | *basic* | | [Start dates and times in addition to due dates](/docs/macos/dates-and-durations.md) | **✓** | **✓** | | [Task durations (time estimates that show when to begin before a deadline)](/docs/macos/dates-and-durations.md#duration-due) | **✓** | **✓** | | [Repeat from due date or from completion](/docs/macos/repeating-tasks.md#repeat-from) | **✓** | **✓** | | [Custom repeat rules: every N days/weeks/months/years, chosen weekdays, the 15th, the last day, the second Tuesday](/docs/macos/repeating-tasks.md#custom) | **✓** | **✓** | | [Recurrence end conditions: stop after N occurrences or on a date](/docs/macos/repeating-tasks.md#custom) | **✓** | **✓** | | [Repeating tasks keep the same start and due times and the interval between them](/docs/macos/repeating-tasks.md#completion) | **✓** | **✓** | | [Repeating projects and checklists reset their sub-tasks each cycle](/docs/macos/repeating-tasks.md#completion) | **✓** | **✓** | | [Edit one occurrence or all future ones](/docs/macos/repeating-tasks.md#editing) | **✓** | *basic* | | [Smart Scheduling: hide tasks until their start date, with an option to show them at any time](/docs/macos/focus-lists.md#smart-scheduling) | **✓** | **✓** | | [Multiple alarms per task](/docs/macos/alarms-and-nagging.md) | **✓** | **✓** | | [Repeating (nagging) alarm sounds until dismissed](/docs/macos/alarms-and-nagging.md#nagging) | **✓** | | | [2Do alarm window with snooze controls and the task's action](/docs/macos/alarms-and-nagging.md#alert-system) | **✓** | *system alerts with snooze* | | [Silence alarms one list at a time](/docs/macos/alarms-and-nagging.md#list-alerts) | **✓** | | | [Silence 2Do alarms automatically with macOS Focus](/docs/macos/system-focus-filters.md) | **✓** | *via system settings* | | [Assign locations to tasks (Nearby view)](/docs/macos/nearby-locations.md) | **✓** | **✓** | | [Location-based alerts (iPhone / iPad)](/docs/macos/nearby-locations.md) | **✓** | **✓** | | [Task actions: call, message, email, visit, or open a link right from the task](/docs/macos/actions.md) | **✓** | *links in notes* | | [Picture and audio attachments](/docs/macos/task-editor.md#attachment) | **✓** | **✓** | | [Markdown notes](/docs/macos/notes-and-markdown.md) | **✓** | *rich text* | | [Link to related tasks by typing their names in notes](/docs/macos/task-links.md) | **✓** | | | [Batch editing: tag, defer, schedule, or re-prioritise many tasks at once](/docs/macos/multi-task-actions.md) | **✓** | **✓** | | [System-wide Quick Entry on Mac](/docs/macos/quick-entry.md) | **✓** | **✓** | | [Calendar events shown alongside tasks](/docs/macos/calendar-integration.md) | **✓** | **✓** | | [Mini Calendar: filter by day or date range, see busy days as a heat map or dots, and drag tasks to defer them](/docs/macos/mini-calendar.md) | **✓** | *basic* | | [Email tasks to the app](/docs/macos/email-to-2do.md) | **✓** | **✓** | | [Choose a sync service: Dropbox, iCloud CalDAV, CalDAV, Reminders, Todoist, or Toodledo](/docs/macos/sync.md) | **✓** | *WebDAV only* | | [Exclude chosen lists from sync](/docs/macos/settings.md#sync-exclusions) | **✓** | *whole database only* | | [Defaults for new tasks (list, GTD Inbox, due date and time, and text from the clipboard)](/docs/macos/settings.md#tasks) | **✓** | *basic* | | [Automatic reminders for dated tasks, at the deadline or a chosen offset](/docs/macos/settings.md#automatic-alerts) | **✓** | **✓** | | [Choose when to hide or automatically delete completed tasks](/docs/macos/settings.md#completed-tasks) | **✓** | *basic* | | [Choose what sidebar counts and the Dock badge include (a dozen badge options)](/docs/macos/settings.md#counts) | **✓** | *basic* | | [Separate themes for Light and Dark mode](/docs/macos/settings.md#appearance-theme) | **✓** | *basic* | | [Self-hosted sync server (WebDAV)](/docs/macos/sync-with-webdav.md) | *coming soon* | **✓** | | [Two-way Apple Reminders sync](/docs/macos/sync-with-reminders.md) | **✓** | *one-way capture* | | [Collaboration through shared lists](/docs/macos/icloud-list-sharing.md) | **✓** *(iCloud; supported Mac, iPhone, iPad)* | *one-way delegation tools* | | [Share a list with others over the local network](/docs/macos/list-sharing.md) | **✓** | | | [Claude / AI integration (MCP)](/docs/macos/mcp.md) | **✓** | | | [Auto-Prioritize selected tasks with Apple Intelligence on your device (Mac, iPhone and iPad)](/docs/ios/auto-prioritize.md) | **✓** | | | [AppleScript automation](/docs/macos/applescript.md) | **✓** | **✓** | | JavaScript (Omni Automation) scripting | | **✓** | | [Shortcuts app support](/docs/macos/shortcuts-actions.md) | **✓** | **✓** | | Web browser access | | **✓** | | [Password protection with Touch ID (lists or whole app)](/docs/macos/password-protection.md) | **✓** | *whole app on iPhone / iPad* | | [Print lists with your choice of fields and detail](/docs/macos/getting-started.md#printing) | **✓** | *basic* | | [Export whole lists or selected tasks as .ics calendar or .csv spreadsheet files](/docs/macos/import-and-export.md#export-ics) | **✓** | *CSV and others, no .ics* | | [Import to-dos from any .ics calendar file, hierarchy and alarms included](/docs/macos/import-and-export.md#import-ics) | **✓** | | | [Automatic local backups, on a schedule you choose](/docs/macos/backups.md) | **✓** | **✓** | | [Restore individual lists from automatic backups](/docs/macos/backups.md) | **✓** | *copy selected items from a backup* | | Native Mac app | **✓** | **✓** | | [Android app](/android.md) | **✓** | | | [One-time purchase available](/store.md) | **✓** | **✓** | ## Where OmniFocus May Be Better[​](#where-omnifocus-may-be-better "Direct link to Where OmniFocus May Be Better") * You practice strict GTD and want defer dates, review cycles, and sequential projects as built-in features. * You use custom perspectives to choose which tasks to see. * You use Omni Automation (JavaScript) across platforms, or need browser access. 2Do supports [AppleScript](/docs/macos/applescript.md), [Shortcuts](/docs/macos/shortcuts-actions.md), and a built-in [Claude / MCP server](/docs/macos/mcp.md), but has no browser app. * You want to sync through your own WebDAV server now. OmniFocus also exports tasks in CSV and other structured formats. ## Where 2Do May Be Better[​](#where-2do-may-be-better "Direct link to Where 2Do May Be Better") * You want depth without adopting a methodology: [lists, projects, checklists, and sub-tasks](/docs/macos/projects-and-checklists.md) arranged your way. * You prefer [Smart Lists](/docs/macos/smart-lists.md) with a full search syntax to configuring custom perspectives. * Use [per-list sorting](/docs/macos/the-2do-window.md#sort-bar), a [one-click Focus Filter](/docs/macos/focus-filter.md), [tag filters](/docs/macos/tags.md), and [List Group filters](/docs/macos/lists-and-list-groups.md#list-groups) directly in your task lists. * You can [exclude any list from All, Today, or Done](/docs/macos/lists-and-list-groups.md#exclude-from-focus), so Someday lists and background chores stay out of your daily views. * You need reminders that persist, with [repeat-sound alarms](/docs/macos/alarms-and-nagging.md) that keep going until you act. * You want to choose your sync service: [Dropbox, iCloud CalDAV, CalDAV, Apple Reminders, Todoist, or Toodledo](/docs/macos/sync.md). * You can [exclude chosen lists from sync](/docs/macos/settings.md#sync-exclusions) and they stay on this device only. * Type a new task the way you would say it and 2Do fills in the date, time, repeat, alarm, tags, list, and priority as you type, in ten languages: see [Natural Language Input](/docs/macos/natural-language-input.md). OmniFocus reads natural-language dates in its own date fields instead. * [Siri works with 2Do directly](/docs/macos/siri-and-shortcuts.md#siri): add, find, and complete tasks with its supported Siri commands, and on iOS 27 and macOS 27 [describe changes in your own words](/docs/macos/siri-and-shortcuts.md#new-siri). Tasks added to Reminders from an Apple Watch, CarPlay, or HomePod can sync to 2Do through [two-way Apple Reminders sync](/docs/macos/sync-with-reminders.md). * Use [single-key commands](/docs/macos/multi-task-actions.md#shortcuts) to defer (`D`), schedule (`K`), star (`S`), tag (`L`), and move (`M`) tasks, while [shortcuts jump to any editor field](/docs/macos/keyboard-shortcuts.md#editing) and [Option plus a digit selects a preset](/docs/macos/keyboard-shortcuts.md#picker-presets). * Press Spacebar for a [Quick Look preview](/docs/macos/task-editor.md#quick-look) of notes, dates, alarms, and attachments, with the task's action one click away. * Attach a [Call, Message, Email, Visit, or Browse action](/docs/macos/actions.md) to a task and perform it with one click. * You capture by email with [Mail to 2Do](/docs/macos/email-to-2do.md), or [share a list through iCloud](/docs/macos/icloud-list-sharing.md) with family or colleagues. * You want to [manage tasks with Claude](/docs/macos/mcp.md) alongside [AppleScript](/docs/macos/applescript.md) and [Shortcuts](/docs/macos/shortcuts-actions.md). * Notes support [Markdown and links between related tasks](/docs/macos/notes-and-markdown.md). * You want to protect lists with [a password and Touch ID](/docs/macos/password-protection.md). * You also use Android, where 2Do is available too. Moving over? See [Import from OmniFocus](/docs/macos/import-and-export.md#omnifocus) for details about how tasks are imported, or read the [FAQ](/docs/faqs/import-from-omnifocus.md). ## Common Questions * Can I import my OmniFocus tasks into 2Do? Yes, on the Mac, when OmniFocus is installed. Choose File > Import > From OmniFocus and select your local OmniFocus 4 database when the open panel appears. This imports a copy of your data once; it does not keep the apps in sync. * Does 2Do require a GTD workflow? No. 2Do gives you lists, projects, checklists, and sub-tasks to arrange your own way. OmniFocus is built around GTD, with defer dates, review cycles, and sequential projects as built-in features. * Can 2Do sync through my own server? Through CalDAV today, including Fastmail, Fruux, Nextcloud, ownCloud, and Synology. WebDAV sync with support for all task data is planned. OmniFocus already offers its own WebDAV sync. * Are both apps a one-time purchase? Both offer one. 2Do for Mac from our store is a perpetual license that includes 18 months of updates, and it is also sold as a subscription on the Mac App Store and through Setapp. ## Official Links[​](#official-links "Direct link to Official Links") * [OmniFocus official page](https://www.omnigroup.com/omnifocus) * [OmniFocus 4 manual: projects, action groups, and perspectives](https://support.omnigroup.com/documentation/omnifocus/universal/4.9.3/en/print/) * [2Do for Mac](/index.md) * [2Do documentation](/docs/macos/getting-started.md) Want to compare a few more options before deciding? Browse all [2Do comparison guides](/compare.md). --- # 2Do vs Things 3 Things 3 organizes tasks around a consistent set of views, including Today, Upcoming, Anytime, and Someday. 2Do gives you more ways to arrange lists, search tasks, set alarms, and choose where your data syncs. Things 3 may suit you if you prefer fewer options and a defined workflow; 2Do may suit you if you want more control over how you organize and review your tasks. Last reviewed: October 17, 2026. ## At a Glance[​](#at-a-glance "Direct link to At a Glance") | Criteria | 2Do | Things 3 | | ------------- | ------------------------------------------------------------------ | -------------------------------------------- | | Primary model | Flexible lists, projects, and checklists that adapt to your method | Today, Upcoming, Anytime, and Someday views | | Best fit | Power users who want depth, search, and sync choice | Users who want simplicity with strong design | | Strength | Feature depth without forcing a methodology | Simple design and a consistent workflow | | Trade-off | More features to explore | Deliberately limited feature set | Switching is easy 2Do **imports your Things 3 data directly** on the Mac: choose **File > Import > From Things…** and your Areas arrive as List Groups with each Project as its own list, while your to-dos, checklists, tags, dates, reminders, and repeats come across intact. A Project's headings become [sections](/docs/macos/task-sections.md) in its list, in the same order. See [Import from Things](/docs/macos/import-and-export.md#things). ## Collaboration and List Sharing[​](#sharing-with-other-people "Direct link to Collaboration and List Sharing") 2Do lets you collaborate by [sharing a list through iCloud](/docs/macos/icloud-list-sharing.md) with other 2Do users on macOS 14, iOS 18, or iPadOS 18 or later, using a version with sharing support. The owner chooses editing or view-only access. Task content, sections, and manual order are shared; list names, colors, list sort, Focus filters, and alert choices remain personal. See the [iPhone and iPad guide](/docs/ios/icloud-list-sharing.md) for those steps. Things lets you [send text copies of tasks and lists](https://culturedcode.com/things/support/articles/2803566/), but its sharing guide says it does not support live collaboration on those lists. 2Do's iCloud sharing is useful when you want other people to keep seeing new tasks, changed dates, and completed work after the invitation. 2Do tasks use floating local time by default. For a shared deadline that must mean the same moment in different places, use [Fixed Time Zone](/docs/macos/dates-and-durations.md#fixed-time). ## Task Sections and Apple Intelligence[​](#task-sections-and-apple-intelligence "Direct link to Task Sections and Apple Intelligence") On Mac, iPhone, and iPad, divide a regular list or the Inbox into [named sections](/docs/macos/task-sections.md), such as Bookings and Packing in a trip list. Arrange sections in the order you want; tasks within each section follow the list's sort. **Auto-Create Sections** uses Apple Intelligence to organize selected unfinished tasks or all unfinished, unsectioned tasks in a list. It reuses suitable existing sections and creates new ones where needed. **Auto-Name Section** names an existing section from its task titles. Both commands run on your device; organizing tasks also considers existing section names. They require a supported Mac, iPhone, or iPad running macOS 26, iOS 26, or iPadOS 26 or later, with Apple Intelligence enabled. See [sections and Apple Intelligence](/docs/macos/task-sections.md#apple-intelligence). 2Do also uses Apple Intelligence to set priorities for selected tasks with **Auto-Prioritize**, available on [Mac](/docs/macos/auto-prioritize.md) and [iPhone and iPad](/docs/ios/auto-prioritize.md) under the same device and OS requirements. Things 3 lets you create and name [headings inside projects](https://culturedcode.com/things/support/articles/2803577/). 2Do adds built-in Apple Intelligence commands for creating sections and naming them from existing tasks, and its sections are available in regular lists and the Inbox. ## Task Management & Sync Comparison[​](#task-management--sync-comparison "Direct link to Task Management & Sync Comparison") | Capability | 2Do | Things 3 | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------- | -------------------------------------------- | | [Projects with dates and tags for each sub-task](/docs/macos/projects-and-checklists.md) | **✓** | **✓** | | [Checklists](/docs/macos/projects-and-checklists.md#checklists) | **✓** | **✓** | | [Sub-tasks on any plain task](/docs/macos/projects-and-checklists.md) | *converts to a project* | *checklist items* | | [Named sections that divide a list](/docs/macos/task-sections.md) | **✓** *(Mac, iPhone and iPad; regular lists and the Inbox)* | **✓** *(headings inside projects)* | | [Natural Language Input: type dates, times, repeats, alarms, tags, lists, and priority into a new task's title](/docs/macos/natural-language-input.md#what-you-can-type) | **✓** *(Mac, iPhone and iPad)* | *dates only, in the date fields* | | [Add, find, and complete tasks by voice with Siri, no shortcut to set up](/docs/macos/siri-and-shortcuts.md#siri) | **✓** *(Mac, iPhone and iPad)* | **✓** | | [Siri AI on iOS 27 and macOS 27: create and edit tasks by talking in your own words](/docs/macos/siri-and-shortcuts.md#new-siri) | **✓** | **✓** | | [Tasks show up in Spotlight search and open in the app](/docs/macos/shortcuts-actions.md#spotlight) | **✓** *(Mac, iPhone and iPad)* | **✓** *(OS 27 or later)* | | [Tags](/docs/macos/tags.md) | **✓** | **✓** | | [Tag groups and pausable tags](/docs/macos/tags.md#tag-groups) | **✓** | *nested tags, no pausing* | | [Saved Smart Lists with a full search syntax](/docs/macos/smart-lists.md) | **✓** | | | [Typo-tolerant Soundex search, plus exact wildcard matching](/docs/macos/smart-lists.md#modes) | **✓** | | | [A dozen sort options, remembered separately for each list](/docs/macos/the-2do-window.md#sort-bar) | **✓** | *manual ordering only* | | [Combine tag filters with AND / OR / NOT](/docs/macos/tags.md) | **✓** | *basic* | | [One-click Focus Filter per list](/docs/macos/focus-filter.md) | **✓** | *via tag filters* | | [Filter by List Group, on its own or with a search](/docs/macos/lists-and-list-groups.md#list-groups) | **✓** | *via Areas* | | [Exclude any list from All, Today, or Done](/docs/macos/lists-and-list-groups.md#exclude-from-focus) | **✓** | | | [Hide any list from the sidebar, even built-in ones](/docs/macos/password-protection.md#hide-unwanted) | **✓** | *via collapsed Areas* | | [Jump Bars: find tasks, lists, and tags as you type](/docs/macos/search-and-jump-bars.md) | **✓** | *via Quick Find* | | [Preview a task with Spacebar and run its action from Quick Look](/docs/macos/task-editor.md#quick-look) | **✓** | *via task popover* | | [Press `P` to perform a task's action or `U` to open every link in its notes](/docs/macos/keyboard-shortcuts.md#action) | **✓** | *links via keyboard shortcut* | | [Quick Open: jump to any task or list from anywhere](/docs/macos/quick-open.md) | **✓** | **✓** | | [Section heat bars for navigation and task counts in sort groups](/docs/macos/the-2do-window.md#heat-bars) | **✓** | | | [Stars in addition to priorities](/docs/macos/stars-and-priorities.md) | **✓** | | | [Point at a task to set its priority or star without opening the editor](/docs/macos/stars-and-priorities.md#hover-priority) | **✓** | | | [Set dates, alarms, or recurrence with numbered presets (Option + digit)](/docs/macos/keyboard-shortcuts.md#picker-presets) | **✓** | *basic* | | [Single-key commands: defer, schedule, star, tag, move, and prioritise without modifiers](/docs/macos/multi-task-actions.md#shortcuts) | **✓** | *basic* | | [Jump to any editor field from the keyboard (dates, alerts, tags, action, recurrence, list)](/docs/macos/keyboard-shortcuts.md#editing) | **✓** | *basic* | | [Start dates and times in addition to due dates](/docs/macos/dates-and-durations.md) | **✓** | *deadlines are date-only* | | [Task durations (time estimates that show when to begin before a deadline)](/docs/macos/dates-and-durations.md#duration-due) | **✓** | | | [Repeat from due date or from completion](/docs/macos/repeating-tasks.md#repeat-from) | **✓** | **✓** | | [Custom repeat rules: every N days/weeks/months/years, chosen weekdays, the 15th, the last day, the second Tuesday](/docs/macos/repeating-tasks.md#custom) | **✓** | *basic* | | [Recurrence end conditions: stop after N occurrences or on a date](/docs/macos/repeating-tasks.md#custom) | **✓** | **✓** | | [Repeating tasks keep the same start and due times and the interval between them](/docs/macos/repeating-tasks.md#completion) | **✓** | *dates only, no due times* | | [Repeating projects and checklists reset their sub-tasks each cycle](/docs/macos/repeating-tasks.md#completion) | **✓** | **✓** | | [Edit one occurrence or all future ones](/docs/macos/repeating-tasks.md#editing) | **✓** | **✓** | | [Smart Scheduling: hide tasks until their start date, with an option to show them at any time](/docs/macos/focus-lists.md#smart-scheduling) | **✓** | *basic* | | [Multiple alarms per task](/docs/macos/alarms-and-nagging.md) | **✓** | | | [Repeating (nagging) alarm sounds until dismissed](/docs/macos/alarms-and-nagging.md#nagging) | **✓** | | | [2Do alarm window with snooze controls and the task's action](/docs/macos/alarms-and-nagging.md#alert-system) | **✓** | *notification snooze* | | [Silence alarms one list at a time](/docs/macos/alarms-and-nagging.md#list-alerts) | **✓** | | | [Silence 2Do alarms automatically with macOS Focus](/docs/macos/system-focus-filters.md) | **✓** | *via system settings* | | [Assign locations to tasks (Nearby view)](/docs/macos/nearby-locations.md) | **✓** | | | [Location-based alerts (iPhone / iPad)](/docs/macos/nearby-locations.md) | **✓** | | | [Task actions: call, message, email, visit, or open a link right from the task](/docs/macos/actions.md) | **✓** | *links in notes* | | [Picture and audio attachments](/docs/macos/task-editor.md#attachment) | **✓** | | | [Markdown notes](/docs/macos/notes-and-markdown.md) | **✓** | **✓** | | [Link to related tasks by typing their names in notes](/docs/macos/task-links.md) | **✓** | | | [Batch editing: tag, defer, schedule, or re-prioritise many tasks at once](/docs/macos/multi-task-actions.md) | **✓** | **✓** | | [System-wide Quick Entry on Mac](/docs/macos/quick-entry.md) | **✓** | **✓** | | [Calendar events shown alongside tasks](/docs/macos/calendar-integration.md) | **✓** | **✓** | | [Mini Calendar: filter by day or date range, see busy days as a heat map or dots, and drag tasks to defer them](/docs/macos/mini-calendar.md) | **✓** | | | [Email tasks to the app](/docs/macos/email-to-2do.md) | **✓** | **✓** | | [Choose a sync service: Dropbox, iCloud CalDAV, CalDAV, Reminders, Todoist, or Toodledo](/docs/macos/sync.md) | **✓** | | | [Exclude chosen lists from sync](/docs/macos/settings.md#sync-exclusions) | **✓** | *whole database only* | | [Defaults for new tasks (list, GTD Inbox, due date and time, and text from the clipboard)](/docs/macos/settings.md#tasks) | **✓** | *basic* | | [Automatic reminders for dated tasks, at the deadline or a chosen offset](/docs/macos/settings.md#automatic-alerts) | **✓** | | | [Choose when to hide or automatically delete completed tasks](/docs/macos/settings.md#completed-tasks) | **✓** | *basic* | | [Choose what sidebar counts and the Dock badge include (a dozen badge options)](/docs/macos/settings.md#counts) | **✓** | *basic* | | [Separate themes for Light and Dark mode](/docs/macos/settings.md#appearance-theme) | **✓** | *basic* | | [Two-way Apple Reminders sync](/docs/macos/sync-with-reminders.md) | **✓** | *import only* | | [Collaboration through shared lists](/docs/macos/icloud-list-sharing.md) | **✓** *(iCloud; supported Mac, iPhone, iPad)* | *text copies, not a shared live list* | | [Share a list with others over the local network](/docs/macos/list-sharing.md) | **✓** | | | [Claude / AI integration (MCP)](/docs/macos/mcp.md) | **✓** | | | [Auto-Prioritize selected tasks with Apple Intelligence on your device (Mac, iPhone and iPad)](/docs/ios/auto-prioritize.md) | **✓** | | | [AppleScript automation](/docs/macos/applescript.md) | **✓** | **✓** | | [Shortcuts app support](/docs/macos/shortcuts-actions.md) | **✓** | **✓** | | [Password protection with Touch ID (lists or whole app)](/docs/macos/password-protection.md) | **✓** | *whole app via iOS app lock* | | [Print lists with your choice of fields and detail](/docs/macos/getting-started.md#printing) | **✓** | *basic* | | [Export whole lists or selected tasks as .ics calendar or .csv spreadsheet files](/docs/macos/import-and-export.md#export-ics) | **✓** | *raw database file only, not human-readable* | | [Import to-dos from any .ics calendar file, hierarchy and alarms included](/docs/macos/import-and-export.md#import-ics) | **✓** | | | [Automatic local backups, on a schedule you choose](/docs/macos/backups.md) | **✓** | *daily, last ten days* | | [Restore individual lists from automatic backups](/docs/macos/backups.md) | **✓** | | | Native Mac app | **✓** | **✓** | | [Android app](/android.md) | **✓** | | | [One-time purchase available](/store.md) | **✓** | **✓** | ## Where Things 3 May Be Better[​](#where-things-3-may-be-better "Direct link to Where Things 3 May Be Better") * You prefer a simple workflow and its award-winning design. * You want free sync through Things Cloud and don't need to choose another service. * You'd rather have fewer options than more. * You do not need built-in CSV or calendar export. If you later move to 2Do, it can [import your Things data](/docs/macos/import-and-export.md#things). ## Where 2Do May Be Better[​](#where-2do-may-be-better "Direct link to Where 2Do May Be Better") * You want to arrange your own structure, combining [lists, projects, checklists, and sub-tasks](/docs/macos/projects-and-checklists.md) however suits the work. * You want to save searches as [Smart Lists](/docs/macos/smart-lists.md) using a full search syntax. * Choose from [a dozen sort options, remembered per list](/docs/macos/the-2do-window.md#sort-bar), and narrow the results with a [one-click Focus Filter](/docs/macos/focus-filter.md), [tag filters](/docs/macos/tags.md), or [List Group filters](/docs/macos/lists-and-list-groups.md#list-groups). * You can [exclude any list from All, Today, or Done](/docs/macos/lists-and-list-groups.md#exclude-from-focus), so Someday lists and background chores stay out of your daily views. * You need reminders that persist, with [several alarms on one task and repeat sounds that continue until you act](/docs/macos/alarms-and-nagging.md). * You want to choose your sync service: [Dropbox, iCloud CalDAV, CalDAV, Apple Reminders, Todoist, or Toodledo](/docs/macos/sync.md). * You can [exclude chosen lists from sync](/docs/macos/settings.md#sync-exclusions) and they stay on this device only. * Type a new task the way you would say it and 2Do fills in the date, time, repeat, alarm, tags, list, and priority as you type, in ten languages: see [Natural Language Input](/docs/macos/natural-language-input.md). Things 3 reads natural-language dates in its own date fields instead. * [Siri works with 2Do directly](/docs/macos/siri-and-shortcuts.md#siri): add, find, and complete tasks with its supported Siri commands, and on iOS 27 and macOS 27 [describe changes in your own words](/docs/macos/siri-and-shortcuts.md#new-siri). Tasks added to Reminders from an Apple Watch, CarPlay, or HomePod can sync to 2Do through [two-way Apple Reminders sync](/docs/macos/sync-with-reminders.md). * Use [single-key commands](/docs/macos/multi-task-actions.md#shortcuts) to defer (`D`), schedule (`K`), star (`S`), tag (`L`), and move (`M`) tasks, while [shortcuts jump to any editor field](/docs/macos/keyboard-shortcuts.md#editing) and [Option plus a digit selects a preset](/docs/macos/keyboard-shortcuts.md#picker-presets). * Press Spacebar for a [Quick Look preview](/docs/macos/task-editor.md#quick-look) of notes, dates, alarms, and attachments, with the task's action one click away. * Attach a [Call, Message, Email, Visit, or Browse action](/docs/macos/actions.md) to a task and perform it with one click. * You capture by email with [Mail to 2Do](/docs/macos/email-to-2do.md), or [share a list through iCloud](/docs/macos/icloud-list-sharing.md) with family or colleagues. * You want to [manage tasks with Claude](/docs/macos/mcp.md) or automate with [AppleScript](/docs/macos/applescript.md) and [Shortcuts](/docs/macos/shortcuts-actions.md). * You want to protect lists with [a password and Touch ID](/docs/macos/password-protection.md). * You also use Android, where 2Do is available too. Moving over? See [Import from Things](/docs/macos/import-and-export.md#things) for details about how tasks are imported, or read the [FAQ](/docs/faqs/import-from-things.md). ## Common Questions * Can I import my Things 3 tasks into 2Do? Yes, on the Mac, when Things is installed. Choose File > Import > From Things, and your Areas arrive as List Groups with each Project as its own list and its headings as sections. To-dos, checklists, tags, dates, reminders, and repeats come across intact. * Do 2Do and Things 3 both offer a one-time purchase? Yes, both do. 2Do for Mac from our store is a perpetual license that includes 18 months of updates, and it is also sold as a subscription on the Mac App Store and through Setapp. * Can I choose where 2Do stores my tasks? Yes. 2Do keeps your tasks on your device and syncs through the service you pick: iCloud, Dropbox, iCloud CalDAV, custom CalDAV, Apple Reminders, Todoist, or Toodledo. Things 3 syncs through Things Cloud only. * Does 2Do run on Android? Yes. 2Do has an Android app as well as Mac, iPhone, and iPad apps. Things 3 is Apple only. ## Official Links[​](#official-links "Direct link to Official Links") * [Things 3 official page](https://culturedcode.com/things/) * [Things 3 support: headings in projects](https://culturedcode.com/things/support/articles/2803577/) * [2Do for Mac](/index.md) * [2Do documentation](/docs/macos/getting-started.md) Want to compare a few more options before deciding? Browse all [2Do comparison guides](/compare.md). --- # 2Do vs TickTick TickTick combines tasks, a calendar, a habit tracker, and a Pomodoro timer, with apps for desktop, mobile, the web, and watches. 2Do focuses on task management on Mac, iPhone, iPad, and Android, storing tasks on your device and syncing through a service you choose. TickTick may suit you if you want those extra tools in one app; 2Do may suit you if task organization, scheduling, and control over sync matter more. Last reviewed: October 17, 2026. ## At a Glance[​](#at-a-glance "Direct link to At a Glance") | Criteria | 2Do | TickTick | | ------------- | ------------------------------------------------------------------------------------ | ----------------------------------------------------------------- | | Primary model | Flexible lists, projects, and checklists, stored locally and synced where you choose | A cloud suite: tasks, calendar, habits, and focus timers | | Best fit | Power users on Apple platforms who want depth and data control | Cross-platform users who want one app for tasks, habits, and time | | Strength | Feature depth, scheduling, alarms, and sync choice | Broad platform support, habit tracking, and focus timers | | Trade-off | No web client | Many features require Premium; the desktop app is not native | Try it alongside 2Do and TickTick do not sync with each other. You can try them side by side with the [free trial of 2Do for Mac](/store.md) before deciding which suits you. ## Collaboration and List Sharing[​](#sharing-with-other-people "Direct link to Collaboration and List Sharing") 2Do lets you collaborate by [sharing a list through iCloud](/docs/macos/icloud-list-sharing.md) with other 2Do users on macOS 14, iOS 18, or iPadOS 18 or later, using a version with sharing support. The owner chooses editing or view-only access. Task content, sections, and manual order are shared; list names, colors, list sort, Focus filters, and alert choices remain personal. See the [iPhone and iPad guide](/docs/ios/icloud-list-sharing.md) for those steps. TickTick supports [shared lists, task assignment, and comments](https://help.ticktick.com/articles/7055792921664028672). Those suit a group that wants named assignees or uses TickTick's web and other platform apps. 2Do shares task content through iCloud on supported Apple devices, with editing or view-only access and each person's own view settings; it does not add assignees or comment threads. 2Do tasks use floating local time by default. For a shared deadline that must mean the same moment in different places, use [Fixed Time Zone](/docs/macos/dates-and-durations.md#fixed-time). ## Task Sections and Apple Intelligence[​](#task-sections-and-apple-intelligence "Direct link to Task Sections and Apple Intelligence") On Mac, iPhone, and iPad, divide a regular list or the Inbox into [named sections](/docs/macos/task-sections.md), such as Bookings and Packing in a trip list. Arrange sections in the order you want; tasks within each section follow the list's sort. **Auto-Create Sections** uses Apple Intelligence to organize selected unfinished tasks or all unfinished, unsectioned tasks in a list. It reuses suitable existing sections and creates new ones where needed. **Auto-Name Section** names an existing section from its task titles. Both commands run on your device; organizing tasks also considers existing section names. They require a supported Mac, iPhone, or iPad running macOS 26, iOS 26, or iPadOS 26 or later, with Apple Intelligence enabled. See [sections and Apple Intelligence](/docs/macos/task-sections.md#apple-intelligence). 2Do also uses Apple Intelligence to set priorities for selected tasks with **Auto-Prioritize**, available on [Mac](/docs/macos/auto-prioritize.md) and [iPhone and iPad](/docs/ios/auto-prioritize.md) under the same device and OS requirements. TickTick also supports sections within lists, and its [AI Assistant](https://ticktick.com/public/changelog/en.html) can create tasks, break down projects, and organize lists on the web. 2Do provides dedicated section commands that run on your supported Apple device and use task titles to organize the list. ## Task Management & Sync Comparison[​](#task-management--sync-comparison "Direct link to Task Management & Sync Comparison") | Capability | 2Do | TickTick | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------- | ---------------------------------------------------------- | | [Projects with dates and tags for each sub-task](/docs/macos/projects-and-checklists.md) | **✓** | **✓** | | [Checklists](/docs/macos/projects-and-checklists.md#checklists) | **✓** | **✓** | | [Sub-tasks on any plain task](/docs/macos/projects-and-checklists.md) | *converts to a project* | **✓** | | [Named sections that divide a list](/docs/macos/task-sections.md) | **✓** *(Mac, iPhone and iPad; regular lists and the Inbox)* | **✓** *(inside lists)* | | Kanban (board) view | | **✓** | | [Natural Language Input: type dates, times, repeats, alarms, tags, lists, and priority into a new task's title](/docs/macos/natural-language-input.md#what-you-can-type) | **✓** *(Mac, iPhone and iPad)* | **✓** | | [Add, find, and complete tasks by voice with Siri, no shortcut to set up](/docs/macos/siri-and-shortcuts.md#siri) | **✓** *(Mac, iPhone and iPad)* | **✓** *(iPhone and iPad only, after enabling in Settings)* | | [Tags](/docs/macos/tags.md) | **✓** | **✓** | | [Tag groups and pausable tags](/docs/macos/tags.md#tag-groups) | **✓** | *nested tags, no pausing* | | [Saved Smart Lists with a full search syntax](/docs/macos/smart-lists.md) | **✓** | **✓** *(custom filters, paid plans)* | | [Typo-tolerant Soundex search, plus exact wildcard matching](/docs/macos/smart-lists.md#modes) | **✓** | | | [A dozen sort options, remembered separately for each list](/docs/macos/the-2do-window.md#sort-bar) | **✓** | **✓** | | [Combine tag filters with AND / OR / NOT](/docs/macos/tags.md) | **✓** | **✓** *(in filters)* | | [One-click Focus Filter per list](/docs/macos/focus-filter.md) | **✓** | *via filters* | | [Filter by List Group, on its own or with a search](/docs/macos/lists-and-list-groups.md#list-groups) | **✓** | *via folders and filters* | | [Exclude any list from All, Today, or Done](/docs/macos/lists-and-list-groups.md#exclude-from-focus) | **✓** | *basic* | | [Hide any list from the sidebar, even built-in ones](/docs/macos/password-protection.md#hide-unwanted) | **✓** | *basic* | | [Jump Bars: find tasks, lists, and tags as you type](/docs/macos/search-and-jump-bars.md) | **✓** | *via search* | | [Preview a task with Spacebar and run its action from Quick Look](/docs/macos/task-editor.md#quick-look) | **✓** | *via task details* | | [Press `P` to perform a task's action or `U` to open every link in its notes](/docs/macos/keyboard-shortcuts.md#action) | **✓** | | | [Quick Open: jump to any task or list from anywhere](/docs/macos/quick-open.md) | **✓** | *search only* | | [Section heat bars for navigation and task counts in sort groups](/docs/macos/the-2do-window.md#heat-bars) | **✓** | | | [Stars in addition to priorities](/docs/macos/stars-and-priorities.md) | **✓** | *priorities only* | | [Point at a task to set its priority or star without opening the editor](/docs/macos/stars-and-priorities.md#hover-priority) | **✓** | *priority via batch toolbar* | | [Set dates, alarms, or recurrence with numbered presets (Option + digit)](/docs/macos/keyboard-shortcuts.md#picker-presets) | **✓** | *basic* | | [Single-key commands: defer, schedule, star, tag, move, and prioritise without modifiers](/docs/macos/multi-task-actions.md#shortcuts) | **✓** | *basic* | | [Jump to any editor field from the keyboard (dates, alerts, tags, action, recurrence, list)](/docs/macos/keyboard-shortcuts.md#editing) | **✓** | *basic* | | [Start dates and times in addition to due dates](/docs/macos/dates-and-durations.md) | **✓** | **✓** *(date ranges)* | | [Task durations (time estimates that show when to begin before a deadline)](/docs/macos/dates-and-durations.md#duration-due) | **✓** | **✓** *(time spans)* | | [Repeat from due date or from completion](/docs/macos/repeating-tasks.md#repeat-from) | **✓** | **✓** | | [Custom repeat rules: every N days/weeks/months/years, chosen weekdays, the 15th, the last day, the second Tuesday](/docs/macos/repeating-tasks.md#custom) | **✓** | **✓** | | [Recurrence end conditions: stop after N occurrences or on a date](/docs/macos/repeating-tasks.md#custom) | **✓** | **✓** | | [Repeating tasks keep the same start and due times and the interval between them](/docs/macos/repeating-tasks.md#completion) | **✓** | *basic* | | [Repeating projects and checklists reset their sub-tasks each cycle](/docs/macos/repeating-tasks.md#completion) | **✓** | *basic* | | [Edit one occurrence or all future ones](/docs/macos/repeating-tasks.md#editing) | **✓** | *basic* | | [Smart Scheduling: hide tasks until their start date, with an option to show them at any time](/docs/macos/focus-lists.md#smart-scheduling) | **✓** | *via start dates and filters* | | [Multiple alarms per task](/docs/macos/alarms-and-nagging.md) | **✓** | **✓** | | [Repeating (nagging) alarm sounds until dismissed](/docs/macos/alarms-and-nagging.md#nagging) | **✓** | **✓** *(Constant Reminder, mobile)* | | [2Do alarm window with snooze controls and the task's action](/docs/macos/alarms-and-nagging.md#alert-system) | **✓** | *constant reminder on iOS* | | [Silence alarms one list at a time](/docs/macos/alarms-and-nagging.md#list-alerts) | **✓** | *shared lists only* | | [Silence 2Do alarms automatically with macOS Focus](/docs/macos/system-focus-filters.md) | **✓** | *via system settings* | | [Assign locations to tasks (Nearby view)](/docs/macos/nearby-locations.md) | **✓** | **✓** *(paid plans)* | | [Location-based alerts (iPhone / iPad)](/docs/macos/nearby-locations.md) | **✓** | **✓** *(paid plans)* | | [Task actions: call, message, email, visit, or open a link right from the task](/docs/macos/actions.md) | **✓** | *links in notes* | | [Picture and audio attachments](/docs/macos/task-editor.md#attachment) | **✓** | **✓** *(upload quotas on free)* | | [Markdown notes](/docs/macos/notes-and-markdown.md) | **✓** | **✓** | | [Link to related tasks by typing their names in notes](/docs/macos/task-links.md) | **✓** | | | [Batch editing: tag, defer, schedule, or re-prioritise many tasks at once](/docs/macos/multi-task-actions.md) | **✓** | **✓** | | [System-wide Quick Entry on Mac](/docs/macos/quick-entry.md) | **✓** | **✓** | | [Calendar events shown alongside tasks](/docs/macos/calendar-integration.md) | **✓** | **✓** *(paid plans)* | | [Mini Calendar: filter by day or date range, see busy days as a heat map or dots, and drag tasks to defer them](/docs/macos/mini-calendar.md) | **✓** | **✓** *(calendar views, paid plans)* | | [Email tasks to the app](/docs/macos/email-to-2do.md) | **✓** | **✓** | | Habit tracker built in | | **✓** | | Pomodoro / focus timer built in | | **✓** | | Eisenhower priority matrix | | **✓** | | Task assignment and comments in shared lists | | **✓** | | Windows, web, and Linux apps | | **✓** | | Free plan available | | **✓** | | [Choose a sync service: Dropbox, iCloud CalDAV, CalDAV, Reminders, Todoist, or Toodledo](/docs/macos/sync.md) | **✓** | | | [Exclude chosen lists from sync](/docs/macos/settings.md#sync-exclusions) | **✓** | | | [Defaults for new tasks (list, GTD Inbox, due date and time, and text from the clipboard)](/docs/macos/settings.md#tasks) | **✓** | *basic* | | [Automatic reminders for dated tasks, at the deadline or a chosen offset](/docs/macos/settings.md#automatic-alerts) | **✓** | **✓** | | [Choose when to hide or automatically delete completed tasks](/docs/macos/settings.md#completed-tasks) | **✓** | *basic* | | [Choose what sidebar counts and the Dock badge include (a dozen badge options)](/docs/macos/settings.md#counts) | **✓** | *basic* | | [Separate themes for Light and Dark mode](/docs/macos/settings.md#appearance-theme) | **✓** | **✓** *(paid themes)* | | [Two-way Apple Reminders sync](/docs/macos/sync-with-reminders.md) | **✓** | *one-way import* | | [Collaboration through shared lists](/docs/macos/icloud-list-sharing.md) | **✓** *(iCloud; supported Mac, iPhone, iPad)* | **✓** *(TickTick lists)* | | [Share a list with others over the local network](/docs/macos/list-sharing.md) | **✓** | | | [Claude / AI integration (MCP)](/docs/macos/mcp.md) | **✓** | **✓** | | [Auto-Prioritize selected tasks with Apple Intelligence on your device (Mac, iPhone and iPad)](/docs/ios/auto-prioritize.md) | **✓** | | | [AppleScript automation](/docs/macos/applescript.md) | **✓** | | | [Shortcuts app support](/docs/macos/shortcuts-actions.md) | **✓** | **✓** | | [Password protection with Touch ID (lists or whole app)](/docs/macos/password-protection.md) | **✓** | *whole app via iOS app lock* | | [Print lists with your choice of fields and detail](/docs/macos/getting-started.md#printing) | **✓** | *basic* | | [Export whole lists or selected tasks as .ics calendar or .csv spreadsheet files](/docs/macos/import-and-export.md#export-ics) | **✓** | *CSV backup* | | [Import to-dos from any .ics calendar file, hierarchy and alarms included](/docs/macos/import-and-export.md#import-ics) | **✓** | *iCal import* | | [Automatic local backups, on a schedule you choose](/docs/macos/backups.md) | **✓** | *automatic cloud backups; manual export* | | [Restore individual lists from automatic backups](/docs/macos/backups.md) | **✓** | | | [Works fully offline, no account required](/docs/macos/sync.md) | **✓** | | | Native Mac app | **✓** | *cross-platform app* | | [Android app](/android.md) | **✓** | **✓** | | [One-time purchase available](/store.md) | **✓** | *subscription* | ## Where TickTick May Be Better[​](#where-ticktick-may-be-better "Direct link to Where TickTick May Be Better") * You want one app for tasks, habits, and focus sessions: the built-in habit tracker, Pomodoro timer, and Eisenhower matrix have no 2Do equivalents. * You use the web, Windows, Linux, Android, or a smartwatch and want the same app on those platforms. * You collaborate on shared lists with assignees. * On Premium, calendar views show subscribed calendars and let you drag tasks onto your schedule. * You want a capable free plan before paying anything. ## Where 2Do May Be Better[​](#where-2do-may-be-better "Direct link to Where 2Do May Be Better") * The [one-time Mac purchase](/store.md) includes 2Do's Mac features shown here. TickTick requires Premium for filters, calendar views, themes, and some other features. * Set [start dates and times](/docs/macos/dates-and-durations.md), and use [Smart Scheduling](/docs/macos/focus-lists.md#smart-scheduling) to hide tasks until they start. [Repeating tasks preserve the interval between start and due dates](/docs/macos/repeating-tasks.md#completion), and you can [edit individual occurrences](/docs/macos/repeating-tasks.md#editing). * On Mac, use [several alarms per task](/docs/macos/alarms-and-nagging.md), [repeat sounds](/docs/macos/alarms-and-nagging.md#nagging), [2Do’s alarm window](/docs/macos/alarms-and-nagging.md#alert-system), [per-list silencing](/docs/macos/alarms-and-nagging.md#list-alerts), and [macOS Focus integration](/docs/macos/system-focus-filters.md). * Find tasks with [Smart Lists that use a full search syntax](/docs/macos/smart-lists.md), [typo-tolerant search](/docs/macos/smart-lists.md#modes), [tag filtering with AND / OR / NOT](/docs/macos/tags.md), and a [one-click Focus Filter](/docs/macos/focus-filter.md). * Attach a [Call, Message, Email, Visit, or Browse action](/docs/macos/actions.md) to a task and run it with one click, or the `P` key. * 2Do [works offline without an account](/docs/macos/sync.md). You can [back up locally and restore individual lists](/docs/macos/backups.md), [protect lists with a password and Touch ID](/docs/macos/password-protection.md), and [exclude chosen lists from sync](/docs/macos/settings.md#sync-exclusions). * Choose your sync service: [Dropbox, iCloud CalDAV, CalDAV, Apple Reminders, Todoist, or Toodledo](/docs/macos/sync.md). * [Siri works with 2Do directly](/docs/macos/siri-and-shortcuts.md#siri) on the Mac, iPhone, and iPad: add, find, and complete tasks with its supported Siri commands, and on iOS 27 and macOS 27 [describe changes in your own words](/docs/macos/siri-and-shortcuts.md#new-siri). Tasks added to Reminders from an Apple Watch, CarPlay, or HomePod can sync to 2Do through [two-way Reminders sync](/docs/macos/sync-with-reminders.md). * It's a [native Mac app](/index.md), with [AppleScript](/docs/macos/applescript.md), [Shortcuts](/docs/macos/shortcuts-actions.md), and a built-in [MCP server for Claude and other AI agents](/docs/macos/mcp.md). ## Common Questions * Is 2Do a subscription like TickTick? No. 2Do for Mac from our store is a one-time purchase with a perpetual license, and the features listed on this page are not split across plan tiers. TickTick is a subscription with a free plan. * Does 2Do run on Windows or in a browser? No. 2Do is a native app for Mac, iPhone, iPad, and Android. TickTick is the choice if you need Windows, Linux, or web access. * Does 2Do work offline? Yes. 2Do works fully offline with no account required, and your tasks stay on your device unless you choose a sync service: Dropbox, iCloud, iCloud CalDAV, custom CalDAV, Apple Reminders, Todoist, or Toodledo. * Does 2Do include a habit tracker or a Pomodoro timer? No. The habit tracker, Pomodoro timer, and Eisenhower matrix are TickTick features with no 2Do equivalent. ## Official Links[​](#official-links "Direct link to Official Links") * [TickTick official page](https://ticktick.com/) * [TickTick Help: folders, lists, and sections](https://help.ticktick.com/articles/7055792921664028672) * [2Do for Mac](/index.md) * [2Do documentation](/docs/macos/getting-started.md) Want to compare a few more options before deciding? Browse all [2Do comparison guides](/compare.md). --- # 2Do vs Todoist **2Do syncs two-way with Todoist**, so you can use both apps. Todoist offers cloud sync, collaboration, and apps for a wide range of platforms. 2Do stores tasks on your device and provides detailed organization, scheduling, and alarms on Mac, iPhone, iPad, and Android. Connect your Todoist account to manage the same tasks in either app, subject to the sync limitations below. Last reviewed: October 17, 2026. ## At a Glance[​](#at-a-glance "Direct link to At a Glance") | Criteria | 2Do | Todoist | | ------------- | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------- | | Primary model | Flexible lists, projects, and checklists, stored locally and synced where you choose | A cloud service with desktop, mobile, and web apps | | Best fit | Power users on Apple platforms who want depth and data control | Cross-platform users and teams who share projects | | Strength | Feature depth, scheduling, alarms, and sync choice | Broad platform support, collaboration, and natural-language task entry | | Trade-off | No web client | Fewer scheduling options; several features require a paid plan | You can have both Connect 2Do to your Todoist account (**Settings > Sync > Setup → Todoist**) to sync projects, tasks, sub-task hierarchy, tags, due dates, durations, and stars, plus sections on Mac, iPhone, and iPad. Use Todoist on the web or at work and 2Do on your own devices. See [Sync with Todoist](/docs/macos/sync-with-todoist.md) for setup and details about which properties sync. ## Collaboration and List Sharing[​](#sharing-with-other-people "Direct link to Collaboration and List Sharing") 2Do lets you collaborate by [sharing a list through iCloud](/docs/macos/icloud-list-sharing.md) with other 2Do users on macOS 14, iOS 18, or iPadOS 18 or later, using a version with sharing support. The owner chooses editing or view-only access. Task content, sections, and manual order are shared; list names, colors, list sort, Focus filters, and alert choices remain personal. See the [iPhone and iPad guide](/docs/ios/icloud-list-sharing.md) for those steps. Todoist's [shared projects](https://www.todoist.com/help/todoist/features/collaborate-with-friends-or-family-in-todoist-tzkGUy) also include task assignment and comments. Choose it when you need those features or web access. 2Do's iCloud list sharing provides shared task content with personal views, without assignees or comment threads. An iCloud shared list is excluded from 2Do's ordinary Todoist sync; it does not also appear as a Todoist project. 2Do tasks use floating local time by default. For a shared deadline that must mean the same moment in different places, use [Fixed Time Zone](/docs/macos/dates-and-durations.md#fixed-time). ## Task Sections and Apple Intelligence[​](#task-sections-and-apple-intelligence "Direct link to Task Sections and Apple Intelligence") On Mac, iPhone, and iPad, divide a regular list or the Inbox into [named sections](/docs/macos/task-sections.md), such as Bookings and Packing in a trip list. Arrange sections in the order you want; tasks within each section follow the list's sort. **Auto-Create Sections** uses Apple Intelligence to organize selected unfinished tasks or all unfinished, unsectioned tasks in a list. It reuses suitable existing sections and creates new ones where needed. **Auto-Name Section** names an existing section from its task titles. Both commands run on your device; organizing tasks also considers existing section names. They require a supported Mac, iPhone, or iPad running macOS 26, iOS 26, or iPadOS 26 or later, with Apple Intelligence enabled. See [sections and Apple Intelligence](/docs/macos/task-sections.md#apple-intelligence). 2Do also uses Apple Intelligence to set priorities for selected tasks with **Auto-Prioritize**, available on [Mac](/docs/macos/auto-prioritize.md) and [iPhone and iPad](/docs/ios/auto-prioritize.md) under the same device and OS requirements. Todoist supports [sections inside projects](https://www.todoist.com/help/todoist/features/introduction-to-sections-rOrK0aEn), and [Todoist Assist](https://www.todoist.com/help/todoist/todoist-and-ai/introduction-to-todoist-assist-KgPP22q5O) provides AI tools for tasks, filters, and email. In 2Do, the section commands work directly on existing task titles. Section names, order, and task membership sync with Todoist; descriptions stay in 2Do. ## Task Management & Sync Comparison[​](#task-management--sync-comparison "Direct link to Task Management & Sync Comparison") | Capability | 2Do | Todoist | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- | ----------------------------------------------------- | | [Projects with dates and tags for each sub-task](/docs/macos/projects-and-checklists.md) | **✓** | **✓** | | [Checklists](/docs/macos/projects-and-checklists.md#checklists) | **✓** | **✓** | | [Sub-tasks on any plain task](/docs/macos/projects-and-checklists.md) | *converts to a project* | **✓** | | [Named sections that divide a list](/docs/macos/task-sections.md) | **✓** *(Mac, iPhone and iPad; regular lists and the Inbox, synced with Todoist's sections)* | **✓** *(inside projects)* | | [Natural Language Input: type dates, times, repeats, alarms, tags, lists, and priority into a new task's title](/docs/macos/natural-language-input.md#what-you-can-type) | **✓** *(Mac, iPhone and iPad)* | **✓** | | [Add, find, and complete tasks by voice with Siri, no shortcut to set up](/docs/macos/siri-and-shortcuts.md#siri) | **✓** *(Mac, iPhone and iPad)* | **✓** *(iPhone and iPad only)* | | [Siri AI on iOS 27 and macOS 27: create and edit tasks by talking in your own words](/docs/macos/siri-and-shortcuts.md#new-siri) | **✓** | **✓** *(iPhone and iPad only)* | | [Tags](/docs/macos/tags.md) | **✓** | **✓** | | [Tag groups and pausable tags](/docs/macos/tags.md#tag-groups) | **✓** | | | [Saved Smart Lists with a full search syntax](/docs/macos/smart-lists.md) | **✓** | **✓** *(filters)* | | [Typo-tolerant Soundex search, plus exact wildcard matching](/docs/macos/smart-lists.md#modes) | **✓** | *wildcards only* | | [A dozen sort options, remembered separately for each list](/docs/macos/the-2do-window.md#sort-bar) | **✓** | *basic* | | [Combine tag filters with AND / OR / NOT](/docs/macos/tags.md) | **✓** | **✓** *(in filter queries)* | | [One-click Focus Filter per list](/docs/macos/focus-filter.md) | **✓** | *via view filters* | | [Filter by List Group, on its own or with a search](/docs/macos/lists-and-list-groups.md#list-groups) | **✓** | *via filters* | | [Exclude any list from All, Today, or Done](/docs/macos/lists-and-list-groups.md#exclude-from-focus) | **✓** | *via filters* | | [Hide any list from the sidebar, even built-in ones](/docs/macos/password-protection.md#hide-unwanted) | **✓** | *archive only* | | [Jump Bars: find tasks, lists, and tags as you type](/docs/macos/search-and-jump-bars.md) | **✓** | *via search* | | [Preview a task with Spacebar and run its action from Quick Look](/docs/macos/task-editor.md#quick-look) | **✓** | *via task view* | | [Press `P` to perform a task's action or `U` to open every link in its notes](/docs/macos/keyboard-shortcuts.md#action) | **✓** | | | [Quick Open: jump to any task or list from anywhere](/docs/macos/quick-open.md) | **✓** | **✓** | | [Section heat bars for navigation and task counts in sort groups](/docs/macos/the-2do-window.md#heat-bars) | **✓** | | | [Stars in addition to priorities](/docs/macos/stars-and-priorities.md) | **✓** | *priorities only* | | [Point at a task to set its priority or star without opening the editor](/docs/macos/stars-and-priorities.md#hover-priority) | **✓** | *priority via 1–4 shortcuts* | | [Set dates, alarms, or recurrence with numbered presets (Option + digit)](/docs/macos/keyboard-shortcuts.md#picker-presets) | **✓** | *basic* | | [Single-key commands: defer, schedule, star, tag, move, and prioritise without modifiers](/docs/macos/multi-task-actions.md#shortcuts) | **✓** | **✓** | | [Jump to any editor field from the keyboard (dates, alerts, tags, action, recurrence, list)](/docs/macos/keyboard-shortcuts.md#editing) | **✓** | *basic* | | [Start dates and times in addition to due dates](/docs/macos/dates-and-durations.md) | **✓** | *scheduled date plus date-only deadline (paid plans)* | | [Task durations (time estimates that show when to begin before a deadline)](/docs/macos/dates-and-durations.md#duration-due) | **✓** | **✓** | | [Repeat from due date or from completion](/docs/macos/repeating-tasks.md#repeat-from) | **✓** | **✓** *(every!)* | | [Custom repeat rules: every N days/weeks/months/years, chosen weekdays, the 15th, the last day, the second Tuesday](/docs/macos/repeating-tasks.md#custom) | **✓** | **✓** *(typed as text)* | | [Recurrence end conditions: stop after N occurrences or on a date](/docs/macos/repeating-tasks.md#custom) | **✓** | **✓** *(until / for)* | | [Repeating tasks keep the same start and due times and the interval between them](/docs/macos/repeating-tasks.md#completion) | **✓** | *single date only* | | [Repeating projects and checklists reset their sub-tasks each cycle](/docs/macos/repeating-tasks.md#completion) | **✓** | *basic* | | [Edit one occurrence or all future ones](/docs/macos/repeating-tasks.md#editing) | **✓** | *basic* | | [Smart Scheduling: hide tasks until their start date, with an option to show them at any time](/docs/macos/focus-lists.md#smart-scheduling) | **✓** | | | [Multiple alarms per task](/docs/macos/alarms-and-nagging.md) | **✓** | **✓** *(paid plans)* | | [Repeating (nagging) alarm sounds until dismissed](/docs/macos/alarms-and-nagging.md#nagging) | **✓** | *urgent alarms on iOS (paid plans)* | | [2Do alarm window with snooze controls and the task's action](/docs/macos/alarms-and-nagging.md#alert-system) | **✓** | *urgent alarms on iOS (paid plans)* | | [Silence alarms one list at a time](/docs/macos/alarms-and-nagging.md#list-alerts) | **✓** | | | [Silence 2Do alarms automatically with macOS Focus](/docs/macos/system-focus-filters.md) | **✓** | *via system settings* | | [Assign locations to tasks (Nearby view)](/docs/macos/nearby-locations.md) | **✓** | *location reminders, paid plans* | | [Location-based alerts (iPhone / iPad)](/docs/macos/nearby-locations.md) | **✓** | **✓** *(paid plans)* | | [Task actions: call, message, email, visit, or open a link right from the task](/docs/macos/actions.md) | **✓** | *links in descriptions* | | [Picture and audio attachments](/docs/macos/task-editor.md#attachment) | **✓** | **✓** *(via comments)* | | [Markdown notes](/docs/macos/notes-and-markdown.md) | **✓** | **✓** | | [Link to related tasks by typing their names in notes](/docs/macos/task-links.md) | **✓** | | | [Batch editing: tag, defer, schedule, or re-prioritise many tasks at once](/docs/macos/multi-task-actions.md) | **✓** | **✓** | | [System-wide Quick Entry on Mac](/docs/macos/quick-entry.md) | **✓** | **✓** | | [Calendar events shown alongside tasks](/docs/macos/calendar-integration.md) | **✓** | *basic* | | [Mini Calendar: filter by day or date range, see busy days as a heat map or dots, and drag tasks to defer them](/docs/macos/mini-calendar.md) | **✓** | *calendar view, paid plans* | | [Email tasks to the app](/docs/macos/email-to-2do.md) | **✓** | **✓** | | Task assignment and comment threads | | **✓** | | Windows, web, and Linux apps | | **✓** | | Free plan available | | **✓** | | [Choose a sync service: Dropbox, iCloud CalDAV, CalDAV, Reminders, **Todoist**, or Toodledo](/docs/macos/sync.md) | **✓** | | | [Exclude chosen lists from sync](/docs/macos/settings.md#sync-exclusions) | **✓** | | | [Defaults for new tasks (list, GTD Inbox, due date and time, and text from the clipboard)](/docs/macos/settings.md#tasks) | **✓** | *basic* | | [Automatic reminders for dated tasks, at the deadline or a chosen offset](/docs/macos/settings.md#automatic-alerts) | **✓** | **✓** | | [Choose when to hide or automatically delete completed tasks](/docs/macos/settings.md#completed-tasks) | **✓** | *basic* | | [Choose what sidebar counts and the Dock badge include (a dozen badge options)](/docs/macos/settings.md#counts) | **✓** | *basic* | | [Separate themes for Light and Dark mode](/docs/macos/settings.md#appearance-theme) | **✓** | **✓** | | [Two-way Apple Reminders sync](/docs/macos/sync-with-reminders.md) | **✓** | | | [Collaboration through shared lists](/docs/macos/icloud-list-sharing.md) | **✓** *(iCloud; supported Mac, iPhone, iPad)* | **✓** *(Todoist projects)* | | [Share a list with others over the local network](/docs/macos/list-sharing.md) | **✓** | | | [Claude / AI integration (MCP)](/docs/macos/mcp.md) | **✓** | **✓** | | [Auto-Prioritize selected tasks with Apple Intelligence on your device (Mac, iPhone and iPad)](/docs/ios/auto-prioritize.md) | **✓** | | | [AppleScript automation](/docs/macos/applescript.md) | **✓** | | | [Shortcuts app support](/docs/macos/shortcuts-actions.md) | **✓** | **✓** | | [Password protection with Touch ID (lists or whole app)](/docs/macos/password-protection.md) | **✓** | *whole app via iOS app lock* | | [Print lists with your choice of fields and detail](/docs/macos/getting-started.md#printing) | **✓** | *basic* | | [Export whole lists or selected tasks as .ics calendar or .csv spreadsheet files](/docs/macos/import-and-export.md#export-ics) | **✓** | *CSV per project* | | [Import to-dos from any .ics calendar file, hierarchy and alarms included](/docs/macos/import-and-export.md#import-ics) | **✓** | | | [Automatic local backups, on a schedule you choose](/docs/macos/backups.md) | **✓** | *cloud backups, paid plans* | | [Restore individual lists from automatic backups](/docs/macos/backups.md) | **✓** | **✓** *(paid plans)* | | [Works fully offline, no account required](/docs/macos/sync.md) | **✓** | | | Native Mac app | **✓** | *cross-platform app* | | [Android app](/android.md) | **✓** | **✓** | | [One-time purchase available](/store.md) | **✓** | *subscription* | ## Where Todoist May Be Better[​](#where-todoist-may-be-better "Direct link to Where Todoist May Be Better") * You need task assignees, comment threads, or collaboration through a web browser. Todoist provides these alongside shared projects; 2Do offers [iCloud shared lists](/docs/macos/icloud-list-sharing.md) for people using supported Apple devices. * You use the web, Windows, Linux, Android, or a smartwatch and want the same app on those platforms. * Todoist's title parsing covers a few things 2Do's does not: ordinal repeats with an end condition such as `every 3rd friday until dec`, a `{deadline}` alongside the scheduled date, and a `+assignee`. * You want a capable free plan before paying anything. * You use integrations such as calendar feeds, Gmail and Slack add-ons, a public API, or ready-made templates. * Karma points, streaks, and productivity trends keep you motivated. ## Where 2Do May Be Better[​](#where-2do-may-be-better "Direct link to Where 2Do May Be Better") * Set [start dates and times as well as due dates](/docs/macos/dates-and-durations.md), and use [Smart Scheduling](/docs/macos/focus-lists.md#smart-scheduling) to hide tasks until their start date. Todoist can pair a scheduled date with a separate date-only deadline on paid plans. * [Repeating tasks keep the same start and due times and the interval between them](/docs/macos/repeating-tasks.md#completion). [Projects and checklists reset their sub-tasks for each occurrence](/docs/macos/repeating-tasks.md#completion), and [edits can apply to one occurrence or all future ones](/docs/macos/repeating-tasks.md#editing). * You can set [several alarms on one task](/docs/macos/alarms-and-nagging.md) with [repeat sounds](/docs/macos/alarms-and-nagging.md#nagging) that continue until you act, [2Do's own alarm window](/docs/macos/alarms-and-nagging.md#alert-system), and [per-list silencing](/docs/macos/alarms-and-nagging.md#list-alerts). * Attachments live on the task itself, where you can [snap a picture or record audio](/docs/macos/task-editor.md#attachment), rather than in a comment thread. * Attach a [Call, Message, Email, Visit, or Browse action](/docs/macos/actions.md) to a task and perform it with one click, or with the `P` key. * Find and organize tasks with [Smart Lists](/docs/macos/smart-lists.md), [a dozen per-list sort options](/docs/macos/the-2do-window.md#sort-bar), a [one-click Focus Filter](/docs/macos/focus-filter.md), and [tag filters with AND / OR / NOT](/docs/macos/tags.md). * 2Do [works offline without an account](/docs/macos/sync.md). You can [back up locally and restore individual lists](/docs/macos/backups.md), [protect lists with a password and Touch ID](/docs/macos/password-protection.md), and [exclude chosen lists from sync](/docs/macos/settings.md#sync-exclusions). * Choose your sync service: [Dropbox, iCloud CalDAV, CalDAV, Apple Reminders, Toodledo, or Todoist itself](/docs/macos/sync.md). * [Siri works with 2Do directly](/docs/macos/siri-and-shortcuts.md#siri): add, find, and complete tasks with its supported Siri commands, and on iOS 27 and macOS 27 [describe changes in your own words](/docs/macos/siri-and-shortcuts.md#new-siri). Tasks added to Reminders from an Apple Watch, CarPlay, or HomePod can sync to 2Do through [two-way Reminders sync](/docs/macos/sync-with-reminders.md). * 2Do's Siri support covers the Mac as well as iPhone and iPad. Todoist's own help says Siri is not available with Todoist on macOS, the Apple Watch, or CarPlay, including the new Siri AI features. * Native Mac automation: [AppleScript](/docs/macos/applescript.md), [Shortcuts](/docs/macos/shortcuts-actions.md), and a built-in [MCP server for Claude and other AI agents](/docs/macos/mcp.md). * A [one-time Mac purchase](/store.md) is available, and the Mac features shown here are included without separate plan tiers. To use both apps together, see [Sync with Todoist](/docs/macos/sync-with-todoist.md) for setup and sync limitations. ## Common Questions * Can I use 2Do and Todoist together? Yes. 2Do syncs with Todoist two-way, so your Todoist projects appear as 2Do lists and changes flow in both directions. * Does everything carry across between 2Do and Todoist? Most of it, including sections on Mac, iPhone, and iPad. Attachments, standalone locations, and section descriptions stay on the device rather than syncing through Todoist. * Is 2Do a subscription like Todoist? No. 2Do for Mac from our store is a one-time purchase with a perpetual license, and the features listed on this page are not split across plan tiers. Todoist is sold by subscription with a free plan. * Does 2Do work offline? Yes. 2Do works fully offline with no account required, and your tasks are stored on your device. ## Official Links[​](#official-links "Direct link to Official Links") * [Todoist official page](https://todoist.com/) * [Todoist Help: introduction to sections](https://www.todoist.com/help/todoist/features/introduction-to-sections-rOrK0aEn) * [2Do for Mac](/index.md) * [2Do documentation](/docs/macos/getting-started.md) Want to compare a few more options before deciding? Browse all [2Do comparison guides](/compare.md). --- # End-User License Agreement This End-User License Agreement (EULA) is a legal agreement between you (either as an individual or on behalf of an entity) and Beehive Innovations regarding your use of 2Do for macOS, iOS, iPadOS, and Android (the "Software"). IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS EULA, DO NOT INSTALL, USE, OR COPY THE SOFTWARE. ### Summary[​](#summary "Direct link to Summary") * You must agree to all of the terms of this EULA to use the Software. * If you agree, you may use the Software for any lawful purpose. * Direct 2Do Mac licenses may communicate with our servers for license validation and updates. * The Software may communicate with crash-reporting and optional diagnostics services so we can improve stability. * The Software is provided "as-is" with no warranties, and you agree that Beehive Innovations is not liable for anything you do with it. ### The Agreement[​](#the-agreement "Direct link to The Agreement") By downloading, installing, using, or copying the Software, you accept and agree to be bound by the terms of this EULA. If you do not agree to all of the terms of this EULA, you may not download, install, use, or copy the Software. ### The License[​](#the-license "Direct link to The License") This EULA allows you to use the Software on devices you own or control, subject to the number of licenses, seats, store rules, or platform terms that apply to your purchase. The directly distributed version of 2Do Mac may be activated with a registration code. That registration code may be used only by the person or entity that purchased it and only within the license count purchased. Versions obtained from the Apple App Store, Mac App Store, Google Play, Setapp, or another authorized marketplace may also be subject to that marketplace's terms. This Software is licensed, not sold. Beehive Innovations reserves all rights not expressly granted to you in this EULA. ### The Restrictions[​](#the-restrictions "Direct link to The Restrictions") * You must use the Software in a manner that complies with the laws that apply where you use it. * You may not sell, resell, rent, lease, sublicense, or exchange the Software for anything of value. * You may not redistribute the Software through any medium without prior written permission from Beehive Innovations. * You may not repackage, bundle, or modify the Software for distribution without prior written permission. * You may not remove or alter proprietary notices, marks, copyright notices, or license notices in the Software. * You may not attempt to bypass licensing, activation, update, security, or platform-protection mechanisms. ### Privacy Notices[​](#privacy-notices "Direct link to Privacy Notices") The Software may communicate with Beehive Innovations servers and third-party diagnostics services for these purposes: 1. License verification, activation, renewal, and update checks for directly distributed builds. 2. Crash reports and diagnostics used to identify bugs and improve stability. 3. Optional anonymous usage or performance information where supported and enabled. The Software does not upload your tasks, lists, notes, tags, projects, or task database to Beehive Innovations servers. Please see our [Privacy Policy](/privacy.md) for more detail. ### Intellectual Property Notices[​](#intellectual-property-notices "Direct link to Intellectual Property Notices") The Software and all worldwide copyrights, trade secrets, trademarks, and other intellectual property rights in the Software are the exclusive property of Beehive Innovations or its licensors. Beehive Innovations reserves all rights in and to the Software not expressly granted to you in this EULA. ### Disclaimers and Limitations on Liability[​](#disclaimers-and-limitations-on-liability "Direct link to Disclaimers and Limitations on Liability") THE SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND NO WARRANTY, EITHER EXPRESS OR IMPLIED, IS GIVEN. YOUR USE OF THE SOFTWARE IS AT YOUR SOLE RISK. Beehive Innovations does not warrant that (i) the Software will meet your specific requirements; (ii) the Software will be fully compatible with any particular platform, device, operating-system version, sync provider, or workflow; (iii) your use of the Software will be uninterrupted, timely, secure, or error-free; (iv) the results that may be obtained from using the Software will be accurate or reliable; (v) the quality of any products, services, information, or other material purchased or obtained by you through the Software will meet your expectations; or (vi) any errors in the Software will be corrected. YOU EXPRESSLY UNDERSTAND AND AGREE THAT BEEHIVE INNOVATIONS SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR EXEMPLARY DAMAGES, INCLUDING BUT NOT LIMITED TO DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, DATA, OR OTHER INTANGIBLE LOSSES (EVEN IF BEEHIVE INNOVATIONS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES) RELATED TO THE SOFTWARE, including, for example: (i) use of or inability to use the Software; (ii) loss, corruption, or unavailability of data; (iii) sync-provider outages or behavior; (iv) unauthorized access to or alteration of your transmissions or data; (v) statements or conduct of any third party; or (vi) any other matter relating to the Software. Beehive Innovations reserves the right at any time and from time to time to modify or discontinue, temporarily or permanently, the Software or any part of it with or without notice. Beehive Innovations shall not be liable to you or to any third party for any modification, price change, suspension, or discontinuance of the Software. --- ![](/img/2do/icon_128.png) # 2Do iOS Handling Tasks, [Bee-utifully](/about.md) 🐝Since 2 0 2 1 0 6 5 4 3 2 1 0 8 7 9 The Task Manager That Knows What's Next 🔮 iPhoneiPad ![2Do for iPhone screenshot](https://downloads.2doapp.com/resources/img/2do-ios/todayheroexpandlight.png) [Buy $9.99 USD](https://apps.apple.com/us/app/id1470214600) Requires iOS 18.6 or later. **One-time purchase, no subscription.** 2Do for iPad is sold separately. ![Apple logo](https://downloads.2doapp.com/resources/img/logos/apple.svg) Apps We Love 2026 ★★ ★★ ★★ ★★ ★★ [Loved ♥ on the App Store](https://apps.apple.com/us/app/2do-todo-list-tasks-notes/id303656546) [![MacStories logo](/img/logos/macstories.svg)](https://www.macstories.net/stories/why-2do-is-my-new-favorite-ios-task-manager/) [App of the Year](https://www.macstories.net/stories/why-2do-is-my-new-favorite-ios-task-manager/) [2015](https://www.macstories.net/stories/why-2do-is-my-new-favorite-ios-task-manager/) ![Apple logo](https://downloads.2doapp.com/resources/img/logos/apple.svg) Free App of the Week 2015 ## For work, study, and everyday life ![University of Michigan](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/umich.svg "University of Michigan") ![UCLA](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/ucla.svg "UCLA") ![Cisco](https://downloads.2doapp.com/resources/img/company_logos/bcl/cisco.svg "Cisco") ![Meta](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/facebook.svg "Meta") ![Amazon](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/amazon.svg "Amazon") ![UC Berkeley](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/berkeley.svg "UC Berkeley") ![Stanford University](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/stanford.svg "Stanford University") ![University of Washington](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/uw_edu.svg "University of Washington") ![Apple](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/apple.svg "Apple") ![Automattic](/img/company_logos/2do/automattic.svg "Automattic") ![Zoho](/img/company_logos/2do/zoho.svg "Zoho") ![Ford](/img/company_logos/2do/ford.svg "Ford") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/umich.svg "University of Michigan") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/ucla.svg "UCLA") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl/cisco.svg "Cisco") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/facebook.svg "Meta") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/amazon.svg "Amazon") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/berkeley.svg "UC Berkeley") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/stanford.svg "Stanford University") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/uw_edu.svg "University of Washington") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/apple.svg "Apple") ![](/img/company_logos/2do/automattic.svg "Automattic") ![](/img/company_logos/2do/zoho.svg "Zoho") ![](/img/company_logos/2do/ford.svg "Ford") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/umich.svg "University of Michigan") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/ucla.svg "UCLA") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl/cisco.svg "Cisco") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/facebook.svg "Meta") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/amazon.svg "Amazon") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/berkeley.svg "UC Berkeley") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/stanford.svg "Stanford University") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/uw_edu.svg "University of Washington") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/apple.svg "Apple") ![](/img/company_logos/2do/automattic.svg "Automattic") ![](/img/company_logos/2do/zoho.svg "Zoho") ![](/img/company_logos/2do/ford.svg "Ford") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/umich.svg "University of Michigan") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/ucla.svg "UCLA") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl/cisco.svg "Cisco") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/facebook.svg "Meta") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/amazon.svg "Amazon") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/berkeley.svg "UC Berkeley") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/stanford.svg "Stanford University") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/uw_edu.svg "University of Washington") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/apple.svg "Apple") ![](/img/company_logos/2do/automattic.svg "Automattic") ![](/img/company_logos/2do/zoho.svg "Zoho") ![](/img/company_logos/2do/ford.svg "Ford") Stylish, productive, and unmistakably yours ## Developed with you in mind Capture an idea, add the details, and turn it into a project when it needs more than one step. Notes, tags, dates, alerts, and checklists stay with your tasks. Years of feedback from people using 2Do for work, study, and home have helped shape the app, from Quick Add to the small gestures that make editing faster. Use a simple daily list or a full GTD® system. On iPhone, swipe between panels and add ideas as they come. Made for One Hand ## Three panels, one thumb Everything is one swipe away: your lists, your tasks, and a utility panel with Tags, Nearby, and Calendar Events. One thumb runs all three. And the add button stays with you, so a new task is always a tap away. [Learn More →](/docs/ios/the-2do-screen.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/slidingpanels_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/slidingpanels_poster.png) Type Naturally ## It's Just Quicker That Way `Pick up the kids @school tomorrow at 3pm [30m] #carpool !!!` lands as a high-priority task due tomorrow at 3 PM with its duration set to 30 minutes, location `school`, tagged as `carpool`, and the title ending up simply as `Pick up the kids`. Dates, times, repeats, alerts, durations, priority, tags, lists, and the places you’ve saved all work the same way across ten languages, in the task editor and in Quick Add. [Learn More →](/docs/ios/natural-language-input.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/nlpios2_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/nlpios2_poster.png) ## Syncs with whatever you already use Choose where to sync your tasks: ![](/img/sync-icons/icloud.svg)iCloud, ![](/img/sync-icons/reminders.svg)Apple Reminders, ![](/img/sync-icons/dropbox.svg)Dropbox, ![](/img/sync-icons/todoist.svg)Todoist, ![](/img/sync-icons/toodledo.svg)Toodledo, ![](/img/sync-icons/fastmail.svg)Fastmail, or your own ![](/img/sync-icons/caldav.svg)CalDAV server. Use the same service on your devices to keep your tasks up to date. [iCloud](/docs/ios/sync-with-icloud.md) is the one we recommend. It works through the account your device is already signed in to, so there is no second account and no password to keep, and it carries everything: tasks and projects, Smart Lists, tags, groups, locations, and attachments. [Learn More →](/docs/ios/sync.md) List Sharing ## Make plans together Plan a trip, keep a household grocery list, or collaborate on a project with someone else. Invite people through iCloud to view or edit a list in 2Do on Mac, iPhone, and iPad. Tasks, notes, attachments, and the order you arrange together stay shared. Keep your own list name, color, sort view, and Focus filters. For a deadline across time zones, fixed time lets everyone see the same moment in their local time. Requires a version of 2Do with iCloud sharing on macOS 14, iOS 18, or iPadOS 18 or later. [Learn More →](/docs/ios/icloud-list-sharing.md) Task Sections ## Break a long list into sections Keep a whole trip in one list, with sections for bookings, packing, and places to visit. Move sections around as your plans change. 2Do sorts the tasks in each section by date, priority, and more. Or let Apple Intelligence group related tasks into sections and name them for you. [Learn More →](/docs/ios/task-sections.md) ![Task Sections](https://downloads.2doapp.com/resources/img/2do-ios/duosections.png) Be Aware ## Know your day before it starts See appointments above your tasks to plan around the time you have available. Open Calendar Events for a fuller view, and use dots or a heat map to spot busy days. [Learn More →](/docs/ios/calendar-integration.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/calendardaybar_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/calendardaybar_poster.png) Be Quick ## For ideas that arrive faster than your thumbs A thought lands, you hold the + button, and Quick Add floats up over the keyboard. Tasks file themselves as fast as you can type them, with dates, tags, list, and priority right there when you want them. [Learn More →](/docs/ios/quick-add.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/quickadd_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/quickadd_poster.png) Be Everywhere at Once ## Any task or list, accessible from anywhere Type a few letters and Quick Open finds any task or list, wherever it lives, and takes you straight to it. Open it with nothing typed and it hands back whatever you were working on recently. [Learn More →](/docs/ios/quick-open.md) Every Detail in Place ## Simple until the task needs more A task carries as much or as little as you want: dates, alerts, repeats, tags, locations, attachments, even a voice note. It all stays out of the way until you need it, and an action turns the next step, the call or the map or the message, into a single tap. [Learn More →](/docs/ios/task-editor.md) ![The 2Do task editor with dates, alerts, tags, and attachments](https://downloads.2doapp.com/resources/img/2do-ios/ioseditors.png) Be Expressive ## Beautiful notes, as you type Write in Markdown and your notes take shape as you type: headings, bold, lists, quotes, and code. Every link you write is collected for you, ready to open. Link one task from inside another’s notes and tap straight through to it. Keep related tasks connected, from a project’s next steps to the follow-ups from a meeting. [Learn More →](/docs/ios/notes-and-markdown.md) ![A 2Do note written in Markdown](https://downloads.2doapp.com/resources/img/2do-ios/markdownnotes.png) In Your Order ## Sort it however you like Sort by date, priority, list, or whatever suits the work in front of you, ascending or descending, with everything overdue kept apart when you want it that way. The sort menu sits right above your tasks, so changing your mind takes one tap. Tasks are grouped as they sort, so you can collapse a date or priority group to focus on the rest. Each list remembers its sort and which groups you’ve collapsed. Projects can sort their sub-tasks separately. [Learn More →](/docs/ios/the-2do-screen.md#sort-bar) ![The 2Do sort menu with tasks grouped into sections on iPhone](https://downloads.2doapp.com/resources/img/2do-ios/iossorting.png) Be Organized ## Tags: little words that sort everything A tag is just a little word you’ll remember, like @phone, @waiting, or @maria. One tap on it in the Tags panel narrows your list to that context, and a second tap combines two. The right slice of your day, one tap away. Tag Groups keep related tags together, so even a big collection stays easy to scan. [Learn More →](/docs/ios/tags.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/tagfilter_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/tagfilter_poster.png) Be Calm ## Set tasks aside until you’re ready Pause a tag to hide the tasks that use it until you’re ready to work on them. It’s useful for a renovation, a reading list, or a project you’ve set aside. Paused tasks stay out of All, Today, and search results. Unpause the tag to bring them back. [Learn More →](/docs/ios/tags.md) ![2Do tasks put on hold by a paused tag on iPhone](https://downloads.2doapp.com/resources/img/2do-ios/pausetasks.png) Where You Are ## Put a location on a task, get reminded when you’re nearby Give a task a location and it comes to you. 2Do watches the places on your list and alerts you when you are close enough to actually do something about them, taking start and due dates into account so it stays quiet about work that is not ready yet. Decide how close is close enough, and the Nearby page of the utility panel keeps whatever is around you right now in one place. [Learn More →](/docs/ios/nearby-locations.md) ![Adding a location to a task in 2Do](https://downloads.2doapp.com/resources/img/2do-ios/newlocation.png) Be Focused ## Drill down to what matters right now One tap on Focus and everything that can wait steps aside. Tap again and it all comes back. Overdue, due today, this week, high priority, starred, any mix you like: you set the rule once and the button does the rest. Each list remembers its own focus. Your work list and your errands list don’t need to share the same idea of what counts as important. [Learn More →](/docs/ios/focus-filter.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/focusfilters_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/focusfilters_poster.png) Be In Control ## Find that task you know is in there [Search](/docs/ios/search.md) reaches across titles, notes, tags, lists, and dates, with presets ready for the searches you run all the time. Not sure how a name was spelled? Sounds-like search finds it anyway. Save a search as a Smart List to use it again for a weekly review, project follow-ups, or nearby errands. Matching tasks appear there while staying in their original lists. [Learn More →](/docs/ios/smart-lists.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/quickopen_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/quickopen_poster.png) Move Together ## Many tasks, one move Select several tasks to reschedule, tag, move, star, or delete them together. Batch editing works in regular lists, Smart Lists, Today, and search results. Move Friday’s tasks to Monday without editing each one. [Learn More →](/docs/ios/batch-editing.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/movetasks_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/movetasks_poster.png) Apple Intelligence ## Get help setting priorities Let Apple Intelligence help you decide what to do first. **Auto-Prioritize** uses your tasks’ details to set their priorities, whether you’re reviewing a few tasks or sorting through a busy Inbox. Everything is processed on your iPhone or iPad. Review the results and change any priority yourself. Requires a device that supports Apple Intelligence, with iOS 26 or iPadOS 26 or later and Apple Intelligence turned on. [Learn More →](/docs/ios/auto-prioritize.md) Drag & Drop to Organize ## Re-home tasks with a single drag Pick up a task and drop it where it belongs: another list, a tag, a date, or a project that has grown around it. Select several first and the whole stack travels together. The panel beside your tasks takes drops too, which makes it the quickest way to reshape a list that has drifted out of shape. [Learn More →](/docs/ios/drag-and-drop.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/batchmovetasks_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/batchmovetasks_poster.png) Be Together ## Share a list across the room Publish a list to your Wi-Fi network and anyone running 2Do nearby can subscribe. No account to create, no cloud in between. Share the groceries, a trip plan, or a whole project with the room, as readers or as editors, and a passcode keeps it to the people you mean. [Learn More →](/docs/ios/list-sharing.md) ![Publishing a 2Do list to the local Wi-Fi network](https://downloads.2doapp.com/resources/img/2do-ios/listpublish.png) Mail to 2Do ## Mail, meet your *task list*. Flight confirmations, payment reminders, that reply you keep dodging: mail them all to 2Do. Your device gets its own private email address, and anything you send it arrives as a task: the subject as the title, the message as the notes, a numbered message as a checklist. Dates, lists, and priorities can travel with it, so mail files itself on the way in. [Learn More →](/docs/ios/email-to-2do.md) ![An email arriving in 2Do as a task](https://downloads.2doapp.com/resources/img/2do-ios/mailto2do.png) Safety Net ## Keep a backup of your lists 2Do backs itself up on a schedule you choose and keeps as many copies as you ask for. Take one on the spot before a big clean-up, or mail a copy to yourself. Restore a single list from a backup while keeping the rest of your current tasks. [Learn More →](/docs/ios/backups.md) ![Backups and export options in 2Do](https://downloads.2doapp.com/resources/img/2do-ios/backexport.png) Always in Reach ## Your day, before you even unlock Today and what is up next, right there on your home screen or lock screen, pinned to whichever list matters most. Control Center gets a button for a new task and one for your Today list, so capture never waits for the app to open first. [Learn More →](/docs/ios/widgets.md) Hey, Siri ## Ask, and it’s on the list Ask Siri to add a task and 2Do takes it from there. It’s the quickest way to offload a passing thought while your hands are busy. Build a Shortcut around it and 2Do runs the whole routine: create, find, complete, move, or schedule tasks, and open any list you name. [Learn More →](/docs/ios/siri-and-shortcuts.md) Little Glances ## 2Do on your wrist Your next task first, then today, overdue, and tomorrow, a flick away. Mark something done, push it to another day, or add a task by voice without reaching for the phone in your pocket. Complications keep what is next and what is due on the watch face you already wear. [Learn More →](/docs/ios/apple-watch.md) Your Way ## Pinch for detail, set it the way you like Pinch the task list in to fit more rows on screen, or out for full titles, notes, tags, and dates. Three display modes, one gesture. Choose light or dark mode and a text size that suits you. Use the control at the end of a task row to set its priority or star it without opening the editor. [Learn More →](/docs/ios/pinch-zoom-and-tap-hold.md) ![Pinching the 2Do task list to change how much each row shows](https://downloads.2doapp.com/resources/img/2do-ios/pinchzooming.png) Private, Recoverable, Portable ## Sync Choices, Backups & Protection Sync through the service you already trust: ![](/img/sync-icons/icloud.svg)iCloud, ![](/img/sync-icons/reminders.svg)Apple Reminders, ![](/img/sync-icons/dropbox.svg)Dropbox, ![](/img/sync-icons/todoist.svg)Todoist, ![](/img/sync-icons/toodledo.svg)Toodledo, ![](/img/sync-icons/fastmail.svg)Fastmail, or any ![](/img/sync-icons/caldav.svg)CalDAV server. When two devices meet for the first time, 2Do can merge them instead of making you pick a winner, so setting up a new device never means losing a list. Lock private lists behind a passcode, hide the ones you would rather not see at all, and let automatic backups hold the safety net. 2Do treats sync as your bridge between devices, never a requirement to store your data with us. [Learn More →](/privacy.md) Natural Language Input ## Natural Language Input Write the date, the repeat, or the tag into a new task’s title and 2Do fills in the fields for you. [Learn More →](/docs/ios/natural-language-input.md) Recommended Sync ## iCloud Sync Sync your tasks and their details through the iCloud account already on your device. [Learn More →](/docs/ios/sync-with-icloud.md) The Complete Sync ## Dropbox Sync Carry lists, Smart Lists, tags, groups, and attachments between every device you own. [Learn More →](/docs/ios/sync-with-dropbox.md) Native to Apple ## Apple Reminders Sync Keep your tasks inside Apple Reminders as well, so anything that reads Reminders can see them. [Learn More →](/docs/ios/sync-with-reminders.md) Bring Your Own Server ## CalDAV Sync Sync through Fastmail, iCloud CalDAV, or any CalDAV server you trust, including one you run yourself. [Learn More →](/docs/ios/sync-with-caldav.md) Doist Fans ## Todoist Sync Connect your Todoist account and run your projects and tasks right inside 2Do. [Learn More →](/docs/ios/sync-with-todoist.md) GTD Inbox ## A Place to Land Add ideas and reminders to your Inbox, then organize them when you have time. [Learn More →](/docs/ios/focus-lists.md) Be Versatile ## Projects & Checklists Start with a task, grow it into a checklist, then into a project with sub-tasks of its own. [Learn More →](/docs/ios/projects-and-checklists.md) One List, Many Sections ## Task Sections Split a regular list or your Inbox into named sections, by hand or with Apple Intelligence. [Learn More →](/docs/ios/task-sections.md) Tidy by Default ## List & Tag Groups Keep related lists and tags together so they’re easier to find. [Learn More →](/docs/ios/lists-and-list-groups.md) Saved Searches ## Smart Lists Turn the searches you run all the time into one-tap views: reviews, follow-ups, this week, anything. [Learn More →](/docs/ios/smart-lists.md) Find the Needle ## Deep Search Keywords, date ranges, saved presets, and sounds-like matching for the day you cannot recall the spelling. [Learn More →](/docs/ios/search.md) Time Math ## Durations Set a duration for each task to help plan how much you can fit into your day. [Learn More →](/docs/ios/dates-and-durations.md) On Repeat ## Repeating Tasks Repeat rules with start dates, end dates, and iterations. Recurring tasks that fit real life. [Learn More →](/docs/ios/repeating-tasks.md) Next Step ## Actions Attach a call, message, email, address, or web search to a task and the next step is one tap away. [Learn More →](/docs/ios/actions.md) Move Together ## Batch Editing Defer, schedule, tag, or move several tasks at once. [Learn More →](/docs/ios/batch-editing.md) Move with a Flick ## Drag & Drop Drop tasks onto lists, tags, or dates, exactly where they belong. [Learn More →](/docs/ios/drag-and-drop.md) Be Focused ## Focus Mode Tick the conditions that matter and one tap narrows any list to just those tasks. [Learn More →](/docs/ios/focus-filter.md) Persistent Reminders ## Nagging Repeat an alert until you’re ready to respond. [Learn More →](/docs/ios/alarms-and-nagging.md) Write It Down ## Notes & Markdown Headings, lists, quotes, and code, styled as you type, with every link collected for you. [Learn More →](/docs/ios/notes-and-markdown.md) Read What You Said ## Voice Transcription Your iPhone or iPad turns a voice note into text you can copy. [Learn More →](/docs/ios/task-editor.md#transcription) Calendar at a Glance ## Calendar Events See appointments alongside your tasks to plan around the time you have available. [Learn More →](/docs/ios/calendar-integration.md) Anything, Fast ## Quick Open Tap the list title, type a few letters, and land on any task or list wherever it lives. [Learn More →](/docs/ios/quick-open.md) Brain-dumps Welcome ## Quick Add Touch and hold the add button and file task after task without leaving the card. [Learn More →](/docs/ios/quick-add.md) No Cloud Needed ## Wi-Fi List Sharing Publish a list to your local network and let anyone running 2Do nearby subscribe to it. [Learn More →](/docs/ios/list-sharing.md) Tasks by Email ## Mail to 2Do A private email address for your device. Anything sent to it lands in 2Do as a task, checklist and all. [Learn More →](/docs/ios/email-to-2do.md) Where You Are ## Nearby Location-based tasks that show up when you are close enough to actually do them. [Learn More →](/docs/ios/nearby-locations.md) Always in Reach ## Widgets & Control Center Today and what is up next on your home and lock screens, plus buttons in Control Center. [Learn More →](/docs/ios/widgets.md) Hey, Siri ## Siri & Shortcuts Ask Siri to add a task, or wire 2Do into a Shortcut that does the whole routine for you. [Learn More →](/docs/ios/siri-and-shortcuts.md) Little Glances ## Apple Watch Your next task on your wrist, with complications for the counts that matter. [Learn More →](/docs/ios/apple-watch.md) Talk to Other Apps ## URL Schemes Create tasks, open lists, and drive 2Do from anything that speaks URL schemes. [Learn More →](/docs/ios/url-schemes.md) Locked Down ## Password Protection Lock individual lists, or the whole app. Your tasks, your business. [Learn More →](/docs/ios/password-protection.md) One List Back ## Backup Browser Restore a single list from a backup without disturbing anything else you have. [Learn More →](/docs/ios/backups.md) Day or Night ## Light & Dark Themes Independent light and dark looks that follow your device appearance automatically. [Learn More →](/docs/ios/settings.md) Fit More, or Less ## Pinch to Zoom Pinch the task list for more detail or more rows. Three display modes, one gesture. [Learn More →](/docs/ios/pinch-zoom-and-tap-hold.md) Hands on Keys ## Keyboard Shortcuts Add, find, schedule, and organize tasks from the keyboard. [Learn More →](/docs/ios/keyboard-shortcuts.md) ## And Then There's More... [So Much More.](/docs/ios/getting-started.md) ## Your Data, Your Rules Your tasks are stored on your devices. If you choose to sync, 2Do uses the service you select. Read our [privacy policy](/privacy.md) to learn more. ## The Word on the Street ### Obsessed with this app I have been using 2Do since around 2010 or 2011. I have lived my entire 30s and now into my 40s with this app as my constant companion. Through career changes, travel, business growth, and everyday life, 2Do has kept me organized, focused, and on track. [App Store →](https://apps.apple.com/us/app/2do-todo-list-tasks-notes/id303656546?platform=iphone\&see-all=reviews#obsessed-with-this-app) ### The Best to do app Have been using 2do for years. It has so many features and things under the hood, but is super flexible and easy to use. Not only can you take tasks, make lists, create projects… I keep ongoing lists like questions for my next doctor appointment, a going grocery list, and things I need to remember. [App Store →](https://apps.apple.com/us/app/2do-todo-list-tasks-notes/id303656546?platform=iphone\&see-all=reviews#the-best-to-do-app) ### Currently the best and most flexible iOS to do list Currently the best and most flexible iOS to do list. I’ve tried many apps and different systems and I’ve even written one or two myself. This app is a nice balance of features and clean interface. [App Store →](https://apps.apple.com/us/app/2do-todo-list-tasks-notes/id303656546?platform=iphone\&see-all=reviews#currently-the-best-and-most-flexible-ios-to-do-list) --- ![](/img/2do/icon_128.png) # 2Do iOS Handling Tasks, [Bee-utifully](/about.md) 🐝Since 2 0 2 1 0 6 5 4 3 2 1 0 8 7 9 The Task Manager That Knows What's Next 🔮 iPhoneiPad ![2Do for iPad screenshot](https://downloads.2doapp.com/resources/img/2do-ipad/ipadherolight.png) [Buy $19.99 USD](https://apps.apple.com/us/app/id1470067606) Requires iPadOS 18.6 or later. **One-time purchase, no subscription.** 2Do for iPhone is sold separately. ![Apple logo](https://downloads.2doapp.com/resources/img/logos/apple.svg) Apps We Love 2026 ★★ ★★ ★★ ★★ ★★ [Loved ♥ on the App Store](https://apps.apple.com/us/app/2do-todo-list-tasks-notes/id303656546) [![MacStories logo](/img/logos/macstories.svg)](https://www.macstories.net/stories/why-2do-is-my-new-favorite-ios-task-manager/) [App of the Year](https://www.macstories.net/stories/why-2do-is-my-new-favorite-ios-task-manager/) [2015](https://www.macstories.net/stories/why-2do-is-my-new-favorite-ios-task-manager/) ![Apple logo](https://downloads.2doapp.com/resources/img/logos/apple.svg) Free App of the Week 2015 ## For work, study, and everyday life ![University of Michigan](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/umich.svg "University of Michigan") ![UCLA](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/ucla.svg "UCLA") ![Cisco](https://downloads.2doapp.com/resources/img/company_logos/bcl/cisco.svg "Cisco") ![Meta](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/facebook.svg "Meta") ![Amazon](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/amazon.svg "Amazon") ![UC Berkeley](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/berkeley.svg "UC Berkeley") ![Stanford University](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/stanford.svg "Stanford University") ![University of Washington](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/uw_edu.svg "University of Washington") ![Apple](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/apple.svg "Apple") ![Automattic](/img/company_logos/2do/automattic.svg "Automattic") ![Zoho](/img/company_logos/2do/zoho.svg "Zoho") ![Ford](/img/company_logos/2do/ford.svg "Ford") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/umich.svg "University of Michigan") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/ucla.svg "UCLA") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl/cisco.svg "Cisco") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/facebook.svg "Meta") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/amazon.svg "Amazon") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/berkeley.svg "UC Berkeley") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/stanford.svg "Stanford University") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/uw_edu.svg "University of Washington") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/apple.svg "Apple") ![](/img/company_logos/2do/automattic.svg "Automattic") ![](/img/company_logos/2do/zoho.svg "Zoho") ![](/img/company_logos/2do/ford.svg "Ford") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/umich.svg "University of Michigan") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/ucla.svg "UCLA") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl/cisco.svg "Cisco") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/facebook.svg "Meta") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/amazon.svg "Amazon") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/berkeley.svg "UC Berkeley") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/stanford.svg "Stanford University") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/uw_edu.svg "University of Washington") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/apple.svg "Apple") ![](/img/company_logos/2do/automattic.svg "Automattic") ![](/img/company_logos/2do/zoho.svg "Zoho") ![](/img/company_logos/2do/ford.svg "Ford") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/umich.svg "University of Michigan") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/ucla.svg "UCLA") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl/cisco.svg "Cisco") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/facebook.svg "Meta") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/amazon.svg "Amazon") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/berkeley.svg "UC Berkeley") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/stanford.svg "Stanford University") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/uw_edu.svg "University of Washington") ![](https://downloads.2doapp.com/resources/img/company_logos/bcl_bct/apple.svg "Apple") ![](/img/company_logos/2do/automattic.svg "Automattic") ![](/img/company_logos/2do/zoho.svg "Zoho") ![](/img/company_logos/2do/ford.svg "Ford") A desktop-class iPad app ## No compromise on the bigger canvas Capture an idea, add the details, and turn it into a project when it needs more than one step. Notes, tags, dates, alerts, and checklists stay with your tasks. Years of feedback from people using 2Do for work, study, and home have helped shape the app, from Quick Add to the small gestures that make editing faster. Use a simple daily list or a full GTD® system. On iPad, there is room for your lists, tasks, and editor side by side. Desktop Class ## Task Management, Taken Seriously Keep your lists, tasks, and editor visible together, with Tags, Nearby, and Calendar Events close at hand. Plan a project or work through a list using touch or a keyboard. [Learn More →](/docs/ios/ipad-features.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ipad/videos/slidingpad_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ipad/videos/slidingpad_poster.png) Type Naturally ## It's Just Quicker That Way `Pick up the kids @school tomorrow at 3pm [30m] #carpool !!!` lands as a high-priority task due tomorrow at 3 PM with its duration set to 30 minutes, location `school`, tagged as `carpool`, and the title ending up simply as `Pick up the kids`. Dates, times, repeats, alerts, durations, priority, tags, lists, and the places you’ve saved all work the same way across ten languages, in the task editor and in Quick Add. [Learn More →](/docs/ios/natural-language-input.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/nlpios2_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/nlpios2_poster.png) ## Syncs with whatever you already use Choose where to sync your tasks: ![](/img/sync-icons/icloud.svg)iCloud, ![](/img/sync-icons/reminders.svg)Apple Reminders, ![](/img/sync-icons/dropbox.svg)Dropbox, ![](/img/sync-icons/todoist.svg)Todoist, ![](/img/sync-icons/toodledo.svg)Toodledo, ![](/img/sync-icons/fastmail.svg)Fastmail, or your own ![](/img/sync-icons/caldav.svg)CalDAV server. Use the same service on your devices to keep your tasks up to date. [iCloud](/docs/ios/sync-with-icloud.md) is the one we recommend. It works through the account your device is already signed in to, so there is no second account and no password to keep, and it carries everything: tasks and projects, Smart Lists, tags, groups, locations, and attachments. [Learn More →](/docs/ios/sync.md) List Sharing ## Make plans together Plan a trip, keep a household grocery list, or collaborate on a project with someone else. Invite people through iCloud to view or edit a list in 2Do on Mac, iPhone, and iPad. Tasks, notes, attachments, and the order you arrange together stay shared. Keep your own list name, color, sort view, and Focus filters. For a deadline across time zones, fixed time lets everyone see the same moment in their local time. Requires a version of 2Do with iCloud sharing on macOS 14, iOS 18, or iPadOS 18 or later. [Learn More →](/docs/ios/icloud-list-sharing.md) Task Sections ## Break a long list into sections Keep a whole trip in one list, with sections for bookings, packing, and places to visit. Move sections around as your plans change. 2Do sorts the tasks in each section by date, priority, and more. Or let Apple Intelligence group related tasks into sections and name them for you. [Learn More →](/docs/ios/task-sections.md) ![Task Sections](https://downloads.2doapp.com/resources/img/2do-ios/duosections.png) Be Aware ## Know your day before it starts See appointments above your tasks to plan around the time you have available. Open Calendar Events for a fuller view, and use dots or a heat map to spot busy days. [Learn More →](/docs/ios/calendar-integration.md) ![Calendar events shown above the Today list in 2Do for iPad](https://downloads.2doapp.com/resources/img/2do-ipad/15events.png) Be Quick ## For ideas that arrive faster than your thumbs A thought lands, you hold the + button, and Quick Add floats up over the keyboard. Tasks file themselves as fast as you can type them, with dates, tags, list, and priority right there when you want them. [Learn More →](/docs/ios/quick-add.md) ![Quick Add on iPad](https://downloads.2doapp.com/resources/img/2do-ipad/6ipadquickadd.png) Be Everywhere at Once ## Any task or list, accessible from anywhere Type a few letters and Quick Open finds any task or list, wherever it lives, and takes you straight to it. Open it with nothing typed and it hands back whatever you were working on recently. [Learn More →](/docs/ios/quick-open.md) ![Quick Open finding a task on iPad](https://downloads.2doapp.com/resources/img/2do-ipad/quickopen.png) Every Detail in Place ## Simple until the task needs more A task carries as much or as little as you want: dates, alerts, repeats, tags, locations, attachments, even a voice note. It all stays out of the way until you need it, and an action turns the next step, the call or the map or the message, into a single tap. [Learn More →](/docs/ios/task-editor.md) ![The 2Do task editor in its own panel on iPad](https://downloads.2doapp.com/resources/img/2do-ipad/12editors.png) Be Expressive ## Beautiful notes, as you type Write in Markdown and your notes take shape as you type: headings, bold, lists, quotes, and code. Every link you write is collected for you, ready to open. Link one task from inside another’s notes and tap straight through to it. Keep related tasks connected, from a project’s next steps to the follow-ups from a meeting. [Learn More →](/docs/ios/notes-and-markdown.md) ![A 2Do note written in Markdown](https://downloads.2doapp.com/resources/img/2do-ios/markdownnotes.png) Always Open ## The editor that stays put On iPad the editor lives in its own panel beside your list. Move to the next task and the panel follows, so you can work down a whole list without a single sheet getting in the way. With nothing selected, it offers the tasks you had open last, along with the counts for overdue, today, and tomorrow. [Learn More →](/docs/ios/ipad-features.md) In Your Order ## Sort it however you like Sort by date, priority, list, or whatever suits the work in front of you, ascending or descending, with everything overdue kept apart when you want it that way. The sort menu sits right above your tasks, so changing your mind takes one tap. Tasks are grouped as they sort, so you can collapse a date or priority group to focus on the rest. Each list remembers its sort and which groups you’ve collapsed. Projects can sort their sub-tasks separately. [Learn More →](/docs/ios/the-2do-screen.md#sort-bar) ![The 2Do sort menu with tasks grouped into sections on iPad](https://downloads.2doapp.com/resources/img/2do-ipad/9sorting.png) Be Organized ## Tags: little words that sort everything A tag is just a little word you’ll remember, like @phone, @waiting, or @maria. One tap on it in the Tags panel narrows your list to that context, and a second tap combines two. The right slice of your day, one tap away. Tag Groups keep related tags together, so even a big collection stays easy to scan. [Learn More →](/docs/ios/tags.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/tagfilter_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/tagfilter_poster.png) Be Calm ## Set tasks aside until you’re ready Pause a tag to hide the tasks that use it until you’re ready to work on them. It’s useful for a renovation, a reading list, or a project you’ve set aside. Paused tasks stay out of All, Today, and search results. Unpause the tag to bring them back. [Learn More →](/docs/ios/tags.md) ![2Do tasks put on hold by a paused tag on iPad](https://downloads.2doapp.com/resources/img/2do-ipad/18pausetags.png) Where You Are ## Put a location on a task, get reminded when you’re nearby Give a task a location and it comes to you. 2Do watches the places on your list and alerts you when you are close enough to actually do something about them, taking start and due dates into account so it stays quiet about work that is not ready yet. Decide how close is close enough, and the Nearby page of the utility panel keeps whatever is around you right now in one place. [Learn More →](/docs/ios/nearby-locations.md) ![Adding a location to a task in 2Do](https://downloads.2doapp.com/resources/img/2do-ios/newlocation.png) Be Focused ## Drill down to what matters right now One tap on Focus and everything that can wait steps aside. Tap again and it all comes back. Overdue, due today, this week, high priority, starred, any mix you like: you set the rule once and the button does the rest. Each list remembers its own focus. Your work list and your errands list don’t need to share the same idea of what counts as important. [Learn More →](/docs/ios/focus-filter.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ipad/videos/ipadfocustoggle_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ipad/videos/ipadfocustoggle_poster.png) Be In Control ## Find that task you know is in there [Search](/docs/ios/search.md) reaches across titles, notes, tags, lists, and dates, with presets ready for the searches you run all the time. Not sure how a name was spelled? Sounds-like search finds it anyway. Save a search as a Smart List to use it again for a weekly review, project follow-ups, or nearby errands. Matching tasks appear there while staying in their original lists. [Learn More →](/docs/ios/smart-lists.md) ![Smart Lists in the source panel on iPad](https://downloads.2doapp.com/resources/img/2do-ipad/4smartlists.png) Move Together ## Many tasks, one move Select several tasks to reschedule, tag, move, star, or delete them together. Batch editing works in regular lists, Smart Lists, Today, and search results. Move Friday’s tasks to Monday without editing each one. [Learn More →](/docs/ios/batch-editing.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/movetasks_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/movetasks_poster.png) Apple Intelligence ## Get help setting priorities Let Apple Intelligence help you decide what to do first. **Auto-Prioritize** uses your tasks’ details to set their priorities, whether you’re reviewing a few tasks or sorting through a busy Inbox. Everything is processed on your iPhone or iPad. Review the results and change any priority yourself. Requires a device that supports Apple Intelligence, with iOS 26 or iPadOS 26 or later and Apple Intelligence turned on. [Learn More →](/docs/ios/auto-prioritize.md) Drag & Drop to Organize ## Re-home tasks with a single drag Pick up a task and drop it where it belongs: another list, a tag, a date, or a project that has grown around it. Select several first and the whole stack travels together. The panel beside your tasks takes drops too, which makes it the quickest way to reshape a list that has drifted out of shape. [Learn More →](/docs/ios/drag-and-drop.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/batchmovetasks_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/batchmovetasks_poster.png) Be Together ## Share a list across the room Publish a list to your Wi-Fi network and anyone running 2Do nearby can subscribe. No account to create, no cloud in between. Share the groceries, a trip plan, or a whole project with the room, as readers or as editors, and a passcode keeps it to the people you mean. [Learn More →](/docs/ios/list-sharing.md) ![Publishing a 2Do list to the local Wi-Fi network on iPad](https://downloads.2doapp.com/resources/img/2do-ipad/listpublish.png) Mail to 2Do ## Mail, meet your *task list*. Flight confirmations, payment reminders, that reply you keep dodging: mail them all to 2Do. Your device gets its own private email address, and anything you send it arrives as a task: the subject as the title, the message as the notes, a numbered message as a checklist. Dates, lists, and priorities can travel with it, so mail files itself on the way in. [Learn More →](/docs/ios/email-to-2do.md) ![An email arriving in 2Do as a task](https://downloads.2doapp.com/resources/img/2do-ios/mailto2do.png) Safety Net ## Keep a backup of your lists 2Do backs itself up on a schedule you choose and keeps as many copies as you ask for. Take one on the spot before a big clean-up, or mail a copy to yourself. Restore a single list from a backup while keeping the rest of your current tasks. [Learn More →](/docs/ios/backups.md) ![Backups and export options in 2Do](https://downloads.2doapp.com/resources/img/2do-ios/backexport.png) Always in Reach ## Your day, before you even unlock Today and what is up next, right there on your home screen or lock screen, pinned to whichever list matters most. Control Center gets a button for a new task and one for your Today list, so capture never waits for the app to open first. [Learn More →](/docs/ios/widgets.md) Hey, Siri ## Ask, and it’s on the list Ask Siri to add a task and 2Do takes it from there. It’s the quickest way to offload a passing thought while your hands are busy. Build a Shortcut around it and 2Do runs the whole routine: create, find, complete, move, or schedule tasks, and open any list you name. [Learn More →](/docs/ios/siri-and-shortcuts.md) Your Way ## Pinch for detail, set it the way you like Pinch the task list in to fit more rows on screen, or out for full titles, notes, tags, and dates. Three display modes, one gesture. Choose light or dark mode and a text size that suits you. Use the control at the end of a task row to set its priority or star it without opening the editor. [Learn More →](/docs/ios/pinch-zoom-and-tap-hold.md) ![Pinching the 2Do task list to change how much each row shows](https://downloads.2doapp.com/resources/img/2do-ios/pinchzooming.png) Keyboard Ready ## Plug in a keyboard and fly Your hands never have to leave the keys: capture, move between lists, schedule, complete, and search, with the full command set waiting in the iPadOS menu bar. Arrow keys walk the list and open each task as they go, so a whole review can happen from the keyboard. [Learn More →](/docs/ios/keyboard-shortcuts.md) Spread Out ## One window per train of thought Open a second window and keep Today in view while you plan a project beside it. Each window holds its own list, search, and panels, so switching between them never loses your place. Drag a task from one window straight into a list in the other, exactly as you would inside a single one. [Learn More →](/docs/ios/multiple-windows.md) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ipad/videos/desktopminisliding_web.webm) Private, Recoverable, Portable ## Sync Choices, Backups & Protection Sync through the service you already trust: ![](/img/sync-icons/icloud.svg)iCloud, ![](/img/sync-icons/reminders.svg)Apple Reminders, ![](/img/sync-icons/dropbox.svg)Dropbox, ![](/img/sync-icons/todoist.svg)Todoist, ![](/img/sync-icons/toodledo.svg)Toodledo, ![](/img/sync-icons/fastmail.svg)Fastmail, or any ![](/img/sync-icons/caldav.svg)CalDAV server. When two devices meet for the first time, 2Do can merge them instead of making you pick a winner, so setting up a new device never means losing a list. Lock private lists behind a passcode, hide the ones you would rather not see at all, and let automatic backups hold the safety net. 2Do treats sync as your bridge between devices, never a requirement to store your data with us. [Learn More →](/privacy.md) Natural Language Input ## Natural Language Input Write the date, the repeat, or the tag into a new task’s title and 2Do fills in the fields for you. [Learn More →](/docs/ios/natural-language-input.md) Recommended Sync ## iCloud Sync Sync your tasks and their details through the iCloud account already on your device. [Learn More →](/docs/ios/sync-with-icloud.md) The Complete Sync ## Dropbox Sync Carry lists, Smart Lists, tags, groups, and attachments between every device you own. [Learn More →](/docs/ios/sync-with-dropbox.md) Native to Apple ## Apple Reminders Sync Keep your tasks inside Apple Reminders as well, so anything that reads Reminders can see them. [Learn More →](/docs/ios/sync-with-reminders.md) Bring Your Own Server ## CalDAV Sync Sync through Fastmail, iCloud CalDAV, or any CalDAV server you trust, including one you run yourself. [Learn More →](/docs/ios/sync-with-caldav.md) Doist Fans ## Todoist Sync Connect your Todoist account and run your projects and tasks right inside 2Do. [Learn More →](/docs/ios/sync-with-todoist.md) GTD Inbox ## A Place to Land Add ideas and reminders to your Inbox, then organize them when you have time. [Learn More →](/docs/ios/focus-lists.md) Be Versatile ## Projects & Checklists Start with a task, grow it into a checklist, then into a project with sub-tasks of its own. [Learn More →](/docs/ios/projects-and-checklists.md) One List, Many Sections ## Task Sections Split a regular list or your Inbox into named sections, by hand or with Apple Intelligence. [Learn More →](/docs/ios/task-sections.md) Tidy by Default ## List & Tag Groups Keep related lists and tags together so they’re easier to find. [Learn More →](/docs/ios/lists-and-list-groups.md) Saved Searches ## Smart Lists Turn the searches you run all the time into one-tap views: reviews, follow-ups, this week, anything. [Learn More →](/docs/ios/smart-lists.md) Find the Needle ## Deep Search Keywords, date ranges, saved presets, and sounds-like matching for the day you cannot recall the spelling. [Learn More →](/docs/ios/search.md) Time Math ## Durations Set a duration for each task to help plan how much you can fit into your day. [Learn More →](/docs/ios/dates-and-durations.md) On Repeat ## Repeating Tasks Repeat rules with start dates, end dates, and iterations. Recurring tasks that fit real life. [Learn More →](/docs/ios/repeating-tasks.md) Next Step ## Actions Attach a call, message, email, address, or web search to a task and the next step is one tap away. [Learn More →](/docs/ios/actions.md) Move Together ## Batch Editing Defer, schedule, tag, or move several tasks at once. [Learn More →](/docs/ios/batch-editing.md) Move with a Flick ## Drag & Drop Drop tasks onto lists, tags, or dates, exactly where they belong. [Learn More →](/docs/ios/drag-and-drop.md) Be Focused ## Focus Mode Tick the conditions that matter and one tap narrows any list to just those tasks. [Learn More →](/docs/ios/focus-filter.md) Persistent Reminders ## Nagging Repeat an alert until you’re ready to respond. [Learn More →](/docs/ios/alarms-and-nagging.md) Write It Down ## Notes & Markdown Headings, lists, quotes, and code, styled as you type, with every link collected for you. [Learn More →](/docs/ios/notes-and-markdown.md) Read What You Said ## Voice Transcription Your iPhone or iPad turns a voice note into text you can copy. [Learn More →](/docs/ios/task-editor.md#transcription) Calendar at a Glance ## Calendar Events See appointments alongside your tasks to plan around the time you have available. [Learn More →](/docs/ios/calendar-integration.md) Anything, Fast ## Quick Open Tap the list title, type a few letters, and land on any task or list wherever it lives. [Learn More →](/docs/ios/quick-open.md) Brain-dumps Welcome ## Quick Add Touch and hold the add button and file task after task without leaving the card. [Learn More →](/docs/ios/quick-add.md) No Cloud Needed ## Wi-Fi List Sharing Publish a list to your local network and let anyone running 2Do nearby subscribe to it. [Learn More →](/docs/ios/list-sharing.md) Tasks by Email ## Mail to 2Do A private email address for your device. Anything sent to it lands in 2Do as a task, checklist and all. [Learn More →](/docs/ios/email-to-2do.md) Where You Are ## Nearby Location-based tasks that show up when you are close enough to actually do them. [Learn More →](/docs/ios/nearby-locations.md) Always in Reach ## Widgets & Control Center Today and what is up next on your home and lock screens, plus buttons in Control Center. [Learn More →](/docs/ios/widgets.md) Hey, Siri ## Siri & Shortcuts Ask Siri to add a task, or wire 2Do into a Shortcut that does the whole routine for you. [Learn More →](/docs/ios/siri-and-shortcuts.md) Talk to Other Apps ## URL Schemes Create tasks, open lists, and drive 2Do from anything that speaks URL schemes. [Learn More →](/docs/ios/url-schemes.md) Locked Down ## Password Protection Lock individual lists, or the whole app. Your tasks, your business. [Learn More →](/docs/ios/password-protection.md) One List Back ## Backup Browser Restore a single list from a backup without disturbing anything else you have. [Learn More →](/docs/ios/backups.md) Day or Night ## Light & Dark Themes Independent light and dark looks that follow your device appearance automatically. [Learn More →](/docs/ios/settings.md) Fit More, or Less ## Pinch to Zoom Pinch the task list for more detail or more rows. Three display modes, one gesture. [Learn More →](/docs/ios/pinch-zoom-and-tap-hold.md) Hands on Keys ## Keyboard Shortcuts Add, find, schedule, and organize tasks from the keyboard. [Learn More →](/docs/ios/keyboard-shortcuts.md) Windows for Everything ## Multiple Windows Open a second window for another project and drag tasks between the two. [Learn More →](/docs/ios/multiple-windows.md) Made to Fit ## Content Width Adjust the task list’s width for comfortable reading on a large screen. [Learn More →](/docs/ios/ipad-features.md) Retrace Your Steps ## Recents With nothing selected, the editor panel offers the last tasks you had open. [Learn More →](/docs/ios/ipad-features.md) ## And Then There's More... [So Much More.](/docs/ios/getting-started.md) ## Your Data, Your Rules Your tasks are stored on your devices. If you choose to sync, 2Do uses the service you select. Read our [privacy policy](/privacy.md) to learn more. ## The Word on the Street ### Obsessed with this app I have been using 2Do since around 2010 or 2011. I have lived my entire 30s and now into my 40s with this app as my constant companion. Through career changes, travel, business growth, and everyday life, 2Do has kept me organized, focused, and on track. [App Store →](https://apps.apple.com/us/app/2do-todo-list-tasks-notes/id303656546?platform=iphone\&see-all=reviews#obsessed-with-this-app) ### The Best to do app Have been using 2do for years. It has so many features and things under the hood, but is super flexible and easy to use. Not only can you take tasks, make lists, create projects… I keep ongoing lists like questions for my next doctor appointment, a going grocery list, and things I need to remember. [App Store →](https://apps.apple.com/us/app/2do-todo-list-tasks-notes/id303656546?platform=iphone\&see-all=reviews#the-best-to-do-app) ### Currently the best and most flexible iOS to do list Currently the best and most flexible iOS to do list. I’ve tried many apps and different systems and I’ve even written one or two myself. This app is a nice balance of features and clean interface. [App Store →](https://apps.apple.com/us/app/2do-todo-list-tasks-notes/id303656546?platform=iphone\&see-all=reviews#currently-the-best-and-most-flexible-ios-to-do-list) --- # 2Do Version History --- # Press Press resources and final 2Do product images will be added here later. --- # Privacy Policy Takeaway **We do not host your task database.** 2Do stores your data locally on your devices and syncs it only with the services you explicitly configure, such as CalDAV, iCloud CalDAV, or Dropbox. Optional [Mail to 2Do](#mail-to-2do-mac) handles incoming email separately, as described below. ## Regulatory Compliance[​](#compliance "Direct link to Regulatory Compliance") 2Do is designed around local-first data ownership. We do not run a hosted 2Do sync service, and we do not process, store, or transmit the task data you create inside the app through our own servers. This approach supports common privacy and security requirements: * **GDPR (General Data Protection Regulation)** – Your 2Do data remains on your device or with the sync provider you choose. * **HIPAA (Health Insurance Portability and Accountability Act)** – We do not process Protected Health Information (PHI) on our servers. If you use 2Do in a healthcare setting, you must ensure your chosen sync provider is appropriate for that use. * **CCPA (California Consumer Privacy Act)** – We do not sell or share the personal data you create inside 2Do. important 2Do has not undergone formal certification for these regulatory frameworks. This page is provided for transparency and general guidance. If you are required to meet a specific legal or industry standard, it is your responsibility to ensure that the sync service you choose, such as CalDAV, iCloud CalDAV, or Dropbox, meets those requirements. ## GDPR Compliance[​](#gdpr "Direct link to GDPR Compliance") 2Do helps you and your organization meet GDPR requirements by keeping the data you add to the app under your control. The task data you create is not uploaded to Beehive Innovations servers. If you enable sync, 2Do communicates directly with the service you selected, and that provider becomes responsible for storing and handling the synced data. Because we do not operate a hosted 2Do sync service or perform large-scale monitoring of customer task data, our role is limited to the website, licensing, support, Mail to 2Do, crash reporting, and optional analytics described below. ## HIPAA Compliance[​](#hipaa "Direct link to HIPAA Compliance") 2Do follows HIPAA-friendly local-data principles by ensuring that user-created task data is not stored, transferred, or processed on our servers. If you choose to store sensitive information in 2Do and sync it with a third-party service, you and your organization are responsible for ensuring that service is suitable for the sensitivity of the data. ## SOC 2 Applicability[​](#soc2 "Direct link to SOC 2 Applicability") SOC 2 is aimed at service providers that store, process, or transmit customer data through hosted infrastructure. Since 2Do does not provide a hosted sync service and does not store your task database on our servers, SOC 2 certification is not applicable to the app itself. 2Do operates as a native app on macOS, iOS, iPadOS, and Android. Your task database, attachments, notes, tags, lists, and related app data remain on your device unless you choose to sync them with a supported service. We do not act as a proxy or intermediary for that sync traffic, and we cannot inspect the contents of your tasks. ## EULA[​](#eula "Direct link to EULA") Our [End User License Agreement is accessible here.](/eula.md) ## Sync Accounts and Login Credentials[​](#sync-accounts-and-login-credentials "Direct link to Sync Accounts and Login Credentials") 2Do uses the credentials or authorization tokens you provide only to connect to the sync services you configure. Supported sync options include: * CalDAV servers * iCloud CalDAV * Dropbox * Todoist * Toodledo * Apple Reminders (uses your Mac's system Reminders access rather than a login you provide) Your credentials are stored by the app using the secure storage provided by the operating system where available, such as Keychain on Apple platforms. They are not sent to Beehive Innovations servers. ## Mail to 2Do[​](#mail-to-2do-mac "Direct link to Mail to 2Do") Mail to 2Do gives each device running 2Do for Mac, iPhone, or iPad its own private, receive-only email address at the `2doapp.email` domain. Email sent to that address is converted into a small task payload and encrypted the moment it arrives, using a key that only your device holds. Once the encrypted payload is stored, we cannot read your message; no human-readable message content is kept at rest. The raw email is deleted immediately after conversion, with a 24-hour failsafe. 2Do never signs in to a mailbox of yours to provide this feature. It has no access to your email accounts, and it does not read, send, or change mail anywhere else. The encrypted payload waits only until your device saves the task and is then deleted permanently and automatically. If your device stays offline, the payload is deleted after 30 days. Nothing is stored after delivery: Mail to 2Do does not create a mailbox, an account, or any browsable message store, and the service is receive-only, so it never sends email, replies, or bounces on your behalf. To provide this feature, 2Do connects to `api.2doapp.email` to set up your private address and to fetch, acknowledge, and manage the encrypted payloads. Addresses that go unused for 12 months are permanently deleted, and retired addresses are never reused. This email data is used only to provide the feature you enabled. It is not used for advertising, marketing, profiling, unrelated analytics, or AI model training, and we do not sell it or transfer it to data brokers. A task created this way is treated like any other task you create. It stays in your local 2Do database and, if you enable sync, may sync through the provider you selected, such as CalDAV, iCloud CalDAV, or Dropbox. Delete the task if you no longer want that captured content in your database. ## Location Data in Our Apps[​](#location "Direct link to Location Data in Our Apps") 2Do on iOS, macOS, and Android offers location-based task reminders, including the ability to create locations, assign locations to tasks, and use the Nearby view or nearby alerts. This lets 2Do remind you about tasks when you arrive at, leave, or pass near a saved place. It also lets you filter tasks by saved locations together with other task fields such as tags, keywords, and dates. When you choose to use these features, 2Do may ask for permission to access your location, including background location updates where the operating system requires that permission for nearby alerts. 2Do prompts for this access only when you use a location-based feature, and location updates are used only to support the reminders, nearby lists, and filters you configure. Your current location and saved task-location data are stored on your device for these app features and are not sent to Beehive Innovations servers. If you enable sync with a service you choose, task data that includes saved task locations may sync through that provider to your other devices. That sync is handled directly between 2Do and the provider you configured, and the provider's handling of synced data is governed by that provider's privacy and security practices. ## Push Notifications[​](#push-notifications "Direct link to Push Notifications") If you enable notifications, the operating system may provide 2Do with a push notification token for that app installation. The token is used only to route app notifications or background sync prompts through the platform notification service, such as Apple Push Notification service where applicable. Push notification tokens do not contain your task database, email contents, location history, notes, attachments, or other task content. They are used only for notification delivery and related background work, such as helping another device notice that a sync-related change may be available. You can enable or disable notifications at any time in your device's system settings. ## Licensing[​](#licensing "Direct link to Licensing") When you purchase a direct 2Do Mac license, we store the information needed to issue invoices, generate a registration code, validate the license, and provide renewal support. This typically includes your email address, order information, registration code, and basic activation information. This information is used only for licensing, fraud prevention, invoicing, refunds, support, and renewal workflows. It is not used to inspect or access your tasks. ## Automatic Updates[​](#automatic-updates "Direct link to Automatic Updates") 2Do Mac periodically checks for updates by contacting our update servers. These checks may include anonymous information about the installed app version and macOS version so the app can determine whether an update is available. ## Mailing List[​](#mailing-list "Direct link to Mailing List") If you subscribe to our mailing list, you may receive occasional messages about important product updates, announcements, or offers. We do not sell or share your email address. You may unsubscribe at any time through the mailing-list link or by contacting us. ## Customer Support and Application Logs[​](#customer-support-and-application-logs "Direct link to Customer Support and Application Logs") When you contact support, we keep a record of the conversation and any attachments you voluntarily provide so we can help diagnose and resolve the issue. If you choose to send diagnostic logs, those logs may contain app activity needed for troubleshooting. Logs are shared only when you send them to us. We cannot access your computer, your phone, or your 2Do database without your action. We retain support logs only as long as needed to resolve the issue, protect service integrity, or meet legal and accounting requirements. You may request deletion of support logs at any time. note Support logs are handled with care. We review only the parts needed to diagnose the problem and avoid unrelated personal details whenever possible. ## Non-Personal Information[​](#non-personal-information "Direct link to Non-Personal Information") Non-personal information is data that cannot be used on its own to identify a specific person. This can include crash reports, stack traces, performance metrics, app version, device model, operating-system version, and broad usage patterns. We may use Google Firebase Crashlytics to receive crash reports and optional performance diagnostics. This helps us find bugs and improve stability. These reports are used only for product quality and troubleshooting. Optional analytics, where present, are used to understand broad product usage trends and improve the app. They are not used to inspect your task contents. ## Internet Access Policy[​](#internet-access-policy "Direct link to Internet Access Policy") These are the main domains 2Do may contact for updates, licensing, support, diagnostics, and optional features. Your configured sync providers and their sign-in services may require additional domains. Update checks and update downloads are separate requests. The optional Mail to 2Do connection handles the encrypted incoming messages described above. Outgoing Connections `versioncheck.2doapp.com` Direct-download versions of 2Do Mac use this server to check for updates and update eligibility. `register.2doapp.com` Direct-download versions of 2Do Mac use this server to activate and validate licenses, using the registration code and device activation information described under Licensing. `www.2doapp.com, 2doapp.com` These hosts provide release notes, help, purchase pages, and the Todoist sign-in callback. Current Mac update downloads start at `www.2doapp.com` and redirect to `downloads.2doapp.com`. `downloads.2doapp.com` This host serves app updates and website resources. Allow it along with `www.2doapp.com` so update downloads can follow the redirect and complete. These connections use HTTPS. `support.2doapp.com` This is the domain used by our support portal. Some help, registration-code lookup, renewal, or contact links may open pages under this domain. `api.2doapp.email` 2Do connects to this server only when you enable the optional Mail to 2Do feature. It is used to set up your private email address and to fetch, acknowledge, and manage the encrypted task payloads created from mail sent to that address. Messages are encrypted for your device the moment they arrive, we cannot read them, and each one is permanently deleted the instant your task is saved, or after 30 days at most. `api.dropboxapi.com, content.dropboxapi.com` 2Do connects to Dropbox only when you configure Dropbox sync. The app communicates directly with Dropbox using the account authorization you provide. `app.todoist.com, api.todoist.com` 2Do connects to Todoist only when you sign in to Todoist or sync tasks through a Todoist account. The app communicates directly with Todoist using the account authorization you provide. The Todoist sign-in (OAuth) callback is relayed through `2doapp.com`. `*.crashlytics.com, crashlyticsreports-pa.googleapis.com, firebaseinstallations.googleapis.com` 2Do uses Firebase Crashlytics for crash reports and Firebase's installation service for the identifiers used in those diagnostics. `firebaselogging-pa.googleapis.com, firebaselogging.googleapis.com, app-measurement.com, *.app-measurement.com, app-analytics-services.com, *.app-analytics-services.com, app-analytics-services-att.com, *.app-analytics-services-att.com` Optional analytics and performance diagnostics may use these domains when enabled. They are used for broad product quality signals and not for task-content tracking. Apple Push Notification service When enabled, push notifications may be used by the operating system to help devices notice changes and perform background work. You can control notification permissions from your device settings. ## Cookies and Other Technologies[​](#cookies-and-other-technologies "Direct link to Cookies and Other Technologies") Our website may use cookies and similar technologies to provide core site behavior, understand website usage, and improve the user experience. You can disable cookies in your browser settings, although some website features may not work as expected. When you visit the website, standard server logs may include your browser type, operating system, referring page, IP address, request time, and requested resource. We use this information in aggregate to administer the website, protect the service, and improve our product information. ## Your Rights[​](#your-rights "Direct link to Your Rights") You may contact us to request access, correction, or deletion of personal information we hold about you, such as support emails, licensing records, or mailing-list subscriptions. Because your 2Do task data is stored locally on your device or with the sync service you chose, you can delete that data directly from the app, your device, or your sync provider. Uninstalling the app removes locally stored app data according to the behavior of the operating system. ## Children's Privacy[​](#childrens-privacy "Direct link to Children's Privacy") 2Do and this website are not directed at children under 13, and we do not knowingly collect personal information from children under 13. If you believe a child has provided us personal information, please contact us so we can delete it. ## Changes to This Policy[​](#changes-to-this-policy "Direct link to Changes to This Policy") We may update this policy as 2Do, our website, or our support systems evolve. When we make material changes, we will update this page and, where appropriate, notify customers through the website, app, or email. --- # Store * New Customers * License Renewals For first-time customers looking to elevate their task management and stay organized. Purchase a new single-user or multi-user perpetual license for 2Do Mac. Volume discounts automatically apply at checkout. No Subscription Required With your one-time purchase, you'll receive all updates, improvements, and new features until ****. After that, you can keep using the last version you updated to—forever. Please [learn more](/docs/faqs.md) about our transparent license policy. ![](/img/2do/icon_128.png) ## 2Do Mac Powerful Task Management Requires macOS 13 or later. $ 49.99USD Buy Now *** ![](/img/2do/icon_128.png) ## 2Do for iPhone Tasks, lists, and projects on iPhone Requires iOS 18.6 or later. $ 9.99USD Buy Now ![](/img/2do/icon_128.png) ## 2Do for iPad The full task manager on the larger screen Requires iPadOS 18.6 or later. $ 19.99USD Buy Now 2Do for iPhone and 2Do for iPad are separate apps on the App Store. Each is sold on its own as a one-time purchase, with no subscription, and separately from the 2Do Mac license. ### Common Questions #### Licensing at a Glance Curious about how our flexible licensing works? To explore the types of licenses we offer and find the details you need, [click here](/docs/faqs.md) to learn more. #### How long does my license last? Your license comes with lifetime access to 2Do Mac—it never expires. *However*, it comes with **18 months of updates** from the date of purchase, ensuring you always have the latest features and improvements. Example If you purchase a license today, ****, you'll receive regular updates to the app through ****. This covers everything from critical bug fixes to major new features. And when the time comes, you have the freedom to renew your license for continued updates—it's entirely your choice. #### Why 18 months? We selected 18 months to stand apart from traditional subscription models and provide you with better value. This extended period gives you more time to enjoy updates, new features, and improvements—all without the commitment of a recurring subscription—ensuring you get the most from your investment. #### What if I don't renew my license? If you choose not to renew your license after it expires, you can continue using the last version of 2Do Mac that your current license covers for as long as you like. However, you will no longer receive any further updates. To access new features, enhancements, bug fixes, and compatibility improvements, you'll need to renew your license, which provides another 18 months of updates. #### How much will a renewal cost? You will be entitled to a 20% discount when renewing an existing 2Do Mac license. Further volume discounts automatically apply when you renew more than one license at the same time. #### Registration Code When purchasing, you will receive a registration code that converts the free trial version to a registered version. If you lose it, you may [look up your registration code](https://support.2doapp.com/help/regcode) here. #### Single License vs. Multi-User License **Personal License:** A single, personal license is intended for individual use only. It provides a single registration code that can be activated by one user on up to 5 personal Macs. This is ideal for personal use or family sharing. **Multi-User License:** Multi-user licenses are designed for teams, workplaces, or organizations. They allow a single registration code to be used on a number of Macs equal to the number of licenses purchased. This is perfect for shared or corporate environments where multiple users need access to 2Do Mac. When purchasing, you’ll receive a single registration code, whether it’s for a single-user personal license or a multi-user license. The registration code automatically determines the number of Macs on which 2Do Mac can be activated, keeping license management and renewal simple. #### Volume Discounts We apply automatic volume discounts on both new license purchases and multi-license renewals: * 2-4 licenses = **10% Off** * 5-9 licenses = **20% Off** * 10-49 licenses = **25% Off** * 50-99 licenses = **30% Off** * 100+ licenses = **35% Off** #### Educational Discounts We offer a 20% discount to staff and students at educational institutions. Email us for [educational pricing](mailto:info@2doapp.com?subject=Educational%20Pricing). #### Refund Policy Refunds can be requested any time within 30 days of purchase. Please download the free trial and evaluate 2Do Mac before purchasing it. Email us if you would like a [refund](mailto:info@2doapp.com?subject=Refund). #### Update Email Address If you have already made a purchase and wish to change the email address associated with your order, you may [do so by clicking here](https://support.2doapp.com/help/email). --- # Support & User Guides ## [2Do for macOS](/docs/macos/getting-started.md) [User Guide](/docs/macos/getting-started.md) ## [2Do for iOS](/docs/ios/getting-started.md) [User Guide](/docs/ios/getting-started.md) ## [2Do for Android](/docs/android/getting-started.md) [User Guide](/docs/android/getting-started.md) ### Moving to the new version of 2Do?[​](#moving-to-the-new-version-of-2do "Direct link to Moving to the new version of 2Do?") 2Do for iPhone and 2Do for iPad version 4 are new apps, and 2Do for Mac 2026.x is the new Mac version. Your tasks come with you: set the new app up with the same sync method and account you already use, or restore a backup. It takes three steps. [How to move your tasks to the new version](/docs/faqs/moving-to-the-new-app.md) ### Technical Support[​](#technical-support "Direct link to Technical Support") **We encourage you to [search our extensive documentation](#)** and look through our [FAQs](/docs/faqs.md) and online user manuals for a quicker turnaround, as most topics are well documented. We frequently update our documentation with recently asked questions and new features. When contacting us, please make note of our working hours below. ### Comparing Task Managers?[​](#comparing-task-managers "Direct link to Comparing Task Managers?") Weighing 2Do against Things 3, OmniFocus, Todoist, Apple Reminders, TickTick, or GoodTask? We keep honest, feature-by-feature guides for each. And if you already use Reminders or Todoist, there's good news inside: 2Do syncs with both, so it doesn't have to be either-or. [2Do Comparison Guides](/compare.md) ### Support Information[​](#support-information "Direct link to Support Information") If you are encountering a problem with 2Do and need help solving it, please send your log files for technical support. By examining your logs, we can quickly identify problems and provide a solution. [![](/img/2do/icon_128.png)Send 2Do Logs](twodolog://) On your Mac, use the button above to send your logs from 2Do. The app will ask you to confirm what is being shared, then open your default email application with a new message addressed to and a zip file attached. Please add a description of the problem and the steps needed to reproduce it. We will examine your logs and respond as soon as possible. important The information in the logs will be kept confidential, used **exclusively for troubleshooting**, and deleted after the issue is resolved. Please consult our [privacy policy](/privacy.md#customer-support-and-application-logs) to learn how we handle your logs. tip If you need to share the *minimal amount* of logs due to privacy or compliance requirements, please follow the [instructions given here](/docs/faqs/how-to-send-minimal-logs.md). For anything else, feel free to write to . **Our working hours are:** * Monday to Friday: 10am to 6pm GMT * Saturday to Sunday: 11am to 4pm GMT * Public holidays: 12pm to 4pm GMT We have a small, but a very dedicated team. Emails are replied to on a first-come first-served basis. Due to the high volume of emails we receive, a reply may take between 36 to 48 hours (or sometimes, just a few minutes). Your patience is much appreciated. --- # Actions Most task managers stop at "I'll remind you about this thing." 2Do goes further: every task can carry an **Action** that turns the task itself into something you can *do* in one tap. ## Adding an Action[​](#adding "Direct link to Adding an Action") Open a task → tap the **Action** field. Pick a type: * **Call** — places a phone call. * **Message** — opens the messaging app (SMS) with the contact pre-filled. * **Mail** — opens your default mail app pre-addressed. * **Visit** — opens an address in Google Maps for navigation. * **Browse** — opens a URL in your default browser. * **Google** — runs a web search using the task title. For Call, Message, and Mail actions you can pick a contact directly from your Android Contacts. ## Performing an Action[​](#performing "Direct link to Performing an Action") A task with an action shows an action button on its row. Tap it and 2Do does the thing. You can also perform from the long-press menu → **Perform Action**. ## Google (Search) Actions[​](#search-actions "Direct link to Google (Search) Actions") The **Google** action uses the **task title** as the query. So a task titled *Best lasagna recipe* runs that exact search when you tap the action button. tip Use **Google** actions for ongoing research tasks. One tap runs the search with the task title as the query — no typing needed. ## Combining with Locations[​](#with-location "Direct link to Combining with Locations") A task can carry both a **Location** and an **Action**. Common pattern: * Location: *Home Depot, 123 Main St* * Action: *Visit* pointing at the same address * Tag: `@errands` The task surfaces in the [Nearby panel](/docs/android/nearby-locations.md) when you're close, optionally fires an arrive alarm, and the action button gives you turn-by-turn directions when you tap it. --- # Backups 2Do for Android can keep automatic backups of your local database. Backup files are independent of whatever sync method you use — even if sync misbehaves, a backup gives you a recovery point. warning **Important on Android:** backups are stored on your device. If you delete the 2Do app, the backups stored within its app data go with it. Always keep an **off-device copy** by sharing or saving backups to Google Drive, Dropbox, OneDrive, or by emailing the backup file to yourself. The simplest habit: open **Settings > Manage Backups**, create or share a backup every week (or after any major change), and keep a copy somewhere outside the app. Note also: **Android backup files are not compatible with iOS.** Each platform has its own backup format. Use sync, not backups, to move data between an iPhone and an Android device. ## Backup Settings[​](#settings "Direct link to Backup Settings") Open **Settings > Manage Backups**. From there you can configure: * **Automatic backups** — never, every 24 hours, or every 48 hours. * **Maximum backups to keep** — 5, 10, 20, or 30. * **Backup before performing Sync** — create a backup before sync runs. * **Backup location** — use app storage, or choose a folder through Android's folder picker. tip If your Android setup includes another app or service that backs up folders, point 2Do's backup folder there. You'll have an off-device copy without changing how 2Do works. ## What's Included[​](#what "Direct link to What's Included") * All lists, list groups, projects, checklists, tasks. * All tags and tag groups. * All Smart Lists, Search Presets, and Focus Filter rules. * App preferences stored in the local database. ## Restoring[​](#restore "Direct link to Restoring") Open **Settings > Manage Backups** and tap **Restore Now**, or long-press a backup in the list and choose the restore action. warning Restoring replaces your current data. **Share the latest backup** first if you're unsure. ## Opening Backup Files from Other Apps[​](#opening-files "Direct link to Opening Backup Files from Other Apps") Android can offer 2Do as an app for opening `.2dobackup` and `.2dobundle` files from Files, email, cloud storage, or another app. Choose **2Do** when Android asks which app should open the file. important Opening a backup file is a restore flow. It can replace the current local data on that Android device, so make sure you have a recent copy of your current data first. ## Sharing a Backup[​](#share "Direct link to Sharing a Backup") Open **Settings > Manage Backups**, long-press a backup, and use the share action. Android then shows the share sheet so you can send the backup to email, cloud storage, or another compatible app. tip Before changing sync providers, **share a backup**. Sync changes can be lossy for unsupported task properties — a backup is your safety net. ## Migrating to a New Device[​](#migrating "Direct link to Migrating to a New Device") Two options: 1. **Sync method** — install 2Do on the new device, sign in to the same sync provider, choose **Replace local data with server data**. 2. **Backup file** — share the latest backup from the old device, save it somewhere accessible to the new Android device, install 2Do on the new device, then restore it. --- # Batch Editing Use batch editing to reschedule, tag, move, share, or delete several tasks at once. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/batchmove.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/batchmove_poster.png) ## Entering Batch Edit Mode[​](#enter "Direct link to Entering Batch Edit Mode") Tap the batch-edit button at the top-right of the Tasks screen. Tap any task to add it to the selection. The action toolbar at the bottom of the screen shows what you can do with the current selection. ## Available Actions[​](#actions "Direct link to Available Actions") With one or more tasks selected: * **Dates** — change or defer dates for all selected tasks. * **Tag** — add or remove tags across the selection. * **Priority** — set priority or starred state for the selection. * **Location** — add or replace locations on devices where the batch sheet shows this action. * **Share** — bundle the selection into the Android share sheet. * **Move** — move the selected tasks to a different list. * **Delete** — remove the selection. tip Select unfinished tasks and use **Dates** to defer them to tomorrow. tip Tag tasks you are waiting on with `@waiting`. Pause that tag to hide them until you are ready to follow up. ## Dragging Selected Tasks[​](#dragging "Direct link to Dragging Selected Tasks") In batch editing, select the tasks, then touch and hold one of the selected rows and drag. If the lists panel is hidden, drag toward the left edge to reveal it (the right edge in right-to-left layouts). Drop the selection onto a destination: * A regular list or the Inbox moves the tasks there. * **Today** makes them due today. * **Starred** stars them. * **Done** marks them complete. Smart Lists, hidden or archived lists, locked lists, and lists you cannot edit do not accept drops. To add a task as a calendar event, select **one task** and drag it onto the [Calendar Day Bar](/docs/android/calendar-integration.md#add-to-calendar). This opens your calendar app to review and save the event; it does not move or change the task. ## Exiting Batch Mode[​](#exit "Direct link to Exiting Batch Mode") Tap the same icon again, or **Done**, to leave batch mode. --- # Calendar Events The **Calendar Day Bar** shows appointments above your tasks so you can plan around the time you have available. It reads calendars available on your Android device. Your choice of [task sync service](/docs/android/sync.md) is separate. ## What You Need[​](#requirements "Direct link to What You Need") Calendar Events is part of **2Do Pro**. If your free trial is still running, choose **Try It Now** to enable it for the rest of the trial. After the trial, choose **Go Pro** to keep using it. You also need calendar access for 2Do and a calendar account set up on your device. To open or edit events, install a calendar app that supports those actions. ## Turning On Calendar Events[​](#setup "Direct link to Turning On Calendar Events") 1. Open **Settings > Calendar Events** in 2Do. 2. Choose where to show events: * **Show Calendar Events in Today** shows them above Today. This is the default. * **Show Calendar Events in Lists** shows them above Today and your other task lists. 3. Tap **Allow Calendar Access** and approve Android’s permission prompt. 4. Under **Calendars**, turn off any calendars you want to hide. New calendars are included automatically. The Lists setting includes Today, so it disables the Today-only switch. Turn both off to hide the day bar. If you previously denied permission, use **Open Settings** to allow calendar access for 2Do. Dismissing the access prompt above your tasks turns off both display settings; you can enable them again here. ## Viewing Your Schedule[​](#day-bar "Direct link to Viewing Your Schedule") Tap the summary above your tasks to expand or collapse the bar. When collapsed, it shows the current or upcoming event, or when you are free. Use the view button in the expanded bar to switch between a **list of events** and a **day timeline**. All-day events appear separately. 2Do remembers your view and whether the bar is expanded. The bar can appear in Smart Lists when **Show Calendar Events in Lists** is on. It is hidden inside an opened project or checklist, or while you apply an extra search or date filter to the list. ### Browsing Other Days[​](#dates "Direct link to Browsing Other Days") Use **Show Dates** in the expanded bar to reveal dates from today through the next 30 days. Tap a date to see its events. This changes the schedule only; it does not filter your tasks. Closing the date row or collapsing the bar returns it to today. To mark busy dates, open **Settings > Calendar Events > Busy Days > Calendar Day Bar** and choose **None**, **Dots**, or **Heat Map**. ### Opening an Event[​](#events "Direct link to Opening an Event") Tap an event to see its details. Choose **Open in Calendar** to view it in your calendar app, or **Edit** to change it there. If more events are available than the bar can show, tap **+… more** to open that day in your calendar app. ## Adding a Task to Your Calendar[​](#add-to-calendar "Direct link to Adding a Task to Your Calendar") Add a task as a calendar event to set aside time for it: 1. Touch and hold the task and choose **Add to Calendar**. 2. If it has notes, choose **Include Notes** or **Without Notes**. Choose **Cancel** to stop. 3. Your calendar app opens a new event with the task’s title and dates filled in. Review the event, choose its calendar, and save it there. The task itself stays unchanged. This command works even when the day bar is hidden. You can also use drag and drop. Enter [batch editing](/docs/android/batch-editing.md), select **one task**, then drag it onto the day bar. The bar must have calendar access and be showing your events. A highlighted outline marks where to drop it. The same notes choice and calendar editor then open. ### How the Event Time Is Chosen[​](#timing "Direct link to How the Event Time Is Chosen") | Task dates | Proposed event | | ----------------------------------------------- | --------------------------------------------------------- | | Start time and a later due time on the same day | From the start time to the due time | | Start time | Starts then and lasts for the task’s duration | | Due time and duration | Ends at the due time, starting the duration earlier | | Due time without a duration | Starts at the due time | | Dates without times | An all-day event covering those dates | | No dates | Uses the day shown in the bar, or today when it is hidden | If the task has no duration, a timed event lasts 15 minutes. An undated task starts at the next quarter hour when added to today. For another day, it uses your default due time, or 9:00 AM if you have not set one. ## If Events Are Missing[​](#troubleshooting "Direct link to If Events Are Missing") * Check that calendar access is allowed under **Android Settings > Apps > 2Do > Permissions**. * Check the enabled calendars in **Settings > Calendar Events** in 2Do. * Confirm that the calendar is available in your device’s calendar app. Syncing tasks through iCloud or Dropbox does not add calendar accounts to Android. * If **Go Pro** appears, check your Pro purchase or the time remaining in your trial. For task dates and date filtering, see [Dates and Durations](/docs/android/dates-and-durations.md). --- # Dates and Durations — Start, Due, and Duration A task can have a **Start Date**, a **Due Date**, and a **Duration**. Each is optional. Together, they determine when the task appears in Today, when it stays hidden as Scheduled, and how long before its deadline you need to begin. Think of them this way: * **Start Date** means “do not show this until it is time to begin.” * **Due Date** means “this is the deadline.” * **Due Time** makes the deadline precise. * **Duration** means “this task needs this much working time before the deadline.” ## Time Zones[​](#time-zones "Direct link to Time Zones") Task dates and times follow your device’s local time. A task set for 9:00 AM stays at 9:00 AM when you travel to another time zone. You do not need to choose a separate time zone in 2Do. For appointments that belong on your calendar, see [Calendar Events](/docs/android/calendar-integration.md). ## Choosing Between Start and Due[​](#choosing "Direct link to Choosing Between Start and Due") Most tasks need only one of the two. Pick by asking what you want the date to do: * Use a **Start Date** when you want the task to stay hidden until the day or time you plan to begin it. * Use a **Due Date** when the task genuinely becomes late after that date or time. * Use both only when there is a real working window between the two — a day you can begin, and a later day you must be finished by. Only a due date can make a task overdue. A start date decides when a task appears; it never decides whether the task is late. When a task has no real deadline, leave the **Due Date** off and let the start date bring it into view. tip Use **Start Date** for *anything that shouldn't bother you yet* — appointments, scheduled work, recurring chores. Use **Due Date** for actual deadlines. Use **Duration** to surface a lead-up window for tasks that need preparation. ### Daily Routines[​](#daily-routines "Direct link to Daily Routines") For a recurring task you want to see at a set time of day but do not have to finish by then, set a **Start Date** with that time, repeat it daily, and leave the **Due Date** off: * *Update journal* starting at **8:00 AM** — hidden until 8:00 AM, then available for the rest of the day. * *Check bank account* starting in the **evening** — out of the way until then. The task never becomes overdue, and each occurrence gets the next start date. Add a **Due Date** and **Due Time** only when finishing by a particular time genuinely matters. See [Repeating Tasks](/docs/android/repeating-tasks.md) for the repeat options. ## A Plain, Undated Task[​](#undated "Direct link to A Plain, Undated Task") A task with **no dates** stays in the list it was created in. It does not appear in *Today*. It is never overdue. ## Just a Due Date[​](#just-due "Direct link to Just a Due Date") A task with a **Due Date** appears in *Today* on the due date — for the **whole day** — and then becomes **overdue** until you complete it. With a **Due Time**, the alarm window is anchored to the time. Overdue tasks can continue to appear in *Today* with an overdue indicator, depending on your Today list settings. They stay overdue until checked off. Use this for simple deadlines: * *Submit invoice* due **Friday** — appears in Today on Friday. * *Join client call* due **Friday at 3:00 PM** — appears in Today on Friday, with the deadline anchored to 3:00 PM. ## Just a Start Date[​](#just-start "Direct link to Just a Start Date") A task with **only a Start Date** is **scheduled to appear** at that start date. Until then, it is **hidden** from the regular list and from *Today*. To see scheduled tasks before their start arrives: * Tap the **Scheduled** focus list at the top of the drawer. * Or, on the **sort bar**, toggle the clock icon to display scheduled tasks alongside your normal view. Showing or hiding scheduled tasks changes which tasks a view includes, which is why the same task can appear and disappear as you toggle the **clock icon** or switch to the **Scheduled** focus list. Sorting only changes the order of what is already there; it never adds or removes a task from a view. Use this for work that should not distract you yet: * *Water plants* starts **Saturday morning** — stays out of the way until Saturday. * *Pack for trip* starts **Thursday at 6:00 PM** — appears when it is time to begin packing. Projects and child tasks Each item uses its own Start Date for scheduled visibility. A project with no Start Date stays visible when **Hide Scheduled** is on, even if one or all of its child tasks start in the future. Those children stay hidden until their own start dates arrive or you show scheduled tasks. ## Start Date + Due Date[​](#start-and-due "Direct link to Start Date + Due Date") * **Hidden** from the list until the **start date** arrives. * **Visible** in its list between the start date and the due date. * In *Today* on the **due date**, and from the start date onward when **Always show Still Working On** is enabled in **Settings > Appearance**. * After the due date, **overdue**. Use this when work has a real working window: * *Prepare quarterly review* starts **Monday** and is due **Friday** — hidden before Monday, visible during the week, due Friday. * *Tax paperwork* starts **1 April** and is due **15 April** — out of sight before April, then visible while you can work on it. ## Just a Duration[​](#just-duration "Direct link to Just a Duration") Without dates, a duration is just an estimate of how long the task will take. It doesn't drive visibility — but combined with a due date it becomes one of 2Do's most useful tricks. Use duration alone when you want a planning estimate but no schedule yet: * *Clean garage* duration **2 hours** — still lives in its list like a normal undated task. * *Write outline* duration **30 minutes** — useful for filtering or planning, but it does not appear in Today by itself. ## Due Date + Due Time + Duration — Effective Start[​](#duration-due "Direct link to Due Date + Due Time + Duration — Effective Start") When a task has a **due date**, a **due time**, and a **duration**, 2Do counts the duration backward from the deadline. That creates an effective start time without you having to set a separate Start Date. Example: a meeting deadline is **tomorrow at 3:00 PM** and the task has a **30-minute duration**. 2Do treats **2:30 PM** as the point where the task starts needing your attention. The task still has a 3:00 PM deadline, but the duration gives it a useful “start working now” window. Use this for time-boxed work: * *Join Zoom meeting* due **3:00 PM**, duration **30 minutes** — start preparing at **2:30 PM**. * *Submit proposal* due **5:00 PM**, duration **2 hours** — begin treating it as active at **3:00 PM**. note If you set a Due Date and Duration without a Due Time, 2Do treats it as a date-only lead-up window. For precise meetings and deadlines, set a Due Time too. tip For appointments and meetings, combine **Due Date + Due Time + Duration**. It keeps the actual deadline clear while also telling 2Do when preparation should begin. ## Due Date + Duration — Lead-Up Window[​](#duration-lead-up "Direct link to Due Date + Duration — Lead-Up Window") When a task has a **due date** and a **duration**, 2Do uses the duration as a lead-up window before the due date. This can surface the task before the due date when the duration reaches back into today or an earlier day. Example: a task due **Friday** with a duration of **2 days** can start surfacing before Friday because the work needs time before the deadline. This is useful for tasks like *prepare slides*, *review contract*, or *pack for a trip* where the due date is not the first moment you should think about it. ## Start + Due + Duration[​](#all-three "Direct link to Start + Due + Duration") When all three are set, the Start Date normally keeps the task out of the way until work is meant to begin. If the duration window before the due date starts earlier than that, 2Do can surface the task when the duration window begins. Use this when you want both a “do not show before this date” boundary and a realistic amount of working time: * *Prepare conference talk* starts **1 June**, is due **10 June at 5:00 PM**, duration **4 hours** — kept out of the way before June, then available while you plan, and treated as active as the deadline approaches. * *Renew passport* starts **Monday**, due **Friday**, duration **1 hour** — hidden before Monday, visible during the week, and due Friday. ## Repeating Tasks and Dates[​](#recurrence "Direct link to Repeating Tasks and Dates") See [Repeating Tasks](/docs/android/repeating-tasks.md) for the full reference. Key points: * The **next occurrence** carries the same date *shape* forward — start date and/or due date, advanced by the recurrence rule. * **Repeat from Due Date** — next occurrence calculated from the previous *due date*. Best for fixed schedules. * **Repeat from Completion** — next occurrence calculated from the *date you completed* the task. Best for chores. * Durations carry forward intact. ## Smart Scheduling[​](#smart-scheduling "Direct link to Smart Scheduling") The behavior that hides scheduled tasks is controlled by Smart Scheduling. It's on by default. The clock toggle on the sort bar lets you peek at scheduled tasks without disabling Smart Scheduling globally. ## Filtering by Date with the Mini Calendar[​](#mini-calendar "Direct link to Filtering by Date with the Mini Calendar") Use the mini calendar to filter tasks by a day or date range. On phones, open it from the lists panel; on wide tablet layouts it appears beside the task list. Pulling down on the task list starts a sync. ![2Do Android mini calendar date filter](https://downloads.2doapp.com/resources/img/2do-android/minicaldatefilter.png) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/minical_date_search.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/minical_date_search_poster.png) ## Building a Daily View[​](#daily-view "Direct link to Building a Daily View") For everyday work the built-in *Today* list is usually enough. It already combines tasks due today with overdue tasks and tasks you are still working on. If you would rather build your own Smart List, the distinction that matters is which date the search token looks at: * `type: today` and `type: duetoday` match tasks **due** today. * `type: anytoday` matches tasks whose **start or due** date is today. See [Smart Lists](/docs/android/smart-lists.md) for the rest of the search syntax. ## Practical Examples[​](#examples "Direct link to Practical Examples") | Task | Start | Due | Duration | What you'll see | | ----------------------- | -------- | ------------- | ---------- | --------------------------------------------------------------------------------------------------------- | | Buy milk | — | — | — | Lives in its list. Never appears in Today. | | Submit invoice | — | Fri | — | Appears in Today on Friday. Overdue Saturday onwards. | | Take out the bins | — | Wed 8 PM | — | Appears in Today all of Wednesday. Alarm at 8 PM if set. | | Take out the bins | Wed 8 PM | — | — | Hidden until Wednesday 8 PM, then appears in the list. | | Prep quarterly review | Mon | Fri | — | Visible in its list from Monday; in Today on Friday, or from Monday with Always show Still Working On on. | | Join meeting | — | Tomorrow 3 PM | 30 minutes | Deadline is 3 PM; duration creates a 2:30 PM effective start. | | Submit proposal | — | Fri 5 PM | 2 hours | Deadline is 5 PM; duration creates a 3 PM effective start. | | Prep quarterly review | — | Fri | 2 days | Starts surfacing before Friday when the lead-up window reaches the current day. | | Prepare conference talk | Mon | Fri 5 PM | 4 hours | Hidden before Monday, visible during the week, and treated as active before the Friday deadline. | --- # Focus Filter The Focus Filter is your magic toggle between *everything I have* and *just what matters right now*. Build a rule once, flip it on or off any time. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/changingfocusmode.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/changingfocusmode_poster.png) ## Toggling Focus[​](#toggling "Direct link to Toggling Focus") * Tap the **Focus** icon in the top toolbar of the Tasks screen. * When focus is on, only tasks matching the rule are shown. ## Editing the Focus Rule[​](#editing-rule "Direct link to Editing the Focus Rule") * Long-press the Focus icon, or open the overflow menu (`⋮`) → **Focus Filter Rule**. * The rule builder lets you combine clauses for tags, priority, dates, list, location, action, alarms, and more. * Combine with **all** (AND) or **any** (OR). For the full builder reference, see [Smart Lists](/docs/android/smart-lists.md#rule-builder). ## Per-List Focus Rules[​](#per-list "Direct link to Per-List Focus Rules") Each list remembers its own Focus rule. Switching lists carries the focus state with the list. ## Quick Tag Filters[​](#tag-filters "Direct link to Quick Tag Filters") For one-off filtering, tap any tag in the **Tags** tab. The Tasks screen narrows to that tag without touching the saved Focus rule. ## Saving a Focus as a Smart List[​](#save-as-smart "Direct link to Saving a Focus as a Smart List") If you keep returning to the same Focus rule, save it as a [Smart List](/docs/android/smart-lists.md) and pin it to the drawer. --- # Focus Lists — All, Today, Starred, Scheduled, Done, Inbox At the top of the navigation drawer sits a fixed cluster of **Focus Lists** — *All*, *Today*, *Starred*, *Scheduled*, *Done*, *Inbox*. They are not real lists; they're built-in saved perspectives that pull tasks from across your real lists. ## Inbox[​](#inbox "Direct link to Inbox") The **Inbox** is your GTD inbox — the place where new, un-triaged tasks land. Tasks from [Quick Add](/docs/android/quick-add.md), Android share-sheet capture, selected text, launcher shortcuts, and the Quick Settings tile can all land here depending on your default list settings. Aim to keep it **empty** at the end of each review session. ## All[​](#all "Direct link to All") *All* shows every task across every list. By default it includes everything except: * Tasks in lists you've **Excluded from All** (see below). * Tasks **hidden by a paused tag** (see [Tags — Pausing a Tag](/docs/android/tags.md#pause)). Tasks scheduled to start in the future are hidden by default — toggle the clock icon on the sort bar to reveal them. tip Combine Focus Lists with Smart Filters: select *All* and run `type: hiprio AND duethisweek` for "high-priority work due this week, across everything." ### Excluding a List from All[​](#exclude-from-all "Direct link to Excluding a List from All") Long-press the list in the drawer → **Edit List** → toggle **Exclude from All**. A small **i** icon appears next to the list name once any exclusion is on. ## Today[​](#today "Direct link to Today") A task lands in *Today* if any of these are true: * It is **due today** (with or without a due time). * **Include overdue tasks** is enabled in **Settings > Appearance** — past-due tasks carry forward to *Today* until completed. * **Always show Still Working On** is enabled in **Settings > Appearance** and the task has a start date in the past or today. * It has a **duration** whose lead-up window or effective start time covers today. * **Include Starred Tasks** is enabled in **Settings > Appearance**. For the full mechanic, see [Dates and Durations](/docs/android/dates-and-durations.md). ### Excluding a List from Today[​](#exclude-from-today "Direct link to Excluding a List from Today") Long-press list → **Edit List** → toggle **Exclude from Today**. ### Why Tasks Show Up "Mysteriously"[​](#today-mysteries "Direct link to Why Tasks Show Up \"Mysteriously\"") Most often: a duration creating an earlier working window, *Always show Still Working On*, or *Include Starred Tasks* on. See the FAQ [Why are tasks due tomorrow showing in the Today Focus list?](/docs/faqs/tasks-tomorrow-in-today-list.md). ## Starred[​](#starred "Direct link to Starred") *Starred* collects every starred task. Use the long-press menu or task-row actions to star or unstar tasks. See [Stars and Priorities](/docs/android/stars-and-priorities.md) for when to use stars vs. priorities. ## Scheduled[​](#scheduled "Direct link to Scheduled") *Scheduled* shows tasks with a **future start date** that are currently hidden from the regular list by Smart Scheduling. ## Done[​](#done "Direct link to Done") *Done* collects completed tasks. Long-press list → **Edit List** → toggle **Exclude from Done** to keep a noisy completion history out of this view (handy for shopping / scratch lists). ## Sync Exclusion[​](#exclude-from-sync "Direct link to Sync Exclusion") Edit List → toggle **Exclude from Sync** to keep a list local to this device. ## Indicators[​](#indicators "Direct link to Indicators") A small **i** icon appears next to the list name in the drawer once any global-visibility option is customised. --- # Getting Started with 2Do for Android Use this guide to set up 2Do and get started with lists, projects, tags, dates, and reminders. ## Introduction[​](#introduction "Direct link to Introduction") 2Do for Android follows the same core workflow as 2Do for iPhone and iPad — [lists](/docs/android/lists-and-list-groups.md), [projects](/docs/android/projects-and-checklists.md), [checklists](/docs/android/projects-and-checklists.md), [tags](/docs/android/tags.md), [locations](/docs/android/nearby-locations.md), the [Focus Filter](/docs/android/focus-filter.md), [Smart Lists](/docs/android/smart-lists.md), [multiple alarms](/docs/android/notifications.md), Nag Me, [sync](/docs/android/sync.md), [backups](/docs/android/backups.md), and [widgets](/docs/android/widgets.md). If you already know 2Do on another platform, the ideas will feel familiar. Some features differ between platforms: * **Mail to 2Do is not available on Android.** It works in 2Do for iPhone, iPad, and Mac. * **Apple Watch / Siri** are Apple-only. Android offers its own [launcher shortcuts, share-sheet capture, Quick Settings tile, Sticky Alert, and widgets](/docs/android/integrations.md). * **Widgets** are richer on Android — pin a list, Smart List, Today view, or a counter directly to the home screen. ## First Launch[​](#first-launch "Direct link to First Launch") When you open 2Do for Android for the first time, the app may show a short walkthrough so you can see the main areas of the app. On Android 13 or later, 2Do may also ask for notification permission so task alerts can appear. 2Do does not ask for every permission up front. It asks when the permission is actually needed: * **Notifications** — for [task alerts](/docs/android/notifications.md), Nag Me, and the ongoing Today notification. * **Location** — when you add a task location, open map-based [Nearby](/docs/android/nearby-locations.md) features, or enable proximity alerts. * **Calendar access**: when you enable [Calendar Events](/docs/android/calendar-integration.md). * **Storage / file access** — when you export, restore, or choose a [backup](/docs/android/backups.md) folder. You can review permissions later in **Android Settings > Apps > 2Do > Permissions**. Sync is configured separately inside **2Do > Settings > Sync** when you're ready. ![2Do Android launch tutorial](https://downloads.2doapp.com/resources/img/2do-android/launchtutorial.png) ## Choosing Your Sync Method[​](#sync "Direct link to Choosing Your Sync Method") If you also use 2Do on iOS or a Mac, pick the sync method first and configure each device the same way. * **[iCloud](/docs/android/sync-with-icloud-native.md)**: recommended when you also use 2Do on iPhone, iPad, or Mac. Every device needs a version of 2Do with iCloud sync; on Android, look for **iCloud** as its own entry, separate from **iCloud CalDAV**. * **[Dropbox](/docs/android/sync-with-dropbox.md)**: supports every task property and attachments, and works with older versions of 2Do. Choose it when a device can't use iCloud sync yet, or when you don't use an Apple Account. * **[CalDAV](/docs/android/sync-with-caldav.md)**: Fastmail, Fruux, Synology, ownCloud, Nextcloud, iCloud CalDAV, and others. iCloud CalDAV requires an Apple ID app-specific password. * **[Toodledo](/docs/android/sync-with-toodledo.md)**: for users in the Toodledo ecosystem. * **None**: fine on a single device. Open **Settings > Sync** in 2Do and tap **Selected Account** to pick a method. We'll go deeper in [Sync](/docs/android/sync.md). warning Use the **same** sync method on every device. Mixing methods leads to disconnected data. note Direct **Apple Reminders sync** is not available on Android, because Reminders is an Apple-only service. To sync between Android and an iPhone, iPad, or Mac, use [iCloud](/docs/android/sync-with-icloud-native.md) when every device runs a version of 2Do with iCloud sync, or [Dropbox](/docs/android/sync-with-dropbox.md) until then. Neither makes your tasks appear in the Reminders app. ## The Main Screen[​](#main-screen "Direct link to The Main Screen") Like the iOS app, 2Do for Android revolves around three areas: * **Lists** — the navigation drawer (slide in from the left edge, or tap the hamburger icon). * **Tasks** — the main screen, showing tasks in the selected list. * **Editor** — opens when you tap a task. On phones and narrow split-screen windows, these areas overlap and you move between them with the drawer, side tab strip, and horizontal swipes. On tablets and wider windows, 2Do can keep more panels visible at once, including a side panel for Tags / Nearby and a right panel for editing or calendar-style views. ![2Do Android main screen](https://downloads.2doapp.com/resources/img/2do-android/hero.png) For more, see [The 2Do Screen](/docs/android/the-2do-screen.md). ## Calendar Events[​](#calendar-events "Direct link to Calendar Events") Show appointments above your tasks with the [Calendar Day Bar](/docs/android/calendar-integration.md). Expand it to browse upcoming days or drag a selected task onto it to create an event. Enable it under **Settings > Calendar Events**. Calendar Events is a Pro feature. ## Quick Open[​](#quick-open "Direct link to Quick Open") Tap the list title to find a task or list by name. [Quick Open](/docs/android/quick-open.md) also shows recent tasks and lists when its search field is empty. ## Lists and List Groups[​](#lists "Direct link to Lists and List Groups") Open the navigation drawer to see your **Focus Lists** at the top — *All*, *Today*, *Starred*, *Scheduled*, *Inbox* — and your real lists and groups below. ### Creating a List[​](#creating-list "Direct link to Creating a List") * Open the drawer → tap the `[+]` button at the bottom. * Choose **New List**, **New Project**, **New Checklist**, **New List Group**, or **New Smart List**. For more — including the indicators that appear next to a list name — see [Lists and List Groups](/docs/android/lists-and-list-groups.md#indicators). ## Capturing Tasks[​](#capturing "Direct link to Capturing Tasks") ### Floating Add Button (FAB)[​](#fab "Direct link to Floating Add Button (FAB)") Use the `+` button below the task list to add tasks: * **Tap** — opens the [editor](/docs/android/task-editor.md) for a new task. * **Touch and hold**: opens [Quick Add](/docs/android/quick-add.md). Its destination follows your default collection list settings. ### Natural Language Input[​](#natural-language "Direct link to Natural Language Input") Type `Buy milk tomorrow` and 2Do sets the due date for you. [Natural Language Input](/docs/android/natural-language-input.md) recognizes dates and other details in Quick Add and when you create a task in the full editor. ### Voice Input[​](#voice "Direct link to Voice Input") Quick Add uses the Android keyboard, so voice dictation is available when your keyboard provides a microphone button. This is useful while walking, commuting, or when your hands are full. ### Share Sheet Capture[​](#share "Direct link to Share Sheet Capture") Share text, URLs, or images from any app to **2Do** and a new task is created with that content. See [Quick Add](/docs/android/quick-add.md#outside-app) for the other Android capture surfaces. ### Android Integrations[​](#android-integrations "Direct link to Android Integrations") Long-press the 2Do app icon for shortcuts such as **New Task**, **Today**, **Starred**, and **Search**. You can also add the **2Do Quick Add** tile to Android's Quick Settings panel for fast capture from the notification shade. Android can also send text, URLs, images, selected text, create-note requests, and 2Do backup files into the app. See [Android Integrations](/docs/android/integrations.md) for the full guide. ## Tasks, Projects, and Checklists[​](#task-types "Direct link to Tasks, Projects, and Checklists") * **Task**: simple to-do. It cannot hold sub-tasks of its own. * **Project** — parent for related tasks with their own dates and properties. * **Checklist** — parent for items that only matter together. For more, see [Projects and Checklists](/docs/android/projects-and-checklists.md). ## The Task Editor[​](#editor "Direct link to The Task Editor") Tap a task to open the editor. Fields include title, notes, [start date, due date, due time, duration](/docs/android/dates-and-durations.md), [priority](/docs/android/stars-and-priorities.md), [tags](/docs/android/tags.md), [location](/docs/android/nearby-locations.md) with arrive/leave alerts, [action](/docs/android/actions.md), [multiple alerts](/docs/android/notifications.md), recurrence, and attachments. Learn more in [The Task Editor](/docs/android/task-editor.md). ## Tags[​](#tags "Direct link to Tags") Open the **Tags** view from the side tab strip (or the more-actions menu) to see all your tags with counts. On tablet layouts, Tags can appear in the side panel so the task list can stay visible. Tap a tag to filter the task list. ### Tag Groups[​](#tag-groups "Direct link to Tag Groups") Group related tags so they are easier to find. For example, use groups for places (`@home`, `@work`), people, or status (`@waiting`, `@on-hold`). See [Tag Groups](/docs/android/tags.md#tag-groups). ### Pausing a Tag to Hide Its Tasks[​](#pause "Direct link to Pausing a Tag to Hide Its Tasks") Any tag in 2Do can be **paused**. When a tag is paused, every task carrying that tag is hidden from view — *All*, *Today*, list views, search. To pause a tag, swipe left on it in the **Tags** view and tap **Pause**. Resume the same way. Toggle the paused indicator on the sort bar to peek at paused tasks without resuming. See [Tags](/docs/android/tags.md#pause). For more, see [Tags](/docs/android/tags.md). ## Nearby and Locations[​](#nearby "Direct link to Nearby and Locations") Attach a location to a task and 2Do can: * Show it on the **Nearby** tab. * Fire an alarm when you arrive or leave. * Open the address in Google Maps. For more, see [Nearby and Locations](/docs/android/nearby-locations.md). ## Focus Filter and Smart Lists[​](#focus-and-smart "Direct link to Focus Filter and Smart Lists") * **Focus Filter** — toggle to narrow the task list to a saved rule. See [Focus Filter](/docs/android/focus-filter.md). * **Smart Lists** — saved searches that behave like real lists. See [Smart Lists](/docs/android/smart-lists.md). ## Search[​](#search "Direct link to Search") Tap the search icon in the toolbar. Search runs across titles, notes, tags, dates, and actions. Choose **Full Text** when you want precise operators such as `new job -find`, or switch to **Soundex** when you'd rather have typo-tolerant matching — *plumver*, for example, will still find *plumber*. See [Search](/docs/android/search.md), or use [Smart Lists](/docs/android/smart-lists.md) when you want to save a rule as a reusable list. ## Notifications and Alarms[​](#notifications "Direct link to Notifications and Alarms") A task can carry multiple alerts: * Choose a preset such as **On time**, or a number of minutes, hours, or days before the due date. * Use a custom alert for a fixed date and time, or make it relative to the task's due date. * Turn **Play Sound** on or off for that alert. * Use **Nag Me** in [Settings > Notifications](/docs/android/settings.md#notifications) when you want alerts to keep reminding you until viewed, snoozed, or completed. Learn more in [Notifications and Alarms](/docs/android/notifications.md). ## Widgets[​](#widgets "Direct link to Widgets") 2Do offers home-screen widgets for: * **Task List** — pin a list, Focus List, or Smart List. * **Transparent Task List** — the same list widget with a transparent style. * **Undone Counter** — a small counter for the list or preset you choose. Long-press the home screen → **Widgets** → 2Do. For more, see [Widgets](/docs/android/widgets.md). ## Backups[​](#backups "Direct link to Backups") 2Do can create local backups automatically and lets you save backups in app storage or a folder you choose through Android's folder picker. For more, see [Backups](/docs/android/backups.md) and [Settings > Advanced > Manage Backups](/docs/android/settings.md#manage-backups). ## Password Protection[​](#password "Direct link to Password Protection") Protect selected lists with a password, control when 2Do asks for it again, and decide whether protected content can appear in widgets or notifications. For more, see [Password Protection](/docs/android/password-protection.md). --- # Android Integrations 2Do for Android integrates with Android's sharing, text selection, launcher shortcuts, Quick Settings, widgets, notifications, and file-opening flows. note Android does not use the `twodo://` URL scheme used by 2Do for iPhone, iPad, and Mac. On Android, use the system integrations below. ## Capture from Other Apps[​](#capture "Direct link to Capture from Other Apps") Use Android's share sheet when another app contains something you want to turn into a task. * **Text** — share selected text or a note into 2Do to create a task from that text. * **Web links** — share a URL into 2Do. When Android also provides a page title, 2Do can use the title for the task and keep the link as an [Action](/docs/android/actions.md). * **Images** — share an image into 2Do to create a task with that image attached. If the shared text is long, 2Do keeps the extra detail in the task notes so the task title stays readable. tip When a web article, message, or photo needs follow-up, share it to 2Do immediately. You can add dates, tags, priority, and alerts after the task has been captured. See [Quick Add](/docs/android/quick-add.md#outside-app) for fast capture and [The Task Editor](/docs/android/task-editor.md) for adding task details. ## Selected Text[​](#selected-text "Direct link to Selected Text") Some Android apps let you select text and send it directly to another app from the text-selection menu. When 2Do appears there, choose **2Do** to start a new task from the selected text. note Text-selection actions are controlled by Android and the app you're selecting text in. If 2Do does not appear in that menu, use the normal Android share sheet instead. ## Create Note Requests[​](#create-note "Direct link to Create Note Requests") Android can send a "create note" request to compatible apps. When 2Do receives one, it opens the task editor with the note text ready to save as a task. For everyday voice capture, you can also open [Quick Add](/docs/android/quick-add.md), tap the microphone button on your Android keyboard if your keyboard provides one, and dictate the task title. ## Launcher Shortcuts[​](#launcher-shortcuts "Direct link to Launcher Shortcuts") Long-press the 2Do app icon to use launcher shortcuts: * **New Task** — opens the editor for a new task. * **Today** — opens the Today Focus List. * **Starred** — opens the Starred Focus List. * **Search** — opens search so you can find tasks quickly. note Launcher shortcuts depend on your Android launcher. Most modern launchers support them, but the exact gesture and menu style can vary. ## Quick Settings Tile[​](#quick-settings "Direct link to Quick Settings Tile") Add the **2Do Quick Add** tile to Android's Quick Settings panel when you want capture available from the notification shade. 1. Open Android's Quick Settings panel. 2. Tap the edit or pencil button. 3. Drag **2Do Quick Add** into your active tiles. 4. Tap the tile whenever you want to capture a task. The Quick Settings tile opens Quick Add. It is different from home-screen widgets, which are for viewing lists and counts. ## Sticky Alert[​](#sticky-alert "Direct link to Sticky Alert") **Sticky Alert** can keep today's tasks visible in the notification drawer. It is useful when you want the current day visible without opening 2Do. Enable it from **Settings > Notifications > Sticky Alert**. Notification display still depends on Android's notification permission and your system notification settings. See [Notifications and Alarms](/docs/android/notifications.md#settings) for the related notification options. ## Widgets[​](#widgets "Direct link to Widgets") 2Do includes home-screen widgets for: * A chosen list, Focus List, Smart List, or saved view. * A transparent list widget for cleaner home-screen layouts. * A compact undone counter. See [Widgets](/docs/android/widgets.md) for widget setup and privacy notes. ## Backup Files[​](#backup-files "Direct link to Backup Files") Android can offer 2Do as an app for opening 2Do backup files: * `.2dobackup` * `.2dobundle` You may see this when opening a backup from Files, email, cloud storage, or another app. Choose **2Do** to import or restore the backup. important Restoring a backup replaces the current local data on that Android device. If you're unsure, create and share a fresh backup first. See [Backups](/docs/android/backups.md) for backup settings, restore steps, and migration tips. --- # Lists and List Groups Lists are the basic organizational unit in 2Do. They live in the navigation drawer (slide from the left edge, or tap the hamburger icon). [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/managelists.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/managelists_poster.png) ## Focus Lists[​](#focus-lists "Direct link to Focus Lists") The top of the drawer always shows your **Focus Lists**: * **All** — everything not hidden by a paused tag or scheduled in the future. * **Today** — tasks due today, plus tasks whose duration window reaches today. Depending on your Appearance settings, Today can also include overdue tasks, starred tasks, and tasks you're still working on. * **Starred** — your starred tasks. * **Scheduled** — tasks with a future start date. * **Inbox** — tasks not yet sorted into a list. ### Excluding a List from Focus Lists[​](#exclude-from-focus "Direct link to Excluding a List from Focus Lists") Long-press a list in the drawer → **Edit List**. Use the *Exclude from* toggles to keep this list out of: * **All** * **Today** * **Done** * **Sync** A small **eye-shaped** icon appears next to the list name once you've customised its global visibility. The list and its tasks are still visible when you tap into the list directly — they just don't show up in the Focus Lists you've excluded them from. ## Creating a List[​](#creating "Direct link to Creating a List") * Open the drawer → tap `[+]` at the bottom. * Choose **New List**, **New Project**, **New Checklist**, **New List Group**, or **New Smart List**. Each list has a name, a color, a list group, and visibility options for Focus Lists and sync. ## List Groups[​](#list-groups "Direct link to List Groups") Group related lists into a folder for a calmer drawer: * `[+]` → **New List Group**. * Drag lists into the group from the drawer's edit mode. * Tap a group's chevron to collapse or expand. ## Reordering[​](#reordering "Direct link to Reordering") * Open the drawer → tap **Edit** at the top → drag the handle next to each list. ## Editing or Deleting[​](#edit-delete "Direct link to Editing or Deleting") Long-press any list → **Edit List** or **Delete List**. From Edit List you can: * Rename the list. * Move it to another List Group. * Change the color. * Exclude it from **All**, **Today**, **Done**, or **Sync**. * Archive the list. ## Indicators[​](#indicators "Direct link to Indicators") * **Count badge** — incomplete tasks. * **White glowing dot** — a task due today is hiding inside. * **Red glowing dot** — an overdue task is hiding inside. * A **lock icon** indicates a locked list. * A **smart-list glyph** distinguishes Smart Lists from regular lists. * **Eye-shaped icon** — one or more of the list's visibility options have been changed. ## Smart Lists[​](#smart-lists "Direct link to Smart Lists") Smart Lists also live in the drawer. They're saved searches with their own color and icon. See [Smart Lists](/docs/android/smart-lists.md). --- # Natural Language Input Type a task with its date or other details, and 2Do fills in the matching fields. For example, `Buy milk tomorrow` sets tomorrow as the due date and keeps `Buy milk` as the title. Natural Language Input works in **Quick Add** and while creating a task in the **Task Editor**. It does not reinterpret the titles of existing tasks when you edit them. ## Using It[​](#using "Direct link to Using It") 1. Open [Quick Add](/docs/android/quick-add.md) or create a task in the [Task Editor](/docs/android/task-editor.md). 2. Type the title with its details, such as a date, time, or tag. 3. Review the highlighted phrases and the fields they fill in. 4. Save the task. Recognized details are removed from the title and kept in their fields. You can still set fields by hand. A manual change takes precedence over the corresponding detail detected in the title. ## Details You Can Enter[​](#details "Direct link to Details You Can Enter") 2Do recognizes dates, times, start dates, alerts, repeats, durations, priorities, stars, tags, lists, and saved locations. | Example | Result | | ----------------------------------------------- | ---------------------------------------------- | | `Buy milk tomorrow` | Sets tomorrow as the due date | | `Buy green paint on 12 October 2030 at 3pm !!!` | Sets the due date and time, with high priority | | `Buy fruit #groceries #weekend` | Adds the tags `groceries` and `weekend` | List and location names must match ones you have already saved. An unknown name stays in the title. Check the recognized details before saving, especially when the title includes a date that you intended as ordinary text. ## Settings[​](#settings "Direct link to Settings") Open **Settings > Natural Language Input**. The **Quick Add** and **Task Editor** switches are separate and both start on. Turn either off to enter all details manually in that editor. Recognition follows the app’s language. It supports English, German, Spanish, French, Italian, Dutch, Korean, Japanese, Russian, Czech, and Simplified Chinese. The settings are hidden for unsupported languages. Natural Language Input uses local text parsing and does not require an AI account. For how dates affect your task lists, see [Dates and Durations](/docs/android/dates-and-durations.md). --- # Nearby and Locations Tasks live in time and space. Attach a place to a task and 2Do becomes context-aware. ## Adding a Location[​](#adding "Direct link to Adding a Location") Open a task and tap the **Location** field. Search by name or address, or choose a point on the map. Configure: * **Alert on Arrive** — fire when you enter the geofence. * **Alert on Leave** — fire when you exit. note Location alerts require Android location permission. 2Do asks for location access when you use a location-based feature, such as adding a location or enabling Nearby Alerts. You can manage this later from **Settings > Notifications > Proximity Alerts** or Android's app permissions. ## The Nearby Tab[​](#nearby-tab "Direct link to The Nearby Tab") Open the **Nearby** tab from the side tab strip on phone-sized layouts. On tablets and wider windows, Nearby can appear in the side panel so the task list remains visible. You'll see: * A map with pins for every task with a location. * A list, sorted by distance from your current location. Tap a pin or list row to open the editor. Long-press for the quick-actions menu. ## Smart Lists for Errands[​](#smart-lists "Direct link to Smart Lists for Errands") Build an *Errands Nearby* Smart List: * Has a location. * Is near your current location. * Is not completed. When you sit down at your desk or pop to the high street, a tap reveals the right-now-doable subset. tip Tag location-tagged tasks with `@errands`. Combined with the Nearby tab and an *Errands Nearby* Smart List, you'll never wonder again whether there was something to grab from the hardware store. ## Proximity Alerts[​](#proximity-alerts "Direct link to Proximity Alerts") Open **Settings > Notifications > Proximity Alerts** to turn Nearby Alerts on or off and manage Android's location permission for 2Do. note Location data for Nearby Alerts is used on your device so 2Do can remind you near the places you attached to tasks. --- # Notifications and Alarms A task is only useful if you remember to look at it. 2Do for Android supports multiple alerts per task, plus Android-specific settings for precise alarms, snooze, Nag Me, notification sound, vibration, and the ongoing Today notification. ## Adding an Alarm[​](#adding "Direct link to Adding an Alarm") Open a task, tap the **Alert** icon in the task editor toolbar, then tap `[+]` to add an alert. The alert editor gives you two ways to choose the time: * **Presets** — on time, 5 minutes before, 10 minutes before, 15 minutes before, 30 minutes before, 1 hour before, 2 hours before, 6 hours before, 12 hours before, 1 day before, or 2 days before. * **Custom** — pick a specific date and time, or turn on **Relative to Due Date** and choose how many minutes, hours, or days before the due date the alert should fire. Use **Play Sound** when you want the alert to make a sound. Leave it off for a quieter notification. ## Relative vs. Absolute[​](#types "Direct link to Relative vs. Absolute") * **Relative** — follows the task's due date. If you move the task's due date, the alert moves with it. * **Absolute** — fires at the date and time you chose, independent of the task's due date. A single task can have a mix of preset, relative, and fixed-date alerts. ## Nag Me[​](#nagging "Direct link to Nag Me") **Nag Me** is a global Android notification setting, not a per-alert switch. Open **Settings > Notifications > Nag Me** and choose how often alerts should repeat: never, every 5 minutes, every 15 minutes, every 30 minutes, every hour, or every day. When enabled, each alert keeps reminding you at the chosen interval until you view it, snooze it, or complete the task. note Nag Me is device-specific. If you sync with another device, choose the Nag Me setting separately on each device where you want repeated reminders. ## Automatic Alerts for Due Dates and Due Times[​](#defaults "Direct link to Automatic Alerts for Due Dates and Due Times") Open **Settings > Notifications > More > Auto-Reminders For** to create alerts automatically when you add a due date or due time: * **Due Time** — create an alert at the due time or before it. * **Due Date** — create an alert for the due date when there is no due time. If a task has both a due date and a due time, the due-time auto-alert setting takes priority. ## Notification Permissions[​](#permissions "Direct link to Notification Permissions") For alerts to appear, 2Do needs Android notification permission. On Android 13 or later, the app may ask for this permission after the first-launch walkthrough. If you missed it: ![2Do Android notification permission prompt](https://downloads.2doapp.com/resources/img/2do-android/allowalerts.png) * **Android Settings > Apps > 2Do > Notifications** — enable, choose channels. * **Battery optimization** — exclude 2Do if your device delays alerts. The exact path varies by manufacturer, but it usually lives under Android's Battery settings. * **Precise Alerts** — use **Settings > Notifications > More > Precise Alerts** if your Android version asks for exact-alarm access. ## Notification Settings[​](#settings "Direct link to Notification Settings") Open **Settings > Notifications** for Android-specific behavior: ![2Do Android Sticky Alert ongoing notification](https://downloads.2doapp.com/resources/img/2do-android/ongoingnotif.png) * **Sticky Alert** — shows today's tasks in the notification area. * **Hide on Lock Screen** — hides the Sticky Alert on the lock screen. * **Alert Sound** — choose the default sound used by audible task alerts. * **Vibrate**, **LED**, and **Override mute** — control device-level alert behavior where supported. * **App Badge** — choose what the app icon badge counts on supported launchers. * **List Counters** — choose what list counters show in the drawer. * **Snooze Alerts** — choose the default snooze behavior. Learn more in [Settings](/docs/android/settings.md#notifications). ## Snooze and Done from a Notification[​](#interactive "Direct link to Snooze and Done from a Notification") Alarms include action buttons: * **Done** — mark the task complete in place. * **Snooze** — delay the alert using your snooze setting. * Tap the body — open the task in 2Do. --- # Password Protection Some tasks are nobody else's business. 2Do for Android lets you protect selected lists with a password and decide whether protected tasks can appear in widgets and notifications. ## Setting a Passcode[​](#setting "Direct link to Setting a Passcode") Open **Settings > Privacy > Password protect lists** and use **Set Password**. After a password is set, this screen also lets you change it and choose which lists are protected. ## Protected Lists[​](#protected-lists "Direct link to Protected Lists") Open **Settings > Privacy > Password protect lists > Protected lists** and select the lists you want to protect. Protected lists stay hidden from the main app areas until you unlock them. This includes Focus Lists and Smart Lists, so private tasks do not accidentally appear in shared views. ## Widgets and Notifications[​](#widgets-notifications "Direct link to Widgets and Notifications") Use **Widgets & Notifications** to decide whether protected tasks are allowed to appear in home-screen widgets and the notification area. tip If you use protected lists for sensitive work, leave widget and notification access off. If you mainly use protection to keep the app tidy, you may prefer to allow widgets and notifications. ## Require Password[​](#require-password "Direct link to Require Password") Use **Require password** to choose how quickly 2Do should ask again after you unlock protected content: * Immediately * After 1 minute * After 3 minutes * After 5 minutes * After 10 minutes ## Hidden and Archived Lists[​](#hidden-archived "Direct link to Hidden and Archived Lists") The main **Privacy** settings screen also includes **Hidden lists** and **Archived lists**. These are separate from password protection: * **Hidden lists** stay out of the navigation drawer until you show them again. * **Archived lists** and their tasks stay hidden from all areas of the app except Smart Lists and the Done Focus List. Pair password protection with regular [Backups](/docs/android/backups.md), especially before changing devices or sync methods. --- # Projects and Checklists Use **projects** and **checklists** to break work into smaller pieces. The items inside them are **sub-tasks**, and their dates and visibility depend on the parent's type. ## Tasks and Sub-Tasks[​](#tasks "Direct link to Tasks and Sub-Tasks") A sub-task belongs to a project or checklist. A regular task cannot hold sub-tasks of its own. Use a project when its sub-tasks need their own due dates, alarms, or tags, and a checklist when they share one schedule. ## Projects[​](#projects "Direct link to Projects") A **Project** is a parent that contains real tasks. Each child carries its own properties and shows up individually in your Focus Lists. ### Creating a Project[​](#creating-project "Direct link to Creating a Project") * Open the drawer → `[+]` → **New Project**. * Or convert an existing task: open the editor → overflow (`⋮`) → **Convert to Project**. ### Project View[​](#project-view "Direct link to Project View") When you're inside a project, tap the overflow menu → **Toggle Project View** to focus only on the work inside this project. The rest of the list collapses out of view. ![2Do Android Project View](https://downloads.2doapp.com/resources/img/2do-android/projectview.png) [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/openingprojectview.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/openingprojectview_poster.png) ## Checklists[​](#checklists "Direct link to Checklists") A **Checklist** holds *items* — titles that can be checked off and tagged, but don't carry their own dates — they inherit scheduling from the checklist. The whole checklist behaves like one task in your Focus Lists. ### Creating a Checklist[​](#creating-checklist "Direct link to Creating a Checklist") * Drawer → `[+]` → **New Checklist**. * Or convert a task → overflow → **Convert to Checklist**. ## Converting Between Types[​](#converting "Direct link to Converting Between Types") Use the editor's overflow menu → **Convert** to switch between Task / Project / Checklist. Converting a project or checklist to a task moves its sub-tasks out as separate tasks in the same list. Converting a project to a checklist drops each sub-task's own dates, because checklist items take their scheduling from the checklist. tip Start with a simple Task. Promote to a Project only when you find yourself wanting per-child dates or alerts. ## Behavior in Focus Lists[​](#focus-behavior "Direct link to Behavior in Focus Lists") * Project sub-tasks appear individually. * Checklists appear as a single item. Their items share the checklist's schedule. --- # Quick Add Tap the `+` button below your tasks to open the full Task Editor. Touch and hold it to open **Quick Add**, where you can add several tasks in succession. ## Opening Quick Add[​](#opening "Direct link to Opening Quick Add") * Long-press the floating action button. * The keyboard pops up with a single-line input pre-focused. * Type a title and tap **Add Task** or press the keyboard action. * The task is captured and Quick Add stays open for the next one. tip Use Quick Add to enter several ideas or reminders. It stays open after each task is saved. ## Where Tasks Land[​](#destination "Direct link to Where Tasks Land") By default, Quick Add follows the same new-task destination rules as the rest of the app. To always send Quick Add tasks to your default collection list, open **Settings > Default Collection List** and turn on **Always use in Quick Add**. You can also tap the colored list name inside Quick Add before saving to choose a different destination for that task. ## Date Shortcuts[​](#date-shortcuts "Direct link to Date Shortcuts") Quick Add includes four date shortcuts along the bottom: * **Today** * **Tomorrow** * The day after tomorrow * **None** Tap a date shortcut before saving, or type dates, tags, priority, and other details in the title using [Natural Language Input](/docs/android/natural-language-input.md). Open the full Task Editor for notes, actions, attachments, and other fields. ## Capture from Outside the App[​](#outside-app "Direct link to Capture from Outside the App") Quick Add is not the only way to capture a task on Android: * **Share sheet** — share text, URLs, or images from another app to **2Do**. URLs can become task actions, and long shared text is kept in the task notes. * **Selected text** — use Android's text-selection actions where available to send selected text into 2Do. * **Create note requests** — compatible Android note-capture flows can send text to 2Do as a new task. * **Launcher shortcut** — long-press the 2Do app icon and choose **New Task**. The same launcher menu can also open **Today**, **Starred**, or **Search**. * **Quick Settings tile** — add the **2Do Quick Add** tile to Android's Quick Settings panel for fast capture from the notification shade. note The Quick Settings tile is different from 2Do's home-screen widgets. Home-screen widgets show task lists and counters; the Quick Settings tile opens Quick Add. See [Android Integrations](/docs/android/integrations.md) for the full list of Android capture and system integration options. tip Add the **2Do Quick Add** tile to Android's Quick Settings panel if you frequently capture tasks while another app is open. ## Sticky Alert[​](#sticky-alert "Direct link to Sticky Alert") 2Do can also show today's tasks in the Android notification drawer through **Sticky Alert**. This is useful when you want your current day to stay visible without opening the app. Enable it from **Settings > Notifications > Sticky Alert**. See [Notifications and Alarms](/docs/android/notifications.md#settings) for the related lock-screen and notification settings. --- # Quick Open Use **Quick Open** to find a task or list anywhere in 2Do. Type part of its name, then tap a result to go there. ## Opening Quick Open[​](#opening "Direct link to Opening Quick Open") Tap the list name at the top of the task list. With a hardware keyboard, press `Ctrl+Shift+O` or `⌘⇧O`. Leave [batch editing](/docs/android/batch-editing.md) first. Inside a project or checklist, tapping the title goes back to the list instead. ## Finding a Task or List[​](#searching "Direct link to Finding a Task or List") Type part of a task title or list name. Results appear in separate task and list groups. Continue typing to narrow them down, then tap a result. Quick Open searches unfinished tasks, including projects, checklists, and sub-tasks. Paused or scheduled tasks can appear even when hidden from your current task view. Hidden, archived, and locked lists are excluded. With the field empty, Quick Open shows recently changed tasks and recently visited lists. ## Opening a Result[​](#results "Direct link to Opening a Result") Choosing a list opens it. Choosing a task reveals it in your current view when possible, or opens its list or parent project. On a wide tablet layout, the task also opens in the editor pane. From a Focus List or search result, you can also touch and hold a task and choose **Open in List** to see it in the list it belongs to. ## Quick Open and Search[​](#search "Direct link to Quick Open and Search") Quick Open finds names and takes you to a result. Use [Search](/docs/android/search.md) to filter tasks by notes, tags, dates, or other details, or to save a search as a [Smart List](/docs/android/smart-lists.md). --- # Repeating Tasks 2Do has flexible recurrence rules for both regular schedules and chores that should restart when you actually finish them. ## Adding Recurrence[​](#adding "Direct link to Adding Recurrence") Open a task → **Recurrence** → choose a preset or build a custom rule. ### Presets[​](#presets "Direct link to Presets") Daily, Weekday, Weekend, Weekly, Bi-weekly, Monthly, Yearly. ### Custom Rules[​](#custom "Direct link to Custom Rules") Build from: * **Interval** — every N days / weeks / months / years. * **Days of week** — pick any combination. * **Day of month** — *the 1st*, *the last day*, *the second Tuesday*. * **End condition** — never, after N occurrences, or on a specific date. ## Repeat From Due Date vs. Completion[​](#repeat-from "Direct link to Repeat From Due Date vs. Completion") * **Repeat from Due Date** — next occurrence calculated from the previous *due date*. Best for fixed schedules. * **Repeat from Completion** — next occurrence calculated from the *date you completed* the task. Best for chores. ## What Carries Over[​](#carry-over "Direct link to What Carries Over") Each new occurrence inherits title, notes (without timestamps), tags, location, action, alarms, recurrence rule, priority, and duration. Completion state and alarm fire history reset. ## Editing a Repeating Task[​](#editing "Direct link to Editing a Repeating Task") A repeating task is one task that moves forward each time you complete it. There is no separate series to edit: whatever you change on the task is what the next occurrence inherits. Dates matter most here, because the next occurrence is counted from the task's current date. With **Repeat from Due Date**: * **Due date changed**: the next occurrence is counted from the new due date. Move a monthly task from September 21 to September 22, and its next occurrence is due October 22. * **Start date changed, and the task also has a due date**: the due dates keep their schedule, but the new gap between start and due carries into future occurrences. * **Start date changed, and there is no due date**: the start date is what the task repeats from, so the next occurrence moves with it. With **Repeat from Completion**, the next occurrence is counted from the day you complete the task, so a date change affects only the current occurrence. The gap between start and due date still carries forward. ## Unfinished or Skipped Occurrences[​](#skipping "Direct link to Unfinished or Skipped Occurrences") If you still need to do a repeating task, leave it incomplete. It stays overdue after its due date passes; 2Do does not automatically complete it or advance its dates. For an accurate completion history, mark the task complete only when you have done the work. Completing it records a finished occurrence and advances to the next one if the repeat rule allows. It does not record a skipped occurrence. To move the task to a later date without adding a completion to your history, edit its due date (or its start date if it has no due date). This changes the task's schedule; see [Editing a Repeating Task](#editing) for how it affects future occurrences. tip To put a recurring task on hold without breaking the cycle, give it a status tag like `@on-hold` and pause that tag from the Tags view. The active occurrence steps out of view; resume the tag to bring it back. See [Tags](/docs/android/tags.md#pause). --- # Search Search task titles, notes, tags, actions, and locations, then narrow the results by dates or other details. Save useful searches as [Smart Lists](/docs/android/smart-lists.md). ## Reaching Search[​](#reaching "Direct link to Reaching Search") * Tap the **search icon** in the top toolbar. * Pulling down on the task list starts a sync; it does not open search. Type to filter by: * Title * Notes * Tags * Action target (phone, email, URL) * Location By default search runs in the current list. Tap the scope toggle to search **All Lists**. ## Search Controls[​](#options "Direct link to Search Controls") The controls below the search field let you: * Change the scope between the current list and **All Lists**. * Turn **Soundex** matching on or off. * Open **Search Presets** to choose built-in task filters. * Set a fixed or dynamic date range, or search for tasks without a due date. * Save the current search as a Smart List, or update the Smart List you are viewing. To include completed tasks, use a filter such as `completed: 7d` or `type: donetoday`. See [Smart Filters](/docs/android/smart-lists.md). ## Full Text and Soundex[​](#full-text-soundex "Direct link to Full Text and Soundex") Choose a matching style for the search: * **Full Text Search** is the right pick when you want exact words, exclusions, `OR`, or wildcards. * **Soundex** is the right pick when you roughly know what something sounds like but can't quite remember how it's spelled. Turn Soundex off to use exact words, exclusions, `OR`, and wildcards. Leave it on when you are unsure of a spelling. ### Full Text Examples[​](#full-text-examples "Direct link to Full Text Examples") Imagine you have these tasks: * *Get a haircut one day* * *Buy a new car some day* * *Find a new job* * *Call: Mum, tell about my new job* * *Call: Tim* | Search | Finds | Why | | --------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | | `new job` | *Find a new job*, *Call: Mum, tell about my new job* | Both words are required. | | `new job -find` | *Call: Mum, tell about my new job* | The word `find` is excluded. | | `a day` | *Get a haircut one day*, *Buy a new car some day* | Both words appear in the matching tasks. | | `Call OR new` | *Buy a new car some day*, *Find a new job*, *Call: Mum, tell about my new job*, *Call: Tim* | Capital `OR` matches either word. | | `new*` | Words like *new*, *newer*, and *newest* | The `*` wildcard matches anything starting with those letters. | | `*` | Tasks with indexed text | Handy as a broad text match when combined with structured filters. | You can also combine text searches with structured filters — for example, `plumber type: starred tags: builders`. ### Soundex Examples[​](#soundex-examples "Direct link to Soundex Examples") | You type | 2Do can still find | | ----------- | ------------------ | | `plumver` | `plumber` | | `Steven` | `Stephen` | | `alexnder` | `Alexander` | | `Catherine` | `Kathryn` | For the complete syntax — including `type:`, `tags:`, `locations:`, `groups:`, `created:`, and `modified:` — see [Smart Lists, Smart Filters, and Search](/docs/android/smart-lists.md). ## Search Presets[​](#presets "Direct link to Search Presets") Open **Search Presets** below the search field to choose conditions such as due today or high priority. Use **Match ALL filters** or **Match ANY filter** to combine them, then tap **Done**. The preview shows the query that will be applied. Presets are built-in filters. To keep your own combination, save it as a Smart List. ## Search and Smart Lists[​](#vs-smart "Direct link to Search and Smart Lists") Search filters tasks for your current view. Saving the search as a **Smart List** adds it to the lists panel, where its results stay up to date. For a quick way to open a task or list by name, use [Quick Open](/docs/android/quick-open.md). --- # Settings Open the lists panel and tap **Settings** to change how 2Do looks and behaves. This guide covers the functional settings only. Help, tutorial, review, and About rows are not included here. ![2Do Android Settings — main screen](https://downloads.2doapp.com/resources/img/2do-android/setting_main.png) ## Sync[​](#sync "Direct link to Sync") Use **Sync** to choose how 2Do keeps your tasks in step across devices. ![2Do Android Sync settings](https://downloads.2doapp.com/resources/img/2do-android/setting_sync.png) Available methods include: * **iCloud**: recommended when you use 2Do across Android, iPhone, iPad, and Mac, and every device runs a version of 2Do with iCloud sync. See [Sync with iCloud](/docs/android/sync-with-icloud-native.md). * **Dropbox**: works with older versions of 2Do and doesn't need an Apple Account. * **CalDAV**: iCloud CalDAV, Fruux, Yahoo!, and custom CalDAV servers. * **Toodledo**: useful if you already use Toodledo's web service. * **None**: keep 2Do local to this Android device. The Sync screen also includes **Next sync action** for deliberate one-time recovery actions. Dropbox and CalDAV offer **Sync normally**, **Replace server data**, and **Replace data on this device**. Toodledo offers **Sync normally**, **Merge local data with server**, and **Replace data on this device**. iCloud offers **Sync Normally**, **Combine Tasks**, **Keep This Device's Tasks**, and **Keep iCloud Tasks**. important Only change **Next Sync Action** when you are deliberately recovering or moving data. The wrong direction can overwrite good data. Create a backup first from **Settings > Manage Backups** if you are unsure. Learn more in [Sync Overview](/docs/android/sync.md). ## Default Collection List[​](#default-collection-list "Direct link to Default Collection List") This controls where new tasks go when 2Do cannot infer a better destination. ![2Do Android Default Collection List settings](https://downloads.2doapp.com/resources/img/2do-android/setting_default_list.png) Options include: * **GTD Inbox** — use the Inbox as your capture list. * **Last used list** — keep new tasks going to the list you last used. * **Always use default list** — ignore the current list and always use your chosen default. * **Always use in Quick Add** — force [Quick Add](/docs/android/quick-add.md) to use the default list. tip If you process tasks later, choose **Inbox** and keep **Always use in Quick Add** on. If you usually add tasks directly into the list you are viewing, leave Quick Add free to follow the current context. note Creating a subtask inside Project View still keeps that subtask inside the project you are viewing. ## Natural Language Input[​](#natural-language "Direct link to Natural Language Input") The **Quick Add** and **Task Editor** switches control whether 2Do recognizes dates and details typed into new task titles. Both start on. This section appears only for supported app languages. See [Natural Language Input](/docs/android/natural-language-input.md). ## Language[​](#language "Direct link to Language") Use **Language** to choose the app language, then restart 2Do to update all labels. ![2Do Android Language settings](https://downloads.2doapp.com/resources/img/2do-android/setting_lang.png) ## Appearance[​](#appearance "Direct link to Appearance") Appearance controls how task lists are displayed and how much information is shown at a glance. ![2Do Android Appearance settings](https://downloads.2doapp.com/resources/img/2do-android/setting_appearance1.png) The main Appearance section includes: * **App Appearance**: choose the app theme. * **Calendar Events**: show appointments above your tasks, choose calendars, and mark busy dates. This is a Pro feature. See [Calendar Events](/docs/android/calendar-integration.md). * **Display Mode** — choose between compressed, normal, and extended task rows. * **Grouped Dates** — group sorted task lists under date headings. * **Show overdue in red** — make overdue tasks easier to spot. * **More** — opens the full Appearance settings. ![2Do Android App Appearance theme picker](https://downloads.2doapp.com/resources/img/2do-android/setting_theme.png) ![2Do Android Display Mode picker](https://downloads.2doapp.com/resources/img/2do-android/setting_display_mode.png) ### Appearance > More[​](#appearance-more "Direct link to Appearance > More") The detailed Appearance screen includes: ![2Do Android Appearance — More settings](https://downloads.2doapp.com/resources/img/2do-android/setting_appearance2.png) ![2Do Android Appearance — More settings continued](https://downloads.2doapp.com/resources/img/2do-android/setting_appearance3.png) * **Friendly dates** — show dates in friendlier wording. * **Markdown editing** — enable Markdown shortcuts while editing notes. * **Markdown in note previews** — render Markdown in task note previews. * **Today** options — include overdue tasks in Today, include starred tasks in Today, and show the **Still working on** section. * **Sorting** options — put starred tasks above high-priority tasks and group dated tasks. * **Search** options — inherit search inside projects and decide whether subtasks appear separately. * **Completed Tasks** — choose how long completed tasks remain visible and whether that rule applies to subtasks. * **Auto-Delete Completed Tasks** — choose when completed tasks are automatically deleted, and whether subtasks get extra time before deletion. note If **Include starred tasks in Today** is on, Today and badge counts that use Today can include starred tasks even when they are not due today. ## Privacy[​](#privacy "Direct link to Privacy") Privacy contains three main areas: * **Password protect lists** — set a password, choose protected lists, control widget/notification access, and choose when the password is required again. * **Hidden lists** — keep selected lists out of the navigation drawer. * **Archived lists** — keep old lists and their tasks hidden from most app areas while preserving them. ### Password Protect Lists[​](#password-protect-lists "Direct link to Password Protect Lists") Use **Set Password** first, then choose **Protected lists**. Protected lists stay hidden from Focus Lists and Smart Lists until unlocked. ![2Do Android Password Protect Lists settings](https://downloads.2doapp.com/resources/img/2do-android/setting_passprotect.png) Use **Widgets & Notifications** to decide whether protected tasks can appear outside the app. Use **Require password** to choose when 2Do should ask again: immediately, after 1 minute, after 3 minutes, after 5 minutes, or after 10 minutes. Learn more in [Password Protection](/docs/android/password-protection.md). ## Notifications[​](#notifications "Direct link to Notifications") Notifications control task alerts, Sticky Alert, app badge behavior, list counters, and automatic alerts. The main Notifications section includes: * **Sticky Alert** — show today's tasks in the Android notification area. * **Alert Sound** — choose the default alert sound. * **Proximity Alerts** — manage location-based alerts and Android location permission. * **More** — opens the full Notifications settings. note Android notification permission is required for task alerts. Android location permission is required for Proximity Alerts. If either permission is denied in Android system settings, the related 2Do setting cannot work as expected. ### Notifications > More[​](#notifications-more "Direct link to Notifications > More") The detailed Notifications screen includes: * **Sticky Alert** — show today's tasks in the notification area. * **Hide on Lock Screen** — keep Sticky Alert content off the lock screen. * **Precise Alerts** — ask Android for more exact alert timing where supported. * **Exact alarm access** — open Android's exact-alarm permission flow when required by your Android version. * **Ignore battery optimizations** — open Android's battery settings so alerts and sync have a better chance of running on time. * **Alert Sound** — choose the default sound. * **Nag Me** — repeat task alerts at a chosen interval. * **Vibrate**, **LED**, and **Override mute** — control alert behavior on supported devices. * **App Badge** — choose what the launcher badge counts, where supported by your launcher. * **List Counters** — choose what list counts include. * **Snooze Alerts** — choose the default snooze behavior. * **Auto-Reminders For** — create automatic alerts for tasks that get a due time or due date. tip Use **Auto-Reminders For** if you often forget to add alerts manually. You can set different defaults for due dates and due times. Learn more in [Notifications and Alarms](/docs/android/notifications.md). ### Proximity Alerts[​](#proximity-alerts "Direct link to Proximity Alerts") Use **Proximity Alerts** to enable Nearby Alerts and manage Android location access for location-based reminders. 2Do uses task locations to decide when a location alert should fire. Add locations from the task editor; then enable the notification setting here. Learn more in [Nearby and Locations](/docs/android/nearby-locations.md). ## Advanced[​](#advanced "Direct link to Advanced") Advanced contains export, backup, date/time defaults, sounds, and diagnostics. ### Export as CSV[​](#export "Direct link to Export as CSV") Use **Export as CSV** to choose lists and share task data as a CSV file through Android's share sheet. You can export selected lists or all available lists. ### Manage Backups[​](#manage-backups "Direct link to Manage Backups") Use **Manage Backups** to create, restore, share, and configure backups. ![2Do Android Manage Backups settings](https://downloads.2doapp.com/resources/img/2do-android/setting_backups.png) Options include: * **Automatic backups** — never, every 24 hours, or every 48 hours. * **Keep at most** — 5, 10, 20, or 30 backups. * **Backup before performing Sync** — create a safety copy before sync runs. * **Backup location** — store backups in app storage or choose a folder through Android's folder picker. * **Backup Now** and **Restore Now** — run manual backup and restore actions. important Restoring a backup replaces the current local data on this Android device. Share or create a fresh backup first if you might need to undo the restore. Learn more in [Backups](/docs/android/backups.md). ### Advanced Options[​](#advanced-options "Direct link to Advanced Options") Advanced Options includes: ![2Do Android Advanced Options settings](https://downloads.2doapp.com/resources/img/2do-android/setting_adv1.png) ![2Do Android Advanced Options — continued](https://downloads.2doapp.com/resources/img/2do-android/setting_adv2.png) * **Week Starts** — choose the first day of the week. * **Default Due Date** — choose the default due date for new tasks. * **Default Due Time** — choose the default due time and time shortcuts. * **Default Start Time** — choose the default start time and shortcuts. * **Due Time Can Overdue** — allow tasks with due times to become overdue based on the time, not only the date. * **Checkmark sounds** — play a sound when marking tasks complete. * **Email Diagnostics** — prepare diagnostic logs for support. * **Automatically send logs with crashes** — allow crash logs to be sent automatically. * **Reset App Data** — wipe local data and start fresh. important **Reset App Data** removes local data from this Android device. Create a backup and confirm your sync state before using it. --- # Smart Lists, Smart Filters, and Search A **Smart Filter** searches tasks using words, tags, dates, or other conditions. Save it as a **Smart List** to keep it in the lists panel. Matching tasks appear there automatically as your tasks change. Use a filter once in Search or save it for later. The [Focus Filter](/docs/android/focus-filter.md) provides a quick way to switch a list between its full contents and your chosen conditions. ## Reaching Search[​](#search-bar "Direct link to Reaching Search") Tap the search icon in the top toolbar. Type a query, or use the controls below the field to choose presets, dates, and the search scope. Pulling down on the task list starts a sync. ## Full Text and Soundex[​](#modes "Direct link to Full Text and Soundex") * **Full Text Search** — precise word matching with wildcards and capital `OR`. Reach for it when you want exact control over the results. * **Soundex Search**: finds similar-sounding words, including some spelling mistakes and pronunciation variants. | If you typed this | Soundex can still find | | ----------------- | ---------------------- | | `plumver` | `plumber` | | `Steven` | `Stephen` | | `alexnder` | `Alexander` | | `Catherine` | `Kathryn` | **Soundex is on by default**. Switch it off in the search options when you want to use exact `OR`, exclusion, and wildcard searches. ## Full Text Search Operators[​](#full-text "Direct link to Full Text Search Operators") | Pattern | Behaviour | Example | | ---------------- | ----------------------------------------------------------- | ---------------------------------------------------------------------------------- | | `word1 word2` | Implicit AND — both words must appear somewhere in the task | `new job` | | `word1 OR word2` | OR (capital `OR`) — either word will match | `Call OR new` | | `word -word2` | Excludes a word | `new job -find` | | `word*` | Wildcard — matches words starting with the prefix | `new*` matches *new*, *newer*, *newest* | | `*` | Matches tasks with searchable text | Useful alongside keywords when you want a broad text match plus structured filters | | `!word` | Excludes a word (alternate syntax) | `!work` | Worked examples, using these sample tasks — *Get a haircut one day*, *Buy a new car some day*, *Find a new job*, *Call: Mum, tell about my new job*, *Call: Tim*: * `new job` → *Find a new job*, *Call: Mum, tell about my new job* * `new job -find` → *Call: Mum, tell about my new job* * `a day` → *Get a haircut one day*, *Buy a new car some day* * `Call OR new` → *Buy a new car some day*, *Find a new job*, *Call: Mum, tell about my new job*, *Call: Tim* ## The Built-In Keywords[​](#keywords "Direct link to The Built-In Keywords") Use these nine keywords to filter specific task details: `type:`, `tags:`, `taggroups:`, `locations:`, `lists:`, `groups:`, `modified:`, `created:`, and `completed:`. ### `type:` Filter by Task Property[​](#type "Direct link to type") ``` type: hiprio type: (proj OR chck) AND hiprio AND !repeat type: ((starred OR hiprio) AND due) OR today ``` #### Task Structure[​](#task-structure "Direct link to Task Structure") | Preset | Matches | | ----------- | ----------------------------------- | | `alltasks` | Any task — flat | | `task` | Plain Tasks only | | `subtasks` | Sub-tasks only | | `proj` | Projects | | `chck` | Checklists | | `emptyproj` | Projects with no active sub-tasks | | `emptychck` | Checklists with no active sub-tasks | #### Actions[​](#actions "Direct link to Actions") | Preset | Matches | | -------- | ---------------------- | | `action` | Any Action | | `call` | Call action | | `sms` | Message action | | `email` | Mail action | | `browse` | Browse (URL) action | | `visit` | Visit (Address) action | | `google` | Google (search) action | #### Attachments / Notes[​](#attachments--notes "Direct link to Attachments / Notes") | Preset | Matches | | ------- | ------------------ | | `audio` | Audio attachment | | `pict` | Picture attachment | | `note` | With notes | #### Priority[​](#priority "Direct link to Priority") `prio`, `noprio`, `hiprio`, `medprio`, `lowprio`. #### Status[​](#status "Direct link to Status") `starred`, `alarms`, `repeat`, `duration`, `inprogress`, `scheduled`, `paused`. #### Tags / Locations[​](#tags--locations "Direct link to Tags / Locations") `anytag`, `notag`, `anylocation`, `nolocation`. #### Dates[​](#dates "Direct link to Dates") `due`, `nodue`, `start`, `nostart`, `today`, `duetoday`, `starttoday`, `anytoday`, `tomorrow`, `duetomorrow`, `starttomorrow`, `anytomorrow`, `thisweek`, `duethisweek`, `startthisweek`, `anythisweek`, `overdue`, `tasksoverdue`, `donetoday`, `doneyesterday`, `donethisweek`. `today` and `tomorrow` match the **due date**. Use `anytoday` or `anytomorrow` to match either the start or due date. `thisweek` and `anythisweek` both match start or due dates in the current week. ### `tags:` Filter by Tag[​](#tags "Direct link to tags") ``` tags: home, work # = tags: home OR work tags: (home OR work) AND !play tags: (call OR mail) AND work tags: ? # any tag set tags: ~ # no tag set ``` ### `taggroups:` Filter by Tag Group[​](#taggroups "Direct link to taggroups") Match tags from a named tag group: ``` taggroups: People taggroups: People, Places taggroups: !Someday ``` The group expands to its tags. As with `tags: !work`, excluding a group with tags matches tasks that have tags, leaving untagged tasks out. ### `lists:` Filter by List[​](#lists "Direct link to lists") Search tasks in one or more named lists: ``` lists: Work lists: Work, Home lists: !Home ``` A matching list name searches that list even when another list is selected. If several lists share the same name, they all match. Use `!` to exclude a list. ### `locations:` Filter by Location[​](#locations "Direct link to locations") ``` locations: home, drycleaners locations: (home OR work) AND !playground locations: ? # any location set locations: ~ # no location set ``` ### `groups:` Filter by List Group[​](#groups "Direct link to groups") ``` groups: projects groups: home, work groups: !home ``` ### `modified:`, `created:`, and `completed:` Filter by Recency[​](#modified-created "Direct link to modified-created") Use a number and a unit: `mins`, `h`, `d`, `w`, `m`, or `y`. A plain value or `<` means within that time; `>` means longer ago. Long forms such as `2 days` and fractional values such as `1.5h` also work. ``` modified: 2d # last 2 days modified: > 2d # more than 2 days ago created: 2h # last 2 hours completed: 7d # completed within the last 7 days ``` ## Combining Keywords[​](#combining "Direct link to Combining Keywords") ``` plumber type: starred tags: builders groups: home type: overdue tags: home OR school tags: someday type: anyprio OR starred groups: shopping tags: !work type: (hiprio AND thisweek) OR starred groups: !work ``` Keywords normally combine with **AND**. An `OR` inside a keyword applies only to that keyword’s values. To make a whole keyword an alternative, put `OR` before it: ``` type: overdue OR tags: urgent ``` This matches tasks that are overdue or tagged `urgent`. Search text goes before structured keywords, as in the `plumber` example above. ## Date Filters[​](#date-filters "Direct link to Date Filters") The search field's calendar button opens a date filter alongside any other terms: * **No Due Date** — perfect for a *Someday* Smart List. * **Date Range** — fixed From / To dates. * **Dynamic Range** — *Next N days / weeks / months / years*. ## Search Presets[​](#rule-builder "Direct link to Search Presets") Open **Search Presets** below the search field to choose built-in filters. Tap a filter to select it, and tap **!** to exclude it. Choose **Match ALL filters** to require every selected condition, or **Match ANY filter** to accept any one of them. The preview shows the search text these choices produce. Tap **Done** to apply it. If a typed filter is too complex for these controls, its expression remains visible and unchanged. Edit it in the search field instead. ## Saving a Filter as a Smart List[​](#save "Direct link to Saving a Filter as a Smart List") When the results are right, tap the save/add button below the search field. 2Do creates a Smart List with the current query, dates, and search options, and gives it a name based on the query. You can rename it afterward. Select **All** or set the search scope to **All Lists** first if you want to search across lists. Otherwise, the saved search can be limited to the current list. You can also choose **New Smart List** from the `[+]` menu in the lists panel. ## Updating or Editing a Smart List[​](#editing "Direct link to Updating or Editing a Smart List") Select the Smart List, open Search, and adjust its query or filters. Tap the save button below the search field to update the current Smart List. If you switch to another list first, saving creates a new Smart List instead. ## Hiding Completed Tasks[​](#hide-completed "Direct link to Hiding Completed Tasks") Long-press the Smart List → **Hide Completed Tasks**. ## Reusable Smart List Recipes[​](#recipes "Direct link to Reusable Smart List Recipes") | Smart List | Rule | | ------------------- | ------------------------------------------ | | Someday | search → **No Due Date** → Save (on *All*) | | Tomorrow | `type: duetomorrow` | | Next 3 Days | **Dynamic Range** → 3 days | | Tasks With Any Tag | `type: anytag` | | Untagged | `type: notag` | | High-priority Today | `type: hiprio AND today` | | Errands Nearby | `type: anylocation AND visit` | --- # Stars and Priorities 2Do has two ways to mark a task as *more important* than others: a **Star** and a **Priority**. They look similar, but they're for different jobs. ## The Short Version[​](#short "Direct link to The Short Version") * **Star** — *I want this task in front of me right now.* Personal, ephemeral, easy to flip on and off. * **Priority** — *This task is intrinsically important.* Stable, ordered (None / Low / Medium / High), survives across reviews. You can have both on the same task. You'll usually only need one. ## Stars[​](#stars "Direct link to Stars") A star is a binary flag. To star a task, use the long-press menu or the visible task-row actions. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/expand_task_change_star.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/expand_task_change_star_poster.png) ### What Starring Does[​](#what-starring-does "Direct link to What Starring Does") * The task appears in the **Starred** Focus List at the top of the navigation drawer. * It optionally appears in *Today* — *Include Starred Tasks* in **Settings > Appearance**. * It matches `type: starred` in Smart Filters. Use stars for *temporary* emphasis — tasks you want in front of you for the next few hours, not a permanent classification. ## Priorities[​](#priorities "Direct link to Priorities") Four levels: **None**, **Low**, **Medium**, **High**. The priority dot is colour-coded on every task row. ### Setting a Priority[​](#setting-a-priority "Direct link to Setting a Priority") * In the editor — tap the priority field, pick a level. * From the long-press menu — Priority sub-menu. ### What Priority Does[​](#what-priority-does "Direct link to What Priority Does") * Colour-coded dot on every row. * Sorting by **Priority** groups tasks by level — High first. * Smart Filters: `type: hiprio`, `type: medprio`, `type: lowprio`, `type: prio`, `type: noprio`. Use priority for *stable* emphasis. Reserve High for genuinely top-of-heap tasks. ## Stars vs. Priorities — When to Use Which[​](#vs "Direct link to Stars vs. Priorities — When to Use Which") | Situation | Use | | ------------------------------------ | ------------------------------- | | In front of me *today only* | **Star** | | Intrinsically more important | **Priority** | | Sortable hierarchy of importance | **Priority** (sort by Priority) | | The most important across every list | `type: hiprio` | | Quick "what should I do next?" view | **Starred** Focus List | tip Use Priority to label what *is* important and Star to mark what you want to *do next*. They answer different questions. tip `type: hiprio AND starred` — a tight "high-priority items I'm actively pushing on" view. --- # Sync — Overview 2Do for Android keeps your tasks in step across devices through a sync service of your choice. We don't run a sync cloud of our own. Instead, you pick a service you already trust, and 2Do reads and writes through it. The available sync methods are: * **[iCloud](/docs/android/sync-with-icloud-native.md)**: the recommended method when you use 2Do on Android together with iPhone, iPad, or Mac. Sign in once with your Apple Account, and all of your 2Do data syncs privately through iCloud. Every device needs a version of 2Do with iCloud sync; see [Before You Start](/docs/android/sync-with-icloud-native.md#requirements). * **[Dropbox](/docs/android/sync-with-dropbox.md)**: syncs attachments, List Groups, Tag Groups, Smart Lists, and Search Presets, and works with older versions of 2Do. Choose it when a device can't use iCloud sync yet, or when you don't use an Apple Account. * **[iCloud CalDAV](/docs/android/sync-with-icloud.md)**: Apple-hosted CalDAV sync, signed in with an app-specific password. It is a different method from **iCloud**. Works well for standard tasks, but does not sync every 2Do detail. * **[Custom CalDAV](/docs/android/sync-with-caldav.md)**: Fruux, Yahoo!, ownCloud / Nextcloud, Synology, Kerio, Oracle, SabreDAV, and other CalDAV-compatible servers. * **[Toodledo](/docs/android/sync-with-toodledo.md)**: for Toodledo users. Web access via toodledo.com. Apple Reminders is **not** a 2Do sync method on Android. Neither iCloud sync nor iCloud CalDAV makes your tasks appear in the Reminders app on Apple devices. See [Sync with Apple Reminders](/docs/android/sync-with-reminders.md) for why. To choose a method, open **Settings > Sync** and tap **Selected Account**. If 2Do lives on a single device, choose **None**. note Sync is a 2Do Pro feature on Android. Every sync method works during the app's full-featured trial, and after the trial ends, syncing needs the Pro upgrade. ## Choose One Method, Use It Everywhere[​](#one-method "Direct link to Choose One Method, Use It Everywhere") warning Every device that runs 2Do must use the **same** sync method and the **same** account. Mixing methods, for example iCloud on your iPhone and Dropbox on Android, leaves you with two disconnected sets of tasks. Pick one, set it up the same on every device, and only then start using 2Do day-to-day. ## At-a-Glance Comparison[​](#comparison "Direct link to At-a-Glance Comparison") | | iCloud | Dropbox | iCloud CalDAV | Custom CalDAV | Toodledo | | ------------------------------------ | ------ | ------- | ----------------------- | ----------------------- | ------------ | | Recommended | ✅ | | | | | | All task properties | ✅ | ✅ | partial | partial | partial | | Attachments | ✅ | ✅ | one picture + one audio | one picture + one audio | | | List Groups, Tag Groups, Smart Lists | ✅ | ✅ | | | | | Manual order in Focus Lists | ✅ | | | | | | Web access | | | | varies | toodledo.com | | Cross-platform (iOS / Mac / Android) | ✅¹ | ✅ | ✅ | ✅ | ✅ | ¹ Every device needs a version of 2Do with iCloud sync. See [Before You Start](/docs/android/sync-with-icloud-native.md#requirements). note iCloud is the best choice when every device runs a version of 2Do with iCloud sync and you have an Apple Account. Dropbox carries nearly the same data and also works with older versions of 2Do. CalDAV sync is great for standard tasks, but it does not sync every 2Do detail. Toodledo does not sync attachments. ## Setting Up a New Device[​](#new-device "Direct link to Setting Up a New Device") When you install 2Do on a new Android device and sign in to a sync service that already has your data: 1. Open **Settings > Sync** and pick the **same** sync method you've been using on your other devices. 2. Sign in with the same account. 3. When 2Do asks how to proceed on first sync, choose **Replace Local Data** — this pulls everything from the cloud down to the new device, leaving the cloud copy untouched. When you've just **restored from a backup** and your *device* now has the freshest data: 1. Set up sync the same way. 2. On first sync, choose **Replace Server Data** — this pushes your restored data up, replacing whatever's in the cloud. With iCloud, the first-sync choices have different names: **Keep iCloud Tasks** pulls everything down to this device, and **Keep This Device's Tasks** pushes this device's data up. A new device with no 2Do data downloads everything without asking. See [First Sync](/docs/android/sync-with-icloud-native.md#first-sync). If you're unsure which side has the freshest data, **share a backup first** from **Settings > Manage Backups** before connecting sync, so you have a recovery point either way. ## Replace Server Data vs Replace Local Data[​](#replace "Direct link to Replace Server Data vs Replace Local Data") When you connect a new device or reset sync, 2Do may ask whether to: * **Replace Server Data** — push your local 2Do tasks up to the sync service. Use this when 2Do has the right data and the server is empty or out of date. * **Replace Local Data** — pull tasks from the server down to this device. Use this when the server has the right data and your local 2Do data is empty or out of date. Choosing this manually at any time Beyond the first-sync prompt, you can switch the next sync's behaviour any time under **Settings > Sync > Next Sync Action** — pick **Sync Normally**, **Replace Local Data**, or **Replace Server Data** before tapping **Sync**. After the sync completes, the option resets to *Sync Normally* automatically. For Toodledo, **Next Sync Action** offers **Sync normally**, **Merge local data with server**, and **Replace data on this device**. For iCloud, **Next sync action** offers **Sync Normally**, **Combine Tasks**, **Keep This Device's Tasks**, and **Keep iCloud Tasks**, the same choices as the first iCloud sync. See [Merging or Replacing Later](/docs/android/sync-with-icloud-native.md#next-sync-action). warning Pick the wrong direction and you can lose data. Always pause and think about which side has the data you want to keep before confirming. ## Switching Sync Methods[​](#switching "Direct link to Switching Sync Methods") To change methods: 1. **Share a backup** from **Settings > Manage Backups** as a safety net. 2. **Disconnect** the current method on each device. 3. **Connect** the new method on **one device first** and let it populate. 4. **Connect** the others, choosing **Replace Local Data** to pull from the freshly populated server. To move from Dropbox to iCloud, follow [Moving from Dropbox to iCloud](/docs/android/sync-with-icloud-native.md#switching), which also covers your iPhone, iPad, and Mac. ## Background Sync on Android[​](#background "Direct link to Background Sync on Android") Android's background-execution rules vary by device manufacturer. To keep sync responsive: * **Don't force-quit 2Do** from the recents screen. * **Settings > Battery > Battery Optimization** → 2Do → **Don't Optimize**. * On heavily customised launchers (MIUI, ColorOS, etc.), enable any "auto-start" or "background activity" option for 2Do. You can also pull-to-refresh the task list to force an immediate sync. With iCloud, 2Do also syncs soon after you change something on another device, as long as 2Do is open. --- # Sync with Custom CalDAV (Fruux, Yahoo!, ownCloud, etc.) 2Do for Android supports any CalDAV-compatible server. You can sync with a hosted service, your own server, or your company's CalDAV server. note Sync is a 2Do Pro feature on Android. Every sync method, including CalDAV, works during the app's full-featured trial, and after the trial ends, syncing needs the Pro upgrade. ## Supported Servers[​](#servers "Direct link to Supported Servers") **iCal Server, ownCloud, Fruux, Oracle, Kerio, SabreDAV, and so on.** In practice, 2Do works with any server that speaks CalDAV correctly, including: * **Fruux** (built-in) * **Yahoo! Calendar** (built-in) * **ownCloud** / **Nextcloud** * **Synology Calendar** (CalDAV) * **Kerio Connect** * **Oracle Calendar** * **SabreDAV**-based servers * **Apple Calendar Server (iCal Server)** * **Fastmail** and other CalDAV providers **iCloud CalDAV** is documented separately on [Sync with iCloud CalDAV](/docs/android/sync-with-icloud.md). 2Do's recommended **iCloud** sync is not CalDAV and has its own page: [Sync with iCloud](/docs/android/sync-with-icloud-native.md). tip For self-hosters, **Nextcloud** + 2Do is a popular combination — your tasks live entirely on your own server. ## Lists and Task Calendars[​](#task-calendars "Direct link to Lists and Task Calendars") Every list you sync over CalDAV is stored on the server as a **task calendar** — the CalDAV name for a collection that holds tasks rather than events. It is the same container as your list in 2Do under a different name: 2Do shows it as a **List**, while other CalDAV apps may label it a task calendar, a task list, or simply a calendar. Changes travel in both directions: * Create a list in 2Do and the matching task calendar appears on the server; rename or delete the list and the server follows. * A task calendar created in another CalDAV app arrives in 2Do as an ordinary list. * Only apps that speak CalDAV can see these collections. Not every 2Do feature inside a list syncs with it — see [Limitations](#limitations). ## What CalDAV Sync Carries[​](#what "Direct link to What CalDAV Sync Carries") * All core task fields — title, notes, dates, alarms, recurrence, priority, action, location. * Tasks added to 2Do can appear in other CalDAV apps using the same account. ### Limitations[​](#limitations "Direct link to Limitations") * **List Groups, Tag Groups, Smart Lists, Search Presets** do not sync via CalDAV. * **List color syncing** may not be supported by some CalDAV servers. * **Only one picture and one audio recording per task** can sync. * **Paused state of a tag** — re-pause on each device. * Some unusual repeating alert setups may not look exactly the same on the server. ## Setup[​](#setup "Direct link to Setup") 1. Open **Settings > Sync** and tap **Selected Account**. When an account is connected, this row shows the account's name instead. 2. Choose your server: **Fruux**, **Yahoo!**, or **FastMail** in the **CalDAV** group for built-in entries with auto-discovery, or **Custom CalDAV Server** for ownCloud, Nextcloud, Synology, Kerio, and other servers. 3. Under **Credentials**, enter your **Username** and **Password**. For **Custom CalDAV Server**, also enter the **Server URL**. 4. Tap **Sign in**. 2Do auto-discovers task collections on the server. 5. Repeat on each device with the same credentials. tip If your server requires app-specific passwords, generate one for 2Do specifically so you can revoke it later without changing your main account password. ### Fruux Setup[​](#fruux "Direct link to Fruux Setup") 1. In **Settings > Sync**, tap **Selected Account** and choose **Fruux**. 2. Generate an **app-specific password** at [www.fruux.com](https://www.fruux.com). 3. Enter your username and the app-specific password, then tap **Sign in**. 2Do auto-discovers the server and account paths — no manual URL entry required. ### Custom CalDAV Server[​](#custom "Direct link to Custom CalDAV Server") For ownCloud, Nextcloud, Synology, Kerio, and similar: 1. In **Settings > Sync**, tap **Selected Account** and choose **Custom CalDAV Server**. 2. Enter the **Server URL** as your provider documents it (often the principal URL of your CalDAV account). 3. Enter your **Username** and **Password**. 4. Tap **Sign in**. 2Do discovers your task collections. After setup — your first sync Close Settings and return to the main task list. **Pull down on the task list** to force the first sync. 2Do will then ask whether to **Replace Server Data** or **Replace Local Data** — choose carefully based on which side has the data you want to keep. After the first sync, you can manually override the next sync any time under **Settings > Sync > Next Sync Action** — pick *Sync Normally*, *Replace Local Data*, or *Replace Server Data* before triggering the next sync. The setting auto-resets to *Sync Normally* afterwards. ## Daily Sync[​](#daily "Direct link to Daily Sync") Custom CalDAV syncs in the background as Android permits. Pull-to-refresh on the task list forces an immediate sync. ## Common Issues[​](#issues "Direct link to Common Issues") ### "Sync is a Pro feature" message[​](#trial-is-over-message "Direct link to \"Sync is a Pro feature\" message") Sync on Android needs 2Do Pro once the app's full-featured trial ends. 2Do then shows this message in **Settings > Sync** and stops syncing until you upgrade. It applies to every sync method, not only CalDAV. ### 301 Moved Permanently[​](#301-moved-permanently "Direct link to 301 Moved Permanently") Some servers redirect the discovery URL. Update to the latest 2Do, which follows redirects automatically. ### Multiple alerts on recurring tasks get removed[​](#multiple-alerts-on-recurring-tasks-get-removed "Direct link to Multiple alerts on recurring tasks get removed") Some CalDAV servers accept only a single alarm on repeating tasks. Use [iCloud](/docs/android/sync-with-icloud-native.md) or [Dropbox](/docs/android/sync-with-dropbox.md) sync if you rely heavily on multiple alarms per repeating task. ## Setting Up Another Device & Troubleshooting[​](#another-device "Direct link to Setting Up Another Device & Troubleshooting") * **Adding another device** — install 2Do, point CalDAV at **the exact same server URL and account credentials** as your other devices, and let the first sync pull your data down. See [Setting up a new device](/docs/faqs/setting-up-new-device.md) for the full walk-through. * **One device showing different tasks?** — see [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). Standard recovery: run a clean sync on the most up-to-date device, then *Replace Local Data* on the lagging ones. * **Replace Server Data vs Replace Local Data** — picking the wrong side can overwrite good data. Pause and read [Replace Server Data vs Replace Local Data](/docs/android/sync.md#replace) before confirming. You can re-trigger the choice any time under **Settings > Sync > Next Sync Action**. --- # Sync with Dropbox Dropbox carries every task property, including attachments, List Groups, Tag Groups, Smart Lists, and Search Presets, and it is supported on iPhone, iPad, Mac, and Android, including older versions of 2Do. If every device you sync runs a version of 2Do with iCloud sync and you have an Apple Account, [iCloud](/docs/android/sync-with-icloud-native.md) is the recommended method. Dropbox remains the choice when a device can't use iCloud sync yet, or when you don't use an Apple Account. Sync is a 2Do Pro feature on Android. Every sync method, including Dropbox, works during the app's full-featured trial, and after the trial ends, syncing needs the Pro upgrade. ## What Dropbox Sync Supports[​](#what "Direct link to What Dropbox Sync Supports") * All task fields — title, notes, dates, alarms, recurrence, priority, action, location, sub-tasks. * **Attachments** (audio and picture). * **List Groups, Tag Groups, Smart Lists, Search Presets** — saved across devices. ## What 2Do Stores in Dropbox[​](#what-stored "Direct link to What 2Do Stores in Dropbox") 2Do uses Dropbox's **App Folder** permission scope — it can only read and write files inside its own dedicated folder under `Apps/` in your Dropbox. 2Do cannot read, modify, or even see any other file in your Dropbox. You **cannot read** 2Do's task data directly in Dropbox. Dropbox is only the place where your devices exchange the sync file, not a task viewer. All communication is over SSL. ## Setup[​](#setup "Direct link to Setup") 1. Open **Settings > Sync**. 2. Tap **Selected Account** and choose **Dropbox**. 3. Tap **Link with existing account** and authorise 2Do against your Dropbox account. 4. Confirm. 2Do creates its app folder and is ready to sync. 5. Repeat on each device, signing in to the same Dropbox account. The first device seeds the folder. When the second device connects, you'll be asked to choose **Replace Server Data** or **Replace Local Data** — pick the direction matching where your data lives. Use the **exact same** Dropbox account on every device 2Do can only sync devices that talk to the *same* Dropbox account. Connecting one device to ** and another to ** — even if the data inside both is yours — will leave the two devices completely isolated from each other. If a device isn't seeing the same tasks as the rest, the **first** thing to verify is that **Settings > Sync > Dropbox** shows the same email/Dropbox username on every device. If they differ, disconnect the wrong account and re-link with the correct one. After setup — your first sync Close Settings and return to the main task list. **Pull down on the task list** to force the first sync. 2Do will then ask whether to **Replace Server Data** or **Replace Local Data** — choose carefully based on which side has the data you want to keep. After the first sync, you can manually override the next sync any time under **Settings > Sync > Next Sync Action** — pick *Sync Normally*, *Replace Local Data*, or *Replace Server Data* before triggering the next sync. The setting auto-resets to *Sync Normally* afterwards. ## Daily Sync[​](#daily "Direct link to Daily Sync") Once set up, 2Do for Android syncs in the background as Android allows. Pull down on the task list to force an immediate sync. tip Pair Dropbox sync with regular backups from **Settings > Manage Backups**. Backups are independent of sync, so you have an extra recovery path. ## Common Issues[​](#issues "Direct link to Common Issues") ### Old or missing tasks[​](#old-or-missing-tasks "Direct link to Old or missing tasks") Check that 2Do uses the same Dropbox account as the device holding your latest data. Another account may still contain an older copy of your tasks. Confirm the account and which copy is current before replacing data. See [Old or missing tasks with Dropbox](/docs/faqs/dropbox-shows-old-or-missing-tasks.md#check-account). Keep Dropbox until every device you sync, including Android, can use [iCloud sync](/docs/android/sync-with-icloud-native.md#requirements). ### "Dropbox Not Linked"[​](#dropbox-not-linked "Direct link to \"Dropbox Not Linked\"") The link to Dropbox has expired or been revoked. Re-link from **Settings > Sync** by tapping **Link with existing account**. ### Dropbox v1\_retired error[​](#dropbox-v1_retired-error "Direct link to Dropbox v1_retired error") Dropbox has retired old API versions over time. **Update 2Do to the latest version** from Google Play or [our website](/android/download.md). ### 504 timeout / 509 bandwidth errors[​](#504-timeout--509-bandwidth-errors "Direct link to 504 timeout / 509 bandwidth errors") A 504 typically means Dropbox couldn't be reached in time — check your network and retry. A 509 means the Dropbox **App Folder bandwidth limit** for free Dropbox accounts has been exceeded; wait until the quota resets, or upgrade your Dropbox plan. ### Dropbox metadata reset[​](#dropbox-metadata-reset "Direct link to Dropbox metadata reset") If Dropbox's data storage is reset (rare), 2Do prompts you to choose how to proceed: replace existing data in Dropbox with what's in 2Do, or the other way around. Choose carefully — pick the side with the data you want to keep. ### Different task counts on different devices[​](#different-task-counts-on-different-devices "Direct link to Different task counts on different devices") If one device shows a different count than the rest, it likely missed a sync cycle. Open 2Do on the lagging device and pull-to-refresh. ## Setting Up Another Device & Troubleshooting[​](#another-device "Direct link to Setting Up Another Device & Troubleshooting") * **Adding another device** — install 2Do, sign in to **the exact same Dropbox account**, and let the first sync pull your data down. See [Setting up a new device](/docs/faqs/setting-up-new-device.md) for the full walk-through. * **One device showing different tasks?** — see [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). The standard recovery is: run a clean sync on the most up-to-date device, then *Replace Local Data* on the lagging ones. * **Replace Server Data vs Replace Local Data** — picking the wrong side can overwrite good data. Pause and read [Replace Server Data vs Replace Local Data](/docs/android/sync.md#replace) before confirming. You can re-trigger the choice any time under **Settings > Sync > Next Sync Action**. ## Privacy[​](#privacy "Direct link to Privacy") * 2Do syncs through Dropbox's **app-sandboxed App Folder** mechanism. Inside `Apps/`, 2Do only sees its own dedicated **2Do** folder — every other folder in your Dropbox (including other apps under `Apps/`) is invisible and inaccessible to it. Don't hand-edit, rename, move, or delete the 2Do folder The files inside `Apps/2Do` are **not** meant to be human-readable. They're an internal sync database 2Do uses to coordinate state across your devices. Editing, renaming, moving, copying, or deleting any file in this folder by hand can break sync **irrevocably** and cause data corruption that's difficult or impossible to recover from. If you need to change your Dropbox setup (move accounts, reset, etc.), do it from inside 2Do's **Settings > Sync** — never by touching the folder directly. * All traffic between 2Do and Dropbox is encrypted in transit (SSL). --- # Sync with iCloud CalDAV Looking for 2Do's recommended iCloud sync? This page covers **iCloud CalDAV**, which signs in with an app-specific password. To sync all of your 2Do data with 2Do on iPhone, iPad, and Mac, choose **iCloud** instead. It is a separate entry in the list of sync methods and signs in with your normal Apple Account. See [Sync with iCloud](/docs/android/sync-with-icloud-native.md). **iCloud CalDAV** lets 2Do read and write tasks through iCloud's CalDAV service, using your Apple ID and an app-specific password. note Sync is a 2Do Pro feature on Android. Every sync method, including iCloud CalDAV, works during the app's full-featured trial, and after the trial ends, syncing needs the Pro upgrade. warning **Important: Reminders is separate.** Your iCloud lists in Apple's Reminders app are separate from the iCloud CalDAV task lists that 2Do syncs. Changes made in those Reminders lists do not sync to 2Do, and changes made in 2Do do not appear in them. See [Sync with Apple Reminders](/docs/android/sync-with-reminders.md) for details. ## Lists and Task Calendars[​](#task-calendars "Direct link to Lists and Task Calendars") Every 2Do list you sync through iCloud is stored in iCloud as a **task calendar** — the CalDAV name for a collection that holds tasks rather than events. It is the same container as your list in 2Do under a different name: 2Do shows it as a **List**, while other apps may label the identical collection a task calendar, a task list, or simply a calendar. A calendar app such as **BusyCal**, for example, shows the same iCloud collection among its task calendars. Changes travel in both directions: * Create a list in 2Do and the matching task calendar appears in iCloud; rename or delete the list and iCloud follows. * A task calendar created in another CalDAV app arrives in 2Do as an ordinary list. * Only apps that read iCloud over CalDAV can see these collections, which is why the same list turns up in some apps and not others. ## What iCloud CalDAV Carries[​](#what "Direct link to What iCloud CalDAV Carries") * Core task fields — title, notes, dates, alarms, recurrence, priority, action, location, sub-tasks. * A maximum of one picture and one audio recording per task can sync when attachment sync is enabled. ### Limitations[​](#limitations "Direct link to Limitations") iCloud CalDAV does not have a place for every 2Do feature. The following do not sync through iCloud CalDAV as full 2Do features: * **List Groups** * **Tag Groups** * **Smart Lists** * **Search Presets** * **Only one picture and one audio recording per task** * **Paused state of a tag** — re-pause on each device. In addition: **projects and checklists** sync between your 2Do devices, but other CalDAV apps may show them as plain tasks because they do not have the same project and checklist model as 2Do. tip To sync with 2Do on iPhone, iPad, and Mac, [iCloud](/docs/android/sync-with-icloud-native.md) also carries List Groups, Tag Groups, and Smart Lists, and needs no app-specific password. If a device can't use iCloud sync yet, use [Dropbox](/docs/android/sync-with-dropbox.md). ## App-Specific Password Requirement[​](#app-specific-password "Direct link to App-Specific Password Requirement") Apple requires **two-factor authentication** for apps that access iCloud over CalDAV. You cannot use your normal Apple ID password for iCloud CalDAV. Instead, generate an **app-specific password** at [appleid.apple.com](https://appleid.apple.com) → *Sign-In and Security* → *App-Specific Passwords*, and enter that in 2Do. ### Best Practices[​](#best-practices "Direct link to Best Practices") * **Use your `@icloud.com` address, not `@mac.com`.** Old `@mac.com` addresses don't work; replace with `@icloud.com`. * **Use your primary Apple ID, not an alias.** iCloud aliases do not work for CalDAV sign-in. * **Set your device's date and time to automatic.** Android's automatic date/time setting must be on. If your Android device clock is wrong, the app-specific password silently fails. * **Resetting your main Apple ID password revokes all your app-specific passwords.** Generate a new one if that happens. ## Setup[​](#setup "Direct link to Setup") 1. Make sure two-factor authentication is enabled on your Apple ID. 2. Generate an **app-specific password** at [appleid.apple.com](https://appleid.apple.com) → *Security* → *App-Specific Passwords*. Label it *2Do* so you can revoke it later. 3. In 2Do, open **Settings > Sync** and tap **Selected Account**. When an account is connected, this row shows the account's name instead. 4. Choose **iCloud CalDAV**. Don't choose **iCloud**, which is the separate method described in [Sync with iCloud](/docs/android/sync-with-icloud-native.md). In earlier versions of 2Do, this entry is called **iCloud Reminders**. 5. Under **Credentials**, enter your Apple ID as the **Username** and the **app-specific password** you generated as the **Password**. 6. Tap **Sign in**. 2Do connects, discovers your iCloud CalDAV task lists, and starts syncing. 7. Repeat on each device with the same Apple ID. After setup — your first sync Close Settings and return to the main task list. **Pull down on the task list** to force the first sync. 2Do will then ask whether to **Replace Server Data** or **Replace Local Data** — choose carefully based on which side has the data you want to keep. After the first sync, you can manually override the next sync any time under **Settings > Sync > Next Sync Action** — pick *Sync Normally*, *Replace Local Data*, or *Replace Server Data* before triggering the next sync. The setting auto-resets to *Sync Normally* afterwards. ## Daily Sync[​](#daily "Direct link to Daily Sync") iCloud CalDAV syncs in the background as Android permits. Pull down on the task list to force an immediate sync. ## Common Issues[​](#issues "Direct link to Common Issues") ### "Password is incorrect" / can't log in[​](#password-is-incorrect--cant-log-in "Direct link to \"Password is incorrect\" / can't log in") Most often this is one of: 1. **Using your normal Apple ID password** instead of an app-specific password. 2. **App-specific password revoked** because you reset your Apple ID password — generate a new one. 3. **Your Android device clock is wrong** — turn on automatic date/time. 4. **Used an alias or `@mac.com` address** — use your primary `@icloud.com` address. If none of those help, remove the iCloud account from 2Do and re-add it with a freshly-generated app-specific password. ### Apple Reminders changes do not appear in 2Do[​](#apple-reminders-changes-do-not-appear-in-2do "Direct link to Apple Reminders changes do not appear in 2Do") Your iCloud lists in Apple's Reminders app are not shared through iCloud CalDAV. If you create or edit a reminder in one of those lists, that change does not sync to 2Do. Likewise, tasks you change in 2Do do not appear in those lists. If you want the same 2Do task data on Android, iPhone, iPad, and Mac without depending on iCloud CalDAV, use [iCloud](/docs/android/sync-with-icloud-native.md) sync, or **Dropbox** if a device can't use iCloud sync yet. ### 507 Insufficient Storage error[​](#507-insufficient-storage-error "Direct link to 507 Insufficient Storage error") Your iCloud account is out of storage. Free up space in iCloud, then retry sync. ### 301 Moved Permanently when syncing using CalDAV[​](#301-moved-permanently-when-syncing-using-caldav "Direct link to 301 Moved Permanently when syncing using CalDAV") Apple occasionally moves CalDAV endpoints. Update 2Do to the latest version — newer builds follow Apple's redirects automatically. ## Setting Up Another Device & Troubleshooting[​](#another-device "Direct link to Setting Up Another Device & Troubleshooting") * **Adding another device** — install 2Do, configure CalDAV against **the exact same iCloud Apple ID** (with a fresh app-specific password), and let the first sync pull your data down. See [Setting up a new device](/docs/faqs/setting-up-new-device.md) for the step-by-step. * **One device showing different tasks?** — see [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). Standard recovery: run a clean sync on the most up-to-date device, then *Replace Local Data* on the lagging ones. * **Replace Server Data vs Replace Local Data** — picking the wrong side can overwrite good data. Pause and read [Replace Server Data vs Replace Local Data](/docs/android/sync.md#replace) before confirming. You can re-trigger the choice any time under **Settings > Sync > Next Sync Action**. --- # Sync with iCloud Not the same as iCloud CalDAV or Apple Reminders This page covers 2Do's recommended **iCloud** sync, which signs in with your Apple Account and syncs all of your 2Do data privately. **iCloud CalDAV** is a separate method that signs in with an app-specific password and syncs CalDAV task lists: see [Sync with iCloud CalDAV](/docs/android/sync-with-icloud.md). Neither method makes your tasks appear in Apple Reminders: see [Sync with Apple Reminders](/docs/android/sync-with-reminders.md). **iCloud** is the recommended way to sync 2Do for Android with 2Do on iPhone, iPad, and Mac. Your tasks, lists, tags, Smart Lists, and attachments sync through your iCloud account and stay private to that account. On iPhone, iPad, and Mac, 2Do uses the iCloud account the device is signed in to. On Android, you sign in to the same Apple Account once from 2Do with your normal password. You do not need an app-specific password. ## Before You Start[​](#requirements "Direct link to Before You Start") iCloud sync works only when every device you sync can use it: * **Android:** a version of 2Do whose list of sync methods includes **iCloud** as its own entry, separate from **iCloud CalDAV**. In earlier versions, the only iCloud option is the CalDAV one, shown as **iCloud Reminders**. * **iPhone and iPad:** 2Do version 4. Version 3 and earlier cannot use iCloud sync. * **Mac:** 2Do 2026.x on macOS 14 or later. Version 2.x and earlier cannot use iCloud sync. * **The same Apple Account on every device.** On iPhone, iPad, and Mac, that is the account signed in to iCloud in the system settings. A device that uses another sync method or another account keeps a separate set of tasks. * **2Do Pro on Android.** Sync is a Pro feature on Android. You can use it during the app's full-featured trial, and after the trial ends, syncing needs the Pro upgrade. If 2Do for Android does not list **iCloud** yet, keep using [Dropbox](/docs/android/sync-with-dropbox.md) or your current method on all of your devices until an update with iCloud sync is available. Dropbox also remains the right choice when a device can't be updated, or when you don't use an Apple Account. ## Setup[​](#setup "Direct link to Setup") 1. Open **Settings > Sync**. 2. Tap **Selected Account** at the top. If a Dropbox or other account is connected, this row shows the account's name instead. 3. Choose **iCloud**, listed under **Recommended**. Don't choose **iCloud CalDAV**, which is a different method. 4. On the **iCloud** screen, tap **Sign In to iCloud**. Apple's sign-in page opens in your browser. 5. Sign in with your Apple Account email address or phone number and your password. If Apple asks for a verification code, enter the code sent to your trusted Apple device or phone number. 6. Back in 2Do, the **iCloud** screen shows **Signed In to iCloud**, and the first sync starts. See [First Sync](#first-sync). 7. Set up your iPhone, iPad, and Mac with the same Apple Account. See [iCloud sync on iPhone and iPad](/docs/ios/sync-with-icloud.md) and [iCloud sync on the Mac](/docs/macos/sync-with-icloud.md). Your current sync method stays in place until you finish signing in. If you cancel, or go back before signing in, nothing changes. Signing in without a Google account If Chrome opens for the first time and asks you to sign in with a Google account, you can continue without signing in. Only the Apple sign-in is needed. ## First Sync[​](#first-sync "Direct link to First Sync") When either this device or iCloud has no 2Do data yet, the first sync runs without asking. 2Do uploads this device's data to iCloud, or downloads the data already there. Anything you have created counts as 2Do data, including a list with no tasks in it. When both this device and iCloud already have 2Do data, the **iCloud** screen shows **Choose How to Start Syncing**, and syncing waits until you choose one of these: * **Combine Tasks** brings the data on this device and in iCloud together. 2Do reconciles items that are the same on both sides, such as tasks that reached both through an earlier sync, and keeps items it cannot match as separate copies. Similar tasks that were created separately on each side may both remain. * **Keep This Device's Tasks** replaces the 2Do data in iCloud with the data on this device. Items that are only in iCloud are removed, and your other devices then receive this device's data. * **Keep iCloud Tasks** replaces the 2Do data on this device with the data in iCloud. Items that are only on this device are removed. Both **Keep** choices ask you to confirm before anything is replaced. If you are not sure which side is complete, choose **Combine Tasks**: it reconciles the two sides instead of replacing one with the other. Choose **Keep iCloud Tasks** when iCloud already has everything this device has, for example after your other devices moved to iCloud from the same Dropbox account. Replacing the tasks in iCloud affects every device **Keep This Device's Tasks** changes the tasks in iCloud for every device that syncs with your Apple Account. Before you choose it, make a backup from **Settings > Manage Backups** and keep a copy off the device. Until you choose, syncing stays paused. To choose later, open **Settings > Sync > iCloud Account**, or pull down on the task list. ### Merging or Replacing Later[​](#next-sync-action "Direct link to Merging or Replacing Later") To run one of these choices again later, for example when one device has fallen out of step, open **Settings > Sync > Next sync action** and choose **Combine Tasks**, **Keep This Device's Tasks**, or **Keep iCloud Tasks**. When you go back, 2Do asks you to confirm. The choice applies to the next sync, so pull down on the task list to start it. Afterward, the setting returns to **Sync Normally**. ## What Syncs[​](#what "Direct link to What Syncs") iCloud sync carries all of your 2Do data between Android, iPhone, iPad, and Mac: * Tasks with all their details: title, notes, dates, duration, alarms, recurrence, priority, starred state, actions, tags, and locations. * Projects, checklists, and subtasks, with their structure intact. * Lists, list groups, tags, tag groups, and saved locations. * Smart Lists and their search rules. * The manual order of your tasks, including the separate manual order of the Focus Lists. * Attachments. The pictures and audio recordings you add to tasks sync to all of your devices, and every attachment stays with its task when Android syncs. Your 2Do data is stored privately in your iCloud account. It does not appear on iCloud.com or in other apps. ## What Stays on This Device[​](#stays-local "Direct link to What Stays on This Device") * Lists you exclude under **Settings > Sync > Exclude list from Sync**, along with their tasks. * 2Do for Android's settings. The app settings that sync between iPhone, iPad, and Mac do not sync with Android. * View state, such as which projects and list groups are expanded. ## Automatic Sync[​](#automatic "Direct link to Automatic Sync") While 2Do is open, it finds out when you change something on another device and syncs soon after. In the background, 2Do syncs at the interval you choose under **Settings > Sync > Sync automatically**, whenever Android lets it run, so background updates arrive periodically rather than instantly. See [Background Sync on Android](/docs/android/sync.md#background). With **Sync automatically** set to **Never**, 2Do syncs only when you pull down on the task list. You can pull down to sync immediately at any time. ## Signing In Again or Changing Accounts[​](#account "Direct link to Signing In Again or Changing Accounts") Open **Settings > Sync > iCloud Account** to see whether this device is signed in. * **Sign In Again** with the same Apple Account keeps your tasks and any changes that have not synced yet. Use it when 2Do shows **Sign-In Needed**. * If you sign in with a different Apple Account, nothing changes until you choose what happens to the tasks on this device. **Combine Tasks** adds them to the new account alongside the tasks already there, **Keep This Device's Tasks** replaces the new account's tasks with them, and **Use the New Account's Tasks** replaces them with the new account's tasks. **Keep Previous Account** cancels the change. Tasks in your previous account stay there. To stop using iCloud on this device, tap **Selected Account** in **Settings > Sync** and choose another method, or **None**. Your tasks stay on the device. ## Moving from Dropbox to iCloud[​](#switching "Direct link to Moving from Dropbox to iCloud") Choosing iCloud does not copy your tasks from Dropbox. Each device keeps its own tasks when you switch, and iCloud starts with the tasks of the first device you move. To move all of your devices: 1. Update 2Do on every device and check that each one can use iCloud sync. See [Before You Start](#requirements). 2. Sync every device with Dropbox one last time, and let each sync finish. 3. On the device with your most complete tasks, make a backup and keep a copy off the device. On Android, use **Settings > Manage Backups**. 4. Switch that device to iCloud first. If iCloud has no 2Do data yet, the first sync uploads this device's data without asking. If iCloud already has 2Do data, 2Do asks how to start; see [First Sync](#first-sync). 5. When that sync finishes, switch each of your other devices to iCloud with the same Apple Account. When 2Do asks how to start, choose **Keep iCloud Tasks** on Android, or **Replace Local Data** on iPhone, iPad, or Mac, because iCloud now holds the same tasks. If a device might hold tasks that never reached Dropbox, choose **Combine Tasks** (**Merge** on Apple devices) instead. On iPhone, iPad, and Mac, unlink Dropbox in **Settings > Sync** before you choose **iCloud**. See [Switching Sync Methods](/docs/ios/sync.md#switching). Switch every device. The same steps work when you move from iCloud CalDAV or another method. ## Troubleshooting[​](#issues "Direct link to Troubleshooting") ### iCloud is not in the list of sync methods[​](#no-icloud "Direct link to iCloud is not in the list of sync methods") This version of 2Do for Android does not include iCloud sync. Update 2Do from Google Play or [our website](/android/download.md), and keep using Dropbox or your current method on all of your devices until the update is available. ### Sign-In Needed[​](#sign-in-needed "Direct link to Sign-In Needed") Open **Settings > Sync > iCloud Account** and tap **Sign In Again**. Sign in with the same Apple Account to keep your tasks and any changes that have not synced yet. ### Browser Not Supported[​](#browser "Direct link to Browser Not Supported") 2Do opens Apple's sign-in page in a browser on your device. Install or update a browser, such as Chrome, then tap **Sign In to iCloud** again. ### Can't Reach iCloud[​](#network "Direct link to Can't Reach iCloud") Check your internet connection, then pull down on the task list to try again. If sync fails only on one network, such as a work network, or only while a VPN is connected, try another network, and ask the network administrator or VPN provider to allow access to iCloud. ### iCloud Account Changed[​](#account-changed "Direct link to iCloud Account Changed") Open **Settings > Sync > iCloud Account** and sign in again. If you sign in with a different Apple Account than before, 2Do asks what to do with the tasks on this device before anything changes. See [Signing In Again or Changing Accounts](#account). ### Tasks were replaced in iCloud, or 2Do's data is missing[​](#icloud-changed "Direct link to Tasks were replaced in iCloud, or 2Do's data is missing") If another device replaced the tasks in iCloud, or 2Do's data is no longer in your iCloud account, syncing on this device pauses and the **iCloud** screen asks how to continue. It offers the same choices as the [first sync](#first-sync). * If you replaced the tasks in iCloud on purpose from another device, choose **Keep iCloud Tasks** so this device matches. * If 2Do's data is missing from iCloud, start on the device with your most complete tasks, choose **Keep This Device's Tasks**, and let that sync finish. Then choose **Keep iCloud Tasks** on your other Android devices so they download that copy. ### One device shows different tasks[​](#out-of-step "Direct link to One device shows different tasks") Sync the device with the correct tasks and let it finish. On the device that is behind, choose **Keep iCloud Tasks** under **Settings > Sync > Next sync action**, confirm, and pull down on the task list to sync. See [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). ### Adding another Android device[​](#another-device "Direct link to Adding another Android device") Install 2Do, tap **Selected Account** in **Settings > Sync**, choose **iCloud**, and sign in with the same Apple Account. If the new device has no 2Do data yet, the first sync downloads everything without asking. See [Setting up a new device](/docs/faqs/setting-up-new-device.md). --- # Sync with Apple Reminders 2Do for Android can't sync directly with Apple Reminders. 2Do on iPhone, iPad, and Mac can sync with Reminders ([iPhone and iPad](/docs/ios/sync-with-reminders.md), [Mac](/docs/macos/sync-with-reminders.md)), but Android devices can't join that sync method. ## What Changed in Reminders[​](#what-changed "Direct link to What Changed in Reminders") Before Apple's [Reminders upgrade](https://support.apple.com/en-gb/102457) in iOS 13 and macOS Catalina, iCloud Reminders lists were also available over CalDAV, so 2Do for Android could sync them. Since the upgrade, 2Do for Android can't reach your Reminders lists. ## What This Means in 2Do[​](#what-this-means "Direct link to What This Means in 2Do") * **iCloud CalDAV** syncs iCloud's CalDAV task lists, not your Reminders lists. Older versions of 2Do for Android call this method **iCloud Reminders**. * **iCloud**, 2Do's own sync method, keeps your 2Do data privately in iCloud, separate from Reminders. ## Which Sync Method Should I Use?[​](#which-sync-method "Direct link to Which Sync Method Should I Use?") 2Do for Android syncs with [iCloud](/docs/android/sync-with-icloud-native.md), [Dropbox](/docs/android/sync-with-dropbox.md), [iCloud CalDAV](/docs/android/sync-with-icloud.md), other [CalDAV servers](/docs/android/sync-with-caldav.md), and [Toodledo](/docs/android/sync-with-toodledo.md). To keep the same 2Do data on Android, iPhone, iPad, and Mac, use iCloud when every device runs a version of 2Do that includes it, or Dropbox until then. ## If Tasks Disappeared After Upgrading Reminders[​](#tasks-disappeared "Direct link to If Tasks Disappeared After Upgrading Reminders") To restore lists that disappeared from 2Do after the Reminders upgrade, see [Reminders and iCloud CalDAV](/docs/faqs/data-deleted-after-ios-13-catalina-upgrade.md). --- # Sync with Toodledo If you already use [Toodledo](https://www.toodledo.com), 2Do for Android can sync with your account. You'll keep web access via toodledo.com and Toodledo's email-to-task feature. Toodledo sync is **included** in 2Do for Android (no add-on required, unlike CalDAV). ## What Toodledo Sync Carries[​](#what "Direct link to What Toodledo Sync Carries") * All core task fields — title, notes, dates, alarms, recurrence, priority, location. * **Tags**, including tag assignment and (mostly) tag names. * **Repeating tasks** — Toodledo's recurrence model is rich. * **Web access** — your tasks are visible at toodledo.com and in any Toodledo client. tip Toodledo's email-to-task feature is a useful complement to 2Do for Android, since Mail to 2Do is not available on Android. ### Limitations[​](#limitations "Direct link to Limitations") * **Smart Lists do not sync** between devices. * **List Groups are not supported** by Toodledo. * **Projects and Checklists with sub-tasks** flatten — when synced through Toodledo, the hierarchical relationship is lost. Projects and Checklists with subtasks turn into flattened lists. * **Multiple locations** assigned to a single task collapse to a single location. * **Emoji characters** in task content can be replaced with question marks. tip If you rely heavily on hierarchical projects, multiple alarms per task, or attachments, [Dropbox sync](/docs/android/sync-with-dropbox.md) is a better fit. ## Setup[​](#setup "Direct link to Setup") 1. Open **Settings > Sync**. 2. Select **Toodledo** as the sync method. 3. Enter your Toodledo username and password. 4. Tap **Save**. 5. On the first sync, 2Do asks how to proceed. You can replace data on this device, or merge local data with Toodledo data when you intentionally want to combine both sides. ## Toodledo Lists as Folders[​](#folders "Direct link to Toodledo Lists as Folders") By default, 2Do for Android maps lists to Toodledo **Folders**. The setting By default Lists sync as Toodledo 'Folders' is configurable in **Settings > Sync** if you'd prefer a different mapping. After setup — your first sync Close Settings and return to the main task list. **Pull down on the task list** to force the first sync. 2Do will ask how to proceed — choose carefully based on which side has the data you want to keep. After the first sync, you can manually override the next sync any time under **Settings > Sync > Next Sync Action**. For Toodledo, the choices are **Sync normally**, **Merge local data with server**, and **Replace data on this device**. The setting auto-resets to **Sync normally** afterwards. ## Daily Sync[​](#daily "Direct link to Daily Sync") Once configured, 2Do for Android syncs in the background as Android permits. Pull-to-refresh on the task list forces an immediate sync. ## Common Issues[​](#issues "Direct link to Common Issues") ### "Could not retrieve info from the server, please try again later"[​](#could-not-retrieve-info-from-the-server-please-try-again-later "Direct link to \"Could not retrieve info from the server, please try again later\"") Usually transient. Wait a few minutes and retry. ### "Login is not working" / "Incorrect Toodledo e-mail or password"[​](#login-is-not-working--incorrect-toodledo-e-mail-or-password "Direct link to \"Login is not working\" / \"Incorrect Toodledo e-mail or password\"") Confirm your credentials at toodledo.com first. If they work there but fail in 2Do, regenerate your password (some special characters can confuse the API). ### "Too many logins" failure[​](#too-many-logins-failure "Direct link to \"Too many logins\" failure") Toodledo rate-limits frequent connection attempts. Wait 15–30 minutes before trying again. ### Lost lists or different counts across devices[​](#lost-lists-or-different-counts-across-devices "Direct link to Lost lists or different counts across devices") Run **Sync** on the most up-to-date device, let it finish, then on the lagging devices choose **Replace Local Data** to pull a clean copy. ### Toodledo Contexts and Goals don't appear[​](#toodledo-contexts-and-goals-dont-appear "Direct link to Toodledo Contexts and Goals don't appear") : 2Do does not import Toodledo *Contexts* or *Goals*. If you previously used those, consider mapping them to 2Do **Tags** before switching. ## Switching Away from Toodledo[​](#switching "Direct link to Switching Away from Toodledo") If you decide to leave Toodledo: 1. **Share a backup** from **Settings > Manage Backups** as a safety net. 2. Switch to [Dropbox sync](/docs/android/sync-with-dropbox.md) — it carries the features Toodledo skips. ## Setting Up Another Device & Troubleshooting[​](#another-device "Direct link to Setting Up Another Device & Troubleshooting") * **Adding another device** — install 2Do, sign in to **the exact same Toodledo account** as your other devices, and let the first sync pull your data down. See [Setting up a new device](/docs/faqs/setting-up-new-device.md) for the full walk-through. * **One device showing different tasks?** — see [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). Standard recovery: run a clean sync on the most up-to-date device, then *Replace Local Data* on the lagging ones. * **Next Sync Action** — picking the wrong side can overwrite good data. Pause and read [Replace Server Data vs Replace Local Data](/docs/android/sync.md#replace) before confirming. You can re-trigger the choice any time under **Settings > Sync > Next Sync Action**. --- # Tags Tags are 2Do's way of attaching context to a task that doesn't depend on which list it's in. They're the workhorse for any GTD-style workflow. ## Tagging a Task[​](#tagging "Direct link to Tagging a Task") * In the editor, tap the **Tags** field — type to autocomplete or create new tags inline. * From the long-press context menu, choose **Tag**. ## The Tags View[​](#tags-view "Direct link to The Tags View") Open the **Tags** tab from the side tab strip on phone-sized layouts. On tablets and wider windows, Tags can appear in the side panel so the task list remains visible while you filter. You'll see: * Every tag with a count of tasks. * Tag groups, collapsible. * `[+]` to create a new tag or tag group. Tap any tag to filter the task list to tasks carrying that tag. Tap multiple tags to combine filters. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/filteringtags.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/filteringtags_poster.png) ## Tag Groups[​](#tag-groups "Direct link to Tag Groups") Group related tags so a sprawling tag list stays calm. Common groupings: * **Contexts** — `@home`, `@work`, `@phone`, `@errands`, `@waiting`. * **People** — `@boss`, `@spouse`, `@kids`. * **Energy** — `low-energy`, `deep-work`, `quick-win`. * **Status** — `blocked`, `in-review`, `on-hold`. Tap `[+]` → **New Tag Group**. Use the tag's menu to move it into the right group. ## Pausing a Tag[​](#pause "Direct link to Pausing a Tag") Any tag in 2Do can be **paused**. When a tag is paused, every task that carries that tag is hidden from view automatically — *All*, *Today*, list views, search. The tasks remain in your database; they're just temporarily out of sight. This is the cleanest way to put a whole context on hold without editing tasks one at a time. ![2Do Android pausing a tag](https://downloads.2doapp.com/resources/img/2do-android/pausetag.png) ### Pausing and Resuming a Tag[​](#pause-resume "Direct link to Pausing and Resuming a Tag") * In the **Tags** view, **swipe left** on the tag you want to pause and tap **Pause**. * Resume the tag the same way — swipe left and tap **Resume**. The tag stays in your library either way. Only its associated tasks change visibility. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/pausingtags.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/pausingtags_poster.png) ### Showing Paused Tasks Without Resuming[​](#show-paused "Direct link to Showing Paused Tasks Without Resuming") * Toggle the **paused indicator on the sort bar** (top of the task list) to show or hide paused tasks alongside the normal view. * Use the search keyword **`type: paused`** to surface paused tasks in search results. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/showhidepausedtasks.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/showhidepausedtasks_poster.png) ### Common Pause Patterns[​](#patterns "Direct link to Common Pause Patterns") * Pause `@waiting` while you're on a long flight — anything blocked on someone else's reply steps out of view. * Pause `@home` during work travel — chores you can't possibly do yet stop showing up. * Pause a project context (`@kitchen-reno`) while you wait for materials — resume when the parts arrive. ## Renaming and Merging Tags[​](#rename-merge "Direct link to Renaming and Merging Tags") Long-press a tag in the Tags view → **Rename**. Renaming to the name of an existing tag offers to merge them — handy for typos. ## Sorting and Grouping by Tag[​](#sort-by-tag "Direct link to Sorting and Grouping by Tag") Switch the Task List sort to **Sort by Tag** (overflow menu → Sort By → Tag) to group tasks under their tag for an at-a-glance review. ## Tags in Smart Lists and the Focus Filter[​](#in-rules "Direct link to Tags in Smart Lists and the Focus Filter") Tags are first-class in the rule builder: * "All tasks tagged `@phone` due in the next 7 days." * "All tasks tagged `@waiting` whose tag isn't paused." For more, see [Smart Lists](/docs/android/smart-lists.md) and [Focus Filter](/docs/android/focus-filter.md). --- # The Task Editor Use the task editor to change a task’s title, notes, dates, and other details. ## Opening the Editor[​](#opening "Direct link to Opening the Editor") * Tap a task on the Tasks screen. * On phones, the editor opens in a draggable bottom sheet. On wide tablet layouts, it appears beside the task list. * Tap the back button or **Done** (top-right) to dismiss. ## Title[​](#title "Direct link to Title") The headline of the task. Keep it short enough to scan quickly from the task list. Use the notes field for longer details. When creating a task, you can type dates and other details into its title. 2Do fills in the fields using [Natural Language Input](/docs/android/natural-language-input.md). Existing task titles are not reinterpreted. ## Notes[​](#notes "Direct link to Notes") A free-form text field. Notes support: * Auto-detected URLs that become tappable. * Phone numbers and email addresses that turn into actionable links. * Inline timestamps via the overflow menu → **Insert Time Stamp**. ## Start Date and Due Date[​](#dates "Direct link to Start Date and Due Date") * **Start Date** — when a task should *begin*. Tasks before their start date can be hidden by Smart Scheduling. * **Due Date** — when a task must be *finished*. Overdue tasks carry forward to *Today*. Learn more about how Start Date, Due Date, Due Time, and Duration work together in [Dates and Durations](/docs/android/dates-and-durations.md). ### Smart Scheduling[​](#smart-scheduling "Direct link to Smart Scheduling") Tasks with a future start date can stay out of your immediate view until they are ready to begin. Use the scheduled/clock control in the task list when you want to reveal future-start tasks. ### Due Time and Duration[​](#time-duration "Direct link to Due Time and Duration") Add a specific time on the due date when the deadline is time-sensitive. Add a duration when the task needs working time before that deadline. For example, a task due at **3:00 PM** with a **30-minute duration** starts needing attention at **2:30 PM**. See [Dates and Durations](/docs/android/dates-and-durations.md#duration-due) for the full explanation and examples. ## Priority[​](#priority "Direct link to Priority") None, Low, Medium, or High. The priority dot is color-coded and visible on every task row. See [Stars and Priorities](/docs/android/stars-and-priorities.md) for when to use priority instead of a star. ## Tags[​](#tags "Direct link to Tags") Comma-separated. Tap the tag field to open the tag picker; existing tags autocomplete and you can create new ones inline. For tag concepts, including how to pause a tag to hide its tasks, see [Tags](/docs/android/tags.md#pause). ## Location[​](#location "Direct link to Location") Attach a location and 2Do can show the task on the **Nearby** tab, fire arrive/leave alerts, and open the address in Google Maps. For more, see [Nearby and Locations](/docs/android/nearby-locations.md). ## Action[​](#action "Direct link to Action") Make the task itself actionable. Pick a type: Call, Message, Mail, Visit (Address), Browse (URL), Google (Search). See [Actions](/docs/android/actions.md). ## Alerts[​](#alerts "Direct link to Alerts") Tap the alarm icon, then tap **\[+]** to add an alert. Choose a preset or create a custom alert, and use **Play Sound** if the alert should make a sound. See [Notifications and Alarms](/docs/android/notifications.md). ## Recurrence[​](#recurrence "Direct link to Recurrence") Daily, weekly, monthly, yearly, or custom rules. Choose between repeat-from-due-date and repeat-from-completion. See [Repeating Tasks](/docs/android/repeating-tasks.md). If the repeating task also has start dates, due dates, or a duration, see [Repeating Tasks and Dates](/docs/android/dates-and-durations.md#recurrence). ## Attachment[​](#attachment "Direct link to Attachment") Each task can carry up to one picture and one audio recording. [iCloud](/docs/android/sync-with-icloud-native.md) and [Dropbox](/docs/android/sync-with-dropbox.md) sync attachments across your 2Do devices, and CalDAV can sync the same one-picture-and-one-audio limit per task when attachment sync is enabled. Toodledo does not sync attachments. ## Sub-Tasks[​](#sub-tasks "Direct link to Sub-Tasks") Sub-tasks belong to projects and checklists. A regular task cannot hold sub-tasks of its own. For children with their own dates and alerts, use a project. See [Projects and Checklists](/docs/android/projects-and-checklists.md). --- # The 2Do Screen Use the lists panel to choose a list, the task list to review its contents, and the `+` button to add a task. Swipe between panels to reach your lists, tags, and nearby tasks. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/slidingpanels.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/slidingpanels_poster.png) ## Navigation Drawer[​](#drawer "Direct link to Navigation Drawer") The navigation drawer holds your **Focus Lists**, real lists, list groups, and Smart Lists. * **Open** — slide from the left edge, or tap the hamburger icon (top-left). * **Close** — tap outside the drawer, or swipe it back to the left. The bottom of the drawer has a `[+]` button for creating new lists, projects, checklists, list groups, and Smart Lists. ## Task List[​](#task-list "Direct link to Task List") The main screen shows the tasks inside the selected list. Each row shows: * The checkbox (tap to mark complete). * Title and notes preview. * Tag badges, priority dot, due-date pill, location pin if relevant. * Action button at the right edge if the task has an [Action](/docs/android/actions.md). Choose a sort from the **sort chip** above the task list: * Sort by a field such as Start Date, Due Date, Priority, or Tag, or choose manual ordering. * Each list remembers its own sort. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/changingsort.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/changingsort_poster.png) ## The Sort Bar[​](#sort-bar "Direct link to The Sort Bar") The bar above your tasks includes the sort chip and controls for showing scheduled or paused tasks. Tap **Focus** to turn the Focus Filter on or off, or touch and hold it to choose its conditions. A count shows how many tasks are hidden by the current view. ## Quick Open[​](#quick-open "Direct link to Quick Open") Tap the list name in the top toolbar to open [Quick Open](/docs/android/quick-open.md). Type part of a task or list name, then choose a result. Inside a project or checklist, the title takes you back to its list instead. ## Calendar Events[​](#calendar-events "Direct link to Calendar Events") The [Calendar Day Bar](/docs/android/calendar-integration.md) shows appointments above Today or your other task lists. Expand it to browse events, switch views, or see another day. Calendar Events is a Pro feature. ## Floating Action Button (FAB)[​](#fab "Direct link to Floating Action Button (FAB)") Use the `+` button below the task list to add tasks: * **Tap** — open the editor for a new task in the current list. * **Touch and hold**: open [Quick Add](/docs/android/quick-add.md). Its destination follows your default collection list settings. ## Tabs and Side Panel[​](#tabs-side-panel "Direct link to Tabs and Side Panel") The side tab strip gives you quick access to: * **Tasks** — the main view. * **Tags** — all tags with counts; tap to filter. * **Nearby** — map and list of location-tagged tasks, sorted by distance. On phone-sized layouts, these areas slide over one another. On tablet layouts, Tags and Nearby can appear in the side panel so you can keep the task list visible while reviewing context. ## Sliding Panels and Tablets[​](#sliding-panels "Direct link to Sliding Panels and Tablets") 2Do adapts to the available width: * **Phones and narrow split-screen windows** — the task list can fill the screen, then slide horizontally between panels. Swipe it slightly to the right to reveal the narrow list-tab strip; keep swiping right to expand the full Lists panel. Swipe it left to reveal the trailing side panel for Tags / Nearby. * **Tablets and wide windows** — 2Do can show more panels at once. In landscape, the main layout has Lists, Tasks, and a tablet-only right panel that keeps the calendar surface available and can show the selected task editor. Tags and Nearby live in the trailing side panel; it stays hidden until you slide over to it. * **Changing window width** — if a tablet window becomes narrow, 2Do switches back to the compact overlapping layout so the task list remains readable. Swipe back toward the task list when you want to collapse a side panel and focus on tasks again. ## Gestures[​](#gestures "Direct link to Gestures") | Gesture | Action | | ----------------------------------------- | ------------------------------------------------------------------------------------------- | | **Tap** task | Open editor | | **Long-press** task | Show task actions such as Done, Star, Defer, Tag, Move, and Delete | | **Swipe** on task | Use the swipe actions for quick changes | | **Swipe horizontally on the main panels** | Move between the Lists area, task list, and side panel where the current layout supports it | | **Drag handle** in manual sort/edit mode | Reorder | | **Drag selected tasks** in batch editing | Move them to another list; drag one task onto the Calendar Day Bar to create an event | | **Pull down** | Sync | ## Top Toolbar[​](#toolbar "Direct link to Top Toolbar") The top of the Tasks screen has: * List name: tap to open Quick Open, or to leave Project View. * Search icon. * Focus Filter toggle. * Overflow menu (`⋮`): list and view actions. Sorting and the scheduled, paused, and Focus controls are on the Sort Bar. --- # Widgets 2Do for Android includes home-screen widgets so your tasks are always one glance away. ![2Do Android home-screen widgets](https://downloads.2doapp.com/resources/img/2do-android/widgets.png) ## Available Widgets[​](#available "Direct link to Available Widgets") * **Task List** — show a chosen list, Focus List, or saved view on the home screen. * **Transparent Task List** — the same list widget with a transparent style. * **2Do Undone Counter** — show a compact count for the list or preset you choose. note Quick capture lives in Android's **2Do Quick Add** Quick Settings tile, not in a home-screen widget. The notification drawer can also show today's tasks through **Sticky Alert**. See [Android Integrations](/docs/android/integrations.md), [Quick Add](/docs/android/quick-add.md#outside-app), and [Notifications and Alarms](/docs/android/notifications.md#settings). ## Adding a Widget[​](#adding "Direct link to Adding a Widget") * Long-press an empty area of your home screen. * Tap **Widgets** (or the `+ `icon, depending on your launcher). * Find **2Do** in the list. * Drag the widget you want onto the home screen. * When you drop it, 2Do asks which list or preset to show. tip Pin a Task List widget for **Today** to your primary home screen. Use the **2Do Quick Add** Quick Settings tile for fast capture from the notification shade. ## Widget Settings[​](#settings "Direct link to Widget Settings") Task List widgets let you choose which task view they should show. The transparent widget is useful when you want the list to blend into your wallpaper or launcher theme. The Undone Counter widget asks which saved view it should count. tip Make a Smart List for *Quick wins* (Duration ≤ 15 minutes, not paused) and pin it as a widget — perfect for filling a 10-minute gap between meetings. ## Quick Settings Tile[​](#quick-settings-tile "Direct link to Quick Settings Tile") The **2Do Quick Add** tile is a Quick Settings tile — a one-tap shortcut that lives in Android's notification shade alongside Wi-Fi, Bluetooth, and Do Not Disturb. Tapping it opens **Quick Add** for fast capture without unlocking back into 2Do. To add the tile: * Pull down twice from the top of the screen to expand Quick Settings. * Tap the **edit** (pencil) icon. * Drag **2Do Quick Add** from the available tiles into the active set. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-android/videos/quickadd.webm) ![](https://downloads.2doapp.com/resources/img/2do-android/videos/quickadd_poster.png) The tile is separate from 2Do's home-screen widgets: widgets show task lists and counters; the tile launches a capture surface. ## Refresh and Sync[​](#refresh "Direct link to Refresh and Sync") Widgets refresh when 2Do updates task data, when sync runs, or when Android schedules a refresh. If a widget looks stale, open 2Do once — Android will refresh the widget after the app updates its task data. ## Protected Lists[​](#protected-lists "Direct link to Protected Lists") If a protected list is locked, 2Do can hide protected content from home-screen widgets and notifications. Control this from **Settings > Privacy > Password protect lists > Widgets & Notifications**. --- # Frequently Asked Questions Quick answers to the questions that come up most often. If your question isn't here, the full per-platform documentation lives under [Guides](/docs.md). * [Licensing Explained](/docs/faqs/licensing-explained.md) * [Which sync method should I use?](/docs/faqs/which-sync-method-should-i-use.md) * [Why no own cloud sync?](/docs/faqs/why-no-own-cloud-sync.md) * [Does 2Do encrypt synced data?](/docs/faqs/does-2do-encrypt-synced-data.md) * [Sync with Exchange?](/docs/faqs/does-2do-sync-with-exchange.md) * [Does 2Do support IFTTT?](/docs/faqs/does-2do-support-ifttt.md) * [Replace server / Replace local?](/docs/faqs/replace-server-data-vs-replace-local-data.md) * [Reminders and iCloud CalDAV](/docs/faqs/data-deleted-after-ios-13-catalina-upgrade.md) * [Not syncing in background](/docs/faqs/2do-not-syncing-in-background.md) * [iCloud password failing](/docs/faqs/icloud-password-keeps-failing.md) * [Missing tasks in Today](/docs/faqs/today-counter-shows-tasks-but-list-empty.md) * [App icon badge counts](/docs/faqs/app-icon-badge-count.md) * [Partial sync](/docs/faqs/data-only-partially-syncing.md) * [Old or missing tasks with Dropbox](/docs/faqs/dropbox-shows-old-or-missing-tasks.md) * [iCloud and projects/checklists](/docs/faqs/will-icloud-sync-projects-checklists.md) * [Setting up a new device](/docs/faqs/setting-up-new-device.md) * [Moving from version 3 to version 4](/docs/faqs/moving-to-the-new-app.md) * [New iPhone and iPad apps](/docs/faqs/new-iphone-ipad-apps.md) * [Is 2Do free?](/docs/faqs/is-2do-free.md) * [2Do iOS purchase model](/docs/faqs/2do-basic-vs-pro-ios.md) * [Refund for previous purchase](/docs/faqs/refund-for-previous-purchase.md) * [Separate licenses per platform](/docs/faqs/separate-licenses-per-platform.md) * [Setapp and mobile apps](/docs/faqs/setapp-mac-and-pro-on-ios-android.md) * [Donations?](/docs/faqs/do-you-accept-donations.md) * [Student discounts?](/docs/faqs/student-discounts.md) * [Email tasks to 2Do](/docs/faqs/can-i-email-tasks-to-2do.md) * [Mac App Store subscription update](/docs/faqs/mac-app-store-subscription-update.md) * [Reusable templates](/docs/faqs/reusable-template-tasks.md) * [Tasks with Siri](/docs/faqs/creating-tasks-with-siri.md) * [Schedule vs Defer](/docs/faqs/schedule-vs-defer.md) * [Tomorrow tasks in Today](/docs/faqs/tasks-tomorrow-in-today-list.md) * [Nothing in Focus](/docs/faqs/nothing-in-focus-message.md) * [Change Nearby alert distance](/docs/faqs/change-nearby-alert-distance-ios.md) * [Events and tasks together?](/docs/faqs/show-events-and-tasks-together.md) * [Collaboration / teamwork](/docs/faqs/collaborative-editing-teamwork.md) * [Import from Things](/docs/faqs/import-from-things.md) * [Web app?](/docs/faqs/web-app-plans.md) * [Import from OmniFocus](/docs/faqs/import-from-omnifocus.md) * [Print tasks](/docs/faqs/can-i-print-tasks.md) * [Auto-Prioritize privacy](/docs/faqs/auto-prioritize-privacy.md) * [Dropbox file access](/docs/faqs/dropbox-file-access-scope.md) * [Read 2Do data in Dropbox?](/docs/faqs/read-2do-content-in-dropbox.md) * [Backup file location (Mac)](/docs/faqs/where-are-mac-backup-files-stored.md) * [iOS backups & app deletion](/docs/faqs/ios-backups-safe-if-app-deleted.md) * [Widget broken after update](/docs/faqs/widget-broken-after-update.md) * [Restore iOS purchase](/docs/faqs/restore-previous-purchase.md) * [Deleted list reappears](/docs/faqs/deleted-list-reappears-after-sync.md) * [Tasks deleted with iCloud CalDAV](/docs/faqs/tasks-deleted-with-reminders-sync.md) * [Rename a tag](/docs/faqs/how-to-rename-a-tag.md) * [Alarm with no sound](/docs/faqs/alarm-no-sound.md) * [Maximum list name length](/docs/faqs/maximum-list-name-length.md) * [Forbidden error (iCloud)](/docs/faqs/forbidden-icloud-error.md) * [Re-download the old 2Do for iOS](/docs/faqs/redownload-ios-app-while-unavailable.md) * [Birthday import?](/docs/faqs/birthday-import-return.md) * [Completely uninstall (Mac)](/docs/faqs/uninstall-2do-from-mac.md) * [Repair corrupt database (Mac)](/docs/faqs/repair-corrupt-database-mac.md) * [Sort tasks manually (iOS)](/docs/faqs/sort-tasks-manually-ios.md) * [Sort tasks (Mac)](/docs/faqs/sort-tasks-on-mac.md) * [Create new location (Mac)](/docs/faqs/create-new-location-mac.md) * [Try 2Do again on Mac](/docs/faqs/try-latest-2do-mac-after-older-version.md) * [How to Share Minimal 2Do Logs](/docs/faqs/how-to-send-minimal-logs.md) --- # Does 2Do iOS still use Basic and Pro? No. **2Do for iPhone and 2Do for iPad are each sold as a one-time App Store purchase.** Basic and Pro labels do not describe the current apps. There are no in-app purchases and no subscription. Everything in the app is included with the purchase, [Mail to 2Do](/docs/ios/email-to-2do.md) among it: your private 2Do address comes with the app you already bought. note 2Do for iPhone and 2Do for iPad are separate apps on the App Store, each sold on its own. They have the same features, laid out for the screen they run on. If you are coming from the older 2Do iOS app, see [what the new iPhone and iPad apps are](/docs/faqs/new-iphone-ipad-apps.md). --- # 2Do isn't syncing in the background Common causes: * **You force-quit 2Do.** If you have a habit of force quitting apps, or use apps that force quit others to "clean memory", 2Do cannot sync in the background at all. * **Background App Refresh is off.** Turn it on under **iOS Settings > General > Background App Refresh > 2Do**. * **Sync automatically or Push Sync is off.** Both live in 2Do's **Settings > Sync**. **Sync automatically** allows sync without you asking, and **Push Sync** lets the service wake 2Do when something changes on another device. * **You're on a poor connection.** iOS may delay refresh cycles. * **Heavy data load.** Large changes over slow networks can take longer than a background cycle allows. iOS decides when apps get background time, so background sync is regular rather than instant. If it feels stale, pull down on the task list to sync straight away. On Android, also check **Settings > Battery > Battery Optimization** → 2Do → **Don't Optimize**, and any OEM-specific "auto-start" or "background activity" toggle for 2Do. --- # Why isn't my Alert playing a sound? There are three things to check: 1. **Check the Alert sound setting.** On iOS, open the task, tap the Alarm icon in the editor's bottom toolbar, tap **Create New Alert...**, and make sure **Play Sound** is on. On the Mac, edit the task's Alerts and make sure **Sound Alert** is enabled. 2. **Notification settings are off.** On iPhone, check **iOS Settings > Notifications > 2Do**, and make sure sounds are enabled. 3. **Your phone is on Mute.** Silent mode silences the Alert regardless of 2Do's settings. --- # Why does the app icon badge show a different count? The app icon badge has its own count setting. On iPhone and iPad, open **Settings > Alerts & Badge > Count on app icon**. On Mac, open **2Do > Settings > Alerts > Count on Dock app icon**. ## What the Today Options Count[​](#today-options "Direct link to What the Today Options Count") * **Today** counts eligible Today tasks but excludes overdue tasks. Start dates, durations, and the options to include starred and **Still Working On** tasks can bring tasks into this count before their due day. * **Today + Overdue** includes the eligible Today tasks and overdue tasks, counted once each. It includes overdue tasks even when **Include overdue items** is off under **Settings > Today & Lists**. * **Due Today Only** counts unfinished tasks whose own due date is today. It keeps counting them after their due time passes. A start date, duration, or star alone does not make a task count. A task due earlier today can also be overdue when **Due Time taken into account when marking a task Overdue** is on. Counting it in both groups by hand would count it twice; the badge counts it once. The numbers beside list names use separate settings. In particular, **Not Done** means unfinished tasks, not just tasks due today. With **Undone counts should include Overdue tasks** on, that number already includes overdue tasks. ## Why Some Tasks Do Not Count[​](#visibility "Direct link to Why Some Tasks Do Not Count") All three Today badge options follow scheduled-task visibility. A task due today with a future start time stays out of the count while scheduled tasks are hidden. Reveal scheduled tasks using the **clock button** on iPhone or iPad, if shown, or **Task > Show Scheduled** on Mac, to let it count before its start time if it meets the selected badge option's other rules. These badges skip hidden and archived lists and tasks on hold, even when paused tasks are visible in the task list. Lists excluded from Today do not normally contribute; **Today** and **Today + Overdue** still honor the **Include starred items** exception. **Due Today Only** does not use that exception. Password-protected lists still contribute to the app icon badge while locked. The badge shows an aggregate number without revealing task details. See the full badge reference for [iPhone and iPad](/docs/ios/settings.md#alerts-badge) or [Mac](/docs/macos/settings.md#dock-badge). ## When Devices Show Different Numbers[​](#different-devices "Direct link to When Devices Show Different Numbers") Supported app settings sync over iCloud across iPhone, iPad, and Mac using the **same iCloud account**. Each device calculates its own badge from the tasks it currently holds, so a matching badge mode alone does not guarantee matching numbers. 1. Check that each device has the same tasks and, if you sync them, let task sync finish on each device. 2. Compare the badge mode in **Alerts & Badge** on iPhone and iPad or **Alerts** on Mac. Also compare **Include starred items** and **Include 'Still Working On' tasks** under **Settings > Today & Lists**, and whether scheduled tasks are shown. Allow time for any preference changes to reach your other devices through iCloud. 3. Check whether the tasks belong to lists excluded from Today, or are paused or archived. Compare the device dates and time zones too, since Today depends on the device's current day. 4. To refresh the badge, change its count option to **None**, then back to the option you want. On iPhone or iPad, return to the Home Screen to check it. If a count still looks wrong, send a screenshot of the Today list and badge, plus a diagnostic report from **Settings > Diagnostics** on each affected device. State which device each report came from and the count you expected. --- # Does Auto-Prioritize send my tasks anywhere? No. **Auto-Prioritize runs entirely on your iPhone, iPad, or Mac.** It uses Apple's on-device Foundation Models, the same models behind Apple Intelligence, to read each selected task and work out a priority. Nothing about those tasks is sent to us, to Apple's servers, or to anyone else, and there is no account or subscription involved. What it reads is the task itself: the title, notes, start and due dates, list, tags, and the priority it already has. What it writes is the priority, and only that. Stars, dates, notes, and titles stay as they are, completed tasks are left alone, and one undo puts every priority back. Auto-Prioritize needs an iPhone or iPad running iOS 26 or iPadOS 26, or a Mac running macOS 26 or later, with Apple Intelligence turned on. On a device that cannot run Apple Intelligence the command is not shown. For where to find it and what to expect while it runs, see [Auto-Prioritize for iOS](/docs/ios/auto-prioritize.md) or [Auto-Prioritize for Mac](/docs/macos/auto-prioritize.md). --- # Will the Birthday import option return? There are no immediate plans for its return. The feature was fairly niche and took a lot of work to maintain. It remains on the long-term wishlist, but it isn't currently scheduled. --- # Can I email tasks to 2Do? Yes. **Mail to 2Do** gives your device a **private, receive-only email address**. Anything you, or anyone you trust, send to that address becomes a task in the list you choose. It works on Mac, iPhone, and iPad, and each device gets its own address. Turn it on under **Settings > Mail to 2Do**, copy the address, and pick the list emailed tasks should land in. The subject becomes the task title and the message text becomes the notes. Subject instructions file the task as it arrives, such as `due(tomorrow)`, `priority(!!!)`, `list(Work)`, and `tag(home)`. Number the lines of the message and it arrives as a checklist instead. Full details: [Mail to 2Do for Mac](/docs/macos/email-to-2do.md) and [Mail to 2Do for iPhone and iPad](/docs/ios/email-to-2do.md). The Android app does not include an email capture feature. --- # Can I print my tasks? Yes, the **Mac app** has the full task-list printing flow via **File > Print...** (`⌘P`). Use **File > Page Setup...** (`⇧⌘P`) for layout options, and use the print preview controls to switch between all visible tasks and only the selected tasks. iOS and Android do not have the same dedicated task-list print flow. --- # How do I change the maximum distance for Nearby alerts on iOS? Open **Settings > Nearby** in 2Do. 1. Under **Distance**, tap **Maximum Distance**. 2. Pick how far out 2Do should watch. There are six choices, from 250 metres up to 10 kilometres. Distances are shown in the units your device's region uses, so the same choices read in miles where that is the local convention. There is no separate units setting inside 2Do; change your region under the system **Settings** app if you want different units. Nearby alerts still depend on your tasks having locations and on 2Do having location permission. If **Precise Location** is turned off for 2Do, alerts may arrive late or not at all, and the **Nearby** pane shows a warning with a way to fix it. Learn more in [Nearby Locations](/docs/ios/nearby-locations.md) and [Settings](/docs/ios/settings.md#nearby). --- # Does 2Do support collaborative editing or teamwork? Yes. **iCloud list sharing** lets people using 2Do on supported Macs, iPhones, and iPads work on the same list from different locations. Invite someone using their own Apple Account and choose whether they can edit or only view the list. Tasks, task notes, attachments, dates, sections, and manual task order are shared. Your list name, color, sort view, Focus filters, and alert choices stay personal. Start with the guide for [Mac](/docs/macos/icloud-list-sharing.md) or [iPhone and iPad](/docs/ios/icloud-list-sharing.md). Participating devices need macOS 14, iOS 18, or iPadOS 18 or later, and a version of 2Do with this feature. iCloud shared lists are not available in 2Do for Android or through a web browser. Tasks use **floating time** by default: 9:00 AM remains 9:00 AM in each person's local time zone. Use **Fixed Time Zone** when a shared deadline must mean the same moment for everyone. The sharing guides explain the choice with examples. Sharing works separately from your normal sync service. You can keep syncing ordinary lists through Dropbox, Todoist, or another service while the shared list uses iCloud. This is list collaboration, without task assignees, @mentions, comment threads, or a separate team workspace. For people on the same trusted network, **Wi-Fi sharing** is another option and requires no cloud account. The publishing device must stay awake and reachable. See [Wi-Fi sharing on Mac](/docs/macos/list-sharing.md) or [Wi-Fi sharing on iPhone and iPad](/docs/ios/list-sharing.md). --- # How do I create a new location on Mac? 1. Click the top-right toolbar button to reveal the **Utility Panel**. 2. Click the **Pin** button to open the **Locations panel**. 3. Create, sort, edit, and assign locations to tasks via drag-and-drop. You can also click the **Locations** button while editing a task to assign a location to that task directly. Locations assigned on Mac sync to your iPhone or iPad, where they can be used for Nearby Alerts. --- # How do I create tasks with Siri? Say **"Add to 2Do"**, and Siri asks what the task is. These phrases work too: * "Add a task to 2Do" * "New task in 2Do" * "Create a task in 2Do" * "Remember this in 2Do" 2Do ships these phrases with the app, in every language 2Do speaks, so there is nothing to record or enable inside 2Do first. Siri can also find tasks ("Find tasks in 2Do") and complete them ("Complete a task in 2Do"). New tasks land in your default capture list. Set it under **Settings > Tasks > New Tasks**. On iOS 27 or later, Siri can also work with your tasks conversationally, so you can create, update, complete, delete, and look up tasks by asking rather than by using a set phrase. macOS 27 or later does the same on the Mac. See [Asking Siri to Work with Your Tasks](/docs/ios/siri-and-shortcuts.md#new-siri). Learn more in [Siri and Shortcuts for iOS](/docs/ios/siri-and-shortcuts.md) and [Siri and Shortcuts for Mac](/docs/macos/siri-and-shortcuts.md). note If you ask Siri to "remind me" without naming 2Do, the item goes to Apple's Reminders app instead. That still reaches 2Do if you sync with the [Apple Reminders method](/docs/ios/sync-with-reminders.md). Otherwise, name 2Do in what you say. tip While a passcode is set under **Settings > Security**, 2Do keeps its data away from Siri and Shortcuts entirely, so voice capture stops working until you turn the passcode off. See [Password Protection](/docs/ios/password-protection.md). --- # Reminders and iCloud CalDAV Apple's upgraded Reminders app does not share its task data through iCloud CalDAV. 2Do's iCloud CalDAV option syncs with iCloud CalDAV lists, not with the Apple Reminders app itself. If a list is only available inside Reminders, 2Do cannot continue syncing that list through iCloud CalDAV. Before iOS 13 and macOS Catalina, Reminders lists could be exposed through iCloud CalDAV. With the Reminders upgrade, Apple moved those lists into a private Reminders sync store. iCloud CalDAV still exists, and 2Do can still sync with iCloud CalDAV, but the upgraded Reminders lists are separate from the iCloud CalDAV task lists 2Do uses. **2Do on iPhone, iPad, and Mac offers a dedicated Apple Reminders sync method.** Separately from iCloud CalDAV, you can point 2Do straight at Apple Reminders (built on native EventKit), so your tasks live inside the Reminders app again and stay in step across your Apple devices. 2Do for Android can't use this method. This is a **different account type** from iCloud CalDAV. Pick one and use it on every device, not both at once. If losing your Reminders lists over CalDAV is what brought you here and you use 2Do only on Apple devices, switching 2Do to the Reminders method is often the most direct fix. For the full explanation, see: * [Sync with Apple Reminders on Mac](/docs/macos/sync-with-reminders.md) * [Sync with Apple Reminders on iPhone and iPad](/docs/ios/sync-with-reminders.md) * [Sync with Apple Reminders on Android](/docs/android/sync-with-reminders.md) **Recovery.** Don't panic, because 2Do can create automatic backups of your tasks. 1. Open **Settings > Backups > Manage Auto-Backups** on iPhone or iPad, or **2Do > Settings > Backups** on Mac. 2. Restore from a recent backup that contains the tasks you want to keep (on Mac, use the backup's **⋯ menu > Restore…**). 3. On the device with the restored, correct data, go to **Settings > Sync > Next Sync Action** on iPhone, iPad, or Android, or **2Do > Settings > Sync > Next Sync Action** on Mac. 4. Choose **Replace server data**, then trigger a manual sync and let it finish. This pushes the restored 2Do data back to iCloud CalDAV. 5. On any other 2Do device that is missing or stale, choose **Replace local data** from **Next Sync Action**, then sync. This pulls the restored iCloud CalDAV copy down to that device. Only choose **Replace server data** from the device that has the data you want to keep. If you choose it from an empty or stale device, that device can overwrite the good server copy. See [Replace server data or Replace local data?](/docs/faqs/replace-server-data-vs-replace-local-data.md) before confirming if you are unsure. If you want the same 2Do task data on iPhone, iPad, Mac, and Android without depending on Reminders, use 2Do's own [iCloud sync](/docs/ios/sync-with-icloud.md) when every device runs a version of 2Do that supports it (see [Sync with iCloud on Android](/docs/android/sync-with-icloud-native.md)), or [Dropbox sync](/docs/ios/sync-with-dropbox.md) otherwise. --- # My data is only partially syncing Usually means a sync was interrupted before completing. Trigger a manual sync (pull-to-refresh on iOS / Android, or `⌘S` on Mac) and let it run all the way through. If the issue persists across multiple manual syncs: 1. On the device with the most up-to-date data, create a backup. 2. On that same device, open **Settings > Sync > Next sync action** on iPhone or iPad, **2Do > Settings > Sync > Next sync action** on Mac, or **Settings > Sync > Next Sync Action** on Android. 3. Choose **Replace Server Data**, then trigger a manual sync and let it finish. 4. On each device that is missing data, choose **Replace Local Data** from the same picker. 5. Trigger a manual sync on each out-of-sync device. This pulls the clean server copy down to that device. Syncing with Todoist or Apple Reminders? Those methods don't offer **Replace Server Data**. In step 3, run **Merge Sync** from the device with the correct data instead, then keep step 4's **Replace Local Data** on the others. Learn more in [Replace server data or Replace local data?](/docs/faqs/replace-server-data-vs-replace-local-data.md), [Sync Overview for Mac](/docs/macos/sync.md), [Sync Overview for iOS](/docs/ios/sync.md), or [Sync Overview for Android](/docs/android/sync.md). --- # A list I delete keeps reappearing after sync Another device still has the list and is pushing it back up. Delete the list on **all** devices, then sync. If the list still reappears after deleting it from every device, it may also exist on the sync service itself (iCloud CalDAV, another CalDAV server, Toodledo, or Todoist), delete it from that service's web interface as well. If you sync with Apple Reminders, delete the corresponding list in the Reminders app. --- # Do you accept donations? No donations are accepted whatsoever. The team encourages users to recommend 2Do to friends and family instead. --- # Does 2Do encrypt synced data? 2Do does not explicitly encrypt the stored data on top of encryption offered by the storage device or service. All sync traffic flows over secure SSL connections, but the data itself relies on the provider's storage encryption. For an additional layer, enable device-level encryption, such as **FileVault** on Mac, the iOS device passcode, or Android device encryption. --- # Does 2Do support IFTTT? Yes, indirectly. Point IFTTT at your private [Mail to 2Do](/docs/macos/email-to-2do.md) address and anything it sends there becomes a task. Anywhere you can route email becomes a capture pipe, including Slack messages, starred email, RSS items, smart-home triggers, and more. Mail to 2Do works on Mac, iPhone, and iPad, and each device gets its own private address. 2Do for Android does not include it; there, use Toodledo's own email-to-task feature if you sync through Toodledo. On Mac you can also automate with [URL Schemes](/docs/macos/url-schemes.md) and the macOS Shortcuts app. --- # Does 2Do support syncing with Exchange? No. 2Do currently supports syncing with iCloud, Dropbox, Apple Reminders, Todoist, Toodledo, and CalDAV servers (such as iCloud CalDAV, Fastmail, Fruux, Yahoo!, Nextcloud, SabreDAV, and so on). Exchange is not one of them. See [Which sync method should I use?](/docs/faqs/which-sync-method-should-i-use.md) or the [Sync overview (Mac)](/docs/macos/sync.md) for the full list. Adding an Exchange account to your Mac or iOS Calendar app can make its **events** visible in 2Do's calendar views, including the Calendar Events view on iPhone and iPad and the [Calendar Events day bar](/docs/macos/calendar-integration.md) above the Today list on Mac. It does **not** enable Exchange **task** synchronization in 2Do. --- # Will 2Do get read/write access to all my Dropbox files? No. 2Do uses the sandboxed folder to store its files and can only read and write files it creates itself. It uses Dropbox's App Folder permission scope, so only its own folder under `Apps/` is accessible. All communication with Dropbox is over SSL. --- # Why does Dropbox sync show old or missing tasks? Start by checking the Dropbox account linked **inside 2Do**. If you have more than one Dropbox account, an older account may still hold an old copy of your tasks. Connecting to it can bring back old tasks and dates while leaving your recent changes missing. Version 4 must use the **same Dropbox account as version 3** to download its synced data. Your Mac and any other devices must use that account too. Choosing Dropbox on every device is not enough if they are signed in to different accounts. ## Check the linked account[​](#check-account "Direct link to Check the linked account") 1. Open **Settings > Sync** in the app that holds your complete, current data. On the Mac, use **2Do > Settings > Sync**. Note the Dropbox email address. 2. Compare it with the Dropbox email shown in 2Do on each other device. If version 3 is still installed, compare version 3 and version 4 as well. 3. Save a backup of any changes you need to keep before changing accounts or replacing data. Keep version 3 and its backups until you have checked the data in version 4. 4. On an iPhone, iPad, or Mac linked to the wrong account, choose **Unlink**, then **Link Account**, and sign in to the correct Dropbox account. Check the account you are authorizing before confirming. Install the latest updates for the new 2Do apps before retrying. If 2Do reports that you are signed in to a different Dropbox account than before, use the same account check. ## Download the current Dropbox copy[​](#download "Direct link to Download the current Dropbox copy") Use this route only when the correct Dropbox account holds the complete, current data you want on the device. If your latest changes are still in version 3, let version 3 finish syncing to that account first, or use the backup route below. 1. Link the device to the confirmed Dropbox account. 2. Choose **Replace Local Data** if asked during setup. If already linked, open **Settings > Sync > Next sync action** and choose **Replace Local Data**. 3. Start a sync and let it finish: pull down on the task list on iPhone, iPad, or Android, or press `⌘S` on the Mac. 4. Check that the tasks and dates match the copy you wanted to recover. **Replace Local Data** downloads the full Dropbox copy and replaces this device's syncable tasks and lists. Changes found only on this device may be removed. Do not choose **Replace Server Data** from a device showing old or incomplete data, because that would overwrite the Dropbox copy. See [Replace Server Data or Replace Local Data?](/docs/faqs/replace-server-data-vs-replace-local-data.md). If Dropbox also holds old data, repeating the download will bring back that same copy. Use a device or backup with the current data instead. If you cannot find one, [contact support](/docs.md#support-information) before replacing data. ## Move directly from a version 3 backup[​](#backup "Direct link to Move directly from a version 3 backup") If version 3 on your iPhone or iPad still has the correct data, you can transfer it to version 4 without using Dropbox. 1. In version 3, open **Settings > Backups**. Use **Backup to Email**, or **Create Backup Now** followed by **Save a Copy…**, to save a fresh backup outside the app. 2. In version 4, save any changes you need to keep, then open **Settings > Sync** and **Unlink** Dropbox if connected. 3. Open **Settings > Backups & Export > Restore from File…**, choose the saved backup, and select **Restore Everything…**. This replaces version 4's current data. Reopen 2Do after it quits. 4. Check that your tasks and dates match version 3 before setting up sync again. On the Mac, 2026.x updates the existing 2.x app and keeps its data; the separate version 3 and version 4 apps are for iPhone and iPad. See the [migration guide](/docs/faqs/moving-to-the-new-app.md) for other transfer options. ## Switch to the new iCloud sync[​](#icloud "Direct link to Switch to the new iCloud sync") Once you have the complete, current data in the new app, iCloud is the recommended sync method. Every device must use the same Apple Account and run version 4 on iPhone or iPad, 2Do 2026.x on macOS 14 or later, or a version of 2Do for Android that lists **iCloud** separately from **iCloud CalDAV**. Keep Dropbox if any device runs an older 2Do app. For Android, see [Sync with iCloud on Android](/docs/android/sync-with-icloud-native.md). 1. Start on the device with the complete data, including a copy restored from a version 3 backup. Open **Settings > Sync** and disconnect any existing account: **Unlink** for Dropbox, or **Change Account** for another method. 2. Choose **iCloud (Recommended)**, not **iCloud CalDAV**, then **Set Up Sync**. If asked, choose **Replace Server Data** to upload this device's complete copy to iCloud. 3. Let that sync finish. On each other device, disconnect its old sync account, choose the same iCloud method, and select **Set Up Sync**. Choose **Replace Local Data** if asked, so it downloads the copy you just uploaded. Use **Replace Server Data** only on the device holding the complete copy. The [iCloud migration steps](/docs/faqs/moving-to-the-new-app.md#switch-to-icloud) explain the requirements and setup in more detail. --- # I'm getting a Forbidden error during iCloud sync This usually means iCloud CalDAV has refused the request. Start with a few account checks: * Make sure you're using an **app-specific password** rather than your regular Apple ID password. * Confirm that your device's date and time are set correctly. * Remove the iCloud account from **Settings > Sync**, then add it back with a freshly generated app-specific password. If the error appears only with one specific list, create a new list, move the tasks into it, delete the original, then sync again. --- # How do I rename a tag? * **Mac**: open the Tags panel and **double-click** the tag you want to rename. The new name applies to every task that carries it. * **iOS / Android**: open the Tags view, long-press the tag → **Rename**. Renaming to the name of an existing tag offers to merge them. --- # How to Share Minimal 2Do Logs ## Understanding 2Do Logs[​](#logs "Direct link to Understanding 2Do Logs") 2Do Mac keeps a limited set of recent logs that record app activity and technical details. These logs help us diagnose errors, usability problems, and compatibility issues when you contact support. Logs may include task, list, or tag names involved in recent activity, along with sync account details, service responses, app settings, and error messages needed for troubleshooting. If you have privacy concerns or organizational requirements, you can create a smaller set that covers only a reproduced problem. important The information in the logs is kept confidential, used **exclusively for troubleshooting**, and deleted after the issue is resolved. Please consult our [privacy policy](/privacy.md#customer-support-and-application-logs) to learn how we handle your logs. ### When Should You Share Minimal Logs?[​](#when-should-you-share-minimal-logs "Direct link to When Should You Share Minimal Logs?") This method works best when you can **reliably reproduce the issue**. If the problem occurred in the past and cannot be reproduced, clearing older logs may remove the details we need. In that case, consider [reviewing and reducing the existing logs manually](#manual-review). ### How to Share Minimal Logs[​](#share-minimal "Direct link to How to Share Minimal Logs") If you can reproduce the issue, follow these steps on your Mac: 1. Open **2Do > Settings > Diagnostics**. 2. Click **Show Logs**. Finder will select the **Logs** folder; open that folder. 3. Quit 2Do. 4. Delete the `.log` files from the Logs folder. 5. Relaunch 2Do and **reproduce the issue**. 6. Return to **2Do > Settings > Diagnostics** and click **Email Diagnostic Report**. 7. Confirm that you want to create the email, then add a short description and the steps that trigger the problem. 2Do will create a new `database-info.txt` summary, attach it with the new log files in **2Do Logs.zip**, and open a message addressed to . ### How to Manually Review and Reduce Existing Logs[​](#manual-review "Direct link to How to Manually Review and Reduce Existing Logs") If the issue is difficult to reproduce, you can inspect the existing files before sharing them: 1. Open **2Do > Settings > Diagnostics** and click **Show Logs**. 2. Open the selected Logs folder, then quit 2Do so the files do not change while you review them. 3. Sort the `.log` files by name or modification date. 4. Open the newest files in a text editor and keep only the files that cover the problem. 5. Review `database-info.txt`. It contains an outline of your app, device, sync, list, tag, and settings configuration; include it only if you are comfortable sharing it. 6. Select the files you want to send, Control-click them, and choose **Compress**. 7. Email the resulting zip file to with a description of the problem. tip You can also remove sensitive lines from copies of the files before compressing them. Please keep the surrounding error details and identifiers when possible, since they often show which request or task caused the problem. ### Can 2Do Automatically Redact Private Information?[​](#can-2do-automatically-redact-private-information "Direct link to Can 2Do Automatically Redact Private Information?") 2Do cannot reliably decide which task names, account details, URLs, or identifiers you consider private. These exact values are often needed to match an error to the task or sync request that caused it. For that reason, 2Do asks for your approval before creating a diagnostic email and lets you review the files manually when needed. ## Self-Troubleshooting[​](#self-troubleshooting "Direct link to Self-Troubleshooting") If you prefer not to share logs, you can inspect them yourself: 1. Open **2Do > Settings > Diagnostics** and click **Show Logs**. 2. Open the selected Logs folder and sort the `.log` files by modification date. 3. Open the newest file in a text editor. 4. Search for errors or warnings near the time the problem occurred. This may help you identify a failed sync request or other app error without sending any files to us. --- # My iCloud password keeps failing Apple requires **two-factor authentication** and an **app-specific password** for third-party apps accessing iCloud (since June 2017). You cannot use your regular Apple ID password. Generate an app-specific password at [appleid.apple.com](https://appleid.apple.com) → *Sign-In and Security* → *App-Specific Passwords*, label it *2Do*, and use that in 2Do. If the password still fails (or you see a cryptic `-1012`), check: * **Your device's date and time is set to automatic.** A wrong clock makes app-specific passwords silently fail. * **You're using your `@icloud.com` address, not `@mac.com`.** * **You're using your primary Apple ID, not an alias.** * **You haven't reset your Apple ID password recently**: that revokes all existing app-specific passwords; generate a new one. If none of those help, remove the iCloud account from **Settings > Sync** in 2Do and re-add it with a freshly-generated app-specific password. --- # How do I import data from OmniFocus? **On Mac, 2Do imports directly from OmniFocus.** If OmniFocus is installed, choose **File > Import > From OmniFocus…** and 2Do reads your local OmniFocus 4 database directly (read-only, without changing anything in OmniFocus). Projects become lists, actions and groups become tasks and sub-tasks, and tags, flags, defer/due dates, durations, and repeats all come across. OmniFocus doesn't need to be running. It's a best-effort, one-time copy: once imported, the tasks are ordinary 2Do tasks you're free to rearrange. See [Importing and Exporting](/docs/macos/import-and-export.md#omnifocus) for the full mapping. (2Do can also [import from Things](/docs/faqs/import-from-things.md) and from calendar `.ics` files the same way.) Why read the database? OmniFocus doesn't sync over an open standard such as CalDAV or two-way Apple Reminders (both supported by 2Do), so live sync between the apps isn't possible; a direct read is the reliable way to extract your tasks. Once imported, they stay portable: sync onward over [CalDAV](/docs/macos/sync-with-caldav.md) or [Reminders](/docs/macos/sync-with-reminders.md), or [export everything as CSV](/docs/macos/import-and-export.md#export-csv) at any time. On **iPhone, iPad, and Android** there's no direct OmniFocus import. The community route is via Toodledo: 1. Export your data from OmniFocus in **CSV** format. 2. Create a free account at [www.toodledo.com](https://www.toodledo.com) and import the CSV there. 3. Open 2Do → **Settings > Sync** → set up sync with that Toodledo account. 4. Sync. After the data lands in 2Do, consider switching to Dropbox sync for the long-term setup. Dropbox carries more 2Do features than Toodledo does. Learn more: [Dropbox sync on Mac](/docs/macos/sync-with-dropbox.md), [Dropbox sync on iOS](/docs/ios/sync-with-dropbox.md), [Dropbox sync on Android](/docs/android/sync-with-dropbox.md). --- # How do I import data from Things? **On Mac, 2Do imports directly from Things.** If Things is installed, choose **File > Import > From Things…** and 2Do reads your local Things database directly (read-only, without changing anything in Things). Areas become List Groups, each Project becomes a list of its own, the Project's headings become [sections](/docs/macos/task-sections.md) in that list, to-dos become tasks, checklists come across as checklist items, and tags, When/Deadline dates, reminders, and repeating rules all map over. Things doesn't need to be running. Trashed items are skipped, and canceled to-dos arrive as completed tasks. It's a best-effort, one-time copy: once imported, the tasks are ordinary 2Do tasks you're free to rearrange. See [Importing and Exporting](/docs/macos/import-and-export.md#things) for the full mapping. (2Do can also import from OmniFocus and from calendar `.ics` files the same way.) Why read the database? Things doesn't sync over an open standard such as CalDAV or two-way Apple Reminders (both supported by 2Do), so live sync between the apps isn't possible; a direct read is the reliable way to extract your tasks. Once imported, they stay portable: sync onward over [CalDAV](/docs/macos/sync-with-caldav.md) or [Reminders](/docs/macos/sync-with-reminders.md), or [export everything as CSV](/docs/macos/import-and-export.md#export-csv) at any time. On **iPhone and iPad** there's no direct Things import. Since Things is Apple-only, the easiest route is through any Mac: install the [2Do for Mac trial](https://www.2doapp.com/2do-mac/), run the import there, set up [sync](/docs/macos/sync.md), and your tasks flow down to your iPhone and iPad. Sections reach them through iCloud, Dropbox, or Todoist sync. Learn more: [Import from OmniFocus](/docs/faqs/import-from-omnifocus.md), [Dropbox sync on Mac](/docs/macos/sync-with-dropbox.md). --- # Are my iPhone / iPad backups safe if I delete the 2Do app? **No**, and this catches people out. 2Do's backups are stored inside the app's own container on your device. They are not uploaded anywhere on their own. Delete 2Do, or erase the device, and every backup inside the app goes with it. The fix is to keep a copy outside the app. Open **Settings > Backups & Export** and either: * Tap **Backup to Email** to create a fresh backup and send it to yourself, save it to Files, or AirDrop it, or * Open the menu beside any stored backup and choose **Save a Copy…** to put that file in Files or iCloud Drive. Make it a habit. Weekly is reasonable, plus one extra copy before any big change such as an erase, a device replacement, or a switch of sync service. To use one later, open **Settings > Backups & Export > Restore from File…** on the new device and pick the file. See [Backups](/docs/ios/backups.md) for the full guidance. --- # Is 2Do free? 2Do is sold differently on each platform: * **2Do Mac** has a free 14-day trial and can be purchased directly from our store. * **2Do for iPhone** and **2Do for iPad** are separate apps on the App Store, each a one-time purchase. * **2Do Android** is a free download from Google Play or [directly from our website](/android/download.md), with an optional Pro upgrade for advanced features. --- # 2Do Licensing Explained Quick Summary 2Do Mac comes with a [**perpetual license**](#direct), a one-time purchase and [not a subscription](#subscription), so you [own](#likesub) the app [*forever*](#updatesforever). Each purchase includes [**18 months of free updates**](#nummonths) from the [date of purchase](#licenseactivationdate). After this period, you can [continue using the last update](#dontrenew) forever or renew at a [**discounted rate**](#renewal) to keep receiving the latest features and improvements. We also offer [other licensing models](#licensingmodels) that may suit you better. Upgrading is [entirely optional](#wontpay). 2Do for iPhone and 2Do for iPad are [separate one-time purchases](#mobile) on the App Store. Here you will find answers to some of the most frequently asked questions about the different licensing options we offer for 2Do Mac. If you don't find your question answered below, feel free to [contact us](/docs.md#support-information). We have also provided a comparison of the various [licensing models we support here](#licensingmodels). ## Is there a subscription fee?[​](#subscription "Direct link to Is there a subscription fee?") **No**, not when you purchase 2Do Mac directly from [our online store](/store.md). The direct version is a non-expiring, non-recurring, perpetual license. However, 2Do Mac is available via subscription-only from the Mac App Store, since the App Store does not support optional upgrade pricing. 2Do Mac is also part of [Setapp](https://setapp.com/apps/2do), a subscription service that offers a curated collection of macOS apps under a single subscription. [Learn more here](#licensingmodels). 2Do for iPhone and 2Do for iPad are separate App Store apps, each sold as its own one-time purchase. 2Do Android is a free download from Google Play or [directly from our website](/android/download.md), with an optional Pro upgrade. ## What is a perpetual license?[​](#direct "Direct link to What is a perpetual license?") When you purchase directly from [our online store](/store.md), which offers you the same secure-buying experience as the app store, you're paying for a perpetual license that is yours to keep, **forever**. You own the version of the app you paid for, including all the updates released after the time of purchase until [the time free updates expire](#length). This also means that there is no looking out for a 2Do Mac 3 / 4 / 5 etc. There's a single version of 2Do Mac that we continue to update and improve, and your license entitles you to all updates, both major and minor, for 18 months. There are no recurring payments and no subscriptions. Once you pay for the product, you're making a one-time purchase, not a recurring one. You own the right to continue using the purchased version forever. [You can learn more about the different licensing models we support, here](#licensingmodels). ## How long will my perpetual license remain valid?[​](#length "Direct link to How long will my perpetual license remain valid?") You get a lifetime license that *never expires*, which means you own the version you paid for and can continue using it forever. **However**, your license is valid for **18 months of free updates** starting from the date of purchase. This includes bug fixes, enhancements, and new features, both major and minor. To continue receiving updates after 18 months, you will need to [renew your license](/store.md?current-tab=renewals). For instance, say you purchased 2Do Mac today, ****. You will be entitled to **own** all updates posted until ****. After the expiry date, you can continue using the last update that was released forever. If you then choose to renew your license, you will receive an additional 18 months of updates, starting from the **date of renewal**. This way, you can choose not to renew for six months, and renew only when an update we post interests you with a feature or enhancement you always wanted. Example If you purchase a license today, ****, you'll receive regular updates to the app through ****(18 months of updates). ## Does the update period start on purchase date or first use?[​](#licenseactivationdate "Direct link to Does the update period start on purchase date or first use?") Your **18-month update period** begins from the **date of purchase**, not the date of first use. For example, if you purchase 2Do Mac today (****) but do not activate your license for a year, your license will still provide free updates only until ****(i.e., 18 months from your purchase date). ## Why 18 months? Isn't 12 months the industry standard?[​](#nummonths "Direct link to Why 18 months? Isn't 12 months the industry standard?") 12 months is indeed the industry standard, however 12 months also *sounds* like a subscription. 12 months also seems to go by fairly quickly. We believe 18 months is a sweet spot. It makes us stand apart from traditional subscription models and provides better value. This extended period gives you more time to enjoy updates, new features, and improvements, all without the commitment of a recurring subscription, ensuring you get the most from your investment. This way we also get an opportunity to win you over for potentially another 18 months after your license expires. ## I thought I was going to get free updates and support till the end of time?[​](#updatesforever "Direct link to I thought I was going to get free updates and support till the end of time?") 2Do has received free updates since 2009 through 2026 without once charging a dime for a paid upgrade or switching the direct version to a subscription. That's an unusually long free-update run for a professional Mac app. The licensing model is still more or less the same as a traditional paid upgrade: you pay for a version, you keep using that version forever, and you receive free updates for a certain period. The difference is that the free-update period is defined clearly as 18 months instead of being tied to an arbitrary major-version release. ## What happens to older 2Do Mac licenses after 15th May, 2026?[​](#older-licenses "Direct link to What happens to older 2Do Mac licenses after 15th May, 2026?") All existing 2Do Mac direct licenses remain perpetual. They do not stop working. However, the free-update eligibility for older existing licenses ends with the final free update covered by those licenses, currently set to **15th May, 2026**. This means: * You can keep using the last 2Do Mac version released before your eligibility ended. * To install newer updates released after your eligibility ended, you need to renew. * Renewing adds another 18 months of updates to your direct license. This is not a subscription lockout. It simply marks the end of the very long free-update window that older licenses received. If you purchased within the two years leading up to this date, a more generous window applies to you, as [explained below](#recent-purchases). ## I bought 2Do Mac in the last two years. Do I still need to renew right away?[​](#recent-purchases "Direct link to I bought 2Do Mac in the last two years. Do I still need to renew right away?") No. Anyone who bought a direct 2Do Mac license from **15th May 2024** up to **15th May 2026** remains eligible for free updates through **15th May 2028**, regardless of where the purchase falls within that two-year window. Licenses purchased on or after 15th May 2026 follow the standard [18 months of updates](#length) from the date of purchase instead. After May 2028, those licenses work the same way as other direct licenses: you can keep using the last eligible version forever, or renew if you want newer updates. Mac App Store purchases follow different rules, [explained below](#massub). ## I don't remember signing up for a perpetual license, why do I have to pay for a renewal again?[​](#wontpay "Direct link to I don't remember signing up for a perpetual license, why do I have to pay for a renewal again?") No, you do **not** have to pay again. Renewing a license is completely optional and entirely your choice. With the **18 months of updates included** license, everyone is treated equally, and you get far greater value for the money spent. There is no longer a 2Do Mac 3 / 4 / 5, but a single version that keeps improving, and you enjoy 18 months of improvements, both minor and major, and when the time is up, you choose whether you wish to renew the license for another 18 months or stick with a "good enough" version that works well for you. ## But a perpetual license sounds like a subscription?[​](#likesub "Direct link to But a perpetual license sounds like a subscription?") If it were a subscription, you would be prevented from using the app unless you paid the renewal fee, or you may simply be downgraded to a *free plan* that takes away key features of the app. This is not the case with our license. You are entitled to use the app you paid for forever. Renewing your license is up to you. ## What if I don't renew my license?[​](#dontrenew "Direct link to What if I don't renew my license?") If you don't want to renew your license after the 18-month period, you can continue to use the version of the app that you have, for as long as you want, but you won't be able to receive any further updates, including *critical bug fixes*. To receive new updates with new features, enhancements, and bug fixes, a renewed license will be required, entitling you to own another 18 months of updates. In most cases, not renewing a license will not affect you in any way or form, however this isn't guaranteed. At times a new version of macOS can deprecate certain features or remove support for them entirely, prompting app developers to make changes to fix crashes or fulfill additional requirements. Similarly, sync services and app-store requirements can change without much notice. Older copies of the app may stop connecting to such services or may require renewal to receive compatibility updates. You can always change your mind at any time. Not renewing a license does not prevent you from using the app and its core functions. You simply miss out on updates that are rolled out with new improvements. You can keep using the app for months, years, or decades before you decide to renew your license and get back onto the latest version. The choice is entirely yours. ## Why do some updates only change the build number and not the version?[​](#stability-updates "Direct link to Why do some updates only change the build number and not the version?") These are stability updates. Between version bumps we keep posting small fixes and refinements to 2Do Mac as soon as they're ready, and each one raises only the build number (for example, build 103 to 104). A new version number is reserved for actual new features, larger improvements and bigger fixes. Keeping the version unchanged is deliberate, and it works in your favor. A new version requires an active license, whereas a stability update installs even if your license has expired. This way a fix always reaches you without asking you to renew or pay for it, and you're never left with a broken app waiting on a renewal. ## Why not release a paid 2Do Mac 3, 4, or 5 instead?[​](#majorupdate "Direct link to Why not release a paid 2Do Mac 3, 4, or 5 instead?") Releasing a major upgrade means changing how the app is packaged, sold, and supported. It can create confusing migration paths, separate app-store listings, repeated marketing cycles, and artificial pressure to justify the "major"-ness of the app. Secondly, everything around us keeps changing. macOS receives regular updates. Apple Silicon, security requirements, privacy reviews, sync services, and app-store policies all create ongoing work. The line previously drawn between bug fixes and major updates has almost diminished. A minor-looking compatibility fix can still require weeks of engineering, testing, and support. In short, it has become increasingly difficult to sustain a professional Mac app without either charging a subscription or charging for updates based on a set period. Since we do not want direct customers to be forced into a subscription, the fairer approach is to keep one app, include 18 months of updates, and make renewals optional. ## What about future macOS compatibility?[​](#macos-compatibility "Direct link to What about future macOS compatibility?") Yes, you **own** the version of the app you purchased, and you can use it forever. However, technology doesn't stand still. macOS is updated annually, often introducing system changes that affect how apps function. Similarly, third-party services evolve their APIs, security requirements, or connectivity protocols, sometimes at short notice. This means that while your purchased version remains yours, it may not always remain compatible with future macOS updates or online services. If a future macOS release breaks something or a service changes how it syncs, an older version of the app won't automatically adapt to those changes. This is **exactly why we offer optional license renewals**, not just to add new features, but to ensure ongoing compatibility. Maintaining the app in a constantly shifting environment requires significant effort. Without a sustainable way to fund this work, we wouldn't be able to keep the app running reliably over time. ## How much will a renewal cost?[​](#renewal "Direct link to How much will a renewal cost?") Renewals receive a **20% discount** compared with the original price. [The 2Do Mac renewal price is shown in the store](/store.md?current-tab=renewals), and volume discounts automatically apply when you renew more than one license at the same time. This way, you pay the full price only once, and renew when you feel the app has improved to your liking. ## Do I need to reinstall after renewal?[​](#reinstall "Direct link to Do I need to reinstall after renewal?") No. Once you renew your license, you can continue using the version you have or update to a more recent version in case there is one available. ## What if I have multiple Macs?[​](#renewdevices "Direct link to What if I have multiple Macs?") Renewal is tied to your 2Do registration code. If the same registration code covers multiple Macs, renewing that code updates the eligibility attached to that code. If you use 2Do Mac across business, team, or non-personal machines, you should make sure the license quantity matches your usage. ## Why am I asked to renew after updating?[​](#whyme "Direct link to Why am I asked to renew after updating?") As explained in [this question](#length), you are entitled to 18 months of free updates, starting from the date of purchase. You do not have to renew the license if you do not wish to do so. This simply means that you will have to download and install the last eligible update covered by your license, as [explained here](#dontrenew). If you have installed a more recent update not covered by your license, you may be directed to the last eligible version. Simply follow the instructions on screen when prompted. ## What if I purchased from the Mac App Store?[​](#massub "Direct link to What if I purchased from the Mac App Store?") 2Do Mac on the Mac App Store is moving to a subscription-only model, priced at **$3.99 / month** or **$34.99 / year** in the US (the yearly plan saves around 27%). Prices in other countries and regions may differ. New subscribers get a **14-day free trial** when Apple confirms they are eligible. No subscription starts until you choose a plan and confirm it with Apple. The Mac App Store is managed by Apple and uses different licensing, billing, refund, and subscription rules from our direct store. Mac App Store subscriptions and direct 2Do Mac licenses are not interchangeable. If you bought 2Do Mac from the Mac App Store between **4th October 2024** and the subscription change on **4th October 2026** (both dates in UTC), you have complimentary access to 2Do Mac until 00:00 UTC on **10th October 2027**, on every supported version of macOS. You don't need to subscribe or confirm anything now, and nothing is charged. The end date is the same on all your Macs. When complimentary access ends, choose a monthly or yearly plan to keep using 2Do. You are only charged if you subscribe. If you bought before 4th October 2024, you can subscribe to either plan, with the 14-day free trial when Apple confirms you are eligible. If you bought 2Do Mac from the Mac App Store before the subscription change and would rather not subscribe, [contact us](/docs.md#support-information) and we will issue you a direct-download 2Do Mac license key, free of charge, covering every version up to the last version 2 release. The details for Mac App Store customers are on [this page](/docs/faqs/mac-app-store-subscription-update.md). The subscription covers **2Do Mac only**. 2Do for iPhone and 2Do for iPad are separate one-time App Store purchases and are not included in it, and 2Do Android is a separate free download with an optional Pro upgrade. See [mobile apps](#mobile). If you used an older or Mac App Store copy and want to evaluate the latest direct version, follow the [clean 14-day trial steps](/docs/faqs/try-latest-2do-mac-after-older-version.md). ## Does Setapp work the same way as a direct license?[​](#setapp "Direct link to Does Setapp work the same way as a direct license?") No. Setapp is a subscription service. If you use 2Do Mac through Setapp, your access is governed by your Setapp subscription and Setapp's terms. A Setapp subscription is not a direct 2Do Mac perpetual license, and it cannot be converted into one automatically. ## Is 2Do for iPhone or 2Do for iPad a subscription?[​](#mobile "Direct link to Is 2Do for iPhone or 2Do for iPad a subscription?") No. 2Do for iPhone and 2Do for iPad are brand-new apps, released in 2026 and rebuilt from the ground up. Each one is a separate one-time App Store purchase, with no subscription and no in-app purchases. The direct perpetual-license renewal model described on this page applies to **2Do Mac** licenses purchased from our online store. Mobile purchases are separate from Mac licensing and from each other. [The new iPhone and iPad apps are explained in full here](/docs/faqs/new-iphone-ipad-apps.md). ## Does buying the iPhone app include the iPad app?[​](#ios-both-apps "Direct link to Does buying the iPhone app include the iPad app?") No. **2Do for iPhone** and **2Do for iPad** are two separate apps on the App Store, and buying one does not unlock the other. They have the same features, laid out for the screen they run on. ## Does my 2Do Mac license include the iOS apps?[​](#mac-includes-ios "Direct link to Does my 2Do Mac license include the iOS apps?") No. A direct 2Do Mac license, a Mac App Store subscription, and Setapp access all cover **2Do Mac only**. The iPhone and iPad apps are bought separately on the App Store, and buying either of them does not include 2Do Mac. ## I already own the old 2Do iOS app. Why do I have to pay again?[​](#old-ios-app "Direct link to I already own the old 2Do iOS app. Why do I have to pay again?") The new apps are separate App Store listings, not an update to the app you own, so a previous purchase does not carry over. There is no free upgrade and no upgrade discount, because the App Store provides no way to offer either on a new app. ## Why was a new app released instead of an update?[​](#new-app-not-update "Direct link to Why was a new app released instead of an update?") The App Store has no paid upgrade option. A developer who wants to charge for a major new version can make the app free with in-app purchases, switch to a subscription, or release a new app. Making the existing app free with an unlock would have changed the app everyone already owns and put its features behind an in-app purchase, and a subscription is not what we want for iPhone and iPad. A new app keeps 2Do a plain paid app with everything included and no in-app purchases. ## Will the old 2Do iOS app keep working?[​](#old-ios-app-updates "Direct link to Will the old 2Do iOS app keep working?") Yes. It keeps working as it is and your tasks stay on your device. It has received free updates since 2009 and will receive no further ones. Because it is no longer updated, it cannot notify you about the new apps. ## I already bought the new app, but the App Store asks me to pay again[​](#ios-already-bought "Direct link to I already bought the new app, but the App Store asks me to pay again") This is almost always the wrong Apple Account, or the app for your other device. Check that you are signed in to the Apple Account you bought with, and note that 2Do for iPhone does not cover 2Do for iPad. To download an app you already own, open the **App Store**, tap your photo or the **My Account** button, tap **Apps & Purchase History**, then **Your Apps** (in a Family Sharing group, **My Apps** or a family member's name), tap **Not on this iPhone** or **Not on this iPad**, find 2Do, and tap the download button. See also [Can I restore an iOS purchase?](/docs/faqs/restore-previous-purchase.md) ## How do I move my tasks to the new app?[​](#ios-move-data "Direct link to How do I move my tasks to the new app?") If you sync, install the new app, open **Settings > Sync**, and pick the same sync method and the same account you used in the old app. Your tasks arrive on the first sync. **iCloud** carries everything across, apart from lists you have excluded from sync. **Dropbox** carries the same, apart from link-only attachments and the manual order of the Focus Lists. The other methods also leave items such as Smart Lists, tag groups and attachments on the old device. If either applies to you, save a fresh backup in the old app and restore it in the new one first, then set up sync. [The steps are here](/docs/faqs/new-iphone-ipad-apps.md#moving). ## What about 2Do Android?[​](#android "Direct link to What about 2Do Android?") 2Do Android is unchanged: a free download from Google Play or [directly from our website](/android/download.md), with an optional Pro upgrade. ## What if my Mac App Store or Setapp subscription lapses? Do I lose my data?[​](#subscription-lapse "Direct link to What if my Mac App Store or Setapp subscription lapses? Do I lose my data?") No. Your local 2Do data remains on your device unless you delete it yourself. If you sync with a service such as CalDAV, iCloud CalDAV, or Dropbox, your synced data remains with that service according to that provider's rules. However, access to subscription-only app features or the app itself may depend on the subscription remaining active. ## Can I transfer between the direct store, Mac App Store, and Setapp?[​](#transfers "Direct link to Can I transfer between the direct store, Mac App Store, and Setapp?") Not automatically. These channels use different licensing systems: * Direct purchases use a 2Do registration code and optional 18-month renewals. * Mac App Store purchases and subscriptions are managed by Apple. * Setapp access is managed by Setapp. If you prefer the direct perpetual-license model, purchase 2Do Mac from [our online store](/store.md). If you need help understanding your options, please [contact support](/docs.md#support-information). ## I want a refund. What should I do?[​](#refund "Direct link to I want a refund. What should I do?") For direct purchases from our store, please [contact support](/docs.md#support-information). Refund eligibility depends on the purchase date and the payment processor's records. For Mac App Store purchases or subscriptions, Apple controls refunds. You can request a refund from [reportaproblem.apple.com](https://reportaproblem.apple.com). For Setapp, contact Setapp support or manage your subscription through your Setapp account. ## Why does 2Do Mac connect to license servers?[​](#licensechecks "Direct link to Why does 2Do Mac connect to license servers?") Direct 2Do Mac licenses may periodically contact our licensing servers to validate the registration code, activation count, refund state, and update eligibility. These checks help prevent piracy, invalid license use, and accidental overuse of a registration code. They are separate from your task data. 2Do does not send your task contents to our licensing servers. You can learn more in our [Privacy Policy](/privacy.md). *** ## Licensing Models - A Comparison[​](#licensingmodels "Direct link to Licensing Models - A Comparison") ### Direct from 2Doapp.com[​](#direct-store "Direct link to Direct from 2Doapp.com") A direct purchase is a one-time 2Do Mac perpetual license with 18 months of updates included. **Benefits**: * Pay once and keep the last eligible version forever. * Renew only when you want another 18 months of updates. * Use the direct store renewal flow and registration-code support. **Caveats**: * Update eligibility ends after the included update period. * Future updates after that period require an optional renewal. * Direct licenses are not interchangeable with Mac App Store or Setapp subscriptions. ### Mac App Store[​](#masstore "Direct link to Mac App Store") 2Do Mac on the Mac App Store is moving to a subscription-only model: **$3.99 / month** or **$34.99 / year** in the US, and prices in other countries and regions may differ. New subscribers get a **14-day free trial** when Apple confirms they are eligible. Customers who bought 2Do Mac from the Mac App Store between 4th October 2024 and the subscription change on 4th October 2026 have complimentary access until 10th October 2027, with no subscription or charge. The subscription covers the **Mac app only**. **Benefits**: * Billing, subscription management, and refunds are handled by Apple. * App Store family-sharing behavior is governed by Apple's current subscription rules. **Caveats**: * It is a subscription, not a direct perpetual license. * Apple controls refund and subscription management. * It cannot be automatically converted into a direct registration code. * It does not include the mobile apps. 2Do for iPhone and 2Do for iPad are bought separately on the App Store, each as its own one-time purchase, and 2Do Android is a separate free download with an optional Pro upgrade. ### Setapp[​](#setappstore "Direct link to Setapp") 2Do Mac is available through Setapp as part of a broader app subscription. **Benefits**: * Access 2Do Mac through an existing Setapp subscription. * Billing and subscription management are handled by Setapp. **Caveats**: * It is not a direct perpetual license. * Access depends on your Setapp subscription. * It cannot be automatically converted into a direct registration code. ### iOS and Android[​](#mobile-stores "Direct link to iOS and Android") **2Do for iPhone** and **2Do for iPad** are new apps, released in 2026. Each is a separate one-time App Store purchase, with no subscription and no in-app purchases, and buying one does not unlock the other. Neither is included with a 2Do Mac license or subscription. See [the iPhone and iPad questions above](#mobile) and [what the new apps are](/docs/faqs/new-iphone-ipad-apps.md). 2Do Android is a free download from Google Play or [directly from our website](/android/download.md), with an optional Pro upgrade. Mobile purchases are separate from 2Do Mac licensing and renewals. --- # What does the Mac App Store subscription change mean for me? This note is for customers using **2Do Mac from the Mac App Store**. 2Do Mac on the Mac App Store is moving to a subscription. The change happens inside the app you already own: the existing Mac App Store app is being updated to the subscription model rather than replaced by a separate listing, so anyone who bought 2Do Mac there earlier will see the change in the app on their Mac. Your tasks, lists, and sync settings are unaffected, and nothing changes about how your data is stored or synced. 2Do has been around since 2009, and we've shipped free updates ever since, without once charging for an upgrade. To keep the app actively developed and improving, we need a sustainable way to fund ongoing work. The Mac App Store has no way to sell optional paid upgrades, so a subscription is the route we are taking there, with billing and renewals handled by Apple. The subscription costs **$3.99 / month** or **$34.99 / year** in the US (the yearly plan saves around 27%), and prices in other countries and regions may differ. New subscribers get a **14-day free trial** when Apple confirms they are eligible. No subscription starts until you choose a plan and confirm it with Apple. You can [read more here](/docs/faqs/licensing-explained.md#massub). ## I bought 2Do Mac on the App Store recently. Do I need to subscribe now?[​](#recent-purchases "Direct link to I bought 2Do Mac on the App Store recently. Do I need to subscribe now?") No. If you bought 2Do Mac from the Mac App Store between **4th October 2024** and the subscription change on **4th October 2026** (both dates in UTC), you have complimentary access to 2Do Mac until 00:00 UTC on **10th October 2027**. This applies on every supported version of macOS, and the end date is the same on all your Macs. There is nothing to confirm now, and you are not charged. When complimentary access ends, 2Do shows the monthly and yearly plans, and you choose whether to subscribe. Nothing is charged unless you choose a plan and confirm it with Apple. If you bought 2Do Mac before 4th October 2024, you can subscribe to either plan, with the 14-day free trial when Apple confirms you are eligible. ## What if I don't want a subscription at all?[​](#no-subscription "Direct link to What if I don't want a subscription at all?") If you bought 2Do Mac from the Mac App Store before the subscription change, you don't need one. [Contact us](/docs.md#support-information) and we will issue you a 2Do Mac license key for the direct download, free of charge. It covers every version up to the last version 2 release, which is the last release before the subscription change. That key is a direct license, so the [direct licensing rules](/docs/faqs/licensing-explained.md#direct) apply to it: it is perpetual, it never expires, and you can keep using the version it covers for as long as you like. Updates released after that point are not included, and [renewing to receive them is optional](/docs/faqs/licensing-explained.md#dontrenew). ## Why does my free migration license cover 2.9.80 when the Mac App Store version is 2.9.92?[​](#version-numbers "Direct link to Why does my free migration license cover 2.9.80 when the Mac App Store version is 2.9.92?") **Versions 2.9.80 and 2.9.92 are functionally identical.** The Mac App Store version number was increased only to include additional notices for existing users about the upcoming subscription change. Version 2.9.92 does not add features or fixes beyond those in 2.9.80. The direct-download version covered by the [free migration offer](#no-subscription) is **2.9.80**, and the perpetual license we provide covers it. You can use that version without a subscription. You do not need a separate perpetual version 2.9.92 or a different license because of the higher Mac App Store version number. ## Are 2Do for iPhone and 2Do for iPad also moving to a subscription?[​](#are-2do-for-iphone-and-2do-for-ipad-also-moving-to-a-subscription "Direct link to Are 2Do for iPhone and 2Do for iPad also moving to a subscription?") No. **2Do for iPhone and 2Do for iPad each remain a one-time App Store purchase**, with no current plans to change that. The iOS community is significantly larger, and we'd rather keep things steady there. This change applies only to 2Do on the **Mac App Store**. ## Can I get a refund for a recent Mac App Store purchase?[​](#can-i-get-a-refund-for-a-recent-mac-app-store-purchase "Direct link to Can I get a refund for a recent Mac App Store purchase?") You may be eligible for a refund directly from Apple. You can request one at [reportaproblem.apple.com](https://reportaproblem.apple.com). Refunds for App Store purchases are handled entirely by Apple. If you run into any trouble with the request, feel free to [contact us](mailto:support@2doapp.com?subject=Mac%20App%20Store%20subscription%20query) and we'll do our best to help. ## Still have questions?[​](#still-have-questions "Direct link to Still have questions?") We're happy to hear from you, so just [get in touch](mailto:support@2doapp.com?subject=Mac%20App%20Store%20subscription%20query). --- # What is the maximum length for a list name? List names can be up to **200 characters** long. If you type or import a longer name, 2Do shortens it to fit automatically, and nothing else about the list changes. ## On a CalDAV server[​](#caldav "Direct link to On a CalDAV server") CalDAV servers cap the display name of a calendar, so when 2Do writes a list to a CalDAV account (iCloud, Fastmail, Yahoo, Fruux, Nextcloud, or any custom server), it sends a **25-character** version of the name. This only affects what the server stores. The list keeps its full name in 2Do, and the shortened server copy is never written back over it, so nothing you see in the app changes. If you want the name to read the same in both places, keep it to 25 characters or fewer. note Emoji and some symbols count as more than one character toward both limits, but a name is never cut in the middle of an emoji. --- # How do I move my tasks from the old 2Do app to the new one? All your data in v3 is safe and is easy to migrate over to v4. Since version 4 is a separate app, it cannot read version 3's data directly. Instead, it downloads your tasks from the sync account version 3 already uses, the same way 2Do gets your tasks when you set it up on a new device. On the Mac, 2026.x is the new version. It installs over 2.x and keeps your existing data so there's nothing to migrate. See [2Do for Mac](#mac) below. Keep version 3 installed Leave version 3 on your device until everything shows up in version 4. None of the steps on this page delete anything from version 3. ## Move your tasks in three steps[​](#steps "Direct link to Move your tasks in three steps") 1. Check which sync method version 3 uses In version 3, open **Settings > Sync** and note the sync method and the account it is signed in to, then let it finish a sync. If version 3 uses **iCloud**, choose **iCloud CalDAV** in version 4. The **iCloud** option in version 4 is a new kind of iCloud sync that cannot see version 3's data. 2. Set up the same sync method in version 4 Install version 4, open **Settings > Sync**, and choose the same sync method. Sign in to the same account and tap **Set Up Sync** (**Link Account** for Dropbox). If 2Do asks how to handle the first sync, choose **Replace Local Data**. Your lists and tasks download. Do not choose **Replace Server Data** here. 3. Keep this sync method, or switch to the new iCloud sync Repeat step 2 on each device that gets version 4. You can keep syncing exactly as before. Once every device runs version 4, you can [switch to the new iCloud sync](#switch-to-icloud). This is 2Do's own iCloud sync, not **iCloud CalDAV**. It uses the iCloud account your device is already signed in to, so there is no separate login or password, and everything in 2Do syncs through it, including Smart Lists, tag groups, list groups and attachments. If version 3 never synced, [move your data with a backup](#backup) instead. ## Details and troubleshooting[​](#more "Direct link to Details and troubleshooting") What information syncs across the apps Version 4 receives whatever your sync method carries. * **Dropbox** carries everything: tasks, notes, dates, alerts, repeats, lists, tags, Smart Lists, tag groups, list groups, and picture and audio attachments. Only link-only attachments stay on the device. * **iCloud CalDAV**, other CalDAV accounts, **Todoist** and **Toodledo** carry your tasks and lists, but not Smart Lists, tag groups or list groups. **Todoist** and **Toodledo** also leave attachments on the device. * Lists you excluded from sync in version 3 (**Settings > Sync > Exclusions**) exist only on that device. * Review **Settings** after moving. Supported app settings [sync through the same iCloud account across iPhone, iPad, and Mac](/docs/ios/settings.md#settings-sync), separately from your task sync service. Anything your sync method leaves behind can be brought over with a [backup](#backup). Newer sync methods in version 4 Version 4 adds sync methods that version 3 does not have, including the new iCloud sync. They work between devices running version 4 or 2Do for Mac 2026.x, not with version 3. To learn about each method, see [Which sync method should I use?](/docs/faqs/which-sync-method-should-i-use.md) Switching to the new iCloud sync **iCloud** is the recommended sync method in version 4 and in 2Do for Mac 2026.x. It is the first method in the **Account Type** menu and is marked **Recommended**. Do not confuse it with **iCloud CalDAV**, which syncs through Apple's calendar servers and needs an app-specific password. The new iCloud sync is 2Do's own: it uses the iCloud account your device is already signed in to, so there is no separate login or password, and everything in 2Do syncs through it, including Smart Lists, tag groups, list groups and attachments. Switch only once every device you sync with can use it: version 3 cannot, 2Do for Android needs a version that lists **iCloud** separately from **iCloud CalDAV**, and on the Mac it needs 2Do 2026.x on macOS 14 or later. Android devices sign in to iCloud from 2Do; see [Sync with iCloud on Android](/docs/android/sync-with-icloud-native.md). 1. On the device that now holds all your tasks, open **Settings > Sync** and disconnect the current method: **Unlink** for Dropbox, **Change Account** for every other method. Your tasks stay on the device. 2. Choose **iCloud** and tap **Set Up Sync**. If 2Do asks how to handle the first sync, choose **Replace Server Data**. This uploads this device's copy to iCloud. 3. On each of your other devices, disconnect the old method the same way, choose **iCloud**, tap **Set Up Sync**, and choose **Replace Local Data** if asked. Do not choose **Replace Server Data** on the other devices. It would replace the copy you just uploaded with theirs. See [switching sync methods](/docs/ios/sync.md#switching) and [iCloud sync on the Mac](/docs/macos/sync-with-icloud.md). Moving your data with a backup instead of sync Use a backup if version 3 never synced, or to bring over the Smart Lists, tag groups and list groups that your sync method leaves behind. 1. In version 3, open **Settings > Backups** and save a backup outside the app: **Backup to Email**, or **Create Backup Now** followed by **Save a Copy…** to Files or iCloud Drive. Version 4 lists only its own backups, so it needs this saved copy. 2. In version 4, open **Settings > Backups & Export > Restore from File…**, pick the saved backup, and choose **Restore Everything…**. 2Do quits when the restore completes. Open it again and your data is there. 3. Set up sync as in step 2 above. If 2Do asks how to handle the first sync, choose **Replace Server Data** when the restored copy is your complete, latest data and the option is offered, so your other devices pick it up. Choose **Merge** only when the server also holds changes you need to keep, or when your sync method does not offer Replace Server Data (Todoist and Apple Reminders). Merge never deletes anything, but it compares every task and can take a very long time with a large number of tasks. At worst it keeps a duplicate of an item it could not match, which you can delete by hand. To bring over only one or two lists, use **Restore Selected** in the backup browser instead. It adds the lists you pick under a group named **Restored** and leaves your existing data untouched. See [Restore Selected](/docs/ios/backups.md#restore-selected). Replace Local Data, Replace Server Data, or Merge? 2Do asks this the first time a device syncs with an account that already holds data. The alert is titled **Sync Method**. * **Replace Local Data**: this device takes what is on the sync account. Choose this in version 4 when moving your tasks over. * **Replace Server Data**: the sync account takes what is on this device. Choose this only on the device that holds the copy you want everywhere, for example after restoring a backup. * **Merge**: keeps both sides and deletes nothing. Choose this when the device and the sync account both hold tasks you want to keep. Never choose **Replace Server Data** from the new, empty app. It would wipe the copy on your sync account. **Todoist** does not offer it at all. After the first sync, the same choice is available any time under **Settings > Sync > Next sync action**. See [Replace Server Data vs Replace Local Data](/docs/faqs/replace-server-data-vs-replace-local-data.md). Troubleshooting **Version 4 shows old tasks or dates after Dropbox sync.** Compare the Dropbox email in **Settings > Sync** with the one used in version 3. A different account can hold an older copy of your data. Check the account before replacing anything. See [Old or missing tasks with Dropbox](/docs/faqs/dropbox-shows-old-or-missing-tasks.md) for recovery through the correct account or a fresh version 3 backup. **Version 4 is empty after the first sync.** Check that both apps use the same sync method and the same account, that you chose **iCloud CalDAV** rather than **iCloud** if version 3 used iCloud, and that version 3 finished its last sync. Then pull down on the task list in version 4 to sync again, or set **Settings > Sync > Next sync action** to **Replace Local Data**. **The Account Type menu is greyed out.** It is locked while an account is connected. Tap **Change Account** (**Unlink** for Dropbox) to unlock it. This clears the device's sync history, not its tasks. **iCloud CalDAV rejects the password.** It needs your Apple Account email and an [app-specific password](/docs/ios/sync-with-icloud-caldav.md#app-specific-password), not your Apple Account password. **Version 4 does not show version 3's backups.** Version 4 lists only its own backups. Save a copy from version 3 first (**Backup to Email** or **Save a Copy…**), then open it in version 4 with **Restore from File…**. **2Do quit after Restore Everything.** That is expected. Open 2Do again and the restored data is there. **Some lists, Smart Lists or groups are missing.** Your sync method does not carry them, or the list was excluded from sync in version 3. Bring them over with a [backup](#backup), or with **Restore Selected** for a single list. **One device is still on version 3.** That is fine. Version 3 and version 4 can share the same Dropbox, iCloud CalDAV, other CalDAV, Todoist or Toodledo account, so they keep syncing with each other. Only the new **iCloud** sync needs version 4 on every device. ## 2Do for Mac[​](#mac "Direct link to 2Do for Mac") 2Do for Mac 2026.x is the new version of the Mac app, and 2.x is the old one. Unlike on iPhone and iPad, it installs over 2.x and keeps your data, so there is nothing to move. It is a paid upgrade, though: a license covers 2026.x only while it is still within its 18 months of updates, so an older license needs [a renewal](/store.md?current-tab=renewals) first. The Mac App Store edition is a subscription, and Setapp includes it. See [how 2Do for Mac is licensed](/docs/faqs/licensing-explained.md) for details. A Mac still on 2.x keeps syncing with version 4 through Dropbox, iCloud CalDAV, other CalDAV accounts, Todoist or Toodledo. The new iCloud sync needs 2Do 2026.x on macOS 14 or later. ## Finally, delete version 3[​](#deleting "Direct link to Finally, delete version 3") Once version 4 is installed on each device and sync is set up, check that your data has transferred. Save a backup outside version 3 as well, because the backups stored inside it are deleted with it. Then delete version 3. There is no rush: it keeps working, but it no longer receives updates. Version 4 is a separate app and a separate purchase. For why, see [the new iPhone and iPad apps](/docs/faqs/new-iphone-ipad-apps.md). If your question isn't answered here, please [contact us](/docs.md#support-information). --- # What are the new 2Do for iPhone and 2Do for iPad apps? Looking for the migration steps? To move your tasks from version 3 to version 4, follow [Moving from version 3 to version 4](/docs/faqs/moving-to-the-new-app.md). It takes three steps and nothing is lost. 2Do for iPhone and 2Do for iPad were released in 2026 as brand-new apps, rebuilt from the ground up. They are separate App Store listings, not an update to the 2Do iOS app you may already own. This page explains what that means for you and how to move your tasks across. ## What changed[​](#what-changed "Direct link to What changed") There used to be a single 2Do iOS app that ran on both iPhone and iPad. It has been replaced by two apps: * **2Do for iPhone**, a one-time App Store purchase. * **2Do for iPad**, a one-time App Store purchase. Each app is bought on its own. There is no subscription and there are no in-app purchases. Buying the iPhone app does not unlock the iPad app, and buying the iPad app does not unlock the iPhone app. Neither includes 2Do Mac, and a 2Do Mac license or Mac App Store subscription does not include them. See [how each platform is licensed](/docs/faqs/licensing-explained.md#mobile). ## Why a new app and not an update[​](#why-new-app "Direct link to Why a new app and not an update") The App Store has no paid upgrade option. A developer who wants to charge for a major new version has three choices: make the app free with in-app purchases, switch to a subscription, or release a new app. Making the existing app free with an unlock would have changed the app everyone already owns and put its features behind an in-app purchase, and a subscription is not what we want for iPhone and iPad. A new app keeps 2Do a plain paid app with everything included and no in-app purchases. ## What happens to the old app[​](#old-app "Direct link to What happens to the old app") The previous 2Do iOS app has reached the end of its life. It has received free updates since 2009 and will receive no further ones. It keeps working as it is and your tasks stay where they are, but nothing new will be posted to it. Because it is no longer updated, it cannot notify you about the new apps. The old app is no longer sold. If you bought it, you can still [re-download it from your App Store purchase history](/docs/faqs/redownload-ios-app-while-unavailable.md). ## Do I have to pay again[​](#paying-again "Direct link to Do I have to pay again") Yes. The new apps are separate one-off purchases, and a purchase of the old app does not carry over. There is no free upgrade and no upgrade discount, because the App Store provides no way to offer either on a new app. If you have already bought one of the new apps and the App Store still asks you to pay, it is almost always the wrong Apple Account or the app for your other device. 2Do for iPhone bought on an iPhone does not cover 2Do for iPad on an iPad. To download an app you already own: 1. Open the **App Store** and tap your photo or the **My Account** button at the top. 2. Tap **Apps & Purchase History**, then **Your Apps**. In a Family Sharing group, tap **My Apps** or a family member's name. 3. Tap **Not on this iPhone** or **Not on this iPad**. 4. Find 2Do and tap the download button. ## Moving your tasks to the new app[​](#moving "Direct link to Moving your tasks to the new app") You do not have to retype anything. The new app picks your tasks up through the sync account the old app already uses, or from a backup. The full guide is [Moving from version 3 to version 4](/docs/faqs/moving-to-the-new-app.md). ### If you sync[​](#moving-sync "Direct link to If you sync") Set the new app up with the same sync method and the same account as the old app, and choose **Replace Local Data** when 2Do asks how to handle the first sync. See the [three steps](/docs/faqs/moving-to-the-new-app.md#steps). ### If you do not sync[​](#moving-backup "Direct link to If you do not sync") Save a backup outside the old app and restore it in the new one. See [restoring from a backup](/docs/faqs/moving-to-the-new-app.md#backup). ## Deleting the old app[​](#deleting "Direct link to Deleting the old app") Before you delete the old app, check that everything you rely on is in the new one: your lists and tasks, and also Smart Lists, tag groups, attachments, and anything else you use day to day. Backups stored inside the old app are deleted along with it, so save one outside the app first, as in the steps above. ## Mac and Android[​](#mac-and-android "Direct link to Mac and Android") 2Do Mac is licensed separately. The direct download is a [perpetual license with 18 months of updates](/docs/faqs/licensing-explained.md#direct), the [Mac App Store edition is subscription-only](/docs/faqs/licensing-explained.md#massub), and [Setapp is its own subscription](/docs/faqs/licensing-explained.md#setapp). 2Do Android is unchanged: a free download from Google Play or [directly from our website](/android/download.md), with an optional Pro upgrade. If your question isn't answered here, please [contact us](/docs.md#support-information). --- # Why am I seeing "Nothing in Focus"? The Focus Filter is on with no matching tasks. Locate the small sun-shaped **Focus** button and toggle it off. Once the Focus Filter is off, your full task list reappears. --- # Can I read 2Do's content directly in Dropbox? No. 2Do's task data is not meant to be opened or read directly inside Dropbox. Dropbox is only the place where your devices exchange the sync file, not a task viewer. --- # How do I re-download the old 2Do for iOS app? The previous 2Do for iOS app, the single app that ran on both iPhone and iPad, is no longer available for new purchases. If you've **already purchased it**, you can still download it any time from your purchase history. It just won't show up in App Store search: 1. Open the **App Store** and tap your photo or the **My Account** button at the top. 2. Tap **Apps & Purchase History**, then **Your Apps**. In a Family Sharing group, tap **My Apps** or a family member's name. 3. Tap **Not on this iPhone** or **Not on this iPad**. 4. Find 2Do and tap the download button. These are Apple's own steps, described in full in [Redownload apps you bought](https://support.apple.com/en-us/102417). Make sure you're signed in with the **same Apple Account** you originally bought that app with, because each purchase is tied to the account that made it. See also [Can I restore an iOS purchase?](/docs/faqs/restore-previous-purchase.md) ## Looking for the current apps?[​](#current-apps "Direct link to Looking for the current apps?") **2Do for iPhone** and **2Do for iPad** are new apps with their own App Store listings, so you find them by searching the App Store as usual. They are separate purchases and do not appear as an update to the old app. See [what the new iPhone and iPad apps are](/docs/faqs/new-iphone-ipad-apps.md). --- # I previously paid for 2Do, do I get a refund? 2Do for iPhone and 2Do for iPad are separate App Store apps, each sold as its own one-time purchase. If you already bought one, keep using the same Apple ID to download it on your devices. Refunds for App Store purchases are handled by Apple. If you need to request one, use Apple's purchase history or report-a-problem flow. --- # How do I repair a corrupt 2Do database on Mac? If 2Do refuses to launch or behaves erratically, the first step is to restore from a recent automatic backup. On Mac, open **2Do > Settings > Backups**, open a known-good backup's **⋯** menu, and choose **Restore…**. See [Backups](/docs/macos/backups.md) for the full restore flow, including the backup browser that can pull back individual lists without replacing everything. If 2Do cannot open far enough to reach Settings, contact support before attempting manual repair. If you can reach the Backups settings later, use **Restore from File…** to choose a saved backup file directly. important Avoid editing the live database manually unless support asks you to. 2Do uses SQLite alongside companion files, and modifying only one of them can make recovery considerably harder. If restoring from a backup doesn't resolve the issue, please contact support and let us know what was happening just before the problem started. --- # When syncing: Replace server data or Replace local data? * **Replace Server Data**: pushes your local 2Do tasks up to the sync service. Use this when 2Do has the right data and the server is empty or out of date. * **Replace Local Data**: pulls tasks from the server down to this device. Use this when the server has the right data. * **Merge**: reconciles both sides instead of overwriting either one, keeping items from each and only duplicating what it can't confidently match. Use this when both the device *and* the server hold real data you want to keep. The one-shot picker calls it **Merge Sync**. Pause before choosing. If your device is empty and you choose **Replace Server Data**, the empty device can overwrite the cloud copy. Always pause and think about which side has the data you want to keep before confirming. When in doubt, share / export a backup first. ## Where to set this any time[​](#where "Direct link to Where to set this any time") Beyond the automatic first-sync prompt, you can pick the next sync's behavior manually whenever you need it: * **iPhone and iPad**: **Settings > Sync > Next sync action**. * **Mac**: **2Do > Settings > Sync > Next sync action**. * **Android**: **Settings > Sync > Next Sync Action**. **Merge Sync is available for every sync method.** iCloud, Dropbox, Toodledo, and CalDAV (iCloud CalDAV and custom) offer the full set: **Sync Normally**, **Replace Server Data**, **Replace Local Data**, and **Merge Sync**. WebDAV is coming soon and will offer the same set. **Todoist** and **Apple Reminders** offer **Sync Normally**, **Replace Local Data**, and **Merge Sync**; they never overwrite their own app's store, so **Replace Server Data** isn't offered for them. After the sync completes, the option resets to **Sync Normally** on its own. Use **Merge Sync** only when both sides hold changes you need to keep, or when you are unsure which side is complete. It compares every task one at a time, so it can take a very long time with a large number of tasks. If one side already has the complete copy, use **Replace Local Data** or **Replace Server Data** instead. The exception is a complete copy on a device that syncs with Todoist or Apple Reminders: those methods do not offer **Replace Server Data**, so use **Merge Sync** there and allow it the time it needs. Merge never deletes to make the two sides match; worst case it keeps a duplicate of an item it couldn't confidently match, which you can remove by hand. For the full description of each action, see [Sync overview (Mac)](/docs/macos/sync.md#merge-vs-replace) or [Sync overview (iOS)](/docs/ios/sync.md#replace). ## Common recovery pattern[​](#recovery "Direct link to Common recovery pattern") If one device has the correct 2Do data and another device is missing tasks or out of sync, use the good device as the source of truth: 1. On the device with the most accurate data, create a backup first. 2. On that same device, set **Next sync action** to **Replace Server Data**. 3. Trigger a manual sync and let it finish. This pushes that device's 2Do data up to the sync service. 4. On each out-of-sync device, set **Next sync action** to **Replace Local Data**. 5. Trigger a manual sync on each out-of-sync device. This replaces that device's local copy with the data from the sync service. Do not choose **Replace Server Data** on an empty or stale device. That can overwrite the good server copy with bad data. Syncing with Todoist or Apple Reminders? Those two methods don't offer **Replace Server Data**. To push a device's data outward, run **Merge Sync** from the device that holds the correct data, then **Replace Local Data** on the others. --- # Can I restore an iOS purchase? 2Do for iPhone and 2Do for iPad are separate paid App Store apps. If you already bought one, open the App Store with the same Apple ID you used for the original purchase and download it from your purchased apps. Purchases are tied to the Apple ID that made them, so if an app is not recognized as bought, make sure the device is signed in to that Apple ID and try the App Store purchase restore flow shown by iOS. --- # How do I make reusable template tasks? 1. Create a new list called **Templates**. 2. Open the list → **Edit List** → toggle *Exclude from All* and *Exclude from Today* so templates don't pollute your active views. 3. Create the projects, tasks, or checklists you want to reuse. To use a template: * **iOS / Android**: Navigate to this list and select the task you'd like to re-use. Tap and hold on the task and hit 'Copy' and then 'Duplicate'. Move the duplicate to your destination list. * **Mac**: Hold **Option** while dragging these tasks and drop them on the list you wish to use these in. This duplicates the task or selected tasks into the dropped list. --- # What's the difference between Scheduling and Deferring a task? A task with a future **Start Date** is **scheduled**. A task with a **Due Date** can be **deferred** by moving that due date forward. * **Schedule**: set when the task should *begin*. Useful for work you do not want to see yet. * **Defer**: push out the *due date*. Useful for postponing a deadline or something that is about to slip. Examples: * Schedule *Prepare quarterly report* to start on Monday and be due on Friday. It stays out of the way until Monday, then appears during the working window. * Defer *Pay invoice* from today to Friday. It remains a due-date task, but the due date moves to Friday. tip Use **Start Date** for "do not show this until then." Use **Due Date** for "this is when it must be done." Learn more: [Dates and Durations for Mac](/docs/macos/dates-and-durations.md) and [Dates and Durations for iPhone and iPad](/docs/ios/dates-and-durations.md). --- # Are iOS, Mac, and Android licenses sold separately? Yes. Each app is sold separately: * **2Do Mac** is purchased from our store, the Mac App Store, or Setapp. * **2Do for iPhone** and **2Do for iPad** are separate apps on the App Store, each a one-time purchase. * **2Do Android** is a free download from Google Play or [directly from our website](/android/download.md), with an optional Pro upgrade. Buying one of them does not automatically unlock any of the others. --- # Does Setapp include the iOS or Android apps? No. Setapp covers **2Do Mac** only. 2Do for iPhone and 2Do for iPad are separate App Store purchases. 2Do Android is a separate free download from Google Play or [our website](/android/download.md), with its own optional Pro upgrade. --- # How do I set up 2Do on a new iPhone, iPad, Mac, or Android device? If you already use 2Do on at least one other device with sync enabled: 1. Install 2Do on the new device and open it. 2. Open **Settings > Sync** and pick the **same** sync method you've been using on your other devices. 3. Sign in with the same account. 4. If the new device already contains user data and 2Do shows the first-sync prompt, choose **Replace Local Data**, which pulls everything from the sync service down and leaves the server copy untouched. An empty device can complete setup without this prompt. If the new device has unique tasks worth keeping, choose **Merge** instead; it is available for every method. If instead you've **just restored from a backup** and your device now has the freshest data: 5. Set up sync the same way. 6. When 2Do shows the first-sync prompt, choose **Replace Server Data**, which pushes your restored data up and replaces the syncable data on the server. Syncing with Todoist or Apple Reminders? Those methods don't offer **Replace Server Data**. After restoring from a backup, choose **Merge** on the restored device instead, so its data flows outward without wiping the app's own store. If you're unsure which side has the freshest data, create a backup first so you have a recovery point either way. On Mac, use **2Do > Settings > Backups** (a backup's **⋯ menu > Save a Copy…**). On iPhone or iPad, use **Settings > Backups & Export**; on Android, use the backup option in 2Do's settings. See: [Sync overview (iOS)](/docs/ios/sync.md), [Sync overview (Mac)](/docs/macos/sync.md), [Sync overview (Android)](/docs/android/sync.md). --- # Will 2Do show iCal events and tasks together in the same list? No. You cannot mix tasks with calendar events in the same list. Events and tasks are fundamentally different types. 2Do does show your calendar alongside your tasks, in a space of its own rather than mixed in: * **Calendar Day Bar** (iPhone, iPad, and Mac) is a day strip pinned above the task list, so the day's appointments sit right above its tasks. On iPhone and iPad, turn it on under **Settings > Calendar Events > Display**: **Show Calendar Events in Today** puts it above Today only, and **Show Calendar Events in Lists** puts it above your regular lists as well. See [Calendar Events in Lists](/docs/ios/calendar-integration.md) and the [Mac page](/docs/macos/calendar-integration.md). * **Calendar Events panel** (iPhone and iPad) is the third page of the utility panel, beside **Tags** and **Nearby**. Swipe the task list toward the trailing edge to reach the panel, then pick **Calendar Events**. On a wide iPad the panel can stay open beside your tasks. Tapping an event opens its details, so you can read or edit it without leaving 2Do. On iPhone, iPad, and Mac, you can give a task its own time on your calendar by dropping it on the day bar. You can also choose **Add to Calendar** from a task's menu on iPhone and iPad, or **Task > Add to Calendar...** on the Mac. 2Do adds a new event and leaves the task in its list. See [Adding a Task to Your Calendar](/docs/macos/calendar-integration.md#add-to-calendar) for the Mac and [the iPhone and iPad page](/docs/ios/calendar-integration.md#add-to-calendar). --- # How do I sort tasks manually on iPhone and iPad? Manual order is a sort like any other, and reordering happens in batch editing: 1. Open the sort menu on the sort bar above your tasks and choose **Manually**. 2. Tap **Batch Editing** at the trailing end of that bar. 3. Touch and hold a task until it lifts, drag it to its new place, and let go. Select several tasks first and drag any one of them to move them together. 4. Tap **Batch Editing** again when you are done. If a dragged task jumps back to where it was, the list is not sorted **Manually** or batch editing is off; reordering needs both. Outside batch editing, touching and holding a task opens its menu when you hold still, and dragging it moves just that task to another list, a tag, or a date without changing its place in the order. In a list with [sections](/docs/ios/task-sections.md), dropping a task on a section's title, or among that section's tasks, moves it into the section with any sort, inside or outside batch editing. Each section's tasks follow the manual order within that section, and the sections stay in the order you give them. Each list remembers its own sort and its own manual order. Manual order in the Focus Lists (**Today**, **Scheduled**, **Starred**, **All**) syncs only with iCloud. A project or checklist keeps a separate order for its sub-tasks: open it and choose **Manually** from its own sort menu. See [Sorting Manually](/docs/ios/the-2do-screen.md#manual-order) and [Batch Editing](/docs/ios/batch-editing.md). --- # How do I sort my tasks on Mac? Use the toolbar's sort menu or **View > Sort By** to choose the sort order. Available sorts: * Start Date * Due Date * Priority * Tag * Manual Each list remembers its own sort order, so a quick scratch list and a deep project list can use different sorts at the same time. A list divided into [sections](/docs/macos/task-sections.md) keeps its sort inside each section. The sections themselves stay in the order you give them, whatever the sort. --- # Do you offer student discounts? Student discounts are not currently offered for 2Do purchases. Store pricing is shown at checkout before you pay. --- # Tasks I add get deleted after some time when syncing with iCloud CalDAV Usually this is a stale sync state between devices. Keep in mind that Apple's Reminders app does not share its lists through iCloud CalDAV at all. A list that only exists inside Reminders cannot sync through iCloud CalDAV. If you want your tasks to keep living inside Apple's Reminders app, switch 2Do to its dedicated [Apple Reminders sync method](/docs/macos/sync-with-reminders.md) (native EventKit) instead of iCloud CalDAV, which is a separate account type that talks to Reminders directly. If you'd rather not depend on Reminders at all, [Dropbox sync](/docs/faqs/which-sync-method-should-i-use.md) carries the most 2Do detail. See [Reminders and iCloud CalDAV](/docs/faqs/data-deleted-after-ios-13-catalina-upgrade.md) for the background and recovery steps. --- # Why are tasks due tomorrow showing in the Today Focus list? A few common reasons: 1. **The task has a duration.** A task due tomorrow can surface today if its duration reaches back into today. For example, a task due tomorrow at **9:00 AM** with a **2-hour duration** effectively starts tomorrow at **7:00 AM**; a longer duration can reach into today. 2. **"Still Working On" is enabled.** 2Do can keep a task visible once its start date has arrived, even before the due date. 3. **"Include Starred Tasks" is enabled** and the task is starred. Adjust the task's duration or start date, or fine-tune the Today list options in settings. Learn more in [Dates and Durations for Mac](/docs/macos/dates-and-durations.md#duration-due), [Dates and Durations for iPhone and iPad](/docs/ios/dates-and-durations.md#duration-due), or [Dates and Durations for Android](/docs/android/dates-and-durations.md#duration-due). --- # My tasks are missing (Today counter shows a count but no tasks appear) A task can be due today while its **start date or time** is still in the future. Smart Scheduling can hide it until it is time to start. Check the **clock-shaped button on the sort bar**, if shown, and use it to reveal scheduled tasks. If the task appears, its start date explains why it was hidden. The count beside a list and the badge on 2Do's app icon are separate counts. In the current iPhone, iPad, and Mac apps, the Today-based app badges follow scheduled-task visibility too: tasks with future start times do not count while scheduled tasks are hidden. Other Today settings can also affect the result. See [Why does the app icon badge show a different count?](/docs/faqs/app-icon-badge-count.md). --- # How can I try the latest 2Do for Mac after using an older version? If you previously used an older version of 2Do, including the Mac App Store version, a normal reinstall will keep its local app data and licensing state. To start a clean 14-day trial of the latest direct-download version: 1. In **2Do > Settings > Backups**, open a recent backup's **⋯** menu and choose **Save a Copy…**. 2. Quit 2Do and move the existing 2Do app from **Applications** to the Trash. 3. Follow the [complete Mac uninstall steps](/docs/faqs/uninstall-2do-from-mac.md) to remove all 2Do preferences and app containers. 4. Restart your Mac before opening 2Do again. You will have to setup your sync account again in settings. 5. [Download the latest direct version](https://www.2doapp.com/download/2Do.dmg), move it to **Applications**, and open it to begin the trial. warning The full reset removes all local tasks, settings, local backups, and saved 2Do licensing state from this Mac. Save a backup outside 2Do before continuing. A previous Mac App Store purchase remains in your Apple account, but it does not license the separate direct-download version. --- # How do I completely uninstall 2Do from my Mac? 1. Open Terminal and run `defaults delete com.guidedways.TodoMac`. 2. Delete `~/Library/Group Containers/EKT6323JY3.com.guidedways`, `~/Library/Containers/com.guidedways.TodoMac`, and the Helper's container `~/Library/Containers/EKT6323JY3.com.guidedways.TodoMac.Helper`. 3. Restart your Mac so the deleted preferences are flushed from the system. If you have **CleanMyMac** or a similar uninstaller, that's the easier path. warning Uninstalling 2Do for Mac removes all local backups stored inside the container. Save a backup from **2Do > Settings > Backups** (a backup's **⋯ menu > Save a Copy…**) first if you might want your data back. --- # Do you have plans for a web app? Unfortunately not at the moment. We do appreciate you hoping that we were! --- # Where are backup files stored on my Mac? By default, 2Do for Mac stores backups inside its sandboxed container: ``` ~/Library/Containers/com.guidedways.TodoMac/Data/Library/Application Support/Backups ``` The fastest way to open the folder is via Terminal: ``` open ~/Library/Containers/com.guidedways.TodoMac/Data/Library/Application\ Support/Backups ``` Use **2Do > Settings > Backups** and choose **Save a Copy…** from a backup's **⋯** menu when you want to save a backup somewhere easier to move, such as iCloud Drive, Dropbox, or an external drive. See [Backups (Mac)](/docs/macos/backups.md) for the full guide. --- # Which sync method should I use? **iCloud is the recommended sync method** for 2Do on iPhone, iPad, and Mac, and on Android too when every device runs a version of 2Do with iCloud sync. On Apple devices, everything syncs through the iCloud account already signed in on the device, with no separate account or password. On Android, you sign in once with the same Apple Account. iCloud carries every task property including List Groups, Tag Groups, Smart Lists, and attachments. If a device runs an older version of 2Do without iCloud sync, or you don't use an Apple Account, choose **Dropbox**, which carries the same task fields and groups through a folder you control. Dropbox syncs picture and audio attachments but leaves link-only attachments on the device. Manual order in the Focus Lists syncs only with iCloud. 2Do syncs through **one account at a time**, and every device should use the *same* method and account. The methods are: * **iCloud**: recommended, with complete feature support. There is nothing to sign in to on Apple devices; on Android, you sign in once with your Apple Account. See [iCloud sync (Mac)](/docs/macos/sync-with-icloud.md), [iCloud sync (iOS)](/docs/ios/sync-with-icloud.md), or [iCloud sync (Android)](/docs/android/sync-with-icloud-native.md). * **Dropbox**: the choice when a device runs an older version of 2Do without iCloud sync, or when you don't use an Apple Account. It carries task fields, groups, Smart Lists, pictures, and audio notes; link-only attachments stay on the device. See [Dropbox sync (Mac)](/docs/macos/sync-with-dropbox.md), [Dropbox sync (iOS)](/docs/ios/sync-with-dropbox.md), or [Dropbox sync (Android)](/docs/android/sync-with-dropbox.md). * **Apple Reminders**: native sync, so your 2Do tasks also appear inside Apple's Reminders app. Attachments, standalone locations, and 2Do's grouping features stay on the device. See [Reminders sync (Mac)](/docs/macos/sync-with-reminders.md) or [Reminders sync (iOS)](/docs/ios/sync-with-reminders.md). * **Todoist**: your Todoist projects appear as 2Do lists. Attachments and standalone locations stay on the device. See [Todoist sync (Mac)](/docs/macos/sync-with-todoist.md) or [Todoist sync (iOS)](/docs/ios/sync-with-todoist.md). * **Toodledo**: useful if you already use Toodledo's web client; Actions and attachments do not map. See [Toodledo sync (Mac)](/docs/macos/sync-with-toodledo.md), [Toodledo sync (iOS)](/docs/ios/sync-with-toodledo.md), or [Toodledo sync (Android)](/docs/android/sync-with-toodledo.md). * **iCloud CalDAV**: Apple-hosted CalDAV with your Apple Account and an app-specific password, worth choosing when other CalDAV apps read the same lists. List Groups, Tag Groups, and Smart Lists stay on the device. See [iCloud CalDAV (Mac)](/docs/macos/sync-with-icloud-caldav.md), [iCloud CalDAV (iOS)](/docs/ios/sync-with-icloud-caldav.md), or [iCloud CalDAV (Android)](/docs/android/sync-with-icloud.md). * **Custom CalDAV**: Fruux, Yahoo, Nextcloud, ownCloud, Synology, [Fastmail](/docs/macos/sync-with-fastmail.md), and other CalDAV servers. Same limits as iCloud CalDAV. See [Custom CalDAV (Mac)](/docs/macos/sync-with-caldav.md), [Custom CalDAV (iOS)](/docs/ios/sync-with-caldav.md), or [Custom CalDAV (Android)](/docs/android/sync-with-caldav.md). * **WebDAV** *(coming soon)*: will sync everything to your own or any WebDAV server, with nothing left behind. See [WebDAV sync (Mac)](/docs/macos/sync-with-webdav.md). **The three Apple methods are different from each other.** Choose **iCloud** for the most complete sync between your devices, including Android. Choose **Reminders** if you want your tasks to live inside Apple's Reminders app; it is not available on Android. Choose **iCloud CalDAV** for Apple-hosted CalDAV task lists that other CalDAV apps can read. You can only run one of them at a time. **Sharing with other people is a separate choice.** [iCloud list sharing on Mac](/docs/macos/icloud-list-sharing.md) and [iPhone or iPad](/docs/ios/icloud-list-sharing.md) lets you invite people to a particular list using their own Apple Accounts. The shared list uses iCloud and stays out of your ordinary sync service. It requires supported Apple devices, even though ordinary iCloud sync also supports Android. For a full per-method comparison of what each one carries, see [Sync overview (Mac)](/docs/macos/sync.md#comparison), [Sync overview (iOS)](/docs/ios/sync.md#comparison), or [Sync overview (Android)](/docs/android/sync.md#comparison). --- # Why don't you offer your own cloud sync solution? 2Do does not host your task data, because of the privacy and security responsibility that would carry. Instead it syncs through services you already have: your own iCloud account, Dropbox, iCloud CalDAV and other CalDAV servers, Todoist, Toodledo, and Apple Reminders. WebDAV sync is coming soon. The **iCloud** method is worth a word here, because it is the one that feels most like "2Do's own sync". It is not. It uses the iCloud account already signed in on your device, so your tasks sit in your own Apple-hosted storage, private to your account, and 2Do keeps no copy of them anywhere. There is no 2Do server in the middle, no account to create with us, and nothing for us to read. The trade-off is that sync goes through someone else's service rather than one tuned end to end for 2Do. In exchange, your data stays with the provider you chose. See [Which sync method should I use?](/docs/faqs/which-sync-method-should-i-use.md) for the full list. --- # My widget stopped working after an update This is a known iOS behavior: after an app updates, its widget can fail to load until the device is restarted. Restart your iPhone or iPad and the widget loads again. If it still looks wrong, check these two things: * **Which list the widget shows.** Each widget carries its own configuration, so the list is set on the widget itself. Touch and hold the widget, choose **Edit Widget**, and pick the list you want. There is no widget list setting inside 2Do. * **Whether a passcode is hiding your tasks.** Tasks from password-protected lists never appear in a widget, and with **Lock everything** on, widgets show tasks only while **Allow Widget access when protected** is on. Both are in **Settings > Security**. See [Widgets](/docs/ios/widgets.md) for the full widget set and its options. --- # Will iCloud CalDAV sync my projects and checklists? Yes. Between your 2Do devices, projects and checklists keep their structure when you sync through iCloud CalDAV. Other CalDAV apps may show those same items as plain tasks because they do not have 2Do's project and checklist model. For setup and limits, see [Sync with iCloud CalDAV](/docs/macos/sync-with-icloud-caldav.md). If you'd rather your tasks also appear inside Apple's Reminders app, that's a **separate** method. See [Sync with Apple Reminders](/docs/macos/sync-with-reminders.md). --- # Actions Add an **Action** to a task to make a call, send a message, open a website, or get directions with a tap. ![The Action panel showing the six action types](https://downloads.2doapp.com/resources/img/2do-ios/editaction.png) ## Adding an Action[​](#adding "Direct link to Adding an Action") Open a task and tap **Action** in the editor's bottom toolbar, or press `⌘B` with a hardware keyboard. The panel offers six types: * **Call** opens your chosen calling app with the number. * **Message** opens Messages with the recipient filled in. * **Mail** opens a new email, pre-addressed. * **Visit** opens an address in your chosen map app. * **URL** opens a link. * **Google** runs a web search. Tap one and the panel asks for what that action needs: **Enter Number**, **Enter Email**, **Enter Link**, **Enter Address**, or **Enter Search Term**. Tap **Done** to add it, then tap the panel's **Done** to save it. Nothing is written until you save, so choosing a type and then backing out leaves the task exactly as it was. Choose the calling and map apps under **Advanced** in **Settings > General**. Set **Default Calling App** to **Always Ask** if you want to pick an app for each call. See [Advanced settings](/docs/ios/settings.md#general-advanced) for each choice, including how **WhatsApp** works. ### Picking from Contacts[​](#contact-actions "Direct link to Picking from Contacts") For Call, Message, Mail, and Visit actions, tap **Pick Contact** instead of typing. Choose a contact and 2Do pulls the number, email address, or address straight out of it. ## Opening Apps and Running Shortcuts[​](#shortcuts "Direct link to Opening Apps and Running Shortcuts") **URL** actions can open websites, supported app links, and shortcuts saved in Apple's **Shortcuts** app. To run a shortcut from a task: 1. Create and test the shortcut in Apple's **Shortcuts** app. To open another app, add its **Open App** action and choose the app. 2. In 2Do, open the task's **Action** panel and choose **URL**. 3. Tap **Run Shortcut**, enter the shortcut's exact name, and tap **Use Shortcut**. 2Do fills in the link for you. 4. Tap **Done**, then tap the panel's **Done**. Perform the task's action when you want to run the shortcut. The shortcut must be available under that name on the device where you run it. If you rename it in Shortcuts, update the task's action too. Syncing a task syncs its link; it does not install the shortcut or the apps it uses. This setup runs the shortcut without passing the task's title, notes, or address. Opening an app alone does not create a route or send it a destination. For shortcuts that accept input, you can enter a complete link in **Enter Link** using [Apple's documented Shortcuts URL format](https://support.apple.com/guide/shortcuts/run-a-shortcut-from-a-url-apd624386f42/ios). To create these tasks from another app, see [Shortcut and App Links in the URL Handler](/docs/ios/url-schemes.md#shortcut-actions). ## What the Task Says It Will Do[​](#summary "Direct link to What the Task Says It Will Do") Once an action is set, the panel states it in a sentence: *Call Anna*, *Open example.com*, *Show 12 Rue Cler on the map*, or *Search the web for* whatever you saved. An action saved with an empty value is an **Indication Only** action: the task carries the action's icon but has nothing to run. The same sentence appears as a coloured banner on the right of the editor's list row. Tap the banner to perform the action; touch and hold it and choose **Edit** to change it. ## Performing an Action[​](#performing "Direct link to Performing an Action") A task with an action shows its action icon on its row in the task list. To run it: * **Touch and hold** the task and pick the action from the menu, which names it directly, such as *Call Anna*. * Tap the **action banner** in the task editor. * Press **`P`** with the task selected and a hardware keyboard connected. An Indication Only action opens the Action panel instead of running anything, so the banner is never dead. tip **Mail** actions open a message addressed to the contact with an empty body. Copy what you need from the task's notes if you want context in the message. ## Editing or Removing an Action[​](#editing "Direct link to Editing or Removing an Action") Open the **Action** panel again. It shows what the task currently does, the six types, and a **Remove** control underneath. Tapping **Remove** asks first, then clears the action. ## Google (Search) Actions[​](#search-actions "Direct link to Google (Search) Actions") The **Google** action stores the search text you enter, separately from the task's title. That means the task can read one way and search for another: a task titled *Sort out the leak* can search for *plumbers near me*. tip Use **Google** actions for research tasks. Save the query once, and running the action later needs no typing. ## Combining with Locations[​](#with-location "Direct link to Combining with Locations") A task can carry both a **Location** and an **Action**. A common pattern: * Location: *Home Depot, 123 Main St* * Action: **Visit**, pointing at the same address * Tag: `@errands` The task then shows up in the [Nearby page](/docs/ios/nearby-locations.md) when you are close, can alert you on arrival, and its action gives you directions in one tap. --- # Alerts and Nagging 2Do supports as many alerts per task as you need, with control over when each one fires and whether it plays a sound. ![The New Alert panel with its sound and timing options](https://downloads.2doapp.com/resources/img/2do-ios/editalert.png) ## Adding an Alert[​](#adding "Direct link to Adding an Alert") Open a task, tap **Alerts** in the editor's bottom toolbar (or press `⌘'`), then tap **Create New Alert...**. You can also type an alert into a new task's title, as in `Call the clinic tomorrow at 3pm alert 30m` or `Submit the report Friday at 5pm alarm 1h`. Separate several with commas to get more than one, as in `Collect the cake Saturday at 4pm alert 10m, 30m`. See [Natural Language Input](/docs/ios/natural-language-input.md). tip Stack a *15 minutes before* and a *1 hour before* alert on important meetings. The early one gives you prep time; the late one gets you out the door. ### Presets and Custom Times[​](#types "Direct link to Presets and Custom Times") The alert editor has two forms, chosen with the segmented control at the top: * **Presets** fire a fixed distance before the task's own time: **On Time**, **5 minutes before**, **10 minutes before**, **15 minutes before**, **30 minutes before**, **1 hour before**, **2 hours before**, **6 hours before**, **12 hours before**, **1 day before**, and **2 days before**. * **Custom** either counts a number of days before or after the task's date and fires at a time you set, or pins the alert to an exact date and time of its own. **Play Sound** decides whether the alert makes a noise. A line at the top of the screen previews exactly when the alert will fire, in orange while it still lies ahead. Tap the **Done** checkmark in the panel's bar to add the alert, and add another the same way if the task needs more than one. Then tap the panel's **Done** to save them to the task. A task's alerts are listed under **Active Alerts** and **Inactive Alerts**, so an alert that has already passed does not look like one that is still coming. Tap an alert to change it, or swipe it to **Delete** it. An alert 2Do added for you from your default reminders is marked **Automatic**. ## Relative vs. Absolute Alerts[​](#relative-absolute "Direct link to Relative vs. Absolute Alerts") * A **relative** alert counts from the task's own date, so moving the task moves the alert with it. The presets are all relative, and the custom form's day offsets are too. * An **absolute** alert is pinned to a date and time of its own and stays there whatever the task does. Turn the custom form's relative switch off to set one. A task can mix the two freely. An alert does not set the task's due time. To show a time on the task in the list and sort by it, set a **Due Time** in the **Dates** panel. See [Just a Due Date](/docs/ios/dates-and-durations.md#just-due). ### What a Relative Alert Counts From[​](#anchor "Direct link to What a Relative Alert Counts From") A line under the controls always says what the alert is measured from, so there is never any guessing: * With a due date and a due time, it counts from the due date and time. * With a due date but no due time, it counts from the due date, which means the start of that day. * With no due date but a start date, it counts from the start date instead. * A day-offset alert counts days from the task's date and fires at the time you set on this screen. * On a task with no dates at all, saving the alert makes the task due today and counts from there. * When there is no date to count from, the editor asks for an exact date and time instead. ## Automatic Alerts[​](#defaults "Direct link to Automatic Alerts") 2Do can add an alert for you every time you give a task a date. Open **Settings > Alerts & Badge > General** and use the **Default Reminders** section: * **Remind me of tasks with a due time** covers tasks that have a specific time. Choose **At due time**, or an offset from 5 minutes before through 2 days before. * **Remind me of tasks with a due date** covers tasks that have a date but no time. Choose **On due date**, one of the same offsets, or **Custom**. The section says it plainly: *Applies to tasks with a due date but no due time.* **Custom** opens three more rows: **Days**, **Before or after** (days before or days after), and **Time**. Use it for a rule such as *two days after the due date at 9:00 AM*. ### How a Due Date With No Time Is Read[​](#due-date-only "Direct link to How a Due Date With No Time Is Read") A due date on its own carries no clock time, so an automatic due-date alert measures from the start of that day. To give new dated tasks a time of day automatically, set a **Default Due Time** under **Settings > Tasks**. Alerts 2Do adds for you are ordinary alerts: open any task and change or delete them. ## Nagging[​](#nagging "Direct link to Nagging") Some tasks must not slip. Under **Settings > Alerts & Badge > General**, the **Nagging** section holds two controls: * **Nag me every** repeats the reminder until you deal with it: **Off**, **Every 5 Minutes**, **Every 15 Minutes**, **Every 30 Minutes**, **Every Hour**, or **Every Day**. * **Snooze interval** decides how long the notification's Snooze action puts a task off for: **Always Ask**, **5 minutes**, **10 minutes**, **15 minutes**, **30 minutes**, **1 hour**, **2 hours**, **6 hours**, **12 hours**, or **1 day**. tip Use nagging sparingly. Save it for the things that genuinely must not slip, such as a filing deadline or the call you keep putting off. ## Sounds[​](#sounds "Direct link to Sounds") The **Sounds** section sets the **Alert sound** every sounding alert uses: Chime, Attention, Question, Deep Space, Welcome, Doors, Woodlands, Tinkle, Victory, or Finish. An individual alert still decides whether it plays a sound at all, through its **Play Sound** switch. ## Acting on a Notification[​](#interactive "Direct link to Acting on a Notification") When an alert arrives as a notification, pull it down for four actions: * **Snooze** puts the task off by your **Snooze interval**. When that is set to **Always Ask**, this action snoozes for 5 minutes. * **Snooze 1 hour**. * **Due tomorrow** moves the task's due date to tomorrow. * **Completed** marks the task done. Tapping the notification itself opens the task in 2Do. ## Ring Alerts as Alarms[​](#ring-alerts "Direct link to Ring Alerts as Alarms") On **iOS 26.1 or later**, and on devices where system alarms are available, 2Do can deliver a task's timed alerts the way the Clock app delivers an alarm. Open **Settings > Alerts & Badge > General > Alarms** and turn on **Ring alerts as alarms**. Task alerts then ring like a Clock alarm: full screen, through Silent mode and Focus, and they keep ringing until you dismiss them. You can set this differently for any single task. Under it, **Alarm Access** shows whether iOS has given 2Do permission. Tap **Enable Alarms** the first time, or **Open Settings** if the permission was turned down earlier. ### Setting It Per Task[​](#ring-alerts-per-task "Direct link to Setting It Per Task") Open a task, open its **Alerts** panel, and use the **Ring as Alarm** switch under the list of alerts. A task you have never touched follows the app-wide setting; flipping this switch records a choice for that task alone. This choice stays on the device it was made on. It is not part of sync. tip For deadlines that must not slip, turn on **Ring alerts as alarms** for that one task. It rings through Silent mode and keeps ringing until you deal with it. ### What Rings and What Does Not[​](#ring-alerts-scope "Direct link to What Rings and What Does Not") Only **timed** alerts ring as alarms. Location alerts, alerts that send an email, and alerts on the Apple Watch stay ordinary notifications. If system alarms are unavailable or the permission has not been granted, the alert still arrives, as a notification. Nothing is dropped. ### The Alarm Itself[​](#ring-alerts-screen "Direct link to The Alarm Itself") A ringing alarm takes over the screen with the task's title, a **Snooze** button, and the system's own stop control. Snooze stops the alarm and creates a normal 2Do snooze. note The alarm cannot show 2Do's own interval picker, so when your **Snooze interval** is set to **Always Ask**, snoozing an alarm puts the task off by 5 minutes. ## Silencing Alerts for Specific Lists[​](#list-alerts "Direct link to Silencing Alerts for Specific Lists") Some lists deserve alerts; others just make noise, such as a someday list or a busy list somebody shared with you. Open **Settings > Alerts & Badge** and switch to the **Exclusions** tab. Under **List Alerts** every list appears with a switch, grouped the way your source panel is. Turn off alerts for any list you do not want to hear from, including lists shared with you. * Alerts are on for every list by default. Turn a list **off** to silence the alerts of every task in it. * The tasks themselves are untouched. They still sync, still show their due dates, and still go overdue. Only their alerts go quiet. * The choice is local to this device and is not synced, so you can mute a list here while your other devices keep alerting. ## Notification Permission[​](#permissions "Direct link to Notification Permission") Alerts need notification permission. The **Notifications** section at the top of **Settings > Alerts & Badge > General** always says where things stand, and offers **Enable Notifications** the first time or **Open Settings** if permission was turned down. ## The App Icon Badge[​](#badge "Direct link to The App Icon Badge") **Count on app icon** in the **App Icon Badge** section decides what the number on 2Do's icon counts: * **None** or **All items** * **Overdue**, **Today**, **Due Today Only**, **Today + Overdue**, or **Today + Tomorrow** * **Hi-Priority** or **Starred** * **Next 3 Days**, **Next Week**, **Next Month**, **Next 6 Months**, or **Next Year** The row also shows when iOS has badges turned off for 2Do. **Due Today Only** counts unfinished tasks whose due date is today, with or without a due time, and keeps counting them after the due time has passed. Tasks due on another day, or with no due date, never count, even if they have already started. A task due today that has not started yet follows [Smart Scheduling](/docs/ios/focus-lists.md#smart-scheduling): it counts right away when scheduled tasks are shown, and only once it starts when they are hidden. **Today** counts what the Today list shows for today, following its Starred and Still Working On settings, but never overdue tasks. See [App Icon Badge in Settings](/docs/ios/settings.md#alerts-badge) for how the three Today options compare and which lists they include. ## Overdue Tasks[​](#overdue "Direct link to Overdue Tasks") A task that passes its due date without being completed becomes overdue and joins the overdue sections and counts. For a nudge on the due date itself, use an automatic due-date reminder or add an alert to the task. A glowing dot beside a list name in the source panel marks what is waiting inside: white when a task is due today, red when something is overdue. ## When Alerts Do Not Arrive[​](#troubleshooting "Direct link to When Alerts Do Not Arrive") Work through these in order: 1. **Check notification permission.** Open **Settings > Alerts & Badge > General** and look at the **Notification Access** row. If it offers **Open Settings**, iOS is holding the alerts back. 2. **Check the list.** Open the **Exclusions** tab and make sure the task's list is switched on under **List Alerts**. 3. **Check the alert itself.** Open the task's **Alerts** panel. An alert under **Inactive Alerts** has already passed and will not fire again. 4. **Check Focus.** 2Do's alerts are sent as time-sensitive notifications, so a Focus that allows time-sensitive notifications lets them through and one that does not holds them back. 5. **Check alarm access.** If you turned on **Ring alerts as alarms**, make sure **Alarm Access** shows that alarms are enabled. Without it, alerts fall back to notifications rather than ringing. --- # 2Do for Apple Watch Use 2Do on Apple Watch to check what’s next, complete tasks, and add reminders without reaching for your iPhone. ## Installing[​](#installing "Direct link to Installing") The Watch app installs alongside 2Do for iPhone. If it does not appear, open the **Watch** app on your iPhone, go to **My Watch**, scroll to **2Do**, and turn on **Show App on Apple Watch**. The Watch app receives its tasks from your iPhone. Until the first update arrives, it shows **Waiting for your tasks**, with a note to open 2Do on your iPhone. ## Passcode Protection[​](#protection "Direct link to Passcode Protection") To use the Watch app and its task complications while 2Do is locked on your iPhone, enable **Allow Widget & Watch access when protected** in **Settings > Security > Protection** on the iPhone. This lets you view and update tasks from the Watch while **Lock everything** is on. With this setting off, **Lock everything** hides task content on the Watch and its task complications. Unlocking 2Do on the iPhone does not grant Watch access while these settings remain in place. Tasks from individually password-protected lists stay hidden on the Watch regardless of this setting, even after you unlock those lists on the iPhone. See [Password Protection](/docs/ios/password-protection.md#widgets). ## Up Next[​](#up-next "Direct link to Up Next") The first page is **Up Next**. At the top sits the one task you should look at first, as a card with its title, its date, and its priority or star. Tap it to open the task. Beneath the card are the places worth going today, each with a count: * **Today**, everything left on your Today list. * **Overdue**, shown when something is late. * **Tomorrow**, shown when tomorrow has anything on it. When there is nothing left, the page simply says **You're clear for the day**. Swipe to the second page for your full list of lists, and open any of them to see its tasks. ## Acting on a Task[​](#actions "Direct link to Acting on a Task") Open a task and three actions sit under its details: * **Complete** marks it done. * **Defer** moves its date. * **Delete** removes it, after asking you to confirm. You can also add a task. **New Task** takes a title, an optional list, a date, and a star. Actions taken on the watch are queued and applied by 2Do on your iPhone, so they do not need the phone to be within reach at that moment. From the iPhone they reach your other devices on the next sync. The watch shows the change straight away and updates again when the phone sends its next snapshot. ### Deferring[​](#defer "Direct link to Deferring") **Defer** offers **Today**, **Tomorrow**, **Day After Tomorrow**, **Next Week**, and **No Date**, plus **Pick a Date…** for anything else. The sheet names the date it is moving, so you always know which one you are changing. Most tasks defer their due date. A task that only ever had a start date defers that start date instead, because moving a start date is what "start this later" means for such a task. Inventing a deadline it never had would be the wrong answer. ## Complications[​](#complication "Direct link to Complications") 2Do offers four complications: * **Current & Up Next** shows the task you're on now and the one coming up next. It is available as a rectangular, circular, corner, or inline complication. * **Today** shows what's left today and anything overdue, in the same four shapes. * **Day & Date** shows today's day and date, as a circular complication. * **New Task** starts a new task from your watch face, as a circular complication. To add one: 1. Touch and hold your watch face, then tap **Edit**. 2. Swipe to the complications screen and tap a slot. 3. Scroll to **2Do** and pick the complication you want. 4. Press the Digital Crown to save. Tapping **Current & Up Next** opens 2Do on the watch at your Today list, and tapping **New Task** opens the new-task screen. The other two open 2Do where it normally opens. tip Put **Current & Up Next** on a rectangular slot of your main face. It is the one complication that answers what to do next without any tapping at all. tip Pair the circular **New Task** complication with a face you use during the day. Capturing from the wrist is faster than unlocking your phone, and the task lands in your default list. ## Good to Know[​](#notes "Direct link to Good to Know") * Tasks held by a paused tag are left out of everything the watch shows, the same way they are on your iPhone. See [Tags](/docs/ios/tags.md). * Notes are shown as far as the watch screen allows, and longer notes end with a line saying they continue in 2Do. * Complications and pages refresh when your iPhone sends a new snapshot, so a change made on another device appears once your iPhone has synced it. --- # Auto-Prioritize with Apple Intelligence **Auto-Prioritize** uses Apple Intelligence to help you decide what needs attention first. Select a group of tasks, and 2Do sets their priorities to **None**, **Low**, **Medium**, or **High**, based on their details. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/autoprioritize_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/autoprioritize_poster.png) ## What You Need[​](#requirements "Direct link to What You Need") Auto-Prioritize requires an iPhone or iPad that supports Apple Intelligence, running iOS 26 or iPadOS 26 or later, with Apple Intelligence turned on. The command is hidden on unsupported devices. If Apple Intelligence is turned off or still getting ready, 2Do explains what to do when you choose the command. It is also available in 2Do for Mac on macOS 26 or later. See [Auto-Prioritize for Mac](/docs/macos/auto-prioritize.md). ## Using Auto-Prioritize[​](#use "Direct link to Using Auto-Prioritize") 1. Tap **Batch Editing** at the end of the bar above your tasks, or touch and hold a task's checkmark and drag down the column. 2. Select the tasks you want prioritized. 3. Tap **Priority** in the drawer at the bottom of the screen. 4. Choose **Auto-Prioritize**, the first item in the menu. With a hardware keyboard, press `⇧⌘P` during batch editing, then choose **Auto-Prioritize**. See [Batch Editing](/docs/ios/batch-editing.md) for other ways to edit several tasks at once. A progress card shows how many tasks have been processed. Tap **Cancel** to stop without changing priorities. Afterward, Undo restores all previous priorities and Redo reapplies the result. See [Undo and Redo](/docs/ios/the-2do-screen.md#undo-redo). ## What Auto-Prioritize Uses[​](#reads-writes "Direct link to What Auto-Prioritize Uses") For each selected task, 2Do considers: * Its **title** and **notes**. * Its **start date** and **due date**, including whether it is overdue. * The **list** it belongs to and its **tags**. * Its current priority. Only the priority changes. Other task details stay as they are, and completed tasks are skipped. If you select a project or checklist, its sub-tasks keep their priorities unless you select them too. A summary appears if any tasks could not be prioritized or processing could not finish. ## Existing Priorities[​](#existing-priorities "Direct link to Existing Priorities") Auto-Prioritize can add a priority or raise one you've already set. * Tasks without a priority get one when their details suggest a reason. Routine tasks with no date may stay at **None**. * Existing priorities are kept or raised. An undated task described as an optional wish or someday idea may return to **None**, unless its details give a stronger reason to keep a priority. * A task may keep the same priority if no change is needed. ## Examples[​](#results "Direct link to Examples") 2Do considers when a task is due and the importance or consequences described in its title and notes. These examples start with no priority set. | Task | Priority | | ----------------------------------------------------------------- | ---------------- | | "Renew car insurance before the policy lapses", due tomorrow | High | | "Pay the credit card bill today to avoid the late fee", due today | High | | "File tax return to avoid financial penalties", no date | Medium or higher | | "Reset the leaked password right away", no date | High | | Anything due today or tomorrow | Medium or higher | | Anything tagged **urgent** | Medium or higher | | "Buy milk", no date | None | | "Fold the laundry", no date | None | | "Maybe learn Italian someday" | None | An important task or one with serious consequences gets **High** when it is overdue, due today or tomorrow, or its wording makes clear that it needs attention now. A nearby deadline alone gives at least **Medium**. Routine tasks with no date can stay at **None**. tip Sort the list by **Priority** to review the results. See [Stars and Priorities](/docs/ios/stars-and-priorities.md#priority-effects). ## When to Use It[​](#when "Direct link to When to Use It") * **After adding several tasks.** Capture your ideas in the Inbox, then review their priorities together. See [Quick Add](/docs/ios/quick-add.md). * **During a weekly review.** Select tasks in *Today* or a Smart List to review what needs attention. * **After importing tasks.** Review priorities in a list brought over from another app. * **When planning a project.** Write the steps, then use their details and dates to help set priorities. For help organizing tasks into sections, see [Auto-Create Sections and Auto-Name Section](/docs/ios/task-sections.md#apple-intelligence). ## Privacy[​](#on-device "Direct link to Privacy") Auto-Prioritize runs on your iPhone or iPad using Apple Intelligence. It does not send your task details to Apple or another AI service, and it needs no separate account or subscription. Larger selections take longer to process. ## Troubleshooting[​](#troubleshooting "Direct link to Troubleshooting") * **The command is missing from the Priority menu.** Check that your device supports Apple Intelligence and runs iOS 26 or iPadOS 26 or later. * **Apple Intelligence is unavailable.** Turn it on in the Settings app, and wait for it to finish downloading before trying again. --- # Backups 2Do keeps snapshots of your database so you can go back to a known good state. Backups are separate from sync: sync keeps your devices in step with each other, while a backup is a copy of everything as it stood at one moment, including things a sync service may not carry. Everything on this page lives in **Settings > Backups & Export**. ![The Backups pane with automatic backup settings](https://downloads.2doapp.com/resources/img/2do-ios/backexport.png) Keep a copy outside the app Backups are stored inside 2Do's own container on your device. They are not uploaded anywhere on their own. If you delete 2Do, or erase the device, every backup inside the app goes with it. Use **Backup to Email** every so often to send yourself a fresh copy, or save one to Files or iCloud Drive. A copy that lives outside 2Do is the only thing that survives an accidental delete. ## Automatic Backups[​](#automatic "Direct link to Automatic Backups") Two settings control the schedule: * **Create backups**: **None**, **Every 24 Hours**, or **Every 48 Hours**. * **Keep at most**: **5**, **10**, **20**, or **30**. Older backups are removed once the limit is reached. 2Do checks whether a backup is due when you open the app and when the system grants it time in the background. It waits for sync to finish before writing one, so a backup is never taken mid-sync. ## Making a Backup Yourself[​](#manual "Direct link to Making a Backup Yourself") * **Create Backup Now** writes a backup immediately and adds it to the list below. * **Backup to Email** creates a fresh backup and opens the share sheet, so you can mail it to yourself, save it to Files, or AirDrop it to another device. tip Pick a rhythm you will actually keep, such as one **Backup to Email** every Sunday, and send it to yourself. It costs a few seconds and it is the difference between an inconvenience and a loss. ## Working with Stored Backups[​](#stored "Direct link to Working with Stored Backups") Each backup in the list shows its file name, size, and date. Its menu offers: * **Restore…** opens the backup in the Browse Backup screen described below. * **Save a Copy…** exports the file through the system document picker, so you can put it in Files or iCloud Drive. * **Delete** removes that backup after asking you to confirm. **Restore from File…** opens a backup you saved elsewhere. It accepts 2Do's `.2dodb` archives and older `.db` database files. tip Before you change sync services, save a copy of a backup. Services carry slightly different sets of task properties, and a backup holds everything 2Do knows. ## Browse Backup[​](#browse "Direct link to Browse Backup") Opening a backup does not change anything yet. 2Do stages a safe copy of the file and shows you what is inside it: your regular lists and your Smart Lists, grouped the way they were when the backup was made, with a task count beside each regular list. Tap rows to select the ones you want, or use **Select All** and **Deselect All** in a section header. The bar at the bottom keeps a running count of what you have picked. ![The Browse Backup screen listing the lists inside a backup, with several selected](https://downloads.2doapp.com/resources/img/2do-ios/backuprestore.png) ### Restore Selected[​](#restore-selected "Direct link to Restore Selected") **Restore Selected** copies the lists you picked into your live database, under a group named **Restored**. Your existing lists and tasks are not replaced, so this is the safe way to pull back one list you deleted or a project you overwrote. Rows that have already been restored are marked, so you can restore a few, look at them, and come back for more. tip Deleted one list by accident? Open the most recent backup, select just that list, and use **Restore Selected**. Everything else stays exactly as it is. ### Restore Everything[​](#restore-everything "Direct link to Restore Everything") **Restore Everything…** replaces your current database with the backup. 2Do asks **Replace Current Database?** and explains that it will quit once the restore completes. Before it replaces anything, 2Do writes a safety backup of your current database, so the state you are leaving behind is still recoverable. When the restore finishes, quit 2Do and open it again to work with the restored database. warning **Restore Everything…** discards everything currently in 2Do on this device, including tasks created since the backup was made. If any of it matters, use **Create Backup Now** first. ## Exporting Lists[​](#export "Direct link to Exporting Lists") **Export Lists…** opens **Export as CSV**, which produces a spreadsheet file rather than a backup. Turn the switches ON for the lists you would like to export, choose **All Tasks**, **Undone Tasks**, or **Done Tasks**, and tap **Export**. Use it when you want your tasks readable outside 2Do. Use a backup when you want to put them back into 2Do. ## Moving to a New iPhone or iPad[​](#migrating "Direct link to Moving to a New iPhone or iPad") Two routes, depending on how you work: 1. **Sync.** Set up 2Do on the new device with the same sync account. Your lists and tasks arrive on the first sync. This is the simpler route and the one to prefer. 2. **Backup file.** On the old device, use **Save a Copy…** or **Backup to Email** to put a backup in Files, iCloud Drive, or your mailbox. On the new device, open **Settings > Backups & Export > Restore from File…**, pick that file, and use **Restore Everything…**. --- # Batch Editing Use batch editing to reschedule, tag, move, share, or delete several tasks at once. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/movetasks_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/movetasks_poster.png) ## Entering Batch Editing[​](#enter "Direct link to Entering Batch Editing") Start batch editing in any of these ways: * Tap **Batch Editing** at the end of the bar above your tasks. * Touch and hold a task’s **checkmark**, then drag down the column to select several tasks in a row. * With a hardware keyboard, press `⌘B`. Tap tasks to select or deselect them. The drawer at the bottom shows the number selected and the available commands. Use **Select All** in the sort bar to select every task, or **Deselect All** to clear the selection. ![Two tasks selected in Batch Editing, with Dates, Tag, Priority, Location, Share, Move, and Delete in the bottom drawer](https://downloads.2doapp.com/resources/img/2do-ios/batch-editing-selection.png) ## The Commands[​](#actions "Direct link to The Commands") The drawer has seven commands: * **Dates**: **Set Due Date**, **Set Start Date**, **Set Duration**, **Defer...** for a relative shift, and **Schedule...** for a future start date. For what start dates, due dates, and durations do, see [Dates and Durations](/docs/ios/dates-and-durations.md). * **Tag**: opens the tag picker over the whole selection. See below for **Append** and **Replace**. * **Priority**: **Auto-Prioritize** at the top, then **No Priority**, **Low**, **Medium**, **High**, **Unstarred**, and **Starred**. * **Location**: opens the location picker over the whole selection, with the same **Append** and **Replace** choice. * **Share**: **More options** hands the selection to the iOS share sheet, and **Email as attachments** sends the tasks as files. * **Move**: opens **Move to...**, a searchable picker listing **Today**, **Starred**, and **Done** first, then your lists with their sections, projects, and checklists. To use a new list, type its name and choose **Create New List...**. Pick a destination and tap the checkmark to apply it. See [Moving Tasks to a Section](#move-to-section). * **Delete**: removes the selection, after a confirmation. A batch edit can be undone; see [Undo and Redo](/docs/ios/the-2do-screen.md#undo-redo). tip In Today, select unfinished tasks and choose **Dates > Defer...** to move them to tomorrow. tip Tag tasks you are waiting on with `@waiting`. Pause that tag to hide them until you are ready to follow up. See [Tags](/docs/ios/tags.md). ### Auto-Prioritize[​](#auto-prioritize "Direct link to Auto-Prioritize") Choose **Auto-Prioritize** at the top of the **Priority** menu to let Apple Intelligence set priorities for the selected tasks. With a hardware keyboard, press `⇧⌘P` to open the picker. Processing stays on your device, and Undo restores the previous priorities. The command requires a device that supports Apple Intelligence, with iOS 26 or iPadOS 26 or later and Apple Intelligence turned on. See [Auto-Prioritize](/docs/ios/auto-prioritize.md) for how priorities are chosen. ### Auto-Create Sections[​](#auto-create-sections "Direct link to Auto-Create Sections") In a regular list or the Inbox, select the tasks, touch and hold one of the selected task rows, and choose **Auto-Create Sections**. Apple Intelligence organizes the unfinished tasks in your selection, using existing sections where they fit and adding new sections where needed. You can also choose **Task > Auto-Create Sections** from the main menu. The list must allow editing, and the device requirements are the same as for Auto-Prioritize. See [Auto-Create Sections](/docs/ios/task-sections.md#auto-create) for details, including how selected sub-tasks are handled. ### Append or Replace[​](#append-replace "Direct link to Append or Replace") The **Tag** and **Location** pickers each offer two modes at the top of the card: * **Append** adds the selected tags or locations to those already on each task. This is the default. * **Replace** removes each task’s current tags or locations and applies your selection. Save an empty selection to clear them all. You can also choose **Remove all Tags** or **Remove all Locations**. ### Moving Tasks to a Section[​](#move-to-section "Direct link to Moving Tasks to a Section") Move the selected tasks into a [section](/docs/ios/task-sections.md) in the same list or in another list: 1. Select the tasks. 2. Tap **Move**. 3. Find the list and choose a section under it. 4. Tap the checkmark. To take the tasks out of their sections, choose the list's own name instead. See [Sections in the List Picker](/docs/ios/task-sections.md#list-picker) for how the picker shows sections, and [Moving Tasks In and Out of Sections](/docs/ios/task-sections.md#moving-tasks) for what happens to projects and sub-tasks. ## Dragging a Selection[​](#drag-organize "Direct link to Dragging a Selection") With a selection made, touch and hold any of the selected tasks and drag. The whole stack lifts together, and the same drop targets apply as for a single task: * Drop on a **list** to move every selected task there. * Drop on **Today** to make them all due today. * Drop on **Starred** to star them. * Drop on **Done** to complete them. * Drop on **Scheduled** to pick one future start date for all of them. * Drop on a **tag** in the Tags panel to tag them. * Drop **between tasks in the same list** to reorder them. This works only while the list is sorted **Manually**. See [Sorting Manually](/docs/ios/the-2do-screen.md#manual-order). * Drop on a **section title** to move them all into that [section](/docs/ios/task-sections.md). This works with any sort. note *All*, Smart Lists, and list group headings are not drop targets. Drop on the real list when you want to move tasks. See [Drag and Drop](/docs/ios/drag-and-drop.md) for the full set of targets. ## Deferring onto the Mini Calendar[​](#calendar-defer "Direct link to Deferring onto the Mini Calendar") Drag selected tasks onto the mini calendar to change their due dates. 1. Open the calendar. On iPhone, tap the calendar row at the bottom of the lists panel; on iPad it is always part of the editor pane. 2. Tap **Batch Editing**. On iPhone the calendar stays in place while the selection controls appear above it. 3. Select the tasks you want to move. 4. Touch and hold one of them, drag onto the destination date, and drop. Every selected task takes that date as its due date. ## With a Hardware Keyboard[​](#keyboard "Direct link to With a Hardware Keyboard") While batch editing is on, the arrow keys move the highlight and `Return` adds or removes the highlighted task from the selection. Every bare key that acts on a task acts on the whole selection instead, so you can select ten tasks and press `T` once to make them all due today. The drawer’s commands also have keyboard shortcuts: | Shortcut | Command | | -------- | ---------------------------------- | | `⌘B` | Enter or leave batch editing | | `Return` | Add or remove the highlighted task | | `⇧⌘S` | Start Date | | `⇧⌘D` | Due Date | | `⇧⌘T` | Tag | | `⇧⌘P` | Priority | | `⇧⌘L` | Location | | `⇧⌘C` | Share | | `⇧⌘M` | Move | See [Keyboard Shortcuts](/docs/ios/keyboard-shortcuts.md). ## Leaving Batch Editing[​](#exit "Direct link to Leaving Batch Editing") Tap **Batch Editing** again, tap the drawer’s close button, or press `⌘B` to leave batch editing. Changes you have already made are saved. --- # Calendar Events See your Apple Calendar events above your tasks to plan work around appointments. Use the **Calendar Day Bar** above the task list or open **Calendar Events** in the utility panel. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/calendardaybar_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/calendardaybar_poster.png) ## Turning the Day Bar On[​](#setup "Direct link to Turning the Day Bar On") Open **Settings > Calendar Events**. The **Display** section gives you two switches: * **Show Calendar Events in Lists**: *Show your Calendar events above Today and your regular task lists.* * **Show Calendar Events in Today**: *Show your Calendar events above the Today task list.* **Show Calendar Events in Lists** includes Today, so the Today-only switch is disabled while it is on. Turn both off to hide the day bar. tip Choose **Show Calendar Events in Lists** to keep appointments visible as you switch lists, or the Today-only setting to see them just in Today. ### Calendar Access[​](#access "Direct link to Calendar Access") The first time you use the feature, 2Do needs permission to read your calendars. The **Calendar Access** row offers **Allow Calendar Access**, or **Open Settings** if permission was turned down earlier. 2Do needs **full** calendar access to read event details. Write-only access is not enough, and the pane then shows **Full Calendar Access Required**. important If the day bar stays empty after you granted access, check **Settings > Privacy & Security > Calendars > 2Do** on your device and make sure 2Do has full access rather than add-only access. ### Choosing Which Calendars Appear[​](#calendars "Direct link to Choosing Which Calendars Appear") The **Calendars** section lists every calendar 2Do can see, each with its own switch. Turn off any calendar you want to keep out. New calendars appear automatically. Return to this list to turn off any you want to hide. ## What the Day Bar Shows[​](#day-bar "Direct link to What the Day Bar Shows") The day bar shows events for the selected day above your tasks. Events stay separate from the task list. Drag a task onto the bar to [create a calendar event](#add-to-calendar). * Tap the chevron beside the summary to **expand or collapse** the bar. 2Do remembers this choice. Collapsing the bar returns it to today. * Use the view button in the expanded bar to switch between a **day timeline** and a **list** of events. * All-day events appear on a separate line. ### Browsing Other Days[​](#ticker "Direct link to Browsing Other Days") Use the row of dates to browse events from today through the next 30 days. Tap a date to see its events. The chevron in the header expands or collapses the row, and 2Do remembers this choice. Collapsing it returns the bar to today. To mark busy dates, choose **None**, **Dots**, or **Heat Map** under **Settings > Appearance > Busy Days > Calendar Day Bar**. note Picking a date in the bar changes only which day's events are shown. It does not filter your tasks. For that, use the [mini calendar](/docs/ios/mini-calendar.md). ### Opening an Event[​](#events "Direct link to Opening an Event") Tap an event to view or edit its details. If the day has more events than the bar can show, use the overflow control to open that day in the Calendar app. ### Where the Day Bar Does Not Appear[​](#hidden "Direct link to Where the Day Bar Does Not Appear") The day bar appears in regular list views. It is hidden in Smart Lists, inside an opened project or checklist, and while searching. note If you dismiss the access prompt shown inside the bar, 2Do turns both display settings off. Turn them back on any time from **Settings > Calendar Events**. ## Adding a Task to Your Calendar[​](#add-to-calendar "Direct link to Adding a Task to Your Calendar") To set time aside for a task, add it to your calendar as an event. You can drop it on the day bar or use the task's menu. 1. Touch and hold a task until it lifts, then drag it toward the top of the list. A soft highlight appears behind the day bar, and a moving dashed outline appears when the task is over it. 2. Release the task on the bar. 3. If the task has notes, a short sheet asks about them first. Turn on **Include Notes** to copy them into the event, then tap **Continue**. Tap **Cancel**, or anywhere outside the sheet, to stop. 4. The new-event screen opens with the task's title and time filled in. Change anything you like, including the calendar, and tap **Add**. You can drop one task at a time while the bar is showing your events. Adding a calendar event does not change the task. You can also touch and hold a task, or right-click it on iPad with a pointer, and choose **Add to Calendar**. Steps 3 and 4 then follow as above, and this works even when the day bar is hidden. ### How the Time Is Chosen[​](#timing "Direct link to How the Time Is Chosen") The new event starts from the task's dates: | The task has | The event | | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | | A start time and a later due time on the same day | Runs from the start time to the due time. | | A start time | Starts then and lasts the task's duration. | | A due time only | Ends at the due time and starts the task's duration earlier. Without a duration, it starts at the due time. | | Dates without times | Is an all-day event from the start date through the due date. | | No dates | Goes on the day the bar shows, or today when the bar is hidden. | Where the task has no duration, the event lasts 15 minutes. An event for a task without dates starts at the next quarter hour when it goes on today. On any other day it starts at your default due time, which is 9:00 AM unless you changed it in [Settings](/docs/ios/settings.md#tasks-default-times). ## The Calendar Events Page[​](#utility-page "Direct link to The Calendar Events Page") The utility panel’s **Calendar Events** page shows the selected day’s events in their calendar colors. Use its row of dates to browse other days. Two buttons appear at the bottom: * **Add Event** creates a new event on the selected day. * **Calendars** picks which calendars the page shows. On iPhone, swipe the task list toward the utility panel. On iPad, tap **Tags** at the bottom of the lists panel. Then choose **Calendar Events** with the segmented control at the top. See [The 2Do Screen](/docs/ios/the-2do-screen.md). ## Related Pages[​](#related "Direct link to Related Pages") * [Mini Calendar](/docs/ios/mini-calendar.md) is the month view for filtering and deferring tasks by date. * [The 2Do Screen](/docs/ios/the-2do-screen.md) explains where each panel sits. --- # Dates and Durations: Start, Due, and Duration A task can have a **Start Date**, a **Due Date**, and a **Duration**. Each is optional. Together, they determine when the task appears in Today, when it stays hidden as Scheduled, and how long before its deadline you need to begin. The sections below explain each setting and how they work together. Think of them this way: * **Start Date** means “do not show this until it is time to begin.” * **Due Date** means “this is the deadline.” * **Due Time** makes the deadline precise. * **Duration** is your estimate of how long the task takes. With a due date, 2Do counts it back from the deadline to show when to begin. ![The Dates panel with Start, Due, and Duration tabs, a month calendar, and a due time of 6:30 PM](https://downloads.2doapp.com/resources/img/2do-ios/task-dates-panel.png) You do not have to open the dates panel to set any of them. Type the date, time, or duration into a new task's title and [Natural Language Input](/docs/ios/natural-language-input.md) fills in the fields for you. `Work on the report starting tomorrow` sets a start date, and `Field trip from 19 July until 21 July` sets a start and a due date at once. ## Floating and Fixed Time[​](#fixed-time "Direct link to Floating and Fixed Time") **Tasks use floating time by default.** A floating time follows the local clock: a task set for 9:00 AM still shows 9:00 AM when you travel from London to Dubai. In a shared list, people in different time zones also see 9:00 AM, which is a different moment in each place. Use this for a routine that belongs at a local time of day. **Fixed Time Zone** keeps a timed task tied to one time zone. Each device displays the corresponding local date and time. For example, a deadline fixed at 5:00 PM in Dubai appears at 1:00 PM in London in January. Use fixed time for a submission deadline, an online meeting, or any shared event that must mean the same moment for everyone. The displayed date can change too when the conversion crosses midnight. A task with only a date remains on that calendar date. For groceries or packing that simply need doing on Friday, you can leave the time off instead of choosing a time-zone mode. ### Turn Fixed Time On[​](#enable-fixed-time "Direct link to Turn Fixed Time On") 1. Open the task editor and its start or due date panel, then add a time. A timed alert is also enough to make the control available. 2. Scroll below the time controls and turn on **Fixed Time Zone**. The alerts panel has the same switch for the task's timed alerts. 3. Check the displayed date and time, then finish editing. ![The Dates panel with a 5:00 PM due time and Fixed Time Zone turned on](https://downloads.2doapp.com/resources/img/2do-ios/dates-fixed-time.png) Timed tasks in an [iCloud shared list](/docs/ios/icloud-list-sharing.md#time-zones) offer this switch automatically. For ordinary lists, turn on **Settings > Tasks > Time Zone Support** to make it available. This preference is off by default and only reveals the control; it does not convert existing tasks or make new tasks fixed. An already fixed task still shows the switch when the preference is off. Wi-Fi sharing alone does not reveal it. The switch uses your device's **current time zone** when enabled. There is no separate zone picker. Enter the time as it should appear where you are. If you are in London setting that January Dubai deadline, enter 1:00 PM in London rather than typing Dubai's 5:00 PM into the local field. ### Travel and Changes to the Time[​](#changing-fixed-time "Direct link to Travel and Changes to the Time") Turning fixed time on keeps the displayed date and clock time and saves the current zone. Travel does not replace that saved zone. If you edit the deadline while away, enter the new date and time in your current local time; 2Do keeps the task's saved zone. Turning fixed time **off** keeps the complete local date and clock time you currently see, and makes those values floating. In the Dubai example, turning it off in London keeps 1:00 PM. After travel to New York, it still shows 1:00 PM locally. Turning it on again uses the zone you are in then, not the previous saved zone. For a shared task, changing this mode or its times changes the shared schedule for everyone with access. Your device's display conversion is automatic and personal; the task's fixed-or-floating choice is shared. View-only members cannot change it. ### Repeats and Reminders[​](#time-zones-reminders "Direct link to Repeats and Reminders") One time-zone choice applies to the task's timed start, due time, and timed reminders together. A reminder fifteen minutes before the start stays fifteen minutes before it. Snoozing an alert remains a personal choice. Fixed repeating tasks follow the saved time zone's calendar, including its daylight-saving changes. Someone in another zone may see the local time shift when the two places change their clocks on different dates. Floating repeating tasks keep their local clock time instead. Neither choice creates a separate task for each member: completing a shared repeating task affects everyone. After changing time zones, open 2Do so it can refresh floating reminders. A floating reminder already scheduled with the operating system can otherwise fire at the moment calculated in the previous zone. Fixed reminders keep their scheduled moment; notification delivery still depends on device permissions and operating-system behavior. Batch date changes keep each task's existing time-zone mode. Open an individual task to change **Fixed Time Zone**. ## Duration Doesn't Change Start or Due[​](#duration-and-dates "Direct link to Duration Doesn't Change Start or Due") A duration never sets or moves a task's start date or due date, and 2Do never works out a due time by adding the duration to the start time. Each field answers its own question: * **Start**: when can you begin? * **Due**: when must it be finished? * **Duration**: how long will the work take? A start time is when a task becomes available, not a promise to finish by a certain time. *Mow the lawn* can start Saturday at 9:00 AM and take an hour, and mowing at noon is still on time. If 2Do made the task due at 10:00 AM, it would turn overdue at 10:00, a deadline you never chose. When a task must be finished by a particular time, set that time as its **Due Time**. To set aside time for a task on your calendar, use [Add to Calendar](/docs/ios/calendar-integration.md#add-to-calendar). For a task with a start time, the event begins then and lasts the task's duration, or runs to the due time when the task is due later that day. The task's own dates don't change. ## Choosing Between Start and Due[​](#choosing "Direct link to Choosing Between Start and Due") Most tasks need only one of the two. Pick by asking what you want the date to do: * Use a **Start Date** when you want the task to stay hidden until the day or time you plan to begin it. * Use a **Due Date** when the task genuinely becomes late after that date or time. * Use both only when there is a real working window between the two: a day you can begin, and a later day you must be finished by. Only a due date can make a task overdue. A start date decides when a task appears; it never decides whether the task is late. When a task has no real deadline, leave the **Due Date** off and let the start date bring it into view. tip Use **Start Date** for *anything that shouldn't bother you yet*: appointments, scheduled work, recurring chores you don't want cluttering Today. Use **Due Date** for actual deadlines. Use **Duration** to surface a lead-up window for tasks that need preparation. ### Daily Routines[​](#daily-routines "Direct link to Daily Routines") For a recurring task you want to see at a set time of day but do not have to finish by then, set a **Start Date** with that time, repeat it daily, and leave the **Due Date** off: * *Update journal* starting at **8:00 AM**: hidden until 8:00 AM, then available for the rest of the day. * *Check bank account* starting in the **evening**: out of the way until then. The task never becomes overdue, and each occurrence gets the next start date. Add a **Due Date** and **Due Time** only when finishing by a particular time genuinely matters. See [Repeating Tasks](/docs/ios/repeating-tasks.md) for the repeat options. ## A Plain, Undated Task[​](#undated "Direct link to A Plain, Undated Task") A task with **no dates** stays in the list it was created in. It does not appear in *Today*. It is never "overdue" because nothing was promised. Use this for the long tail of intentions: rough notes, someday/maybe items, anything that genuinely doesn't have a deadline. ## Just a Due Date[​](#just-due "Direct link to Just a Due Date") A task with a **Due Date** appears in *Today* for the **whole due date**, then becomes **overdue** until you complete it. * If the task also has a **Due Time**, Alerts can be anchored to that time. Without a due time, the task is simply due on that day. * Overdue tasks can continue to appear in *Today* with an overdue indicator, depending on your Today list settings. They stay overdue until checked off. This is the simplest pattern, and the right one for genuine deadlines: *Submit invoice on Friday*: appears in Today on Friday, then stays overdue until you submit it. note A due date without a due time has no specific clock time attached. If you use automatic due-date Alerts, 2Do treats the beginning of the due day as the reference point for that Alert. To anchor to a specific time of day, add a **Due Time**. When a list is sorted by Due Date, a task with no due time counts as due at the end of its day, so it sorts after that day's tasks that have a due time. A duration moves a task earlier in this order, because 2Do sorts it by its [effective start](#duration-due). Alert times do not affect the order. An alert does not give a task a due time. A task due today with a 3:00 PM alert but no due time shows no time in the list, sorts after the timed tasks, and reads *Due Today* in the editor instead of counting down the hours. Set a **Due Time** to get all three. ## Just a Start Date[​](#just-start "Direct link to Just a Start Date") A task with **only a Start Date** is **scheduled to appear** at that start date. Until the start date arrives, the task is **hidden** from the regular list and from *Today*: by design. This is how 2Do quietly keeps your active list focused on the now. To see what's scheduled before its start arrives: * Tap the **Scheduled** focus list at the top of the sidebar. * Or, in the **top-right of the sort bar**, tap the **clock icon** to toggle display of scheduled tasks alongside your normal view. Showing or hiding scheduled tasks changes which tasks a view includes, which is why the same task can appear and disappear as you tap the **clock icon** or switch to the **Scheduled** focus list. Sorting a list by **Start Date** also shows its scheduled tasks, in the order they start. This applies to your own lists, not to *Today* or Smart Lists. Other sort orders only change the order of what is already there. A scheduled task with no due date shows up on its start date and stays in the list until you complete it. Here, *Review workshop brief* starts tomorrow at **9:00 AM** and has no deadline. Its editor shows only a start date. Sorting **Work plan** by **Start Date** makes the scheduled task visible under **Tomorrow**, with a small clock in its completion circle. Tasks without a start date appear under **No Start Date**. ![Review workshop brief in the task editor with a start date of tomorrow at 9:00 AM and no due date](https://downloads.2doapp.com/resources/img/2do-ios/dates-start-only-editor.png) ![Work plan sorted by Start Date, with a task starting today, Review workshop brief under Tomorrow, and other tasks under No Start Date](https://downloads.2doapp.com/resources/img/2do-ios/dates-start-sort-list.png) Projects and child tasks Each item uses its own Start Date for scheduled visibility. A project with no Start Date stays visible when **Hide Scheduled** is on, even if one or all of its child tasks start in the future. Those children stay hidden until their own start dates arrive or you show scheduled tasks. Changing a project's dates resets its completed children Changing or removing a project's **Start Date** or **Due Date** reschedules the project, and 2Do sets its completed child tasks back to active so the rescheduled project is treated as work to do again. Starring a project does not do this. If you want finished children to stay completed, adjust the project's dates first and complete the child tasks afterwards. tip A task with `start = today` and no due date is just a "today task": it appears in *Today* without overdue behavior. Useful for soft daily intentions. ## Start Date + Due Date[​](#start-and-due "Direct link to Start Date + Due Date") The most expressive pairing. * **Hidden** from the list until the **start date** arrives. * **Visible** in its list between the start date and the due date. * In *Today* on the **due date**, and from the start date onward when **Include 'Still Working On' tasks** is on in **Settings > Today & Lists**. * After the due date, **overdue**. Use this for tasks with a real working window: *Prep talk for Thursday's meeting* with a start date of Tuesday and a due date of Wednesday gives you Tuesday and Wednesday to work on it; on Wednesday it appears in *Today* as a deadline. In the editor below, *Prepare workshop slides* has already started on Sunday morning and is due on Wednesday at **5:00 PM**. The green start row and blue due row keep those two dates distinct. In the **Start Date** view above, it sits under **Today** because it starts today, even though the task row still shows Wednesday's deadline. ![Prepare workshop slides with a Sunday 9:00 AM start and a Wednesday 5:00 PM deadline in separate editor rows](https://downloads.2doapp.com/resources/img/2do-ios/dates-start-due-editor.png) ## Just a Duration[​](#just-duration "Direct link to Just a Duration") Without dates, a duration is your estimate of how long the task takes. It doesn't change when the task appears, but 2Do uses it for [Duration Totals](#duration-totals), for sorting by **Duration**, and as the length of an event you make with [Add to Calendar](/docs/ios/calendar-integration.md#timing). 2Do counts a day of duration as 24 hours and a week as 7 days. It doesn't count working hours. Combine a duration with a due date and it also tells 2Do when to start showing the task. ## Due Date + Due Time + Duration: Effective Start[​](#duration-due "Direct link to Due Date + Due Time + Duration: Effective Start") When a task has a **due date**, a **due time**, and a **duration**, 2Do counts the duration back from the due time. That point is the task's effective start: the time it starts needing your attention. 2Do doesn't save it as a start date, and the deadline stays where you set it. In this example, *Write project proposal* is due at **5:00 PM** and has a **2-hour duration**. Its effective start is **3:00 PM**, and the deadline stays at 5:00 PM. The editor shows both values, and the **Duration** tab of the **Dates** panel shows **3:00 PM** beside **In progress from**. The **Start** tab remains **None** because you haven't set a separate start date. ![Write project proposal in the editor with a 5:00 PM deadline and a two-hour duration](https://downloads.2doapp.com/resources/img/2do-ios/dates-timed-duration-editor.png) ![The Duration tab set to two hours, with no start date and an In progress from time of 3:00 PM](https://downloads.2doapp.com/resources/img/2do-ios/dates-duration-panel.png) The effective start affects the task in four ways: * **Today list**: the task appears in *Today* on the day of its effective start, for that whole day. A task due tomorrow at **9:00 AM** with a **12-hour** duration has its effective start at 9:00 PM today, so it is in *Today* all of today. * **In Progress**: when *Today* is sorted by due date, the task appears under an **In Progress** heading from its effective start until its due time. * **Status**: the Duration row in the task editor shows **Starts in** and the time left until the effective start, then the time **remaining** until the due time, and **Ended** once the due time has passed. The status is only a countdown; it doesn't track the time you spend. * **Sorting**: in a list sorted by due date, 2Do places the task at its effective start, so a long task comes before a short one due at the same time. To see this in your own list, tap the sort control above the tasks and choose **Due Date** with **Ascending** order. In **Work plan** below, *Submit expenses* comes first at **1:00 PM**. The two tasks due at **5:00 PM** follow: the **2-hour** proposal comes before the **30-minute** proofread. *Send weekly update* has a due date but no time, so it comes last in the **Today** group. The heading also shows their combined duration of **2h 30m**. ![Work plan sorted by Due Date: a 1:00 PM task, two 5:00 PM tasks ordered by their two-hour and 30-minute durations, then a task with no due time](https://downloads.2doapp.com/resources/img/2do-ios/dates-due-sort-list.png) Use this for time-boxed work: * *Join Zoom meeting* due **3:00 PM**, duration **30 minutes**: start preparing at **2:30 PM**. * *Submit proposal* due **5:00 PM**, duration **2 hours**: begin treating it as active at **3:00 PM**. tip For appointments and meetings, combine **Due Date + Due Time + Duration**. It keeps the actual deadline clear while also telling 2Do when preparation should begin. ## Due Date + Duration: Lead-Up Window[​](#duration-lead-up "Direct link to Due Date + Duration: Lead-Up Window") A duration also works with a due date that has no due time. 2Do then counts the duration in whole days: each full day brings the task into *Today* one day earlier, and the window lasts until the end of the due day. For example, *Prepare conference pack* is due **Monday, 19 October** with a duration of **2 days**. Its window begins on **Saturday, 17 October**, so it is already in *Today* on Sunday. This is useful for tasks like *prepare slides*, *review contract*, or *pack for a trip* where the due date is not the first moment you should think about it. The **Dates** panel shows the first day of the window as **In progress from**. The Duration row shows **Starts in** before that day, then the time **remaining** until the end of the due day, and reads **Ended** only once the task is overdue. While the window is open, *Today* sorted by due date lists the task under **In Progress**, as shown below. Its deadline is still Monday. ![Prepare conference pack due Monday 19 October, with a two-day duration and In progress from Saturday 17 October](https://downloads.2doapp.com/resources/img/2do-ios/dates-lead-up-panel.png) ![Today on Sunday 18 October, showing Prepare conference pack under In Progress with a two-day duration](https://downloads.2doapp.com/resources/img/2do-ios/dates-in-progress-list.png) A duration shorter than a day doesn't change when a task without a due time appears. The task arrives in *Today* on its due date, with no **In progress from** line or countdown in the task editor and no **In Progress** heading in *Today*. The duration still places the task a little earlier among that day's tasks when the list is sorted by due date, and it still counts toward [Duration Totals](#duration-totals). To count back hours or minutes, give the task a **Due Time**. With or without a due time, once the window opens, the task keeps appearing in *Today* each day up to the deadline as long as **Include overdue items** is on under **Settings > Today & Lists > Today List**, which it is by default. With that setting off, the duration brings the task into *Today* only on the first day of the window, and the due date brings it back on the day it is due. A small consequence to be aware of: a task that's *due tomorrow* can already be showing in *Today* when its duration is long enough to reach back into today. That's normal and intended. (See [the matching FAQ](/docs/faqs/tasks-tomorrow-in-today-list.md).) ## Duration + Start Date[​](#duration-start "Direct link to Duration + Start Date") A duration on a task that has a **start date** but no **due date** doesn't change when the task appears, and it doesn't give the task a due time. The task appears at its start, as described in [Just a Start Date](#just-start), and it never becomes overdue. The duration still counts toward [Duration Totals](#duration-totals), and [Add to Calendar](/docs/ios/calendar-integration.md#timing) uses it as the event's length. To have a duration bring a task into *Today* ahead of a deadline, give the task a **due date**. ## Start + Due + Duration[​](#all-three "Direct link to Start + Due + Duration") When all three are set: * **Hidden** before the start date. * **Still hidden** even when the duration's lead-up window reaches back past the start date, because the start date wins while scheduled tasks are hidden, which is the default. Show scheduled tasks to see it earlier. * **Visible** once the start date arrives. * **Overdue** after the due date. Use this when you want both a “do not show before this date” boundary and a realistic amount of working time: * *Prepare conference talk* starts **1 June**, is due **10 June at 5:00 PM**, duration **4 hours**: kept out of the way before June, then available while you plan, and treated as active as the deadline approaches. * *Renew passport* starts **Monday**, due **Friday**, duration **1 hour**: hidden before Monday, visible during the week, and due Friday. ## Repeating Tasks and Dates[​](#recurrence "Direct link to Repeating Tasks and Dates") The mental model gets one extra wrinkle when a task repeats. See [Repeating Tasks](/docs/ios/repeating-tasks.md) for the full reference; the relevant points for dates: * When another occurrence remains, 2Do keeps a completed copy for your history, then moves the active task to the next occurrence. * The **next occurrence** carries the same date shape forward: start date, due date, due time, and duration are kept where they were used. * **Only a due date**: the next occurrence gets the next due date. * **Only a start date**: the next occurrence gets the next start date and stays hidden as Scheduled until that date arrives. * **Start date + due date**: 2Do keeps the same gap between them. If a task starts 2 days before it is due, the next occurrence also starts 2 days before it is due. * **Duration** carries forward intact: a recurring "Quarterly review" with a 1-week duration starts surfacing in *Today* one week before each quarterly due date. * **Repeat from Due Date** keeps fixed schedules fixed. If rent is due on the 1st and you complete it on the 3rd, the next occurrence is still based on the 1st. * **Repeat from Completion** restarts the cycle from the day you actually completed the task. If you change your car's oil roughly every 3 months and complete the task today, the next one is scheduled 3 months from today, not from when it was originally due. * **Changing a date** on a repeating task changes what the next occurrence is counted from. With Repeat from Due Date, moving the due date moves the following occurrences with it. See [Changing the Dates of a Repeating Task](/docs/ios/repeating-tasks.md#changing-dates). If the task has reached its **End after** count or **End on** date, it simply completes instead of creating another occurrence. tip For chores that drift in real life, use **Repeat from Completion**. For dates that must stay anchored to the calendar, use **Repeat from Due Date**. ## Showing Scheduled Tasks[​](#smart-scheduling "Direct link to Showing Scheduled Tasks") 2Do hides scheduled tasks (start date in the future) from normal lists by default. This is Smart Scheduling, and [Focus Lists](/docs/ios/focus-lists.md#scheduled) covers it in full. To see scheduled tasks without changing anything, tap the **Scheduled** control in the sort bar above your tasks, open the **Scheduled** focus list, or use the notice row that appears at the bottom of a list holding hidden scheduled tasks. ## Building a Daily View[​](#daily-view "Direct link to Building a Daily View") For everyday work the built-in *Today* list is usually enough. It already combines tasks due today with overdue tasks and tasks you are still working on. If you would rather build your own Smart List, the distinction that matters is which date the search token looks at: * `type: duetoday` matches tasks **due** today, and tasks whose duration counts back into today. Bare `today` is an alias for `duetoday`. * `type: anytoday` also matches tasks that **start** today, so reach for it when you want started tasks included too. See [Smart Lists](/docs/ios/smart-lists.md) for the rest of the search syntax. ## Duration Totals[​](#duration-totals "Direct link to Duration Totals") When your tasks are grouped into sections, each section header shows the total duration of the open tasks that belong to that section, including subtasks inside projects and checklists. Totals may update shortly after the list appears. * Only tasks that are not completed and have a duration are counted. A section without any durations shows no total. * When sorting by **Due Date**, a subtask with its own due date contributes to that date's section. A subtask without a due date contributes to its project's or checklist's section. For example, an undated 30-minute subtask inside an overdue project adds 30 minutes to **Overdue**. * **Start Date** works the same way: a subtask with no start date contributes to its parent's section. These totals do not add or change any dates on the subtasks. * Other sort orders use each subtask's own values. For example, a high-priority subtask contributes to **High** when sorting by priority. * A subtask that uses its parent's section counts as if the project or checklist were open. Searching for a project can therefore include its undated subtasks even when the search words only match the project. Completed subtasks and those hidden by the project's scheduled or paused visibility settings do not contribute. * You do not need to open a project for its subtasks to contribute. Totals update existing headings; they do not create additional sections for subtasks. * If a project or checklist and its open subtasks with durations belong to the same section, the subtasks' durations replace the parent's own duration. Otherwise, the parent contributes its own duration, if set. * Each task counts once, even if it appears more than once in the section. * When a list is sorted by **Duration**, headers that already name a duration, such as 30 Minutes, show no total. * On a narrow screen, a long section title keeps its space and the total is not shown. For example, two tasks under **Tomorrow** with durations of 1 hour and 15 minutes, plus a 30-minute project subtask that belongs to **Tomorrow**, produce a total of *1h 45m*. The subtask counts without opening its project. To hide the totals, turn off **Show durations in headings** in [Settings > Appearance](/docs/ios/settings.md#appearance-task-list). ## Practical Examples[​](#examples "Direct link to Practical Examples") Each example assumes the default settings. ### At Home[​](#examples-home "Direct link to At Home") | Task | Start | Due | Duration | What you'll see | | ------------------------ | -------- | ------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------- | | Buy milk | None | None | None | Lives in its list, not in Today. | | Pay the electricity bill | None | 25th | None | Appears in Today on the 25th. Overdue from the 26th. | | Take out the bins | None | Wed 8 PM | None | Appears in Today all of Wednesday. Alarm at 8 PM if set. | | Take out the bins | Wed 8 PM | None | None | Hidden until Wednesday 8 PM, then appears in the list. | | Mow the lawn | Sat 9 AM | None | 1 hour | Appears at 9 AM on Saturday and stays in Today until done. The hour is an estimate, not a 10 AM deadline. | | Visit a friend | Sat 3 PM | Sat | 30 minutes | Hidden until 3 PM on Saturday, and due that day. A duration under a day doesn't bring a task without a due time into Today early. | | Pick up the kids | None | Today 3:15 PM | 20 minutes | Due at 3:15 PM, with an effective start of 2:55 PM. | | Pack for a trip | None | Fri | 2 days | Appears in Today from Wednesday. Due Friday. | | Renew car insurance | Mar 1 | Mar 31 | 30 minutes | Hidden until March 1, then in Today until done. Due March 31. | ### At Work or School[​](#examples-work "Direct link to At Work or School") | Task | Start | Due | Duration | What you'll see | | ------------------------------- | -------- | ------------- | ---------- | ---------------------------------------------------------------------------------------------- | | Join team meeting | None | Tomorrow 3 PM | 30 minutes | Deadline is 3 PM, with an effective start of 2:30 PM. | | Submit proposal | None | Fri 5 PM | 2 hours | Deadline is 5 PM, with an effective start of 3 PM. | | Read chapter 5 | Mon 4 PM | None | 2 hours | Hidden until 4 PM on Monday, then in Today until done. It isn't due at 6 PM. | | Hand in history essay | None | Fri | 3 days | Appears in Today from Tuesday. Due Friday. | | Prep quarterly review | Mon | Fri | None | Appears in Today from Monday onward; due Friday. | | Group presentation | Wed | Fri 2 PM | 3 days | Hidden until Wednesday, even though 3 days before the deadline is Tuesday. Due Friday at 2 PM. | | Status report, repeating weekly | None | Fri 4 PM | 1 hour | Effective start at 3 PM each Friday. Completing it moves the task to the next Friday. | ## Where to Set Each Field[​](#setting-fields "Direct link to Where to Set Each Field") All three live in the task editor's **Dates** panel, which has a segment each for **Start**, **Due**, and **Duration**: * **Start**: pick a day on the calendar or use the quick picks, then set a time with the clock or one of the four quick start times. * **Due**: the same calendar and quick picks, with a **Time** switch that turns the due time on or off. * **Duration**: quick lengths from 5 minutes to 6 hours, or a custom number of minutes, hours, days, or weeks. See [The Task Editor](/docs/ios/task-editor.md#dates) for the panel in full. Defaults for **Default Due Date**, **Default Due Time**, and **Default Start Time** are under **Settings > Tasks**, so new tasks pick up your preferred pattern automatically. --- # Drag and Drop Touch and hold a task, then drag it to another list, a tag, or a date to move, tag, or reschedule it. ## How to Drag a Task[​](#within "Direct link to How to Drag a Task") 1. **Touch and hold** a task row until it lifts under your finger. A card of the task follows the drag. 2. Move it over a destination. The destination highlights when it will accept the drop, and stays unmarked when it will not. 3. Lift your finger to drop. Outside batch editing, this drags the single task you pressed and leaves your selection alone. Inside [batch editing](/docs/ios/batch-editing.md), it lifts the whole selection instead, and the task you pressed joins the selection if it was not already in it. A drag never starts from a task you are not allowed to change, such as one in a read-only shared list. tip Use drag and drop with [batch editing](/docs/ios/batch-editing.md) when a list has drifted off course: select the stale tasks, then drag them all onto **Today**, **Scheduled**, **Starred**, **Done**, or the list where they actually belong. ## Dropping on a List[​](#between-lists "Direct link to Dropping on a List") Drop a task on any of your lists in the lists panel and it moves there, keeping its dates, tags, alerts, attachments, and children. If the list holds projects or checklists, they appear in the panel too, so you can file a task straight into one. With a hardware keyboard attached, hold `⌥` while you drop and the task is **copied** into the destination instead of moved. ## Dropping on a Focus List[​](#focus-list-drops "Direct link to Dropping on a Focus List") The Focus Lists at the top of the panel accept drops too, but they apply a state change rather than moving the task: * **Today** sets the due date to today. * **Starred** stars the task. * **Done** marks it complete. * **Scheduled** asks for the future start date to apply, then sets it. That turns the top of the lists panel into a set of verbs you can apply to a task or a whole selection without opening an editor. note *All*, Smart Lists, and list group headings are not drop targets. *All* and Smart Lists are perspectives across your real lists rather than containers, so there is nothing for a task to land in. Drop on the underlying list instead. Checklist items cannot be dropped on **Today** or **Scheduled**, because a checklist's children take their scheduling from the checklist itself. See [Projects and Checklists](/docs/ios/projects-and-checklists.md). ## Dropping on a Section[​](#section-drops "Direct link to Dropping on a Section") In a list divided into [sections](/docs/ios/task-sections.md), drop a task on a section's title, or among the section's tasks, to move it into that section. This works with any sort, inside or outside batch editing, and the task keeps its dates and other details. Outside batch editing, section titles can be dragged too. Drag a section title up or down to reorder the sections, or drop it on a list in the lists panel to move the section there with all of its tasks. ## Dropping on a Tag[​](#tag-drops "Direct link to Dropping on a Tag") Open the **Tags** page of the utility panel and drop a task on any tag to apply that tag. Everything else about the task stays as it was, and dropping a selection tags every task in it. See [Tags](/docs/ios/tags.md). ## Dropping on a Date[​](#calendar-drops "Direct link to Dropping on a Date") Drop a task on a day in the mini calendar and that day becomes its due date. On iPhone the calendar is the drawer you open from the lists panel; on iPad it is part of the editor pane. See [The Mini Calendar](/docs/ios/mini-calendar.md). tip Dropping a task on a date in the mini calendar is usually quicker than opening its dates panel, especially when you are pushing several tasks into next week one at a time. ## Dragging onto a Task[​](#onto-tasks "Direct link to Dragging onto a Task") Dragging also works the other way around. Drag a **tag** from the Tags panel, or a **location** from the Nearby panel, and drop it on a task row to apply it. The row you are over is marked as you move, so you can see exactly which task will receive it. ## Between Windows on iPad[​](#between-windows "Direct link to Between Windows on iPad") With two 2Do windows open on iPad, you can drag a task out of one and drop it in the other. Every destination behaves the same as it does inside a single window. See [Multiple Windows](/docs/ios/multiple-windows.md). ## Into Other Apps[​](#other-apps "Direct link to Into Other Apps") Dragging a task out of 2Do and into another app hands over a plain-text version of it, along with a `.twodo` file carrying its full detail. That makes it easy to drop a task into a note, a message, or a file provider. ## Reordering Within a List[​](#reorder "Direct link to Reordering Within a List") The task list accepts its own tasks as a drop only in [batch editing](/docs/ios/batch-editing.md), and only while the list is sorted **Manually**. Choose **Manually** in the sort menu, tap **Batch Editing**, then touch and hold a task until it lifts and drop it where you want it. With any other sort, the task returns to its sorted place. See [Sorting Manually](/docs/ios/the-2do-screen.md#manual-order). Moving a task into another section is the exception, described in [Dropping on a Section](#section-drops). --- # Mail to 2Do Mail to 2Do gives your device a private, receive-only email address. Anything sent to that address becomes a normal task in the 2Do list you choose, with no extra apps, no account to create, and nothing to install anywhere else. Each device gets its own private address, which looks like this: `todo-xxxxxxxxxxxxxxxxxxxxxxxxxx@2doapp.email` ## Setting It Up[​](#setup "Direct link to Setting It Up") 1. Open **Settings > Mail to 2Do**. 2. Turn on **Enable Mail to 2Do**. 2Do creates your private address and shows it under **Your Address**. 3. Tap the copy button beside the address and save it as a contact with a name you will remember, such as "2Do Inbox". 4. Under **Delivery**, choose the **Default destination list**, which is used when an email doesn't name a list itself. 5. Send something to the address and watch it arrive. Under **Delivery** you also get **Fetch mail** with a **Fetch Now** button. 2Do checks for new mail automatically in the background, and you can use the button whenever you want to check immediately. The expandable **How Mail to 2Do works** card in the same pane repeats the essentials and links back here. tip Save the address as a contact called "2Do Inbox". Sending a task then takes as long as typing a subject line. ## Everyday Uses[​](#uses "Direct link to Everyday Uses") * **Brain-dump.** Email yourself a one-line reminder from work, from a computer, from anywhere. It is waiting in 2Do when you get back to your device. * **Forward things that need action.** A flight confirmation, an invoice to pay, a message you must reply to: forward it and the subject becomes the task, with the message text saved in the notes. * **Send yourself a checklist.** Number the lines of the message and it arrives as a checklist. * **Let others file work for you.** Anything that can send email can create tasks: a mail rule that forwards matching messages, an automation service, a report from a server, or a chore from a colleague. A quick example: ``` To: todo-xxxxxxxxxxxxxxxxxxxxxxxxxx@2doapp.email Subject: Pick up the dry cleaning due(tomorrow) list(Errands) ``` That arrives as a task titled "Pick up the dry cleaning" in your Errands list, due tomorrow. ## Sharing Your Address With People You Trust[​](#sharing "Direct link to Sharing Your Address With People You Trust") Your address works like a private phone number: anyone who has it can add tasks to your list, and only you decide who gets it. Share it with your partner so the groceries land on your list instead of in a chat thread, or hand it to a colleague who files errands your way. Two things to know when sharing: * Mail to 2Do is receive-only. Senders never get replies, confirmations, or bounces; messages simply appear in your 2Do. * If the address ever spreads further than you would like, use **Replace Address** in Settings. The old address stops working instantly and permanently, and you get a fresh one to share. ## From Email to Task[​](#how-it-works "Direct link to From Email to Task") Every message is converted the same way: * The **subject** becomes the task's title. * The **plain-text body** becomes the task's notes, up to 10,000 characters. * Attachments and HTML formatting are not captured. An HTML-only message may create a task with just its subject as the title. * **There is no link back to the original email.** Your address is a one-way delivery into 2Do rather than a mailbox, so a task receives only the subject and text of a message and never a reference to it. That is deliberate, and it is part of what keeps the message private. ### Checklists[​](#checklists "Direct link to Checklists") Number the lines of your message body, typing `1.` `2.` `3.` yourself with one item per line, and 2Do creates a **checklist** instead of a plain task, with each numbered line as an item. Start the body with `1.`; text before the first numbered line keeps the message a normal task. When the body mixes numbered lines with other text, the full message text is kept in the checklist's notes. A signature such as "Sent from my iPhone" ends the checklist rather than becoming an item, and stays in the notes with the rest of the message. ``` Subject: Saturday shopping list(Home) 1. Milk 2. Coffee beans 3. Bird seed ``` ### Filing Instructions[​](#instructions "Direct link to Filing Instructions") The subject can carry small filing instructions in parentheses. 2Do removes them from the task title and applies them as it saves: | Instruction | What it does | Example | | ---------------------------- | ------------------------------------------------- | -------------------------- | | `start(...)` | Sets a start date | `start(today)` | | `due(...)` | Sets a due date, with a time when you include one | `due(tomorrow)` | | `priority(!)` `(!!)` `(!!!)` | Sets low, medium, or high priority | `priority(!!!)` | | `list(...)` | Files the task in an existing list | `list(Work)` | | `tag(...)` | Adds one or more tags | `tag(home, diy)` | | `action(type, value)` | Adds an Action | `action(call, 0793273373)` | Supported action types are `call`, `message`, `url`, `visit`, and `google`. Dates accept natural words such as `today` and `tomorrow`, or a typed date and time. If a named list does not exist, the task lands in your default destination list. tip Add `list(...)` to the subject when a message belongs somewhere other than your default destination list. Everything else about the message stays the same. ## Private by Design[​](#privacy "Direct link to Private by Design") Your mail never sits in a mailbox. Each message is encrypted for this device the moment it arrives, and it is deleted permanently the instant your task is saved, or after 30 days, whichever comes first. The raw email is deleted right after it is converted. Once the encrypted payload is stored, nobody at 2Do can read it, and no readable message content is kept. Mail to 2Do does not create a mailbox or a separate email account that you or anyone else can browse. For troubleshooting, delivery logs retain sender and recipient addresses, message identifiers, and processing results for 30 days. These logs do not contain email subjects, bodies, or attachments. ## Delivery[​](#delivery "Direct link to Delivery") Delivery is normally quick when your device is online. If the device is offline, the encrypted task waits for up to 30 days and arrives once the device is available again. 2Do checks for new mail in the background on its own. In a hurry? **Fetch Now** under **Settings > Mail to 2Do > Delivery** checks immediately. Tasks created from email sync onward to your other devices through your normal [sync](/docs/ios/sync.md), like any other task. ## Limits[​](#limits "Direct link to Limits") The following limits apply to each private address: * **512 KB per email** (524,288 bytes). This is the size of the whole email, including its headers, attachments, and embedded images, even though attachments and images are not imported. * **50 emails per UTC calendar day**. The allowance resets at midnight UTC. * **Plain-text notes up to 10,000 characters**. Longer notes are shortened. * **Attachments and HTML formatting are not imported.** Messages above the size or daily limit, or flagged as spam, are discarded without a delivery-failure notice. Shortening long notes does not reject the email. ## Your Address and Your Devices[​](#address "Direct link to Your Address and Your Devices") An address belongs to one device and to the 2Do database on it. Your license allows a set number of addresses. The **Manage Addresses** screen shows how many address slots are in use, with each address partially masked for privacy. If every slot is in use when you turn the feature on, 2Do opens the same screen titled **Free an Address Slot** and explains that the license is using all available Mail to 2Do addresses. Release an unused address and setup retries automatically. Releasing an address is permanent: it will never work again, its pending mail is deleted, and Mail to 2Do is disabled on the device using it. The screen also suggests the gentler option: if you still have the database or a backup that owns an address you recognize, restore it and choose **Move Address to This Device**, which keeps the address without using another slot. ## Troubleshooting[​](#troubleshooting "Direct link to Troubleshooting") ### Mail is not arriving[​](#not-arriving "Direct link to Mail is not arriving") Check that: * The receiving device is switched on and online. * **Enable Mail to 2Do** is on in **Settings > Mail to 2Do**. * You sent the message to the exact address shown under **Your Address**. Check the [message size and daily limits](#limits), especially when forwarding emails with attachments or embedded images. Try a new email with a short subject and a few words in the body, without attachments or forwarded content. Then tap **Fetch Now** and check the list selected under **Default destination list**. If the daily allowance has been used, send the email again after midnight UTC. Messages wait up to 30 days while the device is unavailable, after which they are permanently deleted. **Fetch Now** checks mail already accepted by the service; it cannot recover a message discarded because it exceeded a limit. If the test email still does not appear, contact support with your private address from **Your Address**, the sender address, and the date, time, and time zone of the test. Include any error shown after tapping **Fetch Now** so support can check your inbox. ### The database belongs to another device[​](#address-ownership "Direct link to The database belongs to another device") After restoring or copying a 2Do database, the pane can show **Choose How to Use This Database** with two options: * **Move Address to This Device** keeps the existing address and delivers it here. The other device is disabled and its undelivered mail is deleted. * **Use a New Address** gives this database copy a new address and leaves the other device and its address unchanged. Choose **Move Address to This Device** when this device replaces the old one. Choose **Use a New Address** when both copies stay in use. ### Replace Address or turn the feature off[​](#replace-or-disable "Direct link to Replace Address or turn the feature off") * **Replace Address**, under **Manage**, immediately stops the current address and creates a new one: *"The old address will stop working immediately. Any pending mail for it will be deleted."* Update your saved contact with the new address. * **Turning Mail to 2Do off** deletes the address permanently along with its pending mail. Turning the feature on again later creates a completely new address. Old addresses are never reused. --- # Focus Filter Use the **Focus Filter** to show tasks that meet conditions you choose, such as high priority or due today. Each list remembers its conditions, and you can turn the filter on or off with a tap. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/focusfilters_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/focusfilters_poster.png) ## Turning Focus On[​](#toggling "Direct link to Turning Focus On") Tap the **Focus** button in the sort bar above your tasks. While Focus is on, the list shows only the tasks matching the conditions you picked, and the button lights up so you always know why the list looks shorter. Tap it again to see everything in the list. A short toast confirms each change, so you never have to guess whether the tap landed. ## Choosing Focus Conditions[​](#editing-rule "Direct link to Choosing Focus Conditions") **Touch and hold** the Focus button to open **Focus Settings**. Tick as many conditions as you like: * **Overdue** * **No Due Date** * **In Progress** * **Today** * **Tomorrow** * **This Week** * **Next 3 Days** * **Next 7 Days** * **Next 30 Days** * **Next 6 Months** * **Next 12 Months** * **High Priority** * **Starred** With several conditions ticked, Focus shows tasks matching **any** of them. The popover stays open as you tick, so you can build the set in one go. Focus settings can be personalized for each list, and tasks that repeat in the future are included as well. ![Focus Settings open above the Home list, with Today selected](https://downloads.2doapp.com/resources/img/2do-ios/focus-settings.png) tip Build a morning-review Focus that shows High Priority or Today tasks, and turn it on first thing each day. Turn it off when you are ready to see the rest. ## Per-List Focus Conditions[​](#per-list "Direct link to Per-List Focus Conditions") Every list keeps its own set of conditions, and 2Do remembers which ones are active for each. Switch lists and the Focus state goes with them. This is useful when different lists deserve different treatment. *Work* might focus on overdue and high-priority items, while *Errands* focuses on the next few days. ## Focus Mode in Settings[​](#settings "Direct link to Focus Mode in Settings") To review or change several lists at once, open **Settings > Tasks > Focus Mode**. It lists every list you have, grouped as your source panel is, with a summary of the conditions each one uses. Tap a list to change its set. ## Quick Tag Filters[​](#tag-filters "Direct link to Quick Tag Filters") For a one-off filter, tap a tag in the [Tags](/docs/ios/tags.md) page of the utility panel. The task list narrows to tasks carrying that tag, and your saved Focus conditions are left alone. ## When You Need More[​](#save-as-smart "Direct link to When You Need More") Focus is deliberately simple: a fixed set of conditions for narrowing a list quickly. For anything more detailed, such as a specific tag, a location, a text search, or a custom date range, build the query in [Search](/docs/ios/search.md) and save it as a [Smart List](/docs/ios/smart-lists.md). A Smart List lives in the source panel with its own name and colour, and stays up to date on its own. tip Keep Focus for quick narrowing. Save the filters you use every day as Smart Lists, since they are easier to find again later. --- # Focus Lists: All, Today, Starred, Scheduled, Done, Inbox At the top of the lists panel sits a fixed cluster of **Focus Lists**: *All*, *Today*, *Starred*, *Scheduled*, and *Done*. They are not containers. They are built-in perspectives that gather tasks from across your real lists according to fixed rules. This page explains exactly what each one shows and how to keep a particular list out of it. With a hardware keyboard, `⌘1` to `⌘5` jump between them and `⌘0` opens the Inbox. ## Inbox[​](#inbox "Direct link to Inbox") The **Inbox** is your GTD inbox, the place where new and un-triaged tasks land while you are capturing fast and thinking later. It appears above the Focus Lists once **Getting Things Done® Inbox** is turned on under **Settings > Tasks > New Tasks**. Unlike the others, it is a real list. While it is on, captures made in the app, through Quick Add, the share sheet, or Shortcuts go to the Inbox unless you send them somewhere else. [Mail to 2Do](/docs/ios/email-to-2do.md) uses the **Default destination list** chosen in its own settings. Aim to leave Inbox **empty** at the end of each review: give every task a real list, and dates, tags, or an action as needed. Because it is a real list, the Inbox can also be divided into [sections](/docs/ios/task-sections.md). After a large capture, **Auto-Create Sections** can group its tasks for you on a device with Apple Intelligence, which makes them quicker to triage. tip Treat *Inbox* as a genuine inbox and drain it during your daily review. Anything that has sat there for a week is something you have been avoiding deciding on. ## All[​](#all "Direct link to All") *All* shows every active task across every list, which is what you want when you are scanning everything at once or running a search across the whole system. By default it holds back: * Tasks in a list you have **excluded from All**. * Tasks **hidden by a paused tag**. See [Tags](/docs/ios/tags.md). * Tasks hidden by [Smart Scheduling](#smart-scheduling) because their start date is still in the future. tip Combine a Focus List with a search for sharper views. Open *All* and type `type: hiprio AND duethisweek` to answer "what high-priority work is due this week, across everything?". See [Smart Lists](/docs/ios/smart-lists.md). ### Excluding a List from All[​](#exclude-from-all "Direct link to Excluding a List from All") Some lists should not feed *All*: Someday lists, reference material, recurring chores you only want surfaced by their alerts. 1. Touch and hold the list in the lists panel. 2. Tap **Edit**. 3. Under **Exclude From**, turn on **All**. The list and its tasks stay exactly where they are and open normally when you tap into the list; they simply stop appearing in *All*. ## Smart Scheduling[​](#smart-scheduling "Direct link to Smart Scheduling") Smart Scheduling keeps future work out of your active views. A task with a **future start date** stays hidden from regular lists until that date arrives, so *All*, *Today*, and your own lists show only what you can act on now. Two ways to look ahead without changing anything: * Open the **Scheduled** Focus List. * Tap the **clock chip** on the sort bar to reveal scheduled tasks inside the list you are already in, or press `⌘K`. A short confirmation tells you which way you just switched it. Tap it again to hide them. A list that looks empty because it is holding scheduled tasks back shows a message with a chip to reveal them. ## Today[​](#today "Direct link to Today") *Today* is the daily working list. A task lands here when any of these is true: * It is **due today**, with or without a due time. * **Include overdue items** is on under **Settings > Today & Lists > Today List**, so past-due tasks carry forward until you complete them. * **Include 'Still Working On' tasks** is on and the task has a start date of today or earlier. * **Include starred items** is on, so every starred task appears here. * It has a **duration** whose lead-up window covers today. See [Dates and Durations](/docs/ios/dates-and-durations.md). Adding a task while *Today* is open can preset its due date to today so the task stays in view. That is **Use today's date in the Today list**, under **Settings > Tasks > Default Due Date**. To see what you have finished during the day, turn on **Show tasks completed today in the Today list** under [Settings > Today & Lists > Today List](/docs/ios/settings.md#today-and-lists). Tasks you complete today then appear in the *Done* group at the bottom of *Today* until midnight, whatever their due date. The setting is off by default. ![The Today Focus List on iPhone](https://downloads.2doapp.com/resources/img/2do-ios/todayherocollap.png) ### Excluding a List from Today[​](#exclude-from-today "Direct link to Excluding a List from Today") In the lists panel, touch and hold the list that contains the tasks, tap **Edit**, and turn on **Today** under **Exclude From**. This removes that list's tasks from *Today* without turning off their alerts. The exclusion switches are available for ordinary lists, including Inbox. Focus Lists such as *Today*, and saved Smart Lists, do not have these switches. Starred tasks can still appear in *Today* if **Include starred items** is on under **Settings > Today & Lists**. ### Why Tasks Show Up in Today Before Their Due Date[​](#today-mysteries "Direct link to Why Tasks Show Up in Today Before Their Due Date") A task appearing in *Today* early is almost always one of three things: 1. It has a **duration**, which creates a working window before the due date. 2. **Include 'Still Working On' tasks** is on and the task started today or earlier. 3. It is **starred** and **Include starred items** is on. See the FAQ entry [Why are tasks due tomorrow showing in the Today Focus list?](/docs/faqs/tasks-tomorrow-in-today-list.md). ## Starred[​](#starred "Direct link to Starred") *Starred* collects every starred task across every list, which makes it a quick answer to "what am I focusing on right now?". To star a task, touch and hold it, open **Priority**, then tap **Star**. You can also tap the control at the right edge of its row to reveal the priority strip and tap **Starred**, drag the task onto **Starred** in the lists panel, or press `S` with a keyboard attached. See [Stars and Priorities](/docs/ios/stars-and-priorities.md). ## Scheduled[​](#scheduled "Direct link to Scheduled") *Scheduled* shows the tasks with a future start date that [Smart Scheduling](#smart-scheduling) is currently holding back. It is where you look ahead without changing the list you are working in. Dropping tasks on *Scheduled* asks for a start date and applies it to all of them. See [Drag and Drop](/docs/ios/drag-and-drop.md). ## Done[​](#done "Direct link to Done") *Done* shows what you have recently completed. Use it to review the day or the week, and to reopen anything you completed by mistake. How far back it reaches is set by **Show completed tasks for** under **Settings > Tasks > Completed Tasks**, which also holds **Apply rule to sub-tasks** and **Auto-delete completed tasks**. When *Done* holds 500 or more completed tasks and **Auto-delete completed tasks** is off, opening it shows a **Growing number of completed tasks** prompt once. **Yes** opens that setting; **No** changes nothing, and your completed tasks stay as they are. ### Excluding a List from Done[​](#exclude-from-done "Direct link to Excluding a List from Done") Touch and hold the list, tap **Edit**, and turn on **Done** under **Exclude From**. This suits shopping lists and scratch lists where a long history of completed items is only noise. ## Per-List Focus Settings[​](#focus-mode "Direct link to Per-List Focus Settings") Separate from the Focus Lists, each of your lists has its own **Focus Filter**: a set of conditions that narrows the list to what matters right now. Tap the Focus button on the sort bar to switch it on, and touch and hold it to choose the conditions. The same choices are available for every list in one place, under **Settings > Tasks > Focus Mode**. The options are **Overdue**, **No Due Date**, **In Progress**, **Today**, **Tomorrow**, **This Week**, **Next 3 Days**, **Next 7 Days**, **Next 30 Days**, **Next 6 Months**, **Next 12 Months**, **High Priority**, and **Starred**. See [Focus Filter](/docs/ios/focus-filter.md). ## Sync Exclusion[​](#exclude-from-sync "Direct link to Sync Exclusion") Beyond Focus List visibility, a list can be kept out of sync entirely. Touch and hold the list, tap **Edit**, and turn on **Exclude From Sync**. The list and its tasks stay on this device only. If the list was already syncing, 2Do deletes it from the server and from your other devices, so use this deliberately. ## Counters Next to List Names[​](#counters "Direct link to Counters Next to List Names") Each list row has room for two numbers: * **Overdue** on the left, in red: tasks, projects, and checklists whose due date has passed. * **Not Done** on the right: dated and undated tasks, projects, and checklists you have not completed. Sub-tasks are not counted here; their counts sit on the project or checklist itself. What actually appears is set by **Counts on lists** under **Settings > Today & Lists > Counts**: **None**, **Overdue items**, or **Overdue + Undone**. The same section holds **Include Smart Lists**, which you can turn off if you have several complex Smart Lists and want counting to stay quick, and **Undone counts should include Overdue tasks**. **Not Done** is an unfinished-task count, not a count of tasks due today. When **Undone counts should include Overdue tasks** is on, overdue tasks are already included in it, so adding the two numbers would count them twice. The [app icon badge](/docs/ios/settings.md#alerts-badge) uses its own option under **Settings > Alerts & Badge**. The digits roll when a value changes, so a count moving is easy to notice. ## Indicators on List Names[​](#indicators "Direct link to Indicators on List Names") A list's **color band** changes to mark a list you have excluded from *All*, a Smart List, a locked list, and a list published to or subscribed from Wi-Fi. A small **glowing dot** appears when the list holds a task due today (white) or an overdue task (red); it never appears on *All*, *Done*, or *Scheduled*. See [Lists and List Groups](/docs/ios/lists-and-list-groups.md#indicators). --- # Getting Started with 2Do for iPhone and iPad This tutorial walks you through setting up 2Do on iPhone and iPad and gives you a tour of every meaningful part of the app: capture, organization, scheduling, focus, search, sync, and the small touches that make daily use feel right. Each section is short; follow the link when you want the full reference. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/slidingpanels_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/slidingpanels_poster.png) ## Introduction[​](#introduction "Direct link to Introduction") 2Do is a personal task manager that scales from a single list of errands to a full GTD-style planning system. iPhone and iPad are separate apps, sold separately on the App Store, and they carry the same features. What differs is the layout: the iPad has room to keep more on screen at once, and it adds a persistent editor pane, a hardware-keyboard menu bar, and multiple windows. 2Do's main features include: * **[Lists, projects, checklists, and sub-tasks](#task-types)** to combine simple tasks with structured outcomes. * **[Task Sections](#task-sections)** to divide a list or your Inbox into named parts, by hand or with Apple Intelligence. * **[Quick Add](#quick-add)**, a floating capture card you reach by touching and holding the `+` button. * **[Natural Language Input](#natural-language-input)**, which fills in the date, time, repeat, tags, and the rest from the words you type. * **[Quick Open](#quick-open)**, a search card that jumps you to any task or list. * **[Smart Lists and the search syntax](#search)** behind them. * **[Tags, tag groups, and pausing](#tags-nearby)** for context you can switch off in seconds. * **[Markdown notes](#notes-markdown)** with a formatting toolbar, a preview, and link detection. * **[Links between tasks](#notes-markdown)** written directly in your notes. * **[Calendar events in your lists](#calendar)**, so appointments and tasks sit together. * **[Ring alerts as alarms](#notifications)** on iOS 26.1 or later, which sound through Silent mode and Focus. * **[Nearby alerts](#nearby)** for tasks tied to a place. * **[Sync with iCloud](#sync)** and several other services. * **[Share lists and collaborate](#list-sharing)** with other 2Do users over iCloud or your local Wi-Fi network. * **[Mail to 2Do](#email-capture)**, a private address that turns email into tasks. * **[Backups you can restore selectively](#backups)**, one list at a time. ## First Launch and Permissions[​](#first-launch "Direct link to First Launch and Permissions") The first time you open 2Do, a short **Walkthrough Tutorial** introduces the parts of the app. You can reopen it any time from **Settings > Walkthrough Tutorial**. 2Do does not ask for every permission up front. iOS prompts you when a feature first needs access: * **Notifications** for [task alerts](/docs/ios/alarms-and-nagging.md) and repeat reminders. * **Alarms** if you turn on **Ring alerts as alarms**, so timed alerts ring like a Clock alarm. * **Location** when you add a location to a task or turn on **Nearby Alerts**. * **Calendars** when you show [calendar events above your lists](/docs/ios/calendar-integration.md) or open the **Calendar Events** panel. 2Do needs full calendar access to read and show events. * **Contacts** when you attach a call, message, mail, or address [action](/docs/ios/actions.md) to a task. * **Camera, Photos, and Microphone** when you attach a picture or record a voice note. * **Local Network** when you publish or subscribe to a list over [Wi-Fi Sharing](/docs/ios/list-sharing.md), and so your other devices on the same network [pick up your changes sooner](/docs/ios/sync.md#background). * **Reminders** if you choose Apple Reminders as your sync method. If you deny a permission by mistake, open the iOS **Settings** app, find 2Do, and turn the access back on. ## Choosing Your Sync Method[​](#sync "Direct link to Choosing Your Sync Method") Moving from version 3 to version 4? Set up the same sync method and account version 3 uses, then choose **Replace Local Data** when 2Do asks. The full guide is [Moving from version 3 to version 4](/docs/faqs/moving-to-the-new-app.md). Sync lives in one place. Open **Settings > Sync > Setup**, open **Account Type**, and pick a service: * **iCloud** is the recommended choice. Everything syncs through the iCloud account you are already signed in to on the device, with no separate account or password. It carries Smart Lists, tags, tag groups, list groups, locations, and attachments. See [Sync with iCloud](/docs/ios/sync-with-icloud.md). * **Reminders** puts your tasks in Apple's Reminders app while 2Do keeps your projects and sub-tasks intact. Reminders itself does not support syncing sub-tasks and several other properties. * **Dropbox** carries every task property, plus attachments. * **Todoist** syncs tasks, projects, sub-tasks, tags (as labels), due dates, durations, and starred status. * **Toodledo** for the Toodledo ecosystem. * **iCloud CalDAV**, **Fastmail**, **Yahoo**, **Fruux**, and **Custom CalDAV** for calendar-server sync. Fastmail and iCloud CalDAV need an app-specific password. * **None** if 2Do lives on a single device. Each service's **What syncs across your devices** panel spells out exactly what travels and what stays on the device. Tap **Set Up Sync** when you are ready; afterwards, **Enable Sync** is the master switch, and turning it off keeps the account and its settings but stops syncing. note Use the **same** sync method, and account, on every device. If you have multiple Dropbox accounts for instance, please ensure you connect to the same one on each device When both the device and the sync account already hold user data, 2Do asks how to reconcile the two sides: **Replace Local Data**, **Replace Server Data**, or **Merge**. Choose carefully, and see [Sync](/docs/ios/sync.md) for what each one does. Merge is the slow option, meant for when both sides hold data you need to keep. ## The iPhone Layout[​](#iphone-layout "Direct link to The iPhone Layout") The iPhone app is built from three panels: * **Lists** on the left: your Focus Lists, real lists, list groups, and Smart Lists, with three action rows at the bottom for adding a list, opening the mini calendar, and opening Settings. * **Tasks** in the middle: the tasks inside the selected list, with the sort bar above them and the floating `+` button at the bottom. * **Utility panel** on the right: **Tags**, **Nearby**, and **Calendar Events**, chosen with the segmented control at the top of the panel. The panels slide. Swipe the task list toward the right to reveal the lists panel, and toward the left to reveal the utility panel. Swipe back toward the middle to return to the task list on its own. The task editor is presented over the task list rather than living in a panel of its own, so tapping a task fills the screen with its details and closing it puts you back exactly where you were. The **mini calendar** is a drawer. Tap the calendar row at the bottom of the lists panel to slide it in, and tap it again to put it away. It appears when the window is tall enough to hold it. Most iPhone windows use the sliding layout, with one bar spanning the lists and task panels together. If iOS gives 2Do a regular-width window with enough room for all three panels, they sit side by side with a bar over each one. ![The iPhone main screen with the lists panel open beside the task list](https://downloads.2doapp.com/resources/img/2do-ios/iosinbox.png) ## The iPad Layout[​](#ipad-layout "Direct link to The iPad Layout") The iPad app is built from four panels: * **Lists** on the left, with a chip footer holding **Add** (which offers **New List**, **New List Group**, and **Add Section** for the list on screen), **Tags**, and **Settings**. * **Tasks** in the middle. * **The editor pane**, which shows the selected task's editor. With no task selected it shows **RECENT**, a short history of the tasks you last opened. The pane also holds the mini calendar and the task overview. * **Utility panel** with **Tags**, **Nearby**, and **Calendar Events**. When the window is wide enough, 2Do shows the lists panel, the task list, and the widest trailing panel side by side. Below that width the panels slide instead: swipe the task list toward the lists side to reveal Lists, and toward the trailing side to move through the editor and the utility panel. The lists panel's **Tags** chip opens the utility panel directly. **Content Width** under **Settings > Appearance > Display** adds padding around your tasks for easier reading. It has three steps, and a narrow window caps how far you can go. At the widest step, a list with two or more sections also shows a **fast-scroll rail** along the edge that you can tap or scrub to jump between sections. Connect a hardware keyboard and the whole command set becomes available. Hold `⌘` to see the shortcuts for what you are doing right now, and on iPadOS 26 the same commands appear in the menu bar at the top of the screen. `⌃⌥⌘N` opens a second window with its own list selection, search, and panel state. See [iPad Features](/docs/ios/ipad-features.md) and [Multiple Windows](/docs/ios/multiple-windows.md). ## The Main Task List[​](#the-screen "Direct link to The Main Task List") Above your tasks sits the **sort bar**. It carries the current list's name and color, today's date, animated counts of overdue and remaining tasks, chips for showing scheduled and paused tasks, the sort menu, and the Focus button. The bar at the very top of the task panel carries the list name, a **Search** button, and a **Batch Editing** button. Tasks are grouped into sections by the sort you choose. When tasks in a section have durations, the section header shows their total next to its title, such as 2h 45m, so you can see how much time each day or group needs. See [Duration Totals](/docs/ios/dates-and-durations.md#duration-totals). For the full anatomy, including the status indicators and what each control does, see [The Main Task List](/docs/ios/the-2do-screen.md). ## Lists and List Groups[​](#lists "Direct link to Lists and List Groups") There are three kinds of entry in the lists panel: * **Focus Lists**: *All*, *Today*, *Starred*, *Scheduled*, and *Done*. These are built-in perspectives across every list, not containers. * **Lists** of your own, holding tasks, projects, and checklists. Each has a name, a color, a group, a sort order, and its own Focus settings. * **Smart Lists**, saved searches that behave like real lists. *Inbox* appears above the Focus Lists once **Getting Things Done® Inbox** is turned on under **Settings > Tasks**. It is a real list where new captures land for triage. ### Creating a List[​](#creating-list "Direct link to Creating a List") On iPad, tap the **Add** chip at the bottom of the lists panel and choose **New List** or **New List Group**. On iPhone, tap the **Add** row at the bottom of the lists panel and choose the same. Give the list a name, pick a color, and choose a group. Touch and hold any list for its quick actions: **Edit**, **Change Statuses**, **Manage Lists**, **Manage Groups**, **Publish to LAN**, **Archive**, and **Delete**. See [Lists and List Groups](/docs/ios/lists-and-list-groups.md). ## Focus Lists[​](#focus-lists "Direct link to Focus Lists") * **All** shows every task except those hidden by a paused tag, held back by a future start date, or living in a list excluded from *All*. * **Today** shows tasks due today, plus whatever else your **Today & Lists** settings pull in: overdue tasks, starred tasks, and tasks you are still working on. * **Starred** collects every starred task. * **Scheduled** shows tasks with a future start date that are currently hidden. * **Done** shows what you have completed. With a hardware keyboard, `⌘1` to `⌘5` jump between them, and `⌘0` opens the Inbox. See [Focus Lists](/docs/ios/focus-lists.md). ## Capturing Tasks[​](#capturing "Direct link to Capturing Tasks") ### The Add Button and Quick Add[​](#quick-add "Direct link to The Add Button and Quick Add") The floating `+` button below the task list does two things: * **Tap** it to open the editor for a new task in the current list. * **Touch and hold** it to open **Quick Add**, a small card that floats above the keyboard for fast capture. Type a title and press Return; the task is filed and the card stays open, ready for the next one. Press Return on an empty card to close it. Quick Add carries a priority menu beside the title and capsules for the destination list, dates, and tags, so a task can arrive already filed. See [Quick Add](/docs/ios/quick-add.md). ### Quick Open[​](#quick-open "Direct link to Quick Open") Tap the list name at the top of the task list (or press `⇧⌘O`) and a search card drops in. Leave it empty and it lists your recently modified tasks and recently accessed lists; type a few letters and it matches tasks and lists by name. Press Return to open the highlighted result. See [Quick Open](/docs/ios/quick-open.md). ### Mail to 2Do[​](#email-capture "Direct link to Mail to 2Do") Turn on **Settings > Mail to 2Do** and 2Do gives you a private email address. Anything sent to it becomes a task: the subject becomes the title and the message text becomes the notes. Numbered lines arrive as a checklist, and subject instructions such as `due(tomorrow)`, `list(Work)`, and `priority(!!!)` file the task as it arrives. See [Mail to 2Do](/docs/ios/email-to-2do.md). ### The Share Sheet[​](#share-extension "Direct link to The Share Sheet") Share text, a link, a web page, a photo, or a video from any app to **2Do** and the share sheet opens a small capture screen where you can set the list, start and due dates, tags, and notes before saving. The list picker shows each list's sections under its name. Choose a section and 2Do files the shared task there. See [Sections in the List Picker](/docs/ios/task-sections.md#list-picker). ### Siri and Shortcuts[​](#siri-capture "Direct link to Siri and Shortcuts") 2Do ships native actions for the Shortcuts app, so you can create, find, complete, move, and open tasks from any shortcut, or run them by name with Siri. See [Automate with Shortcuts](/docs/ios/shortcuts-actions.md) and [Siri and Shortcuts](/docs/ios/siri-and-shortcuts.md). ## Tasks, Projects, and Checklists[​](#task-types "Direct link to Tasks, Projects, and Checklists") 2Do has three task types that work together: * **Task**: a single item. It can carry notes, tags, dates, alerts, a location, an action, and attachments. It cannot hold sub-tasks of its own. * **Project**: a parent for related tasks. Each child carries its own dates, alerts, and tags, and appears on its own in your Focus Lists. * **Checklist**: a parent for items that only matter together. Children cannot carry their own dates, though they can carry tags, and the whole checklist behaves as one item in Focus Lists. Choose the type while composing a new task, or convert an existing one at any time by touching and holding it and choosing **Convert**. See [Projects and Checklists](/docs/ios/projects-and-checklists.md). ## Task Sections[​](#task-sections "Direct link to Task Sections") Divide a long list, or your Inbox, into named sections such as *Bookings*, *Packing*, and *At Home*. Tap **Add** at the bottom of the lists panel and choose **Add Section**, then drag tasks, projects, and checklists onto its title. The list's sort still applies inside each section, so a list sorted by due date shows its own date groups in every section. Tap a section title to collapse the section, and touch and hold it to rename, duplicate, move, or delete the section. On a device with Apple Intelligence, touch and hold a list's name in the lists panel and choose **Auto-Create Sections** to have 2Do put the loose tasks into new, named sections. **Auto-Name Section** in a section's menu names it after its tasks. Both read only your task titles, and the work happens on your iPhone or iPad. See [Task Sections](/docs/ios/task-sections.md). ## The Task Editor[​](#editor "Direct link to The Task Editor") Tap a task to open its editor. On iPhone the editor is presented over the list; on iPad it fills the editor pane beside it. The header carries the checkmark, the priority control, previous and next arrows that follow the list order, and a **More** menu. Below the title, each property row slides open its own panel: * [Start date, due date, and duration](/docs/ios/dates-and-durations.md) * [Alerts](/docs/ios/alarms-and-nagging.md), including the per-task **Ring as Alarm** switch * [Repeat](/docs/ios/repeating-tasks.md) * [Tags](/docs/ios/tags.md) * [Locations](/docs/ios/nearby-locations.md) * [Action](/docs/ios/actions.md): call, message, mail, visit, or a web search * Attachments: photos and voice notes See [The Task Editor](/docs/ios/task-editor.md). ![The task editor on iPhone](https://downloads.2doapp.com/resources/img/2do-ios/ioseditors.png) ## Natural Language Input[​](#natural-language-input "Direct link to Natural Language Input") Type a new task the way you would say it. 2Do marks the details it recognizes with a soft capsule and fills in their fields as you type. A tag you type appears after you add a space, leave the title, or save. The detected text is taken out of the title when you save, along with helper words such as `starting` that lead into it. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/nlpios_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/nlpios_poster.png) ``` Pack the school bag tomorrow at 7pm #family => due tomorrow 7:00 PM, tag family Renew the passport on 5 September !!! => due 5 September, High priority Tidy the desk every weekday at 5pm => due the next weekday at 5:00 PM, repeats Monday to Friday Home repairs from 19 July until 21 July => starts 19 July, due 21 July Post the letters /errands => saved to the Errands list ``` A date on its own is the due date. A start word such as `starting`, `starts`, `begins`, or `from` in front of a date sets the **start date** instead, and it can lead a range so the task gets a start and a due date in one line. Dates, times, start dates, ranges, repeats, alerts, durations, priority, stars, tags, lists, and locations you have already saved can all be typed this way, in any of ten languages. Each language has its own supported words and word order, so not every everyday phrase is recognized. It works in the task editor for a new task and in [Quick Add](/docs/ios/quick-add.md), and you can turn it on or off for either under **Settings > Tasks > Natural Language Input**. [Learn more](/docs/ios/natural-language-input.md). ## Notes, Markdown, and Task Links[​](#notes-markdown "Direct link to Notes, Markdown, and Task Links") Task notes are styled Markdown as you type, with a toolbar for bold, italic, strikethrough, highlight, and bulleted or numbered lists. A **Markdown Preview** flips the notes into a rendered view, **Insert Date & Time** stamps the current date at the cursor, and 2Do collects every link it finds so you can open them from one menu. Notes can also point at other tasks. Type `@{` and a picker opens at the cursor; choose a task and 2Do inserts a link that resolves by title on every device your notes reach. See [Notes and Markdown](/docs/ios/notes-and-markdown.md) and [Task Links](/docs/ios/task-links.md). ## Dates and Durations[​](#dates "Direct link to Dates and Durations") A task has up to three time-shaped properties, each optional: **Start Date**, **Due Date**, and **Duration**. Together they decide when a task is visible, when it is held back as scheduled, and how far ahead 2Do surfaces it. * **Due date only**: the task appears in *Today* on the day, then stays overdue until you complete it. * **Start date only**: the task stays hidden until the start date arrives. * **Start and due**: hidden before the start, visible through the working window, in *Today* on the due date. * **Due, due time, and duration**: the duration creates an effective start time before the deadline, so a task due at 3:00 PM with a 30-minute duration becomes active around 2:30 PM. Tasks with a future start date are hidden until then. Reveal them from the *Scheduled* Focus List or the clock chip on the sort bar. See [Dates and Durations](/docs/ios/dates-and-durations.md). ## Stars and Priorities[​](#stars "Direct link to Stars and Priorities") Two ways to mark a task as more important, with deliberately different jobs. A **star** says *I want this in front of me right now*; it is quick to flip on and off, and the *Starred* Focus List collects every starred task. A **priority** (None, Low, Medium, High) says *this task is intrinsically important*; it drives sort order and is a first-class field in search. On iOS 26 and iPadOS 26 with Apple Intelligence turned on, [Auto-Prioritize](/docs/ios/auto-prioritize.md) can work out priorities for a whole selection of tasks for you. See [Stars and Priorities](/docs/ios/stars-and-priorities.md). ## Tags and Tag Groups[​](#tags-nearby "Direct link to Tags and Tag Groups") Tags attach context to a task without depending on which list it lives in: GTD contexts such as `@home` or `@waiting`, people, energy levels, status flags. Open the **Tags** page of the utility panel to see them all with their counts, tap one to filter the task list, and tap more to combine them. Related tags can be gathered into **tag groups**. See [Tags](/docs/ios/tags.md). ### Pausing a Tag[​](#pause "Direct link to Pausing a Tag") Any tag can be **paused**. While a tag is paused, every task carrying it disappears from view: *All*, *Today*, your lists, and search. Swipe a tag in the **Tags** panel to pause it, and swipe again to resume. The paused chip on the sort bar reveals paused tasks without resuming the tag. See [Tags](/docs/ios/tags.md). ## Locations and Nearby Alerts[​](#nearby "Direct link to Locations and Nearby Alerts") Attach a location to a task and 2Do becomes context-aware. The **Nearby** page of the utility panel lists tasks with locations sorted by distance, and **Settings > Nearby** turns on **Nearby Alerts**, which alert you about nearby tasks while taking their start and due dates into account. You can also set a maximum distance. Distances use the units for your region. See [Nearby and Locations](/docs/ios/nearby-locations.md). ## Calendar Events in Your Lists[​](#calendar "Direct link to Calendar Events in Your Lists") 2Do can show your Apple Calendar day right above your tasks. Under **Settings > Calendar Events**, grant calendar access and turn on **Show Calendar Events in Lists** to keep the day bar across your regular lists, or **Show Calendar Events in Today** to keep it to *Today* only. Uncheck any calendars you would rather leave out; new calendars are included automatically. Tap a date in the bar to see that day's events, tap an event for its details, and expand the bar for a fuller day view. The bar stays out of Smart Lists, project views, and search. The **Calendar Events** page of the utility panel lists the same events in a scrollable panel. See [Calendar Events](/docs/ios/calendar-integration.md). ## The Mini Calendar[​](#mini-calendar "Direct link to The Mini Calendar") The mini calendar filters your task list by date. Tap a day to show only that day's tasks, drag across days for a range, and tap inside the current selection to clear it. Days with tasks starting or due are marked with a heat tint or dots, set under **Settings > Appearance > Busy Days**. Drag a task onto a date to set its due date. On iPhone the calendar is a drawer you open from the lists panel; on iPad it is a permanent part of the editor pane. See [The Mini Calendar](/docs/ios/mini-calendar.md). ## Search and Smart Lists[​](#search "Direct link to Search and Smart Lists") Tap **Search** in the bar above your tasks to filter the current view. Beyond plain text, 2Do understands a structured syntax: `type:`, `tags:`, `taggroups:`, `locations:`, `lists:`, `groups:`, and `modified:` / `created:` / `completed:`. Filters combine with AND by default; put `OR` between two of them for alternatives: ``` type: hiprio AND duethisweek tags: ~ OR !waiting type: overdue OR tags: urgent ``` The first line finds high-priority tasks due this week that are not tagged `waiting`; the `~` keeps tasks with no tags in the results. The second finds tasks that are overdue or tagged `urgent`. The **Search Presets** sheet builds `type:` expressions for you, with **Match ALL filters** and **Match ANY filter** modes and a `!` control for exclusions. A **Search Scope** button switches between **All Lists** and **Current List Only**, and **Sounds-Like Search** finds close spellings. Save the current query as a **Smart List** and it becomes a permanent entry in the lists panel. See [Search](/docs/ios/search.md) and [Smart Lists](/docs/ios/smart-lists.md). ## The Focus Filter[​](#focus-and-smart "Direct link to The Focus Filter") The Focus button on the sort bar switches a list between everything it holds and only the tasks matching the conditions you pick: **Overdue**, **No Due Date**, **In Progress**, **Today**, **Tomorrow**, **This Week**, **Next 3 Days**, **Next 7 Days**, **Next 30 Days**, **Next 6 Months**, **Next 12 Months**, **High Priority**, and **Starred**. Touch and hold the button to change those conditions, or set them per list under **Settings > Tasks > Focus Mode**. Each list remembers its own choices. See [Focus Filter](/docs/ios/focus-filter.md). ## Repeating Tasks[​](#repeating "Direct link to Repeating Tasks") Any task can repeat: daily, weekly, every two weeks, monthly, quarterly, yearly, or on a custom rule such as specific weekdays or the second Tuesday of each month. The choice that matters most is whether the task repeats from its due date (fixed schedules such as rent on the 1st) or from completion (chores that restart when you finally do them). See [Repeating Tasks](/docs/ios/repeating-tasks.md). ## Alerts and Alarms[​](#notifications "Direct link to Alerts and Alarms") A task can carry one alert or many, relative to its dates or fixed to a specific date and time, with an optional sound. **Settings > Alerts & Badge** holds the rest: * **Default Reminders** add an alert to dated tasks for you. * **Nagging** repeats an alert until you deal with it, and sets the snooze interval. * **Ring alerts as alarms** (iOS 26.1 and later) makes timed alerts ring like a Clock alarm: full screen, through Silent mode and Focus, and until you dismiss them. You can set this differently for any single task from its **Alerts** panel. * **Exclusions > List Alerts** turns off alerts for any list you would rather not hear from. See [Alerts and Nagging](/docs/ios/alarms-and-nagging.md). ## Batch Editing[​](#batch-editing "Direct link to Batch Editing") When several tasks need the same treatment, tap **Batch Editing** in the bar above your tasks. Every checkbox becomes selectable, and a drawer appears at the bottom with seven commands: **Dates**, **Tag**, **Priority**, **Location**, **Share**, **Move**, and **Delete**. You can also touch and hold a task's checkmark and drag down the column to select a run of tasks in one gesture. With Apple Intelligence turned on, **Priority** also offers [Auto-Prioritize](/docs/ios/auto-prioritize.md), which suggests a priority for every task you selected. See [Batch Editing](/docs/ios/batch-editing.md). ## Undo and Redo[​](#undo-redo "Direct link to Undo and Redo") Common task and list changes can be undone and redone, including completing, editing, moving, tagging, deleting, and batch edits. Swipe left with three fingers to undo and right with three fingers to redo, or shake the device when **Shake to Undo** is on in iOS Settings. See [Undo and Redo](/docs/ios/the-2do-screen.md#undo-redo). ## Drag and Drop[​](#drag-drop "Direct link to Drag and Drop") Touch and hold a task and drag it to move it somewhere useful: onto a list in the lists panel to move it there, onto **Today** to make it due today, onto **Starred** to star it, onto **Done** to complete it, onto **Scheduled** to pick a start date, onto a tag in the **Tags** panel to apply that tag, or onto a date in the mini calendar to set its due date. In the other direction, drag a tag or a location from its panel onto a task row to apply it. See [Drag and Drop](/docs/ios/drag-and-drop.md). ## Pinch and Touch and Hold[​](#pinch-tap-hold "Direct link to Pinch and Touch and Hold") ### Pinch to Change Detail[​](#pinch "Direct link to Pinch to Change Detail") Pinch the task list inward for less detail and outward for more. The three display modes are **Compressed** (titles and dates), **Normal** (titles, notes, and dates), and **Extended** (multi-line titles, tags, notes, and dates). The same modes are available under **Settings > Appearance > Display > Display Mode**. ### Touch and Hold a Task[​](#tap-hold "Direct link to Touch and Hold a Task") Touch and hold any task for its full menu: **Details**, its action, **Delete**, quick due-date and start-date rows, **Mark**, **Priority**, **Note**, **Alarm**, **Tag**, **Attachment**, **Copy**, **Convert**, **Move**, and **Share**. See [Pinch and Touch and Hold](/docs/ios/pinch-zoom-and-tap-hold.md). ## Collapsible Sections[​](#sections "Direct link to Collapsible Sections") When the task list is grouped into sections, tap a section header to collapse or expand it. Each list remembers which of its sections are closed. If the header you tap is pinned at the top while you scroll, the first tap scrolls back to the header's own place in the list instead. Tapping the title of a [section you name yourself](#task-sections) collapses or expands it even while pinned. ## List Sharing and Collaboration[​](#list-sharing "Direct link to List Sharing and Collaboration") Share a list over iCloud to plan a trip with friends or keep a grocery list with your household. Touch and hold a list name and choose **Share via iCloud…**, confirm, then invite people and choose who can edit. To start with an empty shared list, open **Settings > Sharing > New Shared List…**. Tasks, notes, dates, attachments, sections, and manual task order are shared. You keep your own list name, color, list sort, Focus filters, and alert choices. For a deadline that must mean the same moment in different countries, use **Fixed Time Zone**; tasks otherwise use floating local time by default. See [Share Lists over iCloud](/docs/ios/icloud-list-sharing.md) for invitations, permissions, personal settings, and time-zone examples. Everyone needs a supported version of 2Do on iOS 18, iPadOS 18, or macOS 14 or later. The shared list uses iCloud separately from the sync service for your other lists. For people on the same trusted network, [Share Lists over Wi-Fi](/docs/ios/list-sharing.md) works without a cloud account. The publishing device must stay awake and reachable. ## Backups and Restore[​](#backups "Direct link to Backups and Restore") 2Do backs up your local database on a schedule you choose under **Settings > Backups & Export**: every 24 or 48 hours, keeping as many as 30. From the same screen you can **Create Backup Now**, **Restore from File…**, **Backup to Email**, or **Export Lists…**. Opening a backup shows a browser of the lists inside it. **Restore Selected** is non-destructive and duplicates the lists you pick into a **Restored** group. **Restore Everything…** replaces your current database and quits 2Do so it can reopen on the restored data. See [Backups](/docs/ios/backups.md). ## Password Protection[​](#password "Direct link to Password Protection") **Settings > Security** protects 2Do and selected lists with a four-digit passcode, with Face ID or Touch ID for unlocking. The same pane hides lists from the panel entirely, and holds your archived lists. See [Password Protection](/docs/ios/password-protection.md). ## Printing[​](#printing "Direct link to Printing") 2Do prints a formatted copy of your tasks. With a hardware keyboard, `⌘P` prints the list on screen; touch and hold a single task and choose **Print...**; or select tasks in batch editing and choose **Print...** from **Share**. The options screen offers **Include Sections**, **Include Sub-tasks**, **Include Notes**, **Include Tags**, and a **Font Size**, then hands the page to AirPrint. With **Include Sections** on, the page keeps the list's [sections](#task-sections), each with its title and description. See [Printing](/docs/ios/printing.md). ## Widgets[​](#widgets "Direct link to Widgets") 2Do's widgets keep your tasks in view without opening the app: a list widget you point at any list, a Today widget, and a set that shows what is current and what is up next, in home-screen and lock-screen sizes. Add them the standard iOS way by touching and holding the home screen. See [Widgets](/docs/ios/widgets.md). ## Control Center[​](#control-center "Direct link to Control Center") 2Do adds two Control Center controls. **New Task** opens 2Do ready to add a task, and **Today** opens your *Today* list. Add them from the iOS Control Center editor. ## Siri and Shortcuts[​](#shortcuts "Direct link to Siri and Shortcuts") The Shortcuts app can drive 2Do directly: create a task with dates, tags, alerts, recurrence, and sub-tasks; find tasks by property; complete, move, duplicate, or delete them; pause a tag; and open a task or a list. Run them from any trigger Shortcuts can fire, or by name with Siri. See [Automate with Shortcuts](/docs/ios/shortcuts-actions.md). ## Apple Watch[​](#watch "Direct link to Apple Watch") 2Do on Apple Watch shows what is next, then your Today, Overdue, and Tomorrow tasks, and lets you complete, defer, delete, or add a task from your wrist. Complications put the same information on your watch face. See [Apple Watch](/docs/ios/apple-watch.md). ## URL Schemes[​](#url-schemes "Direct link to URL Schemes") The `twodo://` x-callback-url scheme can create tasks, open lists, run searches, and return task identifiers to other automation tools. See [URL Schemes](/docs/ios/url-schemes.md). ## Keyboard Shortcuts[​](#keyboard "Direct link to Keyboard Shortcuts") Connect a Magic Keyboard, a Smart Keyboard, or any Bluetooth keyboard and you can work through your tasks without touching the screen. A few that pay for themselves quickly: | Shortcut | Action | | --------- | --------------------------------- | | `⌘N` | New Task | | `⇧⌘2` | Quick Add | | `⇧⌘O` | Quick Open | | `⌘F` | Search | | `⌘0`-`⌘5` | Jump to the Inbox or a Focus List | | `T` / `Y` | Due Today / Due Tomorrow | | `D` / `K` | Defer / Schedule | | `S` | Toggle Starred | | `⌘/` | Mark as Completed | | `⌃⌥⌘N` | New Window (iPad) | See [Keyboard Shortcuts](/docs/ios/keyboard-shortcuts.md) for the full reference. ## Settings[​](#settings "Direct link to Settings") Settings is organized into panes: **General**, **Appearance**, **Tasks**, **Today & Lists**, **Calendar Events**, **Alerts & Badge**, **Nearby**, **Sync**, **Mail to 2Do**, **Wi-Fi Sharing**, **Security**, **Backups & Export**, and **Diagnostics**. The main screen also holds the help links (**Walkthrough Tutorial**, **User Manual**, and **Leave a Review**) with 2Do's version at the bottom. Open it from the lists panel: the **Settings** chip on iPad, the **Settings** row on iPhone. See [Settings](/docs/ios/settings.md). --- # Share Lists over iCloud Collaborate with other 2Do users by sharing a list over iCloud. Add tasks, make plans, and keep track of what is done together. A household can keep one grocery list; friends can plan a trip with sections for bookings and packing; colleagues can work through a project checklist. Changes reach the other people through iCloud, even when you are on different networks. You invite people to a particular list. They do not gain access to your other lists, and you each keep your own Apple Account. The person who shares the list is its **owner** and decides who may edit it or only view it. ## Before You Start[​](#requirements "Direct link to Before You Start") Everyone needs a version of 2Do that includes iCloud list sharing. Each person must be signed in to iCloud on their device with their own Apple Account, using Apple's **Settings** app on iPhone or iPad, or **System Settings** on a Mac. 2Do uses that device account for sharing; there is no separate iCloud sign-in inside 2Do. Supported devices are iPhones and iPads running **iOS 18 or iPadOS 18 or later**, and Macs running **macOS 14 or later**. See the [Mac guide](/docs/macos/icloud-list-sharing.md) for its steps. This form of sharing is for 2Do on those Apple devices. The shared list is not available through 2Do for Android, Apple's Reminders app, or a web browser. macOS 13 and older 2Do versions cannot participate. Check the devices you need before sharing a list that currently syncs to them. Your other lists keep their sync service You do not need to select iCloud in **2Do's Sync settings**. List sharing works independently of that choice: your other lists can use Dropbox, Todoist, another service, or no sync service at all. [Wi-Fi sharing](/docs/ios/list-sharing.md) is a separate option for people on the same local network. ## Share an Existing List[​](#share-existing "Direct link to Share an Existing List") 1. In the lists panel, touch and hold the **list name** you want to share. 2. Tap **Share via iCloud…**. 3. Read the confirmation, then tap **Share**. The list moves into **Shared Lists** and uses iCloud sharing from now on. 4. In Apple's sharing screen, choose the people to invite and whether they may make changes or only view the list. Use one of the offered options to send the invitation. ![The confirmation that appears before you share a list via iCloud](https://downloads.2doapp.com/resources/img/2do-ios/icloud-sharing-share-confirm.png) How this list syncs Sharing an existing list moves it out of your normal sync account. The list, including its tasks, projects, checklists, and sections, continues syncing between your supported Apple devices through iCloud sharing. Your other lists keep using your chosen sync service. With the recommended [iCloud sync method](/docs/ios/sync-with-icloud.md), the shared list continues to use the same iCloud account, with no extra sync setup. If you use Todoist, Apple Reminders, CalDAV, or another sync service, that service no longer syncs this list. Changes made on the remote service are no longer pulled into the shared list in 2Do, and changes to the shared list are not sent back to that service. Your shared list iCloud Sharing Your Apple devices Your other lists Your usual sync service Your devices Your shared list keeps syncing between your own Apple devices. You can also open the list's **Edit** screen and use the action under **Sharing**. Only regular lists can start iCloud sharing. The Inbox, Smart Lists, Focus Lists, and lists already shared over Wi-Fi cannot be shared this way. Move the work you want to share into a regular list first, or stop its Wi-Fi sharing. ## Create a New Shared List[​](#create "Direct link to Create a New Shared List") 1. Open **Settings > Sharing** and tap **New Shared List…**. 2. Enter the list's **Name**, choose its **Color**, and leave **Share via iCloud** on. 3. Tap **Add**, then invite people from Apple's sharing screen. ![The New List screen with Share via iCloud turned on](https://downloads.2doapp.com/resources/img/2do-ios/icloud-sharing-new-list.png) Invite people when you are ready You can also turn on **Share via iCloud** while creating a list from the lists panel. If you close the invitation screen without sending an invitation, the new list remains. Use **Manage Sharing…** when you are ready to invite someone. ## Accept an Invitation[​](#accept "Direct link to Accept an Invitation") Open the invitation on an iPhone, iPad, or Mac with a supported version of 2Do installed, and follow Apple's prompts to accept it in 2Do. Use the Apple Account the owner invited. The list appears in **Shared Lists**, with a mark showing that someone shared it with you. Accepting the same invitation again does not create another copy. Open 2Do on your other supported Apple devices signed in to the same iCloud account to receive the list there too. Each device can have its own list name, color, and view settings. ## Work on the List Together[​](#shared-content "Direct link to Work on the List Together") People with editing permission work with the list much like any other list. Adding, changing, completing, or deleting a task changes the shared work for everyone. The list includes: * Task titles, task notes, attachments, priorities, stars, completion, and task actions such as opening a link. * Start and due dates, times, durations, time-zone choices, repeats, and task reminders. * Projects, checklists, and their sub-tasks. * Sections, their names and order, and the tasks in each section. * Tag and location assignments, dragged task order, and project sorting. Plan a trip together For example, one person can organize a trip list into sections while another adds booking details to the tasks. Both see that organization. If you simply prefer to view the list by due date, change your list's sort instead of dragging tasks into a new shared order. Task details can show who added a task and who last edited it. This helps you identify a recent change; it is not a full history of every edit. If people change the same detail before syncing, one change may replace the other. Changes to task notes can merge, but avoid using simultaneous edits to the same sentence as a conversation. Put discussion in your usual messaging app. You can read the downloaded list offline and, with editing permission, make changes for later sync. Open 2Do when you are online again to send and receive updates. Pull down on the task list to request a sync. Background updates depend on the device, network, and iOS, so do not assume every change appears immediately on a closed app. ## Keep Your Own View[​](#personal-settings "Direct link to Keep Your Own View") Sharing the work does not require everyone to organize their screen the same way. These choices are personal and are not sent to the other people sharing the list: | Your choice | What it affects | | ------------------------------ | ------------------------------------------------------------------------------------------------------ | | List name and color | How this copy appears to you. The initial name comes from the shared list; later renaming is personal. | | Group and sidebar position | Where you keep the list on this device. | | List sort and view options | Your chosen sort field and direction, combined view, and display of completed tasks. | | Focus | Your Focus filter, inclusion in All, Today, and Done, and personal task ordering inside Focus Lists. | | Show Paused and Show Scheduled | Which tasks your views show. These do not change a task's shared start date or due date. | | Visibility and expansion | Whether you hide or archive the list locally, and which projects you expand. | | Alerts and protection | Whether you mute this list, snooze an alert, or protect your local copy with a passcode. | | List notes | Notes about the list itself. Notes inside a task are shared. | List settings belong to each device's copy. Some app-wide preferences, including Show Paused and Show Scheduled, can also sync between **your own devices** through your iCloud account. They never change another member's preferences through list sharing. Tags and locations assigned to tasks are shared. Your existing tag's paused state remains personal; receiving a task with that tag does not change it. Tags and locations may also sync through your own ordinary sync service. Silence alerts on this device To silence this list's reminders on this device, open **Settings > Alerts & Badge > Exclusions > List Alerts** and turn the list off. Editing a reminder on the task itself changes the shared reminder instead. See [Alerts and Nagging](/docs/ios/alarms-and-nagging.md). A local passcode does not hide shared content A local passcode protects access on your device. It does not hide shared tasks, task notes, or attachments from invited members, including people with view-only permission. Keep private material in an unshared list or in your personal list notes. ## Choose the Right Time for Everyone[​](#time-zones "Direct link to Choose the Right Time for Everyone") Tasks use **floating time by default**. A task set for 9:00 AM stays at 9:00 AM on the local clock, including after travel. People in different time zones see the same clock time, which may represent different moments. This suits a daily routine you want to do at a local time. Turn on **Fixed Time Zone** when a shared time should mean the **same moment for everyone**, such as a submission deadline or an online meeting. A deadline fixed at 5:00 PM in Dubai appears at 1:00 PM in London in January. The different displayed times refer to the same deadline. | What you are planning | Which to use | | ------------------------------------------------------------ | ---------------------------------------------- | | A grocery list with no time-sensitive deadline | Leave times off, or use a date without a time. | | A reminder you want at 9:00 AM wherever you are | Leave **Fixed Time Zone** off. | | A shared deadline that everyone must meet at the same moment | Turn **Fixed Time Zone** on. | Open the task's start or due date panel, set a time, and turn on **Fixed Time Zone**. The switch is also available in the alerts panel when the task has a timed alert. It is offered automatically for timed tasks in an iCloud shared list; you do not need to enable the general **Time Zone Support** preference first. Time-zone choices are shared This is one setting for the task's start time, due time, and timed alerts. Changing it is a shared edit, not a personal display choice. A date without a time remains a calendar date. Completing a shared repeating task is also shared; floating time does not create a separate routine or completion record for each person. The switch uses your device's current time zone when you turn it on. There is no separate zone picker. Turning it off keeps the dates and clock times currently displayed on your device, so check those values before changing the mode of a shared task. For travel, daylight saving, and editing examples, see [Floating and Fixed Time](/docs/ios/dates-and-durations.md#fixed-time). ## Manage People and Permissions[​](#permissions "Direct link to Manage People and Permissions") As the owner, touch and hold the list name and choose **Manage Sharing…**. You can also open **Settings > Sharing**, tap the list under **Shared by Me**, and choose **Manage Sharing…**. Apple's sharing screen lets you invite people, change their access, or remove them. ![Sharing settings with a list shared by you and a list shared with you](https://downloads.2doapp.com/resources/img/2do-ios/icloud-sharing-settings.png) Editing permission includes changing and deleting shared task content. View-only permission lets someone read the list and personalize their local view, but not complete, reorder, or edit its tasks. When permissions change, the other person's app must receive that update. After access becomes view-only, their pending edits cannot continue to be sent. Invitations are private to the people you invite; 2Do does not offer a public list that anyone with a link can join. Removing someone stops their access to future shared updates. It does not erase information they have already read or copied. ## Leave a List or Stop Sharing[​](#stop "Direct link to Leave a List or Stop Sharing") If someone else owns the list, touch and hold its name and choose **Leave List…**, then confirm. This removes the list and its tasks from your device and leaves the share. It does not delete the owner's list or stop sharing for the other people. If the owner removes you or stops sharing, 2Do keeps your last downloaded copy as **No longer shared**. You can read it, but it no longer receives updates and cannot be edited. Choose **Remove List…** to delete that local copy. If the owner invites you again, accepting can restore access to the retained list. If you own the list, choose **Stop Sharing…** from its touch-and-hold menu, then choose: * **Keep List** to keep an editable, ordinary list on this device. It can use your normal sync service again. * **Delete List** to remove your list and end sharing. * **Cancel** to leave sharing as it is. ![The Stop Sharing confirmation with Keep List, Delete List, and Cancel](https://downloads.2doapp.com/resources/img/2do-ios/icloud-sharing-stop-confirm.png) After stopping in Apple's sharing screen Once you have already stopped sharing in Apple's participant screen, the remaining choice is **Keep List** or **Delete List**; Cancel cannot restore the share. If that screen's window closes before you choose, 2Do keeps the local list. Other members retain a read-only copy until they remove it themselves. ## Sharing and Your Sync Service[​](#sync "Direct link to Sharing and Your Sync Service") Both the owner's copy and received copies use iCloud sharing separately from ordinary [sync](/docs/ios/sync.md). They are not exported to Dropbox, Todoist, Reminders, or another configured service. You cannot turn off syncing for a shared list with **Exclude From Sync** while keeping it shared. Reset Database removes local data **Replace Local Data** for your ordinary sync service preserves iCloud shared lists and their personal settings. **Reset Database** is different: it discards the local database, including personal settings and changes that have not yet been sent. Do not use it as a routine way to refresh a shared list. Replace Contents affects everyone The owner also has **Replace Contents…** under **Settings > Sharing > Shared by Me** after tapping a list. This replaces the shared contents with this device's copy, affecting everyone. Use it only when you deliberately want that copy to replace the shared work, not when you simply want to receive newer changes. ## If Something Does Not Update[​](#troubleshooting "Direct link to If Something Does Not Update") ### If an invitation does not arrive[​](#missing-invitation "Direct link to If an invitation does not arrive") Apple handles iCloud invitations, and an invitation email may not reach the recipient. 2Do does not show pending invitations inside the app. If someone has not received yours, send the link manually: 1. Open **Settings > Sharing** and tap the list under **Shared by Me**. 2. Choose **Manage Sharing…**, then **Copy Link** in Apple's sharing screen. 3. Send the link to the invited person in a message or email. They should open it on a supported device with 2Do installed and accept using the Apple Account you invited. Copying the link does not make the list public or give access to someone you have not invited. If the person is not listed in **Manage Sharing…**, invite them there first. ### If a shared list does not update[​](#if-a-shared-list-does-not-update "Direct link to If a shared list does not update") Open 2Do on both devices, check the internet connection, and request a sync. Confirm that each person is signed in to the Apple Account used for the invitation and still has access to the list. Signing into a different account does not transfer the old account's membership. If an invitation fails, read the message, check the account and connection, then open the invitation again. If it is no longer valid, ask the owner to invite you again through **Manage Sharing…**. An interrupted sync can resume when the connection returns. If 2Do reports full iCloud storage, make space before trying again. A task or attachment that exceeds the service's size limit may remain only in your local copy; reduce the affected content and edit it again before checking the other device. Seeing a local item does not by itself confirm that others received it. Check your personal view settings For a list that looks different without missing changes, compare the personal sort, Focus, Show Paused, and Show Scheduled settings first. For a time that looks different, check [whether it is fixed or floating](#time-zones). --- # iPad Features 2Do for iPad carries the same features as the iPhone app. What differs is the layout: there is room to keep more on screen at once, and the iPad adds a persistent editor pane, a hardware-keyboard menu bar, and multiple windows. ## The Four Panels[​](#layout "Direct link to The Four Panels") 2Do for iPad is built from four panels: 1. **Lists**: your Focus Lists, lists, list groups, and Smart Lists, with a footer of chips holding **Add** (which offers **New List**, **New List Group**, and [Add Section](/docs/ios/task-sections.md) for the list on screen), **Tags**, and **Settings**. 2. **Tasks**: the tasks inside the selected list, with the sort bar above them. 3. **The editor pane**: the selected task's editor, and, when nothing is selected, **RECENT** plus the mini calendar and the task overview. 4. **Utility panel**: **Tags**, **Nearby**, and **Calendar Events**, chosen with the segmented control at the top. Each panel has a minimum width it will not go below, so how many fit at once depends on the size of the window. When the window is wide enough, 2Do shows the lists panel, the task list, and the widest trailing panel side by side. When it is not, the panels slide over one another instead. tip Keep the **Calendar Events** page of the utility panel open while you plan your day. Comparing your task list against real appointments before you defer or schedule anything saves a lot of rescheduling later. ## Sliding Between Panels[​](#sliding-panels "Direct link to Sliding Between Panels") * Swipe the task list toward the **leading** side to reveal **Lists**. * Swipe toward the **trailing** side to move through the **editor pane** and then the **utility panel**. * Tap the **Tags** chip at the bottom of the lists panel to open the utility panel directly. * Swipe back toward the middle to return to the task list. Selecting a task opens it in the editor pane, so you can walk down a list and read each task without ever leaving it. Tapping a project or checklist row opens it in the editor pane too. ## The Editor Pane[​](#editor-pane "Direct link to The Editor Pane") The editor pane is a fixed part of the layout rather than something that appears and disappears. It holds three things stacked from top to bottom: the editor region, the mini calendar, and the task overview. When the pane is tall enough, all three stay in view while you edit a task; when it is shorter, opening a task expands the editor region over the two below it. ### Recent[​](#recents "Direct link to Recent") With no task selected, the editor region shows **RECENT**: up to five tasks you last opened in the pane, newest first, each with the mark for its kind. Tap a row to open that task again. Each row carries a **Remove** cross. Tapping it drops the task from the list straight away, with no confirmation. It does not delete or change the task, and opening that task again puts it back at the top of the list. The history is kept on this device only. It never syncs, and 2Do drops entries for tasks that have been deleted, completed, hidden, or locked. If there is no history at all, the pane shows **No Task Selected** instead. ### The Mini Calendar[​](#mini-calendar "Direct link to The Mini Calendar") The mini calendar is a permanent part of the pane on iPad, with no drawer to open or close. Tap a day to filter your tasks to it, drag across days for a range, and tap inside the current selection to clear it. Drag a task onto a date to set its due date. See [The Mini Calendar](/docs/ios/mini-calendar.md). ### Task Overview[​](#statistics "Direct link to Task Overview") The task overview shows four counts across the lists included in **All**, regardless of which list you are viewing. Tap a count to open a related search. | Count | What it includes | | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **Overdue** | Unfinished tasks whose due date or due time has passed, according to your overdue settings. | | **Due Today** | Unfinished tasks due or starting today. It also includes overdue tasks when **Include overdue items** is on, and tasks with earlier start dates when **Include 'Still Working On' tasks** is on. Both options are under **Settings > Today & Lists > Today List**. | | **Done Today** | Tasks completed today, regardless of when they were due. | | **Tomorrow** | Unfinished tasks due or starting tomorrow. | A task's duration can also bring it into **Due Today** or **Tomorrow** before its due date, even without a **Start Date**. **Due Today** is therefore broader than a count of today's due dates alone. With **Include overdue items** on, 3 overdue tasks and 3 other tasks due today can show as **3 Overdue** and **6 Due Today**. The figures overlap, so do not add them together. There is no separate overdue setting for the task overview; changing this option also changes the **Today** list. The task overview summarizes dates across lists; the [counts beside list names](/docs/ios/focus-lists.md#counters) show overdue and unfinished tasks in each list. The **Today** list can include a future task just because it is starred, while **Due Today** does not count a task for its star alone. The task overview also counts scheduled tasks that match their dates even when those tasks are hidden in the task list, and excludes paused tasks from the unfinished totals. These differences mean its counts need not match those in the left panel. ## Content Width[​](#content-width "Direct link to Content Width") **Settings > Appearance > Display > Content Width** adds padding around your tasks for easier reading. It is a three-step slider. How far you can go depends on how wide the task panel actually is. A narrow panel is held to the first step, a medium one to the middle step, and the widest step needs a genuinely wide panel. 2Do also trims the padding when it would squeeze the task rows below a comfortable width, so the setting is a request rather than a fixed number of points. Content Width applies to every window, and it appears only on iPad. ## The Fast-Scroll Rail[​](#fast-scroll "Direct link to The Fast-Scroll Rail") At the widest effective Content Width, a list holding two or more sections shows a slim rail of bars along the edge of the task list, one bar for each section. * **Tap** a bar to scroll to that section. * **Touch and hold, then drag** along the rail to scrub between sections. A small capsule names the section as you move. For the sections a sort creates, such as *Today* or *Overdue*, a bar's length and shading follow how many tasks the section holds, and the capsule shows that number, so a glance shows where the list is heavy. Bars for [sections you name yourself](/docs/ios/task-sections.md) take you to those sections the same way, but their length and the number in the capsule don't show how many tasks a section holds. ## Display Modes[​](#pinch "Direct link to Display Modes") Pinch the task list inward for less detail and outward for more. The three modes are: * **Compressed**: titles and dates. * **Normal**: titles, notes, and dates. * **Extended**: multi-line titles, tags, notes, and dates. The same modes are available under **Settings > Appearance > Display > Display Mode**, and, with a hardware keyboard, from the **View > Display Mode** menu. See [Pinch and Touch and Hold](/docs/ios/pinch-zoom-and-tap-hold.md). ## The Expanded Row[​](#extended-row "Direct link to The Expanded Row") Tap the control at the trailing end of any task row and the row expands in place, revealing a strip with **None**, **Low**, **Medium**, and **High** priority plus the star. It is the fastest way to triage a freshly captured list without opening a single editor. To set priorities for a whole selection at once, see [Auto-Prioritize](/docs/ios/auto-prioritize.md). On a wide iPad panel, every task row also carries a slim band in its list's color, so you can tell at a glance where a task belongs when several lists are shown together. ## Hardware Keyboard and the Menu Bar[​](#keyboard "Direct link to Hardware Keyboard and the Menu Bar") Connect a Magic Keyboard, a Smart Keyboard, or any Bluetooth keyboard and 2Do's full command set becomes available. * Hold `⌘` for half a second to see the commands that apply right now, grouped under **File**, **Edit**, **Task**, and **View**. * On iPadOS 26 the same commands appear in the menu bar at the top of the screen. * Commands that do not apply to what you have selected are dimmed. On iPad the up and down arrow keys move the selection *and* retarget the editor pane, so you can read down a list one task at a time. See [Keyboard Shortcuts](/docs/ios/keyboard-shortcuts.md). tip With a keyboard attached, hold `⌘` to see the shortcuts for whatever you are doing right now. It is the fastest way to learn the command set without guessing. ## Multiple Windows[​](#multiple-windows "Direct link to Multiple Windows") Press `⌃⌥⌘N`, or use **File > New Window**, to open a second 2Do window. Each window keeps its own list selection, task selection, search, scroll position, and panel state, and you can drag tasks from one window into the other. See [Multiple Windows](/docs/ios/multiple-windows.md). ## Split View, Slide Over, and Stage Manager[​](#split-view "Direct link to Split View, Slide Over, and Stage Manager") 2Do runs alongside other apps in **Split View**, floats over them in **Slide Over**, and works in resizable **Stage Manager** windows. note When the window becomes narrow, 2Do switches to the sliding layout. That is deliberate: it keeps the task list readable instead of squeezing every panel into a cramped space. --- # Keyboard Shortcuts Connect a Magic Keyboard, a Smart Keyboard, or any Bluetooth keyboard to your iPhone or iPad and you can work through your tasks without touching the screen. The commands are the same on both devices, apart from the iPad's window command. Hold `⌘` for half a second to see the commands that apply right now, grouped under **File**, **Edit**, **Task**, and **View**. On iPadOS 26 the same commands sit in the menu bar at the top of the screen. Anything that does not apply to what you have selected is dimmed. There are two kinds of shortcut: * **Bare keys**, single keys such as `T` or `3`, sometimes with `⇧`, `⌥`, or `⌃`. They act on the selected task or tasks while the task list has the keyboard. They never fire while you are typing, so search, Quick Add, and the editor's fields keep their normal behavior. * **`⌘` commands**, which are the app's menu commands and work wherever their target is available. If you also use 2Do on a Mac you will recognise many of these, but the two apps do not carry an identical set. The Mac has its own [Keyboard Shortcuts](/docs/macos/keyboard-shortcuts.md) reference. ## Capture[​](#capture "Direct link to Capture") | Shortcut | Action | | -------- | -------------------------------------------------- | | `⌘N` | New Task | | `⌥⌘N` | New Project | | `⌃⌘N` | New Checklist | | `⇧⌘N` | New List | | `⇧⌘2` | [Quick Add](/docs/ios/quick-add.md) | | `⌃⌥⌘N` | [New Window](/docs/ios/multiple-windows.md) (iPad) | ## Finding and Navigating[​](#navigation "Direct link to Finding and Navigating") | Shortcut | Action | | ----------- | --------------------------------------------------------- | | `⌘F` | Search | | `⇧⌘O` | [Quick Open](/docs/ios/quick-open.md) | | `⌘0` | Inbox | | `⌘1` | All | | `⌘2` | Today | | `⌘3` | Starred | | `⌘4` | Scheduled | | `⌘5` | Done | | `⌘↑` / `⌘↓` | Previous List / Next List | | `↑` / `↓` | Previous Task / Next Task | | `Return` | Open the selected task | | `C` | Toggle Project View for the selected project or checklist | On **iPhone**, the arrow keys move the selection only, and `Return` opens the task. On **iPad**, the arrow keys also open the selected task in the editor pane, or retarget the pane if it is already open, so you can read down a list one task at a time. For the lists themselves, see [Focus Lists](/docs/ios/focus-lists.md). ## Priority and Star[​](#priority "Direct link to Priority and Star") With the task list focused and one or more tasks selected: | Shortcut | Action | | -------- | -------------------------- | | `0` | Priority None | | `1` | Priority Low | | `2` | Priority Medium | | `3` | Priority High | | `=` | Increase priority one step | | `-` | Decrease priority one step | | `S` | Toggle Starred | See [Stars and Priorities](/docs/ios/stars-and-priorities.md). ## Dates and Scheduling[​](#dates "Direct link to Dates and Scheduling") | Shortcut | Action | | ----------- | --------------------------------- | | `T` | Due Today | | `Y` | Due Tomorrow | | `⌃T` | Start Today | | `D` | Defer... | | `K` | Schedule... | | `X` | Duration... | | `]` / `[` | Due date: add / subtract a day | | `⇧]` / `⇧[` | Due date: add / subtract a week | | `.` / `,` | Start date: add / subtract a day | | `⇧.` / `⇧,` | Start date: add / subtract a week | | `⌥[` | Remove Due Date | | `⌥,` | Remove Start Date | | `⇧⌘[` | Remove Due Time | | `⇧⌘D` | Due Date in the editor | | `⇧⌘S` | Start Date in the editor | [Dates and Durations](/docs/ios/dates-and-durations.md) explains how start dates, due dates, and durations work together. ## Tag, Move, and Convert[​](#tag-move-convert "Direct link to Tag, Move, and Convert") | Shortcut | Action | | -------- | ----------------------- | | `L` | Tag... | | `⇧⌘T` | Tags in the editor | | `M` | Move | | `⇧⌘M` | Move in the editor | | `⇧⌘L` | Locations in the editor | | `⌥⇧⌘1` | Convert To a Task | | `⌥⇧⌘2` | Convert To a Project | | `⌥⇧⌘3` | Convert To a Checklist | ## Jump Straight to One Detail[​](#one-detail "Direct link to Jump Straight to One Detail") With exactly one task selected in the list, five commands open that task's editor on the detail you asked for. The editor slides in if it is not already showing, so you never have to open the task first and then look for the right field: | Shortcut | Opens the editor on | | -------- | ------------------- | | `⇧⌘S` | Start Date | | `⇧⌘D` | Due Date | | `⇧⌘T` | Tags | | `⇧⌘L` | Locations | | `⇧⌘M` | Move | Select more than one task and the same five commands hand you the batch pickers instead, so one visit to a picker changes every task you selected. ## Complete, Duplicate, and Delete[​](#complete "Direct link to Complete, Duplicate, and Delete") | Shortcut | Action | | -------- | ------------------ | | `⌘/` | Mark as Completed | | `⌥⌘/` | Mark as Incomplete | | `⌘D` | Duplicate | | `⌘⌫` | Delete | Completing a task moves the selection on to the next one, so you can work down a list with repeated `⌘/`. ## Perform an Action[​](#action "Direct link to Perform an Action") | Shortcut | Action | | -------- | -------------- | | `P` | Perform Action | `P` runs whatever the task's action is: a call, a message, an email, a map location, or a link. See [Actions](/docs/ios/actions.md). ## Batch Editing[​](#batch "Direct link to Batch Editing") | Shortcut | Action | | -------- | ----------------------------------------------------- | | `⌘B` | Enter or leave batch editing | | `Return` | Add or remove the highlighted task from the selection | | `⇧⌘S` | Start Date | | `⇧⌘D` | Due Date | | `⇧⌘T` | Tag | | `⇧⌘P` | Priority | | `⇧⌘L` | Location | | `⇧⌘C` | Share | | `⇧⌘M` | Move | Every bare key above applies to the whole selection, so you can select ten tasks and press `T` once to make them all due today. See [Batch Editing](/docs/ios/batch-editing.md). `⇧⌘P` opens the priority picker with **Auto-Prioritize** listed first. It works out a priority for every task you selected. See [Auto-Prioritize](/docs/ios/auto-prioritize.md). ## Editing a Task[​](#editing "Direct link to Editing a Task") These apply while the editor has the keyboard. Each one jumps straight to a field or a panel, so changing one detail never needs a scroll: | Shortcut | Action | | ------------ | ---------------------------- | | `Esc` / `⌘W` | Close the editor | | `⌘Return` | Save the task you are adding | | `⌘E` | Edit Note | | `⌘'` | Alerts | | `⌘;` | Repeat | | `⌘B` | Action | | `⇧⌘S` | Start Date | | `⇧⌘D` | Due Date | | `⇧⌘T` | Tags | | `⇧⌘L` | Locations | | `⇧⌘M` | Move | | `⌥⌘0` | Priority None | | `⌥⌘1` | Priority Low | | `⌥⌘2` | Priority Medium | | `⌥⌘3` | Priority High | | `⌥⌘S` | Toggle Starred | One chord means two things depending on which surface has the keyboard: `⌘B` enters batch editing in the task list and opens the action panel in the editor. note On iPad the editor pane and the task list can be on screen together. Whichever one you last worked in owns the keyboard: with the editor focused you get the shortcuts above, and after you tap back into the task list the bare keys take over again. ## View[​](#view "Direct link to View") | Shortcut | Action | | -------- | ---------------------------------------------------- | | `⌘J` | Toggle the [Focus Filter](/docs/ios/focus-filter.md) | | `⌘K` | Show or hide scheduled tasks | | `⌘U` | Show or hide paused tasks | | `⌥⌘→` | Show or hide the Tags panel | The **View** menu also carries a **Display Mode** submenu with **Extended**, **Normal**, and **Compressed**, which does the same thing as pinching the task list. See [Pinch and Touch and Hold](/docs/ios/pinch-zoom-and-tap-hold.md). ## Sync, Print, Undo, and Redo[​](#standard "Direct link to Sync, Print, Undo, and Redo") | Shortcut | Action | | -------- | -------- | | `⌘S` | Sync | | `⌘P` | Print... | | `⌘Z` | Undo | | `⇧⌘Z` | Redo | `⌘S` is available once you have set up a sync method. `⌘P` prints the task list on screen; see [Printing](/docs/ios/printing.md). While you are typing, `⌘Z` undoes your typing; everywhere else it undoes the last change you made to your tasks. note On a read-only list, commands that would change a task are unavailable. tip Five bare keys cover most daily work: `D` to defer, `K` to schedule, `S` to star, `T` for due today, and `1` to `3` for priority. Combined with batch editing, they turn a long tidy-up into a few keystrokes. --- # Share Lists over Wi-Fi 2Do can share a list directly between copies of the app on the same local network, with no cloud service and no separate account. One person **publishes** a list; anyone else running 2Do on the same network can find it, **subscribe**, and, when the publisher allows it, edit tasks, with changes travelling both ways. A single published list can serve several subscribers, and it works between iPhones, iPads, and Macs. This is a feature for people on the same network. It is not a replacement for [Sync](/docs/ios/sync.md), which keeps *your own* devices in step through a service such as iCloud or Dropbox. ![The Publish to LAN sheet with the shared name, access options, and a passcode](https://downloads.2doapp.com/resources/img/2do-ios/listpublish.png) Want to share with people away from this network? Use [iCloud list sharing](/docs/ios/icloud-list-sharing.md). It uses private invitations and keeps the list up to date without the publishing device staying awake. ## How It Works[​](#how "Direct link to How It Works") Sharing has two roles: * **Publisher**, the device that owns the list and shares it out. It stays the source of truth for that list. * **Subscriber**, anyone who finds the shared list on the network and takes a live copy of it. When you subscribe, 2Do imports the list as a normal local list on your device and keeps it up to date with the publisher's copy. If the publisher shares it as **Read & Write**, your edits travel back and merge into their copy too. ## Requirements[​](#requirements "Direct link to Requirements") * Both devices are on the **same Wi-Fi or local network**. * **Local network permission.** The first time 2Do needs it, iOS asks whether 2Do may find devices on your local network. The prompt reads *"2Do uses your Wi-Fi network to share task lists with nearby 2Do users, and to tell your other devices when there are changes to sync so they update sooner."* Allow it, or discovery cannot work. You can review it later under **iOS Settings > Privacy & Security > Local Network > 2Do**. * **The publishing device stays awake and on the network** while sharing. Nearby 2Do users can subscribe while this device is awake. ## Publish a List[​](#publish "Direct link to Publish a List") 1. Touch and hold a list in the list panel. 2. Choose **Publish to LAN**. 3. Set the **Shared name**, which is what nearby users see. It starts as the list's own name; changing it here does not rename your local list. 4. Choose **Access**: * **Read & Write**: *"Subscribers can edit tasks; changes sync back to you."* * **Read-only**: *"Subscribers get a live copy but can’t make changes."* 5. Leave **Require passcode** on, or turn it off. It is on to start. With it on, 2Do shows a **6-digit code** you can copy, along with **Generate a new passcode** and the note *"Share this code out loud or by message."* 6. Tap **Publish**. The screen switches to its live state, headed **Sharing on Wi-Fi**, and adds a **Recently Connected Subscribers** section covering the past week (*"No recent connections in the last 7 days."* until someone joins). Tap **Done** to close it. The list now carries a **Published on LAN** indicator above your tasks, and its touch-and-hold menu item reads **Published on LAN** so you can reopen the same screen. Publishing a protected list exposes its tasks If the list is [password-protected](/docs/ios/password-protection.md), 2Do asks you to confirm **Publish this protected list?** first. Publishing gets past that local lock: subscribers can read, and with Read & Write also edit, the tasks inside without your app passcode. Only publish protected lists to people you trust, and keep the passcode requirement on. Only normal lists can be published. **Publish to LAN** does not appear for Smart Lists, [Focus Lists](/docs/ios/focus-lists.md), the Inbox, or lists you have subscribed to from someone else. ### Changing the Passcode[​](#passcode "Direct link to Changing the Passcode") Tap **Generate a new passcode** to replace the code. While people are connected, 2Do confirms first: **Generate a new passcode?** *"The current passcode stops working right away. Anyone subscribed will need the new code to keep syncing."* ## Find Shared Lists[​](#discover "Direct link to Find Shared Lists") On the receiving device, open **Settings > Sharing** and tap **Browse Shared Lists**. The **Shared Lists** screen searches the network while it is open, and a status strip at the bottom counts what it finds, for example *3 devices nearby*, with a refresh button beside it. * On **iPhone**, each nearby device gets its own section, with its shared lists underneath. * On **iPad** at full width, nearby devices fill a sidebar on the left and the selected device's lists fill the pane on the right, split into **SUBSCRIBED** and **AVAILABLE** groups. Each row shows the shared name, a **Read-only** label where that applies, and a lock when a passcode is required. ## Subscribe to a List[​](#subscribe "Direct link to Subscribe to a List") 1. Tap **Subscribe** next to the list you want. The button is unavailable while that device is offline. 2. If the list is protected, 2Do names the protected list and the publishing device, then asks for the 6-digit code. Type the six digits the publisher gave you. A wrong code says *"That code didn't match. Try again."* 3. 2Do downloads the list and adds it to your list panel as a normal local list, marked **Subscribed from LAN**. You can rename the subscribed list, change its color, or move it into a list group locally. Those changes stay on your device and do not affect the publisher's copy. ## Stop Sharing or Unsubscribe[​](#stop "Direct link to Stop Sharing or Unsubscribe") **If you publish the list** and want to stop: 1. Touch and hold the list and choose **Published on LAN**. 2. Tap **Stop Sharing** and confirm **Stop sharing this list?** (*"Subscribers will no longer receive updates from this list."*) Sharing stops immediately and your subscribers stop receiving updates. **If you subscribe to a list** and want to leave it, tap **Unsubscribe** on that list's row in **Shared Lists**. Unsubscribing removes the local copy 2Do confirms with **Unsubscribe List?**, explaining that unsubscribing removes the local copy of the list and its tasks from this device. The publisher's copy and everyone else's subscription are unaffected. tip Hand off a list quickly: publish it as Read & Write, let someone on the same network subscribe and add their tasks, then **Stop Sharing** when you are done. The tasks they added stay in your original list. ## Good to Know[​](#sync-behavior "Direct link to Good to Know") * **The whole task travels**: fields, projects, checklists, and sub-tasks, along with task attachments, tags, and locations. * **Sharing and your sync account work together.** You can publish a list that already syncs with your [sync account](/docs/ios/sync.md). Edits subscribers send back land in your list like any other change and carry on to your own devices from there. * **A subscribed copy stays on this device.** It mirrors someone else's list, so it does not go into your own sync account; it is kept in step directly with the publisher. * **When the publisher goes offline,** your copy stays readable: *"This device is offline. Subscribed lists stay readable from the last sync and changes resume when it's back online."* * Alerts on a shared list's tasks fire on your device too. To keep the list but silence it, turn that list off under **Settings > Alerts & Badge > Exclusions > List Alerts**. tip Keep the publishing device awake and on the network during a working session. Subscribers only receive live changes while it is reachable. ## Security and Privacy[​](#security "Direct link to Security and Privacy") For trusted networks only: traffic isn't encrypted Wi-Fi sharing is meant for **networks you trust**, such as a home or small-office network. Shared task data is **not encrypted** as it travels across the network. The optional **6-digit passcode** is the only gate: with it off, anyone running 2Do on the same network can subscribe and read, or with Read & Write edit, the list. Do not publish sensitive lists on public or untrusted networks. * **Changing the passcode disconnects current subscribers.** The old code stops working right away, and existing subscribers have to enter the new one to keep syncing. * **There is no approval step.** Nobody has to be accepted individually; the passcode is the whole access control. Leave it on unless you truly want the list open to everyone on the network. --- # Lists and List Groups Use lists to organize tasks for work, home, or any other part of your day. Your lists appear in the **lists panel** on the left. ## What Is in the Panel[​](#focus-lists "Direct link to What Is in the Panel") The panel holds three kinds of entry, in order: * **Focus Lists**: *All*, *Today*, *Starred*, *Scheduled*, and *Done*. They are not containers; they are built-in perspectives across every list you have. Tap one to jump to it, or press `⌘1` to `⌘5`. * **Your lists**, gathered into groups. Lists you do not put in a group of your own sit together under the standard **Lists** group. * **Smart Lists**, saved searches that behave like real lists. *Inbox* appears above the Focus Lists once **Getting Things Done® Inbox** is turned on under **Settings > Tasks > New Tasks**. It is a real list where captures land for triage, not a Focus List. Press `⌘0` to reach it. For what each Focus List shows and how to keep a list out of one, see [Focus Lists](/docs/ios/focus-lists.md). ![The lists panel with the Focus Lists above your own lists and list groups](https://downloads.2doapp.com/resources/img/2do-ios/iosinbox.png) ## Creating a List[​](#creating "Direct link to Creating a List") * **iPad**: tap the **Add** chip at the bottom of the panel and choose **New List** or **New List Group**. * **iPhone**: tap the **Add** row at the bottom of the panel and choose **New List** or **New List Group**. The list editor opens with everything a list carries. The same **Add** menu lists **Add Section** under the name of the list on screen, plus **Auto-Create Sections** on devices with Apple Intelligence. See [Task Sections](/docs/ios/task-sections.md). ## The List Editor[​](#edit-delete "Direct link to The List Editor") Touch and hold a list and tap **Edit** to reopen it later. The editor holds: * **Name**. * **Color**, chosen from the swatches or from **Custom** for anything else. A list's color runs through every task in it, which is how you tell at a glance where a task belongs in *All* or *Today*. * **Group**, the list group this list belongs to. * **Exclude From**, with switches for **All**, **Today**, and **Done**. See [Focus Lists](/docs/ios/focus-lists.md). * **Exclude From Sync** keeps an ordinary list out of your sync service. If it was already syncing, 2Do deletes it from that service and your other devices. An iCloud shared list has its own sharing sync and cannot use this switch to stop syncing. * **Archive** and **Delete** at the bottom. A list that is shared, published over Wi-Fi, or subscribed from another device is labeled as such beneath its name. tip Color-code by domain (Work, Home, Personal), use [tags](/docs/ios/tags.md) for contexts that cut across lists such as `@phone` or `@errands`, and save the combinations you keep repeating as [Smart Lists](/docs/ios/smart-lists.md). ## Touch and Hold a List[​](#long-press "Direct link to Touch and Hold a List") Touching and holding a list opens its quick actions. Exactly which appear depends on the kind of list: * **Lock** or **Unlock** for a password-protected list. See [Password Protection](/docs/ios/password-protection.md). * **Edit** opens the list editor described above. * **Change Statuses** offers **Mark all as Done** and **Mark all as Undone** across the whole list, which is handy for a shopping list you have finished or a routine you are about to reuse. * **Manage Lists** opens the reorder and visibility screen. * **Manage Groups** opens the list-group screen. * **Publish to LAN** shares the list with other 2Do users on your network, and reads **Published on LAN** once it is live. See [Share Lists over Wi-Fi](/docs/ios/list-sharing.md). * **Duplicate** appears on Smart Lists, so you can copy a saved search and adjust the copy. * **Auto-Create Sections** uses Apple Intelligence to organize the list's unfinished, unsectioned tasks. It prefers suitable existing sections and creates new ones where needed. It appears on your own lists and the Inbox on devices that support Apple Intelligence. See [Auto-Create Sections](/docs/ios/task-sections.md#auto-create). * **Share via iCloud…** invites other 2Do users to a regular list. A shared list instead offers **Manage Sharing…** and **Stop Sharing…** for its owner, **Leave List…** for a member, or **Remove List…** after access ends. * **Archive** puts the list away without deleting it. * **Delete** removes the list and everything in it. ![The quick actions shown after touching and holding a list](https://downloads.2doapp.com/resources/img/2do-ios/listoptions.png) ## Managing and Reordering Lists[​](#reordering "Direct link to Managing and Reordering Lists") **Manage Lists** shows active lists, including hidden ones. Use it to reorder lists or change their visibility with the switches beside them. At least one list must stay visible. Tap **Create New List...** at the top to add a list. To restore an archived list, use **Settings > Security > Archived**. **Manage Groups** does the same for list groups: create a group, rename one, reorder them, or delete one. To move a list into a group, open the list editor and change its **Group**. Tap a group's header in the panel to collapse or expand it. Collapsing a group hides its rows without changing the lists' visibility settings. tip If your panel is getting long, group related lists and collapse the groups you are not working in. It costs one tap to open a group again and it keeps the panel readable. ## Excluding a List from Focus Lists[​](#exclude-from-focus "Direct link to Excluding a List from Focus Lists") Some lists should not feed *All* or *Today*: a Someday list, an archive of reference material, recurring chores you only want surfaced by their alerts. Touch and hold the list, tap **Edit**, and turn on the matching switch under **Exclude From**. The list and its tasks stay exactly where they are and remain reachable; they simply stop appearing in the Focus List you excluded them from. ## Archiving a List[​](#archiving "Direct link to Archiving a List") Archive a list to keep its tasks while removing it from the lists panel. This can be useful for a finished project or a packing list you use once a year. To archive a list, touch and hold it, tap **Archive**, and confirm. The list leaves the panel, but nothing is deleted. Its tasks can still appear in Smart Lists and the Done Focus List. To restore a list: 1. Open **Settings > Security** and select **Archived**. 2. If Security settings are locked, tap **Unlock** and enter your passcode. 3. Find the list, tap **Unarchive**, and confirm. **Archived** includes archived lists even when their **List Visibility** switch is off. Restoring a list keeps its visibility and password-protection settings. If it is still hidden, open **Privacy** and turn it on under **List Visibility** to show it in the lists panel. ### Archive, Exclude, and Hide[​](#archive-vs-hide "Direct link to Archive, Exclude, and Hide") Choose the option that matches what you want to change: * **Exclude From All / Today / Done** keeps the list in the panel and excludes its tasks from the Focus Lists you choose. * **List Visibility**, under **Settings > Security > Privacy**, lets you hide a list from the panel. Hidden lists and their tasks still sync. * **Archive** removes the list from the panel and keeps it available under **Archived** until you restore it. ## Shared and Subscribed Lists[​](#shared "Direct link to Shared and Subscribed Lists") Use [iCloud list sharing](/docs/ios/icloud-list-sharing.md) to invite people to a list and receive each other's edits wherever you are. The list's tasks, sections, and manual task order are shared. List names, colors, sort views, Focus filters, and alert choices remain personal. Read-only members can view the work but cannot change it. You can also [share over Wi-Fi](/docs/ios/list-sharing.md) with people on the same network. Lists you own, received lists, and read-only copies have marks in the lists panel so you can tell their roles apart. ## Indicators on List Names[​](#indicators "Direct link to Indicators on List Names") Each row can carry: * **Counts**: overdue on the left in red, and tasks not yet done on the right. What appears is set by **Counts on lists** under **Settings > Today & Lists**: **None**, **Overdue items**, or **Overdue + Undone**. Sub-tasks are not counted here; their counts sit on the project or checklist itself. * A small **glowing dot**: white when the list holds a task due today, red when it holds an overdue task. It never appears on *All*, *Done*, or *Scheduled*. * A **color band** that changes to mark a Smart List, a list excluded from *All*, a published or subscribed Wi-Fi list, a shared calendar, or a locked list. ## The Default Capture List[​](#gtd-inbox "Direct link to The Default Capture List") Two related settings sit under **Settings > Tasks > New Tasks**: * **Getting Things Done® Inbox** turns on the *Inbox*, a real list where new captures land for triage. * **Default list** picks which list new tasks go to, and **Always Use Default List** sends every new task there regardless of which list you were looking at. **Always Use in Quick Add** applies the same rule to [Quick Add](/docs/ios/quick-add.md) only. To send one new task somewhere else as you write it, type a slash and the start of the list name in the title, as in `Buy milk /errands` or `Clear out the loft /homeproj` for *Home Projects*. Capitals and spaces are ignored, the list banner in the editor or the list capsule in Quick Add follows along as you type, and a closing slash is optional, so `/Health/` works too. If nothing matches, the words stay in the title and the task keeps its current list. If two lists share a name, 2Do picks the one shown first in the list picker. Web addresses and file paths are left alone. A list whose name ends in a slash is matched by typing the start of its name. See [Natural Language Input](/docs/ios/natural-language-input.md). ## Dragging Tasks onto Lists[​](#drag-organize "Direct link to Dragging Tasks onto Lists") The lists panel is a drop target. Touch and hold a task, drag it onto a list, and it moves there. The Focus Lists accept drops too, applying a state change instead of a move: **Today** sets the due date to today, **Starred** stars the task, **Done** completes it, and **Scheduled** asks for a start date. See [Drag and Drop](/docs/ios/drag-and-drop.md). Drag a section's title onto a list in the lists panel the same way to move the section there with all of its tasks. ## Smart Lists[​](#smart-lists "Direct link to Smart Lists") Smart Lists live in the panel alongside your real lists. They are saved searches, so their contents change as your tasks do, and they hold nothing of their own. See [Smart Lists](/docs/ios/smart-lists.md). ## Sections Inside a List[​](#sections "Direct link to Sections Inside a List") To give a long list some order without splitting it into several lists, divide it into named sections, such as *Fruit*, *Vegetables*, and *Pantry* in a grocery list. The Inbox can have sections too. The list's sort still applies inside each section, and you can collapse, reorder, and move sections with their tasks. See [Task Sections](/docs/ios/task-sections.md). When you add or move tasks, the list picker shows each list's sections under its name, so you can file tasks straight into a section, one at a time or several at once in batch editing. See [Sections in the List Picker](/docs/ios/task-sections.md#list-picker). ## Projects and Checklists Are Task Types[​](#task-types "Direct link to Projects and Checklists Are Task Types") Projects and checklists are not lists. They are kinds of task, created from the type picker while you are composing, or by converting an existing task. See [Projects and Checklists](/docs/ios/projects-and-checklists.md). --- # The Mini Calendar Use the **mini calendar** to see busy days, filter tasks by date, and reschedule tasks by dragging. It shows task dates. To see appointments from Apple Calendar, use [Calendar Events](/docs/ios/calendar-integration.md). ![The mini calendar with a range of days selected](https://downloads.2doapp.com/resources/img/2do-ios/minicalendarfilter.png) ## Opening the Mini Calendar[​](#where "Direct link to Opening the Mini Calendar") * **iPhone**: tap the calendar button at the bottom of the lists panel. The calendar opens above your tasks. Use the close button in its header to dismiss it. It is unavailable when the window is too short to show it. * **iPad**: the calendar stays in the pane beside your tasks and has no close button. ## Moving Through the Months[​](#months "Direct link to Moving Through the Months") Use the arrows beside the month name to move between months. Tap the **month name** to return to the current month. ## Busy Days[​](#busy-days "Direct link to Busy Days") The calendar marks dates with tasks. Each task counts toward its due date, or its start date if it has no due date. Choose how those days are marked under **Settings > Appearance > Busy Days > Mini Calendar**: * **Heat Map**: a tint behind the date that deepens as the number of tasks rises. * **Dots**: small dots under the date, more dots for a busier day. * **None**: no markings at all. You can choose a different style for the mini calendar, the editor’s date pickers, and the Calendar Day Bar. ## Filter to One Day[​](#one-day "Direct link to Filter to One Day") **Tap a day** and the task list narrows to the tasks on that date. Tap the selected day again to clear the filter and go back to the whole list. This works whichever list you are in: *All*, *Today*, a regular list, or a Smart List. ## Filter to a Range of Days[​](#date-range "Direct link to Filter to a Range of Days") **Touch and drag across several days** to select an inclusive range, and the task list narrows to that span. Drag from Monday to Friday to see the working week, or across the weekend to plan errands. To clear a range, tap any day inside it. tip Combine a date range with a tag filter from the [Tags](/docs/ios/tags.md) page for a view such as "everything tagged `@shop` between Friday and Sunday". ## Defer a Task by Dragging[​](#defer "Direct link to Defer a Task by Dragging") **Drag a task from the list onto a date** in the mini calendar and its due date moves to that day. The day under your finger highlights as you go, so you can see where the task will land before you let go. You can reschedule tasks this way without opening the editor. tip If you only want to look ahead rather than reschedule, filter to the day first. If a task then belongs somewhere else, drag it onto the day you want. ## Clearing the Filter[​](#clear "Direct link to Clearing the Filter") If the task list looks shorter than you expected, the mini calendar may still be filtering it. Tap the selected day, or any day inside a selected range, to clear it. ## Related Pages[​](#related "Direct link to Related Pages") * [Dates and Durations](/docs/ios/dates-and-durations.md) explains how start dates, due dates, due times, and durations affect what you see. * [Calendar Events](/docs/ios/calendar-integration.md) covers your Apple Calendar events inside 2Do. * [The 2Do Screen](/docs/ios/the-2do-screen.md) shows where each panel sits. --- # Multiple Windows Sometimes one window is not enough: you want *Today* open while you plan a project in another list, or a reference checklist beside the list you are working through. On iPad, 2Do opens as many windows as you like, each with its own view of the same tasks. ## Opening a New Window[​](#open "Direct link to Opening a New Window") With a hardware keyboard attached, press `⌃⌥⌘N`, or choose **File > New Window** from the menu bar. You can also open a second window the standard iPadOS way, by dragging the 2Do icon from the Dock to the side of the screen or opening a new window from the app's icon menu. `⌘N` is not the shortcut for this: on iPad it stays **New Task**, the same as everywhere else in the app. Multiple windows are an iPad feature. On iPhone, 2Do runs in a single window. tip A second window is the quickest way to keep a reference list in view (shopping, project notes, a checklist you are working through) while you triage a different list in the first one. Size it narrow and park it beside the main window. ## Every Window Is Independent[​](#independent "Direct link to Every Window Is Independent") Each window is a separate view of the same database. The following belong to the window, so changing one leaves the other alone: * The **list, group, project, or checklist** currently selected. * The **task selection** and the highlighted row. * The **search field**: its text, its scope, its sounds-like setting, and any active date range. * The **scroll position** in both the lists panel and the task list. * Which **sections** are collapsed. * Which **panel** is currently landed on when the window is narrow enough to slide. So one window can sit on a single project while another runs an all-lists search, and neither disturbs the other. note A list's **sort order** and **Focus Filter** belong to the list, not to the window. Two windows showing the same list share those, so changing the sort in one changes it in the other. See [The Sort Bar](/docs/ios/the-2do-screen.md#sort-bar) and [Focus Filter](/docs/ios/focus-filter.md). tip Because search is per window, you can run an all-lists search in one window while the other stays pinned to a single project, which makes comparing "everything matching this" against "just this project" a glance rather than a round trip. ## Dragging Tasks Between Windows[​](#drag-between "Direct link to Dragging Tasks Between Windows") Touch and hold a task in one window and drag it into the other. Every drop target behaves the same as it does within a single window: drop on a list to file the task there, on **Today** to make it due today, on **Starred** to star it, on **Done** to complete it, on a tag in the **Tags** panel to apply it, or on a date in the mini calendar to set its due date. Both windows update as soon as the drop lands, so the task list you dragged from reflects the change immediately. See [Drag and Drop](/docs/ios/drag-and-drop.md). ## Windows Reopen the Way You Left Them[​](#persistence "Direct link to Windows Reopen the Way You Left Them") 2Do saves each window's state as you work, so a window you leave open comes back with the same list selected, the same search, and the same scroll position. Closing a window from the iPadOS app switcher discards that window's saved state, so it does not reappear later. --- # Natural Language Input (Type Your Task in Plain Words) Type a new task the way you would say it out loud and 2Do fills in the details for you. No panels to open, no pickers to scroll: write the sentence, and the date, time, repeat, alert, duration, priority, tags, list, and saved location come with it. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/nlpios2_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/nlpios2_poster.png) ## What It Does[​](#what-it-does "Direct link to What It Does") As you type a new task's title, 2Do marks the details it recognizes with a soft capsule behind the words and fills in their fields as you type. A tag you type appears after you add a space, leave the title, or save. The text stays fully editable, so you can go back and change any word at any point. When you save, the words 2Do used are taken out of the title, leaving just the task: ``` Call the dentist tomorrow at 3pm => saved as "Call the dentist", due tomorrow at 3:00 PM ``` Everything 2Do fills in is an ordinary field on the task, so you can adjust any of it afterwards in the usual way. ## Where It Works[​](#where "Direct link to Where It Works") Detection runs while you type the title of a **new** task, in two places: * The task editor, when you tap the `+` button for a new task. It carries on when you file that task with the lightning control at the top of the editor and start the next one. * [Quick Add](/docs/ios/quick-add.md), the card you reach by touching and holding the `+` button. The list, dates, and tags capsules on the card follow along as you type, so a glance shows where the task is going and when it is due. It applies to new tasks only. Editing the title of a task you saved earlier leaves that task's fields exactly as they are. ## Turning It On and Off[​](#on-off "Direct link to Turning It On and Off") Two switches under **Settings > Tasks > Natural Language Input** control it, and both are on out of the box: * **Quick Add** * **Task Editor** Turn either one off and that surface goes back to plain typing: your title is saved exactly as written and no fields are filled in. The note under the pair reads: "2Do reads dates, start dates, repeats, duration, priority, tags, lists and locations from what you type and fills them in." The **Quick Add** switch is the same setting as **Detect dates and details as you type in Quick Entry** on the Mac, so when your settings sync between your devices, one choice covers both. The switches appear only when your device is set to a language 2Do can read. See [Languages](#languages). ## What You Can Type[​](#what-you-can-type "Direct link to What You Can Type") The examples below are English. Each supported language has its own supported words and word order. Not every everyday phrase is recognized. tip Write the task first and the details last. `Collect the parcel tomorrow at 3pm #errands` reads the way you would say it, and it keeps the saved title clean. ### Dates[​](#dates "Direct link to Dates") ``` Call the plumber today => due today Book a car service tomorrow => due tomorrow Collect the parcel day after tomorrow => due the day after tomorrow Submit the timesheet Friday => due this coming Friday Book the dentist next Friday => due Friday of next week Plan the family trip next week => due Monday of next week Renew the gym membership next month => due the 1st of next month Pay the school fees on 5 September => due 5 September Order the textbooks September 5th => due 5 September Send the birthday card on the 5th => due the next 5th of the month File the insurance claim 9/5 => due 5 September, or 9 May, depending on your date order Water the plants in 3 days => due three days from today Review the household budget in 2 weeks => due two weeks from today ``` `9/5` means September 5 with month/day order and May 9 with day/month order. A date on its own is always the **due date**. To set a start date instead, use one of the [start words](#start-end). ### Times[​](#times "Direct link to Times") ``` Call mum at 3pm => due at the next 3:00 PM Take the medicine at 15:30 => due at the next 3:30 PM Break for lunch at noon => due at the next 12:00 PM Lock the front door at midnight => due at the next 12:00 AM Ring the clinic tomorrow at 3pm => due tomorrow at 3:00 PM ``` If the task has no due date, a time means its next occurrence: type `3pm` at nine in the morning and the task is due today, type it at six in the evening and it is due tomorrow. If a due date is already set, the time uses that date. ### Ranges[​](#ranges "Direct link to Ranges") Two dates or two times joined together give the task a start **and** a due date. ``` Work on the science project 19 July to 21 July => starts 19 July, due 21 July Study session 1pm-3pm => starts 1:00 PM, due 3:00 PM Join the food drive 9am-11am tomorrow => starts tomorrow 9:00 AM, due tomorrow 11:00 AM Family visit September 5-7 => starts 5 September, due 7 September ``` A start word can lead the range, and `to`, `until`, `till`, `through`, or a dash can join the two ends. Each end can carry its own time. ``` Project starts tomorrow 2pm - 8 September 3:40pm => starts tomorrow 2:00 PM, due 8 September 3:40 PM Field trip from 19 July until 21 July => starts 19 July, due 21 July Exam prep starting Monday 9am through Friday 5pm => starts Monday 9:00 AM, due Friday 5:00 PM ``` ### Start and End Words[​](#start-end "Direct link to Start and End Words") A start word in front of a date makes that date the **start date** and leaves the due date unchanged. The start words are `starting`, `starts`, `start`, `begins`, `beginning`, and `from`. ``` Work on the report starting tomorrow => starts tomorrow, no due date added Repaint the fence starts Monday => starts Monday Volunteer shift from 5 September => starts 5 September ``` An end word sets the due date. After a start date, use `ending`, `ends`, `finishes`, `finishing`, or `due`, optionally preceded by `and`. You can also write `is due` or `and is due`. ``` Tidy the store room starting tomorrow ending Friday => starts tomorrow, due Friday Prepare the workshop starting tomorrow at 3pm ending Friday at 5pm => starts tomorrow 3:00 PM, due Friday 5:00 PM Essay begins Monday, due Friday => starts Monday, due Friday Garden clean-up starts Saturday 9am and finishes Sunday 4pm => starts Saturday 9:00 AM, due Sunday 4:00 PM ``` Without an earlier start date, the other end words stay in the title as ordinary text; `due` is still read and removed. `Finish report ending Friday` is due Friday and saves as **Finish report ending**. tip Capsules show the values 2Do picked up. Some helper words, including `starting` and `ending`, are removed with the detected date even though only the date is marked. ### Repeats[​](#repeats "Direct link to Repeats") ``` Take vitamins tomorrow every day => due tomorrow, repeats daily Submit the timesheet every weekday => due the next weekday, repeats Monday to Friday Team review every Monday => due the next Monday, repeats weekly on Mondays Change the water filter Friday every 2 weeks => due Friday, repeats every second week Pay the rent every month on the 15th => due the 15th, repeats monthly Renew the membership every year on September 5 => due 5 September, repeats yearly Visit the parents every Monday and Wednesday => due the next Monday or Wednesday, repeats weekly on both days ``` The date can come before the repeat words instead, so `Renew the membership September 5 every year` works just as well. A repeat needs a date to count from. 2Do can infer one from some rules; otherwise include a date or time. See [Repeating Tasks](/docs/ios/repeating-tasks.md) for the full set of rules. ### Alerts[​](#alerts "Direct link to Alerts") Add an alert ahead of the due time by writing how much warning you want. ``` Ring the clinic tomorrow at 3pm alert 30m => due tomorrow 3:00 PM, alert 30 minutes before Submit the report Friday at 5pm alarm 1 hour before => due Friday 5:00 PM, alert one hour before Collect the cake Saturday at 4pm alert 10m, 30m => due Saturday 4:00 PM, alerts 10 and 30 minutes before ``` See [Alarms and Nagging](/docs/ios/alarms-and-nagging.md) for alert styles, sounds, and repeating alerts. ### Duration[​](#duration "Direct link to Duration") Put the length in square brackets. ``` Review the lesson plan [45m] => duration 45 minutes Deep clean the kitchen [2h] => duration 2 hours ``` Paired with a due date and time, a duration also gives the task a head start before its deadline. See [Dates and Durations](/docs/ios/dates-and-durations.md#duration-due). ### Priority and Star[​](#priority "Direct link to Priority and Star") Write the marker as a word of its own. ``` Buy milk ! => Low priority Return the library books !! => Medium priority Pay the electricity bill !!! => High priority Call mum * => starred Send the school form !!! * => High priority and starred ``` In English, leave a space before the mark, so `Say hello!` keeps its exclamation mark. Chinese, Japanese, and Korean text can place the mark directly after a character. ### Tags[​](#tags "Direct link to Tags") A word starting with `#`, with spaces around it, becomes a tag. Add as many as you like. ``` Plan the week #work => tag work Buy milk #errands #shopping => tags errands and shopping ``` Tags run together, such as `#sales#urgent`, are left in the title as plain text. See [Tags](/docs/ios/tags.md). ### Lists[​](#lists "Direct link to Lists") Type a slash followed by the start of a list name to file the task there. 2Do matches your lists as you type, ignoring capitals and spaces, and the list banner in the editor, or the list capsule in Quick Add, follows along. A closing slash is optional. ``` Buy milk /errands => saved to the Errands list Clear out the loft /homeproj => saved to the Home Projects list Book the dentist /Health/ next Tuesday => saved to the Health list, due next Tuesday ``` If nothing matches, the slash and the words after it stay in the title and the task keeps its current list. If two of your lists share a name, 2Do picks the one shown first in the list picker; choose the other one from the picker if you meant it. Web addresses and file paths are left alone. A list whose name ends in a slash is matched by typing the start of its name. ### Locations[​](#locations "Direct link to Locations") Type `@` followed by the name of a location you have already saved in 2Do. Spaces and capitals do not matter, the match appears as soon as the name is complete, and it stays while you keep writing after it. ``` Collect the prescription @ Pharmacy => location Pharmacy Meet Amina @centrallibrary tomorrow at 4pm => location Central Library, due tomorrow 4:00 PM Drop the books at @ Central Library and buy bread => location Central Library, title "Drop the books at and buy bread" ``` The whole name has to match: `@central` on its own sets nothing. When your saved names overlap, the longest one that fits wins. If the name is not one of your saved locations, 2Do sets no location and leaves the words in the title. See [Nearby and Locations](/docs/ios/nearby-locations.md) for saving a location and for what one does once it is set. ## Try These[​](#try-these "Direct link to Try These") Type any of these into a new task and watch the fields fill in. ``` Pick up the kids from school tomorrow at 3pm #family => due tomorrow 3:00 PM, tag family Pay the electricity bill on 5 September !!! => due 5 September, High priority Book a car service next Friday at 9am alert 1h => due Friday of next week 9:00 AM, alert one hour before Read to the children every day at 8pm => due at the next 8:00 PM, repeats daily Collect the prescription @ Pharmacy #errands => location Pharmacy, tag errands Call the landlord tomorrow at 11am !! * => due tomorrow 11:00 AM, Medium priority, starred Deep clean the kitchen Saturday [2h] #home => due Saturday, duration 2 hours, tag home Submit the timesheet every weekday at 5pm => due the next weekday at 5:00 PM, repeats Monday to Friday Plan the family trip next week /Home Projects/ => due Monday of next week, saved to Home Projects Study for the exam 9am-11am tomorrow #study => starts tomorrow 9:00 AM, due tomorrow 11:00 AM, tag study Water the plants Saturday every 2 weeks => due Saturday, repeats every second week Book the dentist in 3 days #health => due in three days, tag health Drop the donation off Friday at 1pm #community => due Friday 1:00 PM, tag community Work on the science project 19 July to 21 July !! => starts 19 July, due 21 July, Medium priority Paint the garden shed starting Saturday #home => starts Saturday, no due date added, tag home Revise for the maths test from Monday until Friday #study => starts Monday, due Friday, tag study Redecorate the hallway begins 5 September, due 8 September !! => starts 5 September, due 8 September, Medium priority Renew the car insurance every year on September 5 #home => due 5 September, repeats yearly, tag home ``` ## Keeping a Word Literal[​](#literal "Direct link to Keeping a Word Literal") Sometimes a word that looks like a date really is part of the task. Wrap it in double quotes and 2Do leaves it alone. The quotes are not marked, and they come off when you save. ``` Read "tomorrow" => saved as "Read tomorrow", with no date Read "tomorrow" tomorrow => saved as "Read tomorrow", due tomorrow ``` Extra spaces between words do not affect detection. Spacing elsewhere in the title is preserved; spaces around removed details are tidied. tip Use quotes for the odd task whose title really does contain a date word. ## Changing a Detail Afterwards[​](#editing "Direct link to Changing a Detail Afterwards") None of it is locked in. While the task is still open: * Change a **date**, **time**, or **duration** in its panel, or from the dates capsule in Quick Add, and 2Do updates the matching text in the title. Changing one end of a range can rewrite the whole range. If 2Do cannot read the replacement, it removes the detected text and keeps your change. * Change a **repeat**, **alert**, **priority**, **star**, **list**, **location**, or **tag** by hand and 2Do takes the words it detected out of the title instead. * Delete the detected words to restore the earlier value. If you changed that field yourself, your most recent choice stays. * Clear a field by hand and 2Do leaves it clear, and takes the matching words out of the title. ## Languages[​](#languages "Direct link to Languages") Natural Language Input reads English, German, Spanish, French, Italian, Dutch, Japanese, Korean, Chinese (Simplified), and Russian. Each supported language has its own supported words and word order. Not every everyday phrase is recognized. If your device is set to a language that is not on the list, the feature stays out of the way: the Settings switches do not appear, and titles are saved exactly as typed. ## Reference[​](#reference "Direct link to Reference") | What you type | What it sets | Example | | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- | ------------------------------------------------ | | `today`, `tomorrow`, `day after tomorrow`, `Friday`, `next Friday` | Due date | `Call the plumber tomorrow` | | `next week`, `next month` | Due date: Monday of next week, or the 1st | `Plan the trip next week` | | `5 September`, `September 5th`, `on the 5th`, `9/5` | Due date. `9/5` is September 5 with month/day order, May 9 with day/month order | `Pay the fees on 5 September` | | `in 3 days`, `in 2 weeks` | Due date counted from today | `Wash the towels in 3 days` | | `at 3pm`, `15:00`, `3:30pm`, `noon`, `midnight` (or `12pm`, `12am`) | Due time | `Ring the bank at 3pm` | | `19 July to 21 July`, `1pm-3pm`, `from Monday until Friday`, `starts tomorrow 2pm - 8 September 3:40pm` | Start and due together | `Homework help 1pm-3pm` | | `starting`, `starts`, `start`, `begins`, `beginning`, `from` before a date | Start date | `Sort out the garage starts Monday` | | `ending`, `ends`, `finishes`, `finishing`, `due` after a start date, optionally with `and`, or written as `is due` | Due date. Without a start date, only `due` is read | `Work on report starting tomorrow ending Friday` | | `every day`, `every weekday`, `every Monday`, `every 2 weeks`, `every month on the 15th`, `every year` | Repeat, counted from a date in the title or one 2Do can infer | `Walk after dinner tomorrow every day` | | `alert 30m`, `alarm 1h`, `alert 10m, 30m` | Alerts before the due time | `Call at 3pm alert 30m` | | `[45m]`, `[2h]` | Duration | `Iron the shirts [45m]` | | `!`, `!!`, `!!!` | Priority Low, Medium, High | `Pay the bill !!!` | | `*` | Star | `Reply to the school *` | | `#errands` | Tag | `Buy milk #errands` | | `/Home Projects/` | Moves the task to that list | `Clear out the loft /Home Projects/` | | `@ Pharmacy` | A location you have already saved in 2Do | `Pick up the vitamins @ Pharmacy` | | `"tomorrow"` | Keeps the word as plain text | `Practice the word "tomorrow"` | --- # Nearby and Locations Add locations to tasks to see them on a map, find tasks near you, and receive reminders when you arrive. ![The Nearby page with a map and a list of saved locations](https://downloads.2doapp.com/resources/img/2do-ios/alllocations.png) ## Adding a Location to a Task[​](#adding "Direct link to Adding a Location to a Task") Open a task and tap **Locations** in the editor's bottom toolbar, or press `⌘G` with a hardware keyboard. The panel lists every place you have saved, with **Add a New Location...** at the top. Tap a place to attach it to the task, or tap it again to take it off, then tap **Done**. A task can carry more than one. While typing a new task you can also reach a location you have **already saved** in 2Do: write `@` and its name, as in `Collect the prescription @ Pharmacy`. Spaces and capitals do not matter, so `@centrallibrary` finds *Central Library*, and the match appears as soon as the whole name is there. A part of a name, such as `@central`, sets nothing, and a name you have never saved stays in the title as plain text. Typing `@` never creates a new location. You can keep writing after it; the words that follow stay in the title. See [Natural Language Input](/docs/ios/natural-language-input.md). tip For repeating errands such as a Saturday grocery run, put the location on a [repeating task](/docs/ios/repeating-tasks.md). The location carries over to every occurrence. ### The Location Editor[​](#editor "Direct link to The Location Editor") **Add a New Location...** opens a map with a name field. There are three ways to place the point: * Tap **Find Location** and search for an address or a place by name. * Tap the **current location** control to drop the pin where you are. * Tap the map itself. Until a point is set, the editor prompts you to tap the map to place the location. Give the place a name and save it. Names have to be unique, and the editor warns you if you reuse one. ### Managing Your Locations[​](#catalog "Direct link to Managing Your Locations") The panel's list is your catalog, shared by every task: * Swipe a row for **Edit** and **Delete**. * Drag rows to reorder them. * Editing a place changes it everywhere it is used. You can also reach the catalog from **Settings > Nearby > Manage Locations**. ## The Nearby Page[​](#nearby-panel "Direct link to The Nearby Page") The utility panel's second page is **Nearby**. On iPhone, swipe the task list toward the utility panel. On iPad, tap **Tags** at the bottom of the lists panel. Then choose **Nearby** with the segmented control at the top. The page has a map above a list, and a segmented control that switches between: * **Nearby**: the places within your maximum distance, sorted by how far away they are. * **All**: every place you have saved. A caption on the map names the **Nearby Range** currently in force. Tap a row to see its tasks; touch and hold one for **Edit** and **Delete**. The first time you save a place from this page, 2Do asks whether it should remind you when you are near a location with tasks. Answer **Turn On** or **Not Now**. Assigning a location to a task from the editor turns nearby alerts on for you, since asking to be reminded about a place is the point of putting one on a task. ## Nearby Alerts[​](#alerts "Direct link to Nearby Alerts") Open **Settings > Nearby**. The **Nearby Alerts** switch alerts you automatically about nearby tasks, taking their start and due dates into account. It starts off, and it needs location access. ### Maximum Distance[​](#distance "Direct link to Maximum Distance") **Maximum Distance** under the **Distance** section decides how close you have to be, from 250 metres up to 10 kilometres. The choices are shown in your own units. ### Location Access[​](#permission "Direct link to Location Access") The **Location Access** row states where things stand and offers **Open Settings** when 2Do needs a permission you have not granted: * When location access is off: *Location access is turned off for 2Do. Open Settings to let 2Do alert you when you're near a task.* * When precise location is off: *Precise Location is turned off for 2Do, so nearby alerts may arrive late or not at all. Open Settings to turn it on.* 2Do only asks for location permission when you actually need it: when you add a location, or when you turn Nearby Alerts on. ### How Arrival Alerts Work[​](#arrival "Direct link to How Arrival Alerts Work") * Alerts fire when you **arrive**, not when you leave. * Only places attached to **active** tasks are watched. Completed tasks, and tasks hidden by a paused tag, are left out. * iOS limits how many places an app may watch at once, so 2Do watches the **18 nearest** unique locations to you and keeps that set up to date as you move. * Arriving somewhere with several tasks gives you one alert naming the places involved, rather than a burst of separate notifications. Nearby alerts always arrive as ordinary notifications. They do not ring as alarms, even when [Ring alerts as alarms](/docs/ios/alarms-and-nagging.md#ring-alerts) is on. ## Smart Lists for Errands[​](#smart-lists "Direct link to Smart Lists for Errands") An errands view is a search away. Useful queries: * `type: anylocation` for everything that has a place attached. * `locations: home, drycleaners` for named places. * `locations: ?` for any location set, and `locations: ~` for none. * `locations: ~ OR !home` for everything not tied to `home`, including tasks with no location. * `type: anylocation AND visit` for tasks that can also give you directions. Save any of these as a Smart List and the right-now-doable subset of your work is one tap away. See [Smart Lists](/docs/ios/smart-lists.md). tip Tag location-based tasks with `@errands`. Combined with the Nearby page and an errands Smart List, you never have to wonder whether there was something to pick up while you were out. ## Sync[​](#sync "Direct link to Sync") Locations sync between your devices when your sync method carries them. A place set on your Mac can be used for nearby alerts on your iPhone. See [Sync](/docs/ios/sync.md). --- # Notes, Markdown, and Links The notes field is the free-form part of every task: context, links, snippets, or a running log. It does more than hold plain text. It styles Markdown as you type, stamps in dates and times, links to other tasks, and gathers every link it finds into one menu. For the rest of the editor, see [The Task Editor](/docs/ios/task-editor.md). ![A task note written in Markdown, styled as you type](https://downloads.2doapp.com/resources/img/2do-ios/markdownnotes.png) ## Opening Notes[​](#opening "Direct link to Opening Notes") Tap the notes row in the task editor, or press `⌘E` with a hardware keyboard. The note opens as its own card, with a toolbar docked along the bottom. The card is titled with the task's name, or **Notes** if the task has no title yet. The card's top bar carries: * **Done** on the left, which closes the card. * **Hide Keyboard** on the right, shown while you are typing. * An options menu on the right, holding **Share**, **Print**, and **Clear**. 2Do saves your note automatically, so it is kept when you tap **Done**, pull the card down, or switch to another app. In a new task, the note stays with the task you are adding, which is saved when you tap **Done** in the task editor. ## The Notes Toolbar[​](#toolbar "Direct link to The Notes Toolbar") The toolbar starts with the formatting commands, in this order: * **Bold** * **Italic** * **Strikethrough** * **Underline** * **Highlight** * **Insert Horizontal Line** * **Bulleted List** * **Numbered List** After them comes **Markdown Preview**, then a thin divider. At the far end are the two commands that reach outside the text: **Open Links** and **Insert Date & Time**. When the toolbar is too narrow to show every command, swipe the formatting commands left or right to reach the rest. A short fade at either end of the row means more commands are hidden past that end. **Markdown Preview**, **Open Links**, and **Insert Date & Time** stay in place while the formatting commands scroll. On a list you cannot change, the formatting commands and **Insert Date & Time** are unavailable. ### Formatting Text[​](#formatting "Direct link to Formatting Text") Select some text and tap **Bold**, **Italic**, **Strikethrough**, **Underline**, or **Highlight** to wrap it in Markdown markers. The text stays selected, so tapping the same command again straight away takes the markers back off. With nothing selected, the command inserts an empty pair of markers and puts the cursor between them, ready for typing. **Underline** writes `` and `` tags, because Markdown has no underline marker of its own. When the selection covers several lines, each line gets its own pair of tags. **Bulleted List** and **Numbered List** add a list marker to every line you have touched. Tapping the command again takes the markers back off. ### Insert Horizontal Line[​](#horizontal-line "Direct link to Insert Horizontal Line") To divide a note into parts, tap **Insert Horizontal Line**. It adds `***` on its own line below the current line, with a blank line above and below, and moves the cursor to a new line under the divider so you can keep writing. Nothing you have written is replaced, even if some of it is selected. This command does not toggle: each tap adds another divider. In [Markdown Preview](#markdown-preview), the `***` shows as a thin line across the note. ## Markdown in Notes[​](#markdown "Direct link to Markdown in Notes") 2Do styles Markdown live as you type. The source markers stay visible, so a `**bold**` word shows its asterisks and renders bold at the same time. Nothing is rewritten behind your back: what gets saved is always the Markdown you typed. tip Because the saved note is always the source Markdown, notes round-trip through sync and through 2Do on other platforms without losing their formatting markers. ### Supported Markdown[​](#supported-markdown "Direct link to Supported Markdown") * **Emphasis**: `*italic*` or `_italic_` * **Strong**: `**bold**` or `__bold__` * **Code**: `` `inline code` `` and fenced code blocks * **Strikethrough**: `~~struck~~` * **Highlight**: `::highlighted::` * **Underline**: `underlined` or `[u]underlined[/u]`, opened and closed on the same line * **Headings**: `#` through `######` * **Blockquote**: lines beginning with `>` * **Lists**: unordered and ordered; pressing Return at the end of a list line continues the marker * **Links**: `[label](https://…)` and bare web addresses * **Horizontal line**: `***` on a line of its own, with a blank line above and below it note There is no GitHub-style task-checkbox rendering. A `- [ ]` line stays as literal Markdown text. Use 2Do's own [sub-tasks or checklists](/docs/ios/projects-and-checklists.md) for tickable items. ### Markdown Preview[​](#markdown-preview "Direct link to Markdown Preview") Tap the **Markdown Preview** button to swap the editable text for a rendered, read-only version with the Markdown markers hidden. The card's title changes to **Markdown Preview** so you know why typing no longer does anything, and the button fills with the accent colour. Tap it again to go back to editing. While preview is showing, the commands that write into the note are unavailable, along with the links menu. Preview never changes what is stored: the saved note is always the source Markdown. ## Insert Date & Time[​](#insert-date-time "Direct link to Insert Date & Time") Tap **Insert Date & Time** to drop a formatted stamp at the cursor. It is useful for journaling progress or logging when something happened. The menu holds ten formats in three groups: | Format | What it inserts | | --------------------- | ----------------------------------------------- | | Short Date | localized short date | | Short Date & Time | localized short date with time | | Long Date | localized long date | | Long Date & Time | localized long date with time | | Universal Date | `yyyy-MM-dd` | | Universal Date & Time | `yyyy-MM-dd` plus the time in your clock format | | ISO 8601 Date & Time | UTC `yyyy-MM-dd'T'HH:mm:ss'Z'` | | Time | current time | | Weekday | full weekday name | | Month | full month name | The stamp replaces the selection and leaves the cursor after it. ## Linking to Another Task[​](#task-links "Direct link to Linking to Another Task") Type **`@{`** in a note and 2Do offers a list of tasks. Pick one and it drops in a live **`@{Task Title}`** link that jumps straight to that task. Because the link is just the task's title stored as ordinary text, you can also type one by hand, on any device. For the full picture, including how links resolve and how they travel between devices, see [Linking to Other Tasks](/docs/ios/task-links.md). tip Use `@{` links to stitch related tasks together. A project's notes can point at each of its dependencies, and one tap jumps you straight there. ## Discovered Links[​](#link-discovery "Direct link to Discovered Links") As you type or paste, 2Do watches the note for links: * **Task links**: `@{…}` tokens. * **Web and mail addresses**. Detected links are underlined in the note, so you can tap one where it sits. When a long note buries them between paragraphs, tap **Open Links** in the toolbar instead: the menu lists every link it found under a heading that counts them, such as *Found 4 Links*, with task links first and web addresses after them. A note with no links shows a message to that effect rather than leaving the button dead. ## Sharing, Printing, and Clearing[​](#share-print "Direct link to Sharing, Printing, and Clearing") The options menu in the notes card's top bar holds three commands: * **Share** hands the note's text, Markdown markers included, to the system share sheet. * **Print** hands it to the system print screen, with the task's title as the job name. * **Clear** empties the note. It asks first. Share and Print are unavailable while the note is empty, and Clear is unavailable on a list you cannot change. --- # Password Protection Some tasks are nobody else's business. 2Do can ask for a four-digit passcode before it shows anything, or keep just a few lists locked while the rest of the app stays open. Everything on this page lives in **Settings > Security**. ![The Privacy pane with a passcode set](https://downloads.2doapp.com/resources/img/2do-ios/set-privacy.png) ## Setting a Passcode[​](#setting "Direct link to Setting a Passcode") 1. Open **Settings > Security** and stay on the **Protection** tab. 2. Under **Passcode**, tap **Set**. 3. Enter a four-digit passcode, then enter it again to confirm. Once a passcode exists, the same row offers **Change** to replace it and **Turn Off** to remove it. Both ask you to enter the current passcode first. **Require passcode** decides how soon 2Do asks again after you leave it: **Immediately**, **1 minute**, **3 minutes**, **5 minutes**, or **10 minutes**. If your device has Face ID or Touch ID, 2Do offers it at the unlock screen. Use **Retry Face ID** or **Retry Touch ID** to try the biometric again, or **Enter Passcode** to type the code instead. tip Use Face ID or Touch ID for everyday unlocking and keep the passcode as the fallback. iOS falls back to the passcode after a few failed biometric attempts. ## Locking the Whole App[​](#lock-app "Direct link to Locking the Whole App") Turn on **Lock everything** to require the passcode to unlock the app. With it off, 2Do opens normally and only the lists you have protected stay hidden. tip If you only want a couple of private lists, leave **Lock everything** off. 2Do then opens straight into your day and asks for the passcode only when you tap a protected list. ## Password-Protected Lists[​](#lock-list "Direct link to Password-Protected Lists") Under **Password-Protected Lists**, every list has a switch. Tasks from selected lists stay hidden until you unlock them. A protected list shows a lock beside its name in the pane. Protection applies everywhere, not just in the lists panel. Tasks from a protected list stay out of the Focus Lists, Smart Lists, and search results until you unlock it. ## List Visibility[​](#list-visibility "Direct link to List Visibility") Under **Privacy > List Visibility**, turn off a list to hide it from the side panel or turn it on to show it again. Hidden lists and their tasks still sync. Hiding a list does not add password protection. ## Archived Lists[​](#archived "Direct link to Archived Lists") The **Archived** tab includes archived lists even if they are also hidden. If Security settings are locked, tap **Unlock** first. Tap a list's **Unarchive** button and confirm to restore it. Unarchiving keeps the list's visibility and password-protection settings. If the list is hidden, turn it on under **Privacy > List Visibility** to show it in the side panel. See [Archiving a List](/docs/ios/lists-and-list-groups.md#archiving). ## Widgets and Apple Watch[​](#widgets "Direct link to Widgets and Apple Watch") Turn on **Allow Widget & Watch access when protected** in **Settings > Security > Protection** to keep your home-screen and lock-screen widgets, Watch app, and task complications available while **Lock everything** is on. You can view and update tasks on the Watch without unlocking 2Do on your iPhone. With this setting off, **Lock everything** hides task content on widgets and the Watch. Unlocking the iPhone app does not grant access while these settings remain in place. Tasks from individually password-protected lists stay hidden on both widgets and the Watch, whether or not you have unlocked those lists inside 2Do. See [Apple Watch](/docs/ios/apple-watch.md#protection) for Watch setup and use. ## What Is Protected[​](#whats-protected "Direct link to What Is Protected") * **Lock everything** covers the whole app, Settings included. * **Password-protected lists** cover their tasks everywhere in 2Do. * Siri and Shortcuts are stricter than the app: while a passcode is set, 2Do's data actions refuse to run at all. See [Automate with Shortcuts](/docs/ios/shortcuts-actions.md#privacy). While a passcode is set, the Security pane itself locks. A bar at the bottom reads **Unlock to change protected settings and list visibility**, with an **Unlock** button, and offers **Lock** once you are done so you can end the session yourself. ## Locking and Sync[​](#sync "Direct link to Locking and Sync") Protection is a setting on this device. Hidden and protected lists still sync, so their tasks reach your other devices as usual. If you want a list to stay on this device entirely, exclude it from sync instead: **Settings > Sync > Exclusions**. See [Sync](/docs/ios/sync.md). ## If You Forget the Passcode[​](#reset "Direct link to If You Forget the Passcode") There is no way to read a forgotten passcode out of the app. Your route back depends on where else your data lives: * If you sync, reinstall 2Do, set the same sync account up again, and choose a new passcode. * If you have a backup saved outside the app, reinstall 2Do and restore from that file. See [Backups](/docs/ios/backups.md). --- # Pinch and Touch and Hold Pinch the task list to change how much detail appears in each row. Touch and hold a task to open its menu of actions. ## Pinch to Change the Display Mode[​](#pinch-zoom "Direct link to Pinch to Change the Display Mode") Pinch the task list with two fingers. Pinching inward shows less per task and fits more on screen; pinching outward shows more. An overlay names the mode as you go, and the setting applies to your task list everywhere. | Mode | What each row shows | | -------------- | -------------------------------------- | | **Compressed** | Titles & Dates | | **Normal** | Titles, Notes & Dates | | **Extended** | Multi-line Titles, Tags, Notes & Dates | Use **Compressed** for lists you scan quickly, such as an inbox or a shopping list, and **Extended** for lists where context matters, such as a project you are working through. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/viewmodes_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/viewmodes_poster.png) The same three modes are available under **Settings > Appearance > Display > Display Mode**, and, with a hardware keyboard attached, from the **View > Display Mode** menu. Two related settings sit beside it under **Settings > Appearance > Display**: * **Bolder Task Titles** gives titles more weight. * **Multiline Titles** lets a long title wrap onto a second line in the Normal display mode. tip Pinch outward on lists where context matters and inward on lists you scan quickly. The mode you land on is the one you will read your tasks in all day, so it is worth a moment. ## Expanding a Single Row[​](#extended-view "Direct link to Expanding a Single Row") Changing the display mode affects the whole list. To open up just one task, tap the control at the trailing end of its row. The row expands in place and a strip appears beneath it with **None**, **Low**, **Medium**, and **High** priority, plus the star. That makes triage quick: run down a freshly captured list, expand each row, set its priority, and move on without opening a single editor. To do the same for a whole selection in one go, see [Auto-Prioritize](/docs/ios/auto-prioritize.md). An expanded row also shows the color band of the list it belongs to, which helps when several lists are shown together in *All* or *Today*. Task type conversion is not offered in this strip. To turn a task into a project or a checklist, touch and hold it and use **Convert**. ![A task row expanded to show the priority and star strip](https://downloads.2doapp.com/resources/img/2do-ios/expandedtask.png) ## Touch and Hold a Task[​](#tap-hold "Direct link to Touch and Hold a Task") Touch and hold any task and its full menu opens. It is long enough to scroll on smaller screens, and it is grouped so the commands you reach for most are nearest. * **Details**, the task's **action** if it has one, and **Delete** in a row at the top. * **Open in List...** when you are looking at the task somewhere other than its own list. * Two rows of date buttons. The first row, with calendar icons, sets the **Due Date**: **Today**, **Tomorrow**, **No Date**, **Pick** for a specific date, and **Defer** for a relative shift. The second row, with play icons, sets the **Start Date**: **Today**, **Tomorrow**, **No Date**, **Pick**, and **Schedule**. See [Schedule vs Defer](/docs/faqs/schedule-vs-defer.md) for when to use each. On a repeating task, these buttons move the next occurrence too; see [Changing the Dates of a Repeating Task](/docs/ios/repeating-tasks.md#changing-dates). * **Mark** (as completed or not completed), **Priority** (including the star), **Note**, **Alarm**, **Tag**, and **Attachment**. * **Copy** (the title, the notes, or everything, plus **Duplicate**), **Convert** to another task type, and **Move** to another list. * **Share**. * **Auto-Create Sections** organizes the task into a suitable existing section or a new one. On a supported device, touch and hold a selected task during [batch editing](/docs/ios/batch-editing.md#auto-create-sections) to organize the whole selection. * **Remove from Section**, at the end, when a top-level task is in a [section](/docs/ios/task-sections.md). On a read-only list, the menu shrinks to what is actually possible: details, the action, copy, and share. Sections have a menu of their own. Touch and hold a section title for **Rename Section**, **Duplicate Section**, **Move Section…**, **Convert to List**, **Delete Section**, and **Add Section**, plus **Auto-Name Section** on devices with Apple Intelligence. See [The Section Menu](/docs/ios/task-sections.md#section-menu). tip If you only need one thing from a task, use the touch-and-hold menu rather than opening the editor. Setting a date, a priority, a tag, or an alarm from the menu keeps your place in the list. ### Open in List[​](#open-in-list "Direct link to Open in List") **Open in List...** appears whenever you come across a task away from the list it lives in: in a focus list such as *Today*, in a smart list, in search results, or in another list you are browsing. Tapping it takes you to the task's own list and pulses the row so you can see where it landed. On iPad it opens the task in the editor at the same time. If the task is a subtask, 2Do opens its parent's Project View and highlights it there. ## Touch and Hold a Checkmark[​](#checkmark-drag "Direct link to Touch and Hold a Checkmark") Touch and hold a task's **checkmark** and drag down the column. 2Do enters batch editing and selects every task you pass, which is the fastest way to grab a run of tasks that sit together. See [Batch Editing](/docs/ios/batch-editing.md). ## Swipes[​](#swipe-gestures "Direct link to Swipes") Swipes move you between panels rather than acting on a single task: * Swipe the **task list right** to reveal the lists panel. * Swipe the **task list left** to reveal the utility panel on iPhone, or the editor pane and then the utility panel on iPad. * Inside a project or checklist, **pull from the leading edge** of the task panel to leave Project View. A badge shows how far you have to go, and releasing past that point closes the project. * **Pull down** on the task list to sync. --- # Printing 2Do prints a formatted copy of your tasks: the list you are looking at, a single task, the tasks you selected in batch editing, or the text of one note. Printing goes through AirPrint, so any printer your iPhone or iPad can reach is available. ## Starting a Print[​](#start "Direct link to Starting a Print") Where you start chooses the top-level tasks. **Include Sub-tasks** can then add the direct child tasks of any selected project or checklist. * **The list on screen**. With a hardware keyboard, press `⌘P`. The command sits in the **File** menu, so on iPadOS 26 you can also reach it from the menu bar at the top of the screen. The top-level tasks currently displayed print in the list's sort order, divided into the list's sections when **Include Sections** is on. * **One task**. Touch and hold the task and choose **Print...** at the bottom of the menu, in the same section as **Share**. This is available on read-only lists too. * **A selection of tasks**. Enter [batch editing](/docs/ios/batch-editing.md), select the tasks you want, tap **Share** in the drawer, and choose **Print...**. The tasks print under the sort-group headings they came from. With **Include Sections** on, the titles of their sections print too, and other sections are left out. * **One note**. See [Printing a Note](#note) below, which takes a different route and prints only the note's text. note If 2Do is locked, printing the list on screen asks for your passcode first. See [Password Protection](/docs/ios/password-protection.md). tip Printing the list on screen uses its current search, list, and filter as the top-level scope, so narrow it first. A [search](/docs/ios/search.md), a [Smart List](/docs/ios/smart-lists.md), or the [Focus Filter](/docs/ios/focus-filter.md) gives you a shorter page than printing everything and crossing things out. ## Print Options[​](#options "Direct link to Print Options") Each of the first three entry points opens the **Print** screen, which has two groups of settings: **Options** * **Include Sections**: print the list's [sections](/docs/ios/task-sections.md), each with its title and description. See [Sections and Sort Groups](#sections). * **Include Sub-tasks**: print the tasks inside each project and checklist, indented under their parent. * **Include Notes**: print each task's note under its title. Section descriptions print with **Include Sections** instead. * **Include Tags**: print each task's tags. **Font Size** * **Small**, **Normal**, or **Large**. All four switches start on and the font size starts at **Normal**. Tap **Print** to go on to the system print screen, or **Cancel** to stop. On **iPhone** and other compact-width layouts, the options arrive as a sheet at half height, which you can drag up to full height. In a regular-width **iPad** layout, they arrive as a small card centered over your tasks. The system print screen follows, where you pick an AirPrint printer, set its options, and print. In a compact-width layout it covers the screen. In a regular-width **iPad** layout it opens as a popover over the task list. The job takes the name of the task, project, or list you printed, so you can pick it out in the printer queue. tip For a checklist to carry with you, turn **Include Notes** off and leave **Include Sub-tasks** on. You get the tasks and their sub-tasks with nothing else competing for the page. ## What Prints[​](#output "Direct link to What Prints") The printed page follows the list on screen: * Tasks stay under the headings of the list's **sort groups**, such as *Today*, and each heading carries the number of top-level tasks in that group. An overdue group's heading prints in the overdue color. * Each task prints with a checkbox, its title, and a color bar for the list it belongs to. Projects and checklists print a square checkbox showing the number of open child tasks when at least one remains, and repeating tasks carry a repeat symbol. * Start and due dates print as real dates rather than as *Today* or *Tomorrow*, because a printed page is read later. A task's duration prints beside them. * Stars print as a star and priority prints as one, two, or three colored bars at the right of the row. * Completed tasks print with a tick and their title struck through. * Locations print under the title, and so do notes when **Include Notes** is on. Markdown in a note prints as formatted text. * The page ends with the date and time you printed it. Sub-tasks print whether or not they are scheduled or paused. Completed sub-tasks print only while 2Do is showing completed tasks. ### Sections and Sort Groups[​](#sections "Direct link to Sections and Sort Groups") With **Include Sections** on, the page follows the list's [sections](/docs/ios/task-sections.md): * Tasks that are not in a section print first. * Each section follows in the order you gave the sections: its title in bold, its description below the title, and then its tasks under the list's sort groups, whose headings print smaller. * The *Done* group prints last when completed tasks are shown. When you print one task or a selection, only the sections holding those tasks print. With **Include Sections** off, the tasks print as one sorted list without section titles or descriptions. 2Do groups them again by the list's sort, so each group, such as *Today*, prints once with all of its tasks rather than once in every section. The switch changes only the printout. Your tasks stay in their sections, and the list keeps its sort. ## Printing a Note[​](#note "Direct link to Printing a Note") A note prints on its own, without the task list around it. Open the task, open its **Notes** card, and choose **Print** from the options menu in the card's top bar. The note prints as plain text after outer whitespace is removed. The print job takes the task's title, or **Notes** if the task has no title. The command is unavailable while the note is empty, and available on read-only lists because printing changes nothing. See [Notes and Markdown](/docs/ios/notes-and-markdown.md). --- # Projects and Checklists Use **projects** and **checklists** to break work into smaller steps. Each step is a **sub-task**. Projects let you schedule the steps separately; checklists keep them on one schedule. ## Tasks and Sub-Tasks[​](#tasks "Direct link to Tasks and Sub-Tasks") A sub-task belongs to a project or checklist. Open the parent to work with its contents. Use a project when its sub-tasks need their own dates, and a checklist when they share one schedule. ## Projects[​](#projects "Direct link to Projects") A **project** holds tasks with their own dates, alerts, tags, location, and action. Changing or removing the project's own dates reschedules it and sets completed children back to active; see [Dates and Durations](/docs/ios/dates-and-durations.md#just-start). Use a project when: * The goal is made of several actions that do not have to happen in order. * Individual actions deserve their own dates or alerts. * You want each action to appear in *Today* on its own. ### Creating a Project[​](#creating-project "Direct link to Creating a Project") * Tap the floating `+` button, then choose **Project** from the type picker beside the title. * In [Quick Add](/docs/ios/quick-add.md), open the priority menu and choose **Convert... > Project**. * With a hardware keyboard, press `⌥⌘N`. * Or convert an existing task: touch and hold it and choose **Convert > To a Project**. ## Checklists[​](#checklists "Direct link to Checklists") A **checklist** holds items that only matter together. Items can be checked off and tagged, but they cannot carry their own dates; they take their scheduling from the checklist. Use a checklist for: * Sequences that only make sense as a whole, such as packing, pre-flight, or onboarding. * Templates you expect to duplicate. ### Moving an Item Out of a Checklist[​](#moving-items-out "Direct link to Moving an Item Out of a Checklist") Moving an item out to its list or into a project ends its use of the checklist's dates. The move does not copy those dates to the item, even if you opened the checklist from *Today*. Set the item's **Due** date after moving it if it still needs a deadline. A task moved out of a project keeps its own dates because those dates belong to the task. ### Creating a Checklist[​](#creating-checklist "Direct link to Creating a Checklist") * Tap the floating `+` button, then choose **Checklist** from the type picker beside the title. * In [Quick Add](/docs/ios/quick-add.md), open the priority menu and choose **Convert... > Checklist**. * With a hardware keyboard, press `⌃⌘N`. * Or convert an existing task: touch and hold it and choose **Convert > To a Checklist**. tip Checklists make good templates. Touch and hold one and choose **Copy > Duplicate Checklist** when you need a fresh copy for the next trip or the next new starter. ## Project View[​](#project-view "Direct link to Project View") Tap a project or checklist row in the task list and 2Do opens **Project View**: the task list is replaced by that project's own contents, with the project pinned in a header above them. It is where you work on one plan without the rest of the list around it. On **iPad**, tapping the row opens Project View *and* opens the project itself in the editor pane, so its notes and dates are in front of you while you work through its children. Tap the pinned header to open the project's own editor at any time. When you open a project from a Smart List or while searching, Project View shows only the sub-tasks that match by default. If a project opens empty or with sub-tasks missing, see [Inherit Search in Project View](/docs/ios/smart-lists.md#inherit-search). With a hardware keyboard, `C` toggles Project View for the selected project or checklist, and pressing `Return` on a selected project opens it. ![Project View with the project pinned in a header above its tasks](https://downloads.2doapp.com/resources/img/2do-ios/iosprojectview.png) ### Leaving Project View[​](#leaving-project-view "Direct link to Leaving Project View") Four ways out, whichever is nearest your thumb: * Tap the **back chevron** at the leading end of the bar above the tasks. * Tap the **list name** beside it. Inside a project, the title acts as Back rather than opening Quick Open. * **Pull from the leading edge** of the task panel. A badge fills as you pull, and releasing past about a third of the panel's width closes the project. * Tap the **already-selected list** in the lists panel. ## Adding Tasks Inside a Project or Checklist[​](#new-child "Direct link to Adding Tasks Inside a Project or Checklist") While a project or checklist is open, the floating `+` button adds children to it. Tap it for the full editor, or touch and hold it for [Quick Add](/docs/ios/quick-add.md) and file title after title into the parent without leaving it. ## Sorting Inside a Project[​](#sorting "Direct link to Sorting Inside a Project") A project or checklist keeps its own sort order, separate from the list it lives in. Open the sort menu on the sort bar while inside one and its heading names **Project Sorting** or **Checklist Sorting**, so it is clear what you are changing. Sorting a list does not disturb the order inside its projects, and the other way around. ## Collapsing Sections[​](#collapsing "Direct link to Collapsing Sections") Project View groups its children into sections just as a list does. Tap a section header to collapse or expand it, and the state is remembered. If the header is pinned at the top while you scroll, the first tap scrolls back to the header's own place instead. ## Converting Between Types[​](#converting "Direct link to Converting Between Types") You are never stuck with the first choice. Touch and hold a task and use **Convert**: * Task to project or checklist. * Project to task or checklist. * Checklist to task or project. With a hardware keyboard, `⌥⇧⌘1`, `⌥⇧⌘2`, and `⌥⇧⌘3` convert to a task, a project, and a checklist. Where a conversion would drop details a child is carrying, 2Do warns you first. tip Start with a plain task. Promote it to a project the moment you find yourself wanting per-child dates or alerts, and not before. ## Projects in Sections[​](#sections "Direct link to Projects in Sections") A list can be divided into named [sections](/docs/ios/task-sections.md), and a project or checklist can sit in any of them. Its sub-tasks always stay with it in the same section. Sections divide a list, not a project: to arrange the steps inside a project, use its own [sort order](#sorting). ## Behavior in Focus Lists[​](#focus-behavior "Direct link to Behavior in Focus Lists") * **Project children** can appear individually in *Today* and search results when they match the list or search. This shows the same task in another view; it does not create a copy. * **Checklist items** do not match *Today's* date rules separately. The checklist owns those dates. A starred checklist item can still appear in *Starred*, or in *Today* when **Include starred items** is on. * In *All*, without a search or Focus Filter, **sub-tasks** stay under their parent. To hide a matching sub-task's separate entry when its parent is also visible, open **Settings > Today & Lists > Focus & Smart Lists** and turn off **Always list matched sub-tasks separately**. The item remains inside its project or checklist. See [Today & Lists settings](/docs/ios/settings.md#today-and-lists). To find a checklist item by its text, use an **All Lists** search. See [Search Scope](/docs/ios/search.md#scope) for how searching *Today* differs. Checklist items cannot be dropped on **Today** or **Scheduled** while dragging, because their scheduling belongs to the checklist. See [Drag and Drop](/docs/ios/drag-and-drop.md). --- # Quick Add Tap the `+` button below the task list to create a task in the full editor. Touch and hold it to open **Quick Add**, where you can add several tasks in succession. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/quickadd_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/quickadd_poster.png) ## Opening Quick Add[​](#opening "Direct link to Opening Quick Add") * **Touch and hold** the `+` button below the task list. The gesture takes about a quarter of a second. * With a hardware keyboard, press `⇧⌘2`. * The full task editor, which opens when you tap `+`, has a lightning control at the top. Tap it to save the task you are writing and start another one right away in the same editor. An empty list spells this out: *Tap on + to add a new task, or tap and hold for Quick Add*. ## The Card[​](#card "Direct link to The Card") The card has two rows. The **title row** holds the field, whose prompt reads **Quick add…**, a clear control that appears once you start typing, and a **priority** menu. The menu offers **None**, **Low**, **Medium**, and **High**, plus a **Starred** switch. While you are composing, it also carries **Convert...**, which turns the draft into a **Task**, a **Project**, or a **Checklist**. The **capsule row** below it holds three capsules. Tapping one raises its picker behind the card, one at a time: * **List**: the destination. Search your lists, projects, and checklists, or tap **Create New List...** to make one on the spot. Each list's [sections](/docs/ios/task-sections.md#list-picker) appear under its name; choose one to file the task in that section. * **Dates**: the full **Start**, **Due**, and **Duration** panel, the same one the task editor uses. See [Dates and Durations](/docs/ios/dates-and-durations.md). * **Tags**: pick as many tags as you want, or tap **Create New Tag...** to add one. See [Tags](/docs/ios/tags.md). Each capsule shows what it currently holds, so a glance tells you where the task is going and when it is due. When you choose a section, project, or checklist, the **List** capsule shows its name instead of the list's. Typing the details into the title works too: [Natural Language Input](/docs/ios/natural-language-input.md) picks up due dates, times, start dates, repeats, alerts, durations, priority, tags, lists, and saved locations as you write, and the capsules follow along. `Collect the parcel tomorrow at 3pm #errands` and `Paint the garden shed starting Saturday` both arrive with their fields filled in. Detection is on out of the box; turn it off for Quick Add with the **Quick Add** switch under **Settings > Tasks > Natural Language Input**. ![Quick Add with Buy milk tomorrow entered, Home as the destination, and Tomorrow detected as the due date](https://downloads.2doapp.com/resources/img/2do-ios/quick-add-card.png) ## Filing One Task After Another[​](#filing "Direct link to Filing One Task After Another") Press **Return** and the task is filed. The card stays open and focused with an empty field, ready for the next one, so a run of thoughts becomes a run of tasks without a single trip back to the list. Press **Return** on an empty card to close it. This is the loop the card is built for: type, Return, type, Return, Return. tip For a brain dump during a meeting or a commute, open Quick Add once and keep pressing Return. Set the list capsule first, choosing a section if you like, and every task in the run lands in the same place until you change it. ## Where Tasks Land[​](#destination "Direct link to Where Tasks Land") Quick Add files into the list you are currently viewing unless you tell it otherwise. Two settings under **Settings > Tasks > New Tasks** change that: * **Default list** picks the list new tasks go to. * **Always Use in Quick Add** makes Quick Add use that default list regardless of which list is on screen. Turning on **Getting Things Done® Inbox** in the same section gives you an *Inbox* to capture into and triage later. Whatever the default, the **List** capsule lets you choose another list, section, project, or checklist before you file a task. tip Triage your Inbox daily. Anything sitting in it is something you have not decided about yet, so keeping it short is the whole point. ## Capturing from Outside the App[​](#outside-app "Direct link to Capturing from Outside the App") Quick Add is not the only way in: * **The share sheet**: share text, a link, a web page, a photo, or a video from any app to **2Do**, and a small capture screen opens where you can set the list (or a section in it), start and due dates, tags, and notes before saving. * **[Mail to 2Do](/docs/ios/email-to-2do.md)**: send email to your private 2Do address and it arrives as a task. * **[Shortcuts and Siri](/docs/ios/shortcuts-actions.md)**: create, find, and complete tasks from any shortcut, or by voice. * **Control Center**: the **New Task** control opens 2Do ready to add a task. * **[Widgets](/docs/ios/widgets.md)**: several widget sizes carry an add button. --- # Quick Open Use **Quick Open** to find a task or list anywhere in 2Do. Type part of its name, then choose a result to open it. ![The Quick Open card listing recently modified tasks above recently accessed lists](https://downloads.2doapp.com/resources/img/2do-ios/quickopenshot.png) ## Opening Quick Open[​](#open "Direct link to Opening Quick Open") * **Tap the list name** at the top of the task list. * With a hardware keyboard, press `⇧⌘O`. A card drops in over the task list with its field already focused. It is a transient overlay: pick something and it dismisses, leaving you at your destination. Tap outside the card, tap its close control, or press `Esc` to leave without going anywhere. note Inside a project or checklist, the title at the top of the task list acts as **Back** instead, so tapping it leaves Project View. Use `⇧⌘O` to reach Quick Open from there. ## Starting Empty[​](#recents "Direct link to Starting Empty") Open Quick Open without typing and it shows you where you have just been: * **Recently modified**: up to five tasks you last changed. * **Recently accessed**: up to three lists you last opened. The list you are already looking at is left out, since you are there. That alone makes it a quick way back to the handful of things you are actively working on. ## Typing[​](#matching "Direct link to Typing") Start typing and Quick Open matches **word starts** in task titles and list names, so `rep` finds *Quarterly report* but not *prepare*. Results appear under two headings, tasks first and then lists, each naming how many it matched. Task results are capped at twelve. * The **top result is highlighted** automatically. Press **Return** to open it. * With a keyboard, the **up and down arrow keys** move the highlight. On screen, tap any row. * Each task row shows the list it lives in. A sub-task also shows its parent, as `List › Parent`, so two similarly named children are easy to tell apart. * Each list row shows its color. Quick Open only offers what you can actually reach: completed tasks, tasks in hidden lists, and anything inside a locked list stay out of the results. tip Hop between lists without touching the lists panel: open Quick Open, type two or three letters of the list name, and press Return. tip Give tasks you expect to jump to distinctive titles. Quick Open matches word starts, so one uncommon word in a title is usually enough to reach it in three keystrokes. ## What Happens When You Pick Something[​](#picking "Direct link to What Happens When You Pick Something") Choosing a **list** switches straight to it. Choosing a **task** takes you to it in the shortest way available. If the task already has a row in the list on screen, 2Do reveals it in place. If it sits inside a project or checklist that the current list is showing, 2Do opens that parent on the task. Otherwise it switches to the list that owns the task and reveals it there. The row briefly highlights so you can spot it. On **iPhone**, the task stays in the list without opening its editor. Tap a regular task's title to open its details. Tapping a project or checklist opens Project View. On **iPad**, Quick Open also opens the task for editing in the pane beside the list. ## How It Differs from Search[​](#vs-search "Direct link to How It Differs from Search") 2Do has two "type something" surfaces and they do genuinely different jobs: * **Quick Open** jumps you to one existing task or list, anywhere in the app, then gets out of the way. It never creates or filters anything. * **[Search](/docs/ios/search.md)** (`⌘F`) filters the current view in place, collapsing the task list to just the matches and staying open while you work on that subset. A search can be saved as a [Smart List](/docs/ios/smart-lists.md); Quick Open cannot, because there is nothing to save. To *create* rather than find, use [Quick Add](/docs/ios/quick-add.md). --- # Repeating Tasks Set tasks to repeat on a fixed schedule or after you finish the previous occurrence. ## Adding Recurrence[​](#adding "Direct link to Adding Recurrence") Open a task and tap the **Repeat** button in the editor's bottom toolbar, or press `⌘;` with a hardware keyboard. The task does not need a date first: if it has neither a start nor a due date, 2Do gives it a due date of today as soon as you set a rule. The summary at the top shows the current rule. Choose a preset below it, or open a custom rule to set your own interval. ![The current Repeat panel with presets and the On every given period option](https://downloads.2doapp.com/resources/img/2do-ios/editrepeat-2026-10-18.png) For a new task you can type the rule instead, in phrases such as `every day`, `every weekday`, `every Monday`, `every 2 weeks`, `every month on the 15th`, or `every year on September 5`. Put a date in the title too when the rule needs something to count from, as in `Take vitamins tomorrow every day`. See [Natural Language Input](/docs/ios/natural-language-input.md). ### Presets[​](#presets "Direct link to Presets") A row of one-tap rules covers the common schedules: | Rule | Repeats | | ------------ | -------------------------------------------------- | | **Never** | Not at all | | **Daily** | Every day | | **Weekly** | Every week, on the same weekday as the task's date | | **Biweekly** | Every second week | | **Monthly** | Every month, on the same date | | **Yearly** | Every year, on the same date | Tapping one sets the whole rule and closes any custom form you had open. ### Custom Rules[​](#custom "Direct link to Custom Rules") Below the presets, choose one of three custom rules: * **On every given period**: every 1 to 99 **days**, **weeks**, **months**, or **years**. * **On some days of the week**: any combination of Monday through Sunday, so a Monday, Wednesday, Friday rule or a weekdays-only rule is a couple of taps away. * **On a day of each month**: the **1st**, **2nd**, **3rd**, **4th**, **5th**, or **Last** of a chosen weekday, for rules like the second Tuesday of every month. A checkmark shows which custom rule is selected. note There is no single-tap Weekday or Weekend rule. Build either with **On some days of the week**: tick Monday through Friday, or tick Saturday and Sunday. ### Every 3 or 4 Weeks[​](#every-few-weeks "Direct link to Every 3 or 4 Weeks") Use **On every given period** for a task that repeats every few weeks. For example, to review a project budget every three weeks: 1. Give the task a due date for the first review. 2. Open **Repeat** and tap **On every given period**. 3. Set the number to **3** and the unit to **weeks**. 4. Leave **Repeat from completion date** off to keep the review on its schedule, then tap the panel's **Done** to keep the rule. ![Review project budget set to repeat every 3 weeks, with Repeat from completion date off](https://downloads.2doapp.com/resources/img/2do-ios/repeat-three-weeks.png) Three weeks is 21 days. If the first review is due on October 19, the following dates are November 9 and November 30. To repeat every four weeks, choose **4 weeks** instead. Four weeks and a month are different Four weeks is 28 days. Starting on October 19, a four-week rule gives you November 16 next; a monthly rule gives you November 19. Use **weeks** when the gap must stay the same number of weeks. For a task such as replacing a water filter, you may want to wait four weeks after you finish each replacement. Set **4 weeks** and turn on **Repeat from completion date**. If you finish on October 21, the next replacement is due on November 18, even if the previous one was due earlier. ![Replace water filter set to repeat every 4 weeks, with Repeat from completion date on](https://downloads.2doapp.com/resources/img/2do-ios/repeat-four-weeks-completion.png) ### Ends[​](#ends "Direct link to Ends") The **Ends** control finishes the rule: * **Never**: the task keeps repeating. * **On date**: pick the last date the rule may reach. * **After**: pick a number of repetitions, from 1 to 99. ## Repeat From Due Date vs. Completion[​](#repeat-from "Direct link to Repeat From Due Date vs. Completion") This one is worth understanding clearly. The **Repeat from completion date** switch at the bottom of the panel decides which it is. * **Off (repeat from the due date)**: the next occurrence is counted from the previous due date, whenever you actually completed the task. Best for fixed schedules such as paying rent on the 1st, or a weekly status report. * **On (repeat from completion)**: the next occurrence is counted from the day you marked the task complete. Best for chores and maintenance where the cycle restarts when you finish: changing the car's oil every 3 months, watering the plants every few days, or going to the gym every other day. The switch is unavailable until the task actually repeats, since there is nothing to count from yet. Examples: * A task due on the **1st of every month** and completed on the **3rd** still repeats from the 1st when the switch is off. * A task to **change the car's oil every 3 months** repeats 3 months from the day you complete it when the switch is on, so finishing a couple of weeks late shifts the next one with you instead of stacking them up. tip Use repeat from the due date for promises tied to the calendar. Use repeat from completion for maintenance, chores, exercise, reviews, and anything where the next cycle should begin when you finished the last one. ## What Happens When You Complete One[​](#completion "Direct link to What Happens When You Complete One") When you complete a repeating task and another occurrence remains, 2Do keeps a completed copy for your history and moves the active task to the next occurrence. Your Done list still shows the completed occurrence, while the task you carry on with becomes the next one. If the task has reached its **After** count or its **On date**, the final occurrence simply completes. The dates move forward using the same shape you gave the task: | Original task | Next occurrence | | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Only a due date** | The due date moves to the next due date. | | **Only a start date** | The start date moves to the next start date, and the task stays Scheduled until then. | | **Start date and due date** | The due date moves forward, and 2Do keeps the same gap between start and due. A task that starts 2 days before it is due keeps that 2-day planning window next time. | | **Due time** | The same due time is kept on the next occurrence. A task with no due time stays without one, so set it once and every occurrence keeps it. | | **Duration** | The same duration is kept, so lead-time reminders keep working. | For projects and checklists, the next occurrence starts fresh so you can work through the sub-tasks again. The completed occurrence stays in your history with the work you already checked off. ## Changing the Dates of a Repeating Task[​](#changing-dates "Direct link to Changing the Dates of a Repeating Task") A repeating task is one task that moves forward each time you complete it. There is no separate series to edit: a date change applies to the task, and the next occurrence is counted from the new date. This is true whether you change the date in the editor or with **Today**, **Tomorrow**, **Pick**, **Defer**, or **Schedule** in the [touch-and-hold menu](/docs/ios/pinch-zoom-and-tap-hold.md#tap-hold). With **Repeat from completion date** off: * **Due date changed**: the next occurrence is counted from the new due date. Move a monthly task from September 21 to September 22, and its next occurrence is due October 22. * **Start date changed, and the task also has a due date**: the due dates keep their schedule, but the new gap between start and due carries into future occurrences. * **Start date changed, and there is no due date**: the start date is what the task repeats from, so the next occurrence moves with it. With **Repeat from completion date** on, the next occurrence is counted from the day you complete the task, so a date change affects only the current occurrence. The gap between start and due date still carries forward. tip To put off an alert without touching the task's dates, use **Snooze** on the notification. See [Alerts and Nagging](/docs/ios/alarms-and-nagging.md). ## What Carries Over[​](#carry-over "Direct link to What Carries Over") Each new occurrence inherits the details that make the recurrence useful: title, notes, tags, location, action, alerts, the recurrence rule, priority, and duration. Completion state, alert fire history, and per-occurrence sub-task progress are reset. tip Add an alert to a repeating task once and every occurrence keeps it. See [Alerts and Nagging](/docs/ios/alarms-and-nagging.md). ## Unfinished or Skipped Occurrences[​](#skipping "Direct link to Unfinished or Skipped Occurrences") If you still need to do a repeating task, leave it incomplete. It stays overdue after its due date passes; 2Do does not automatically complete it or advance its dates. For an accurate completion history, mark the task complete only when you have done the work. Completing it records a finished occurrence and advances to the next one if the repeat rule allows. It does not record a skipped occurrence. To move the task to a later date without adding a completion to your history, edit its due date (or its start date if it has no due date). This changes the task's schedule; see [Changing the Dates of a Repeating Task](#changing-dates) for how it affects future occurrences. tip To put a recurring task on hold without breaking the cycle, give it a status tag such as `@on-hold` and pause that tag in the Tags panel. The active occurrence steps out of view; resume the tag to bring it back. See [Tags](/docs/ios/tags.md#pause). ## Examples[​](#examples "Direct link to Examples") * **Weekly review**: Weekly, due Friday at 4:00 PM, repeating from the due date. * **Change car oil**: every 3 months, repeating from completion. * **Pay insurance premium**: every 3 months, ends Never. * **Stand-up**: on some days of the week, Monday through Friday, due at 9:30 AM. * **Board meeting**: on a day of each month, the 1st Thursday. * **Passport renewal**: Yearly, ends after 1 repetition. --- # Search 2Do searches task titles, notes, tags, action values, and locations, and its structured filters cover dates, lists, groups, and other task properties. The same search language powers [Smart Lists](/docs/ios/smart-lists.md), so anything useful enough to keep can become a permanent list. ## Opening Search[​](#reaching "Direct link to Opening Search") Tap the **search** button at the top of the task list, or press `⌘F` with a hardware keyboard. The search field takes over the top of the list, and a row of five controls appears under it. Tap the close control to leave search and go back to the full list. Typing filters the list live, matching titles, notes, tags, action values, and locations. When you open search in a Smart List, the field shows its saved query. If it contains `*`, see [An Asterisk in the Search Field](/docs/ios/smart-lists.md#asterisk) for what it means and how to start a fresh search. ## The Search Controls[​](#options "Direct link to The Search Controls") Five controls sit under the search field: | Control | What it does | | ---------------------- | -------------------------------------------------------- | | **New Smart List** | Saves the current search as a Smart List | | **Date Filter** | Opens the **Search Dates** editor | | **Search Scope** | Switches between **All Lists** and **Current List Only** | | **Presets** | Opens the **Search Presets** sheet | | **Sounds-Like Search** | Turns sound-alike matching on or off | Scope and sound-alike matching each confirm the change with a short toast naming the new setting, so you always know which way they are set. Both are remembered for next time. ## Search Scope[​](#scope "Direct link to Search Scope") **Search Scope** decides how wide the search goes: * **Current List Only** keeps the search inside the list you are viewing, and the field's placeholder names that list. * **All Lists** searches everything you have, and the placeholder reads **All Lists**. note A few keywords widen the scope on their own. A `lists:`, `groups:`, or `completed:` filter always searches across every list, whichever scope is set. See [Smart Lists](/docs/ios/smart-lists.md#keywords). ### Finding Checklist Items from Today[​](#checklist-items-in-today "Direct link to Finding Checklist Items from Today") With **Current List Only** selected, a text search in *Today* keeps *Today's* filter. Checklist items use their checklist's dates, so they do not match that date filter separately, even when the checklist itself is due today. Project tasks have their own dates and can match individually. To find a checklist item by its text, enter its name and tap **Search Scope** below the search field to select **All Lists**. This removes the restriction to *Today*. Any extra search filters you selected still apply. See [Projects and Checklists](/docs/ios/projects-and-checklists.md#focus-behavior). ## Search Presets[​](#presets "Direct link to Search Presets") The **Search Presets** sheet is the quickest way to build a structured filter without typing. It lists 2Do's built-in filters in groups: what kind of task it is, whether it has notes or repeats, its due date, its start date, either date, duration and state, priority, tags, locations, attachments, actions, and whether it was captured from email. * Tap a filter's name to select it. Tap it again to remove it. * Tap the **!** control beside a filter to turn it into an exclusion instead. * **Match ALL filters** and **Match ANY filter** decide whether the chosen filters must all apply or just one of them. A **Preview** box at the top shows the exact `type:` expression the sheet will put in the search field, in a fixed-width face, so you can see what you are building and edit it by hand afterwards. Whatever else your search already holds, such as typed text, tags, lists, or a date range, is kept. Only the preset part is replaced. For example, select **Today** and **Overdue** under **Due Date**, then turn off **Match ALL filters** so the sheet reads **Match ANY filter**. This combines the two sets of tasks in one search. See [Combine Today and Overdue](/docs/ios/smart-lists.md#today-and-overdue) for the steps to save it as a Smart List and check for a date range that could still exclude older tasks. ![Search Presets with Overdue and Today selected, and a preview combining them with OR](https://downloads.2doapp.com/resources/img/2do-ios/search-presets.png) tip Build the structure with the **Search Presets** sheet, then add the text and named criteria by hand in the field. The two mix freely. ## Search Dates[​](#dates "Direct link to Search Dates") The **Date Filter** control opens the **Search Dates** editor, which adds a date condition on top of whatever else the search holds. It has two modes: * **Date range**: pick a **From** day and a **To** day on the calendar. The line above it says what it does: *Select a date range to find tasks due in those dates.* Two chips show the ends of the range, reading **From** and **To** until you pick a day, then naming the day itself, with today, yesterday, and tomorrow written by name. * **Dynamic**: search for upcoming tasks due in the next N **Days**, **Weeks**, **Months**, or **Years**. It moves with the calendar, so a saved search stays current. For a worked example that includes today and checks for conflicting presets, see [Due in the Next Two Weeks](/docs/ios/smart-lists.md#next-two-weeks). In date-range mode, an alternative sits below the calendar: **No Due Date**, for finding everything without a deadline. It replaces the range rather than adding to it, which is why the two are separated by a rule. **Include Scheduled** brings tasks with a future start date into the results. To remove the date filter, tap **Clear**, then tap the checkmark to apply. note By default the date filter is applied on top of everything else in the search. To place it yourself, for example as one side of an OR, use the special `{datefilter}` keyword in the query. See [Smart Lists](/docs/ios/smart-lists.md#date-filters). ## Sounds-Like and Full Text[​](#full-text-soundex "Direct link to Sounds-Like and Full Text") 2Do matches text two ways: * **Sounds-Like Search** tolerates spelling mistakes, missing letters, and pronunciation variants. It is on by default and syncs across your devices. * **Full text** matching is literal, and supports exclusions, `OR`, wildcards, and exact phrases. Turn **Sounds-Like Search** off to use it precisely. A few characters switch to literal matching on their own: including `#` or `@` in your text, or wrapping the whole query in quotes, turns sound-alike matching off for that search. tip Sounds-Like Search is good for everyday "I half remember the name" searches. Turn it off when you need exact `OR`, exclusions, or wildcards. ### Full Text Operators[​](#full-text-examples "Direct link to Full Text Operators") With Sounds-Like Search off: | Pattern | Behaviour | Example | | ----------------- | ------------------------------------ | -------------------------------------------------- | | `word` | Matches anywhere inside a word | `ject` finds *project*, *subject*, *rejected* | | `word1 word2` | Implicit AND, both words must appear | `new job` | | `word1 OR word2` | Either word | `Call OR new` | | `word1 AND word2` | Explicit AND, same as a plain space | `new AND job` | | `word -word2` | Excludes a word | `new job -find` | | `!word` | Excludes a word, alternate syntax | `!work` | | `word*` | Anchored to the start of a word | `new*` finds *new*, *newer*, *newest*, not *renew* | | `*word` | Anchored to the end of a word | `*book` finds *book*, *notebook*, not *bookshop* | | `*word*` | Anywhere inside a word | `*ject*` | | `"exact phrase"` | The words together, in order | `"new job"` | | `*` | Matches every task | Pair it with keywords for a broad text base | Worked examples, using the tasks *Get a haircut one day*, *Buy a new car some day*, *Find a new job*, *Call: Mum, tell about my new job*, and *Call: Tim*: * `new job` finds *Find a new job* and *Call: Mum, tell about my new job*. * `new job -find` finds *Call: Mum, tell about my new job*. * `a day` finds *Get a haircut one day* and *Buy a new car some day*. * `Call OR new` finds all but the haircut. note `OR`, `AND`, `or`, and `and` between two words are always read as operators, so you cannot search for those words on their own. Wrap one in quotes, as `"and"`, to search for it as text. ### Sounds-Like Examples[​](#soundex-examples "Direct link to Sounds-Like Examples") | You type | 2Do can still find | | ---------- | ------------------ | | `plumver` | `plumber` | | `Steven` | `Stephen` | | `alexnder` | `Alexander` | | `Jon` | `John` | ## Structured Keywords[​](#keywords "Direct link to Structured Keywords") Text is only half of it. Search also understands nine structured keywords: `type:`, `tags:`, `taggroups:`, `locations:`, `lists:`, `groups:`, `modified:`, `created:`, and `completed:`. Mix them freely with text, keeping any typed words first: ``` plumber type: starred tags: builders groups: home ``` The complete reference, including every `type:` token and how AND and OR combine, is in [Smart Lists](/docs/ios/smart-lists.md#keywords). ## Saving a Search as a Smart List[​](#save "Direct link to Saving a Search as a Smart List") When the search shows what you want, tap the **New Smart List** control in the row under the field. The Smart List is created straight away, named after the query, and joins your source panel. It keeps the query, the date range, the search scope, and the sound-alike setting exactly as you had them. If you are already viewing a Smart List when you tap the control, the same command **updates** that Smart List instead of making another one. ## Search vs. Smart Lists[​](#vs-smart-lists "Direct link to Search vs. Smart Lists") * A **search** is temporary. It narrows the list you are in until you close it. * A **Smart List** is permanent. It lives in the source panel with its own name and colour, and re-applies its rule as your tasks change. If you keep typing the same search, save it. ## Quick Open[​](#quick-open "Direct link to Quick Open") Search filters a list; **Quick Open** jumps you somewhere. Tap the list name at the top of the task list, or press `⇧⌘O`, to open a card that finds tasks and lists by name and takes you straight to the one you pick. See [Quick Open](/docs/ios/quick-open.md). --- # Settings Settings is where you set 2Do's defaults: how tasks look, when they alert you, where new tasks land, how they sync, and who can see them. Open it with the **gear** button at the bottom of the lists panel. Settings is organized into thirteen panes. On iPhone you pick a pane from the list and it opens on its own screen. On iPad the panes stay in a sidebar beside the pane you are reading. The main screen also carries the help links and, at the very bottom, 2Do's version. This page follows that same order. ![The Settings screen listing every pane](https://downloads.2doapp.com/resources/img/2do-ios/set-main.png) ## Settings Across Devices[​](#settings-sync "Direct link to Settings Across Devices") 2Do syncs supported app settings over iCloud between your iPhone, iPad, and Mac when they use the **same iCloud account**. This happens separately from the service you choose for task sync. Allow time for changes to reach your other devices. ## General[​](#general "Direct link to General") **General** holds the handful of preferences that do not belong to any one feature. Under **Device**: * **Prevent Device Sleep** keeps the screen awake while 2Do is open. * **Landscape Orientation** allows 2Do to rotate into landscape. Under **Sounds**, **Play task completion sounds** plays a short sound when you complete a task or mark it as not completed. It is on by default and applies only to this iPhone or iPad. Under **Startup**, **Open at Launch** picks the list 2Do shows when it starts and in each new window on this device. **Last Used** opens the list you were viewing most recently, and it is used again if the list you picked is no longer available. Switching back to 2Do from another app keeps the list you were viewing. Under **Calendar**: * **Week Starts** sets the first day of the week used by every calendar and date picker in 2Do. Leave it on **Automatic** to follow your region. ### Advanced[​](#general-advanced "Direct link to Advanced") Under **Advanced** in **Settings > General**, choose the apps that open when you perform a task's **Call** or **Visit** action. These choices apply only to this iPhone or iPad and don't sync to your other devices. #### Default Calling App[​](#default-calling-app "Direct link to Default Calling App") **Default Calling App** starts on **System Default**, which uses your device's default calling app. You can also choose **FaceTime Audio** when FaceTime is available, or **WhatsApp** once its app is installed. To pick an app for each call, choose **Always Ask**. When you perform a **Call** action, 2Do lists the available apps. Tap the one you want for that call. The setting stays on **Always Ask**, so 2Do asks again next time. If only one app is available, 2Do opens it without asking. **WhatsApp** opens a chat with the number, where you can start the call. It needs the full international phone number, so use `+` and the country code, such as `+44 20 7946 0018`. For a local number without a country code, 2Do asks you to update the number instead of opening WhatsApp. If you remove the calling app you chose, the setting shows **System Default** and 2Do uses it. Install the app again and 2Do goes back to your choice. #### Default Map App[​](#default-map-app "Direct link to Default Map App") **Default Map App** sets where a **Visit** action opens an address. It also applies to the map on the [Nearby page](/docs/ios/nearby-locations.md#nearby-panel): tap a place's pin, then tap the Visit icon beside its name. **Apple Maps** is the default. **Google Maps** and **Waze** appear in the menu once you install them from the App Store. If you remove the map app you chose, the setting shows **Apple Maps** and 2Do uses it. Install the app again and 2Do goes back to your choice. To add a **Call** or **Visit** action to a task, see [Actions](/docs/ios/actions.md#adding). ### Warnings & Tips[​](#general-warnings "Direct link to Warnings & Tips") Under **Warnings & Tips**, each row has a **Clear** button that restores what you have hidden: * **Confirmation warnings** restores prompts that were hidden with "Don't Ask Me" choices, including the [Auto-Prioritize](/docs/ios/auto-prioritize.md) notice you dismissed with **Don't Show Again**. * **User Interface Tips** brings back the small hints under the date, duration, action, and alert pickers that you crossed out while adding or editing a task. The button answers with a green checkmark for a moment, then returns to its title. ## Appearance[​](#appearance "Direct link to Appearance") **Appearance** controls the theme, text size, and how task rows are drawn. ![The Appearance pane](https://downloads.2doapp.com/resources/img/2do-ios/set-appearance.png) ### Themes[​](#appearance-themes "Direct link to Themes") At the top of the pane, a **Light** and **Dark** segmented control picks which system appearance you are editing, and the cards below it choose the theme used for that appearance. 2Do ships two themes, also named **Light** and **Dark**. 2Do follows your device's appearance and draws the theme assigned to it, so set both slots and the app changes with the system. There is no separate switch that forces the app to stay light or dark. tip Set both **Appearance** theme slots, not just the one you use today. 2Do then looks right whichever appearance your device switches to. ### Display[​](#appearance-display "Direct link to Display") * **Text Size** is a five-position slider running from the small `A` to the large `A`. * **Content Width** (iPad only) adds padding around your tasks for easier reading. It is a three-position slider. Narrow panels use the smallest setting regardless of what you pick, because a readable row width comes first. * **Bolder Task Titles** draws task names in a heavier weight. * **Multiline Titles** lets long titles wrap onto a second line in the **Normal** display mode. * **Display Mode** chooses **Extended**, **Normal**, or **Compressed** rows. You can also pinch the task list to switch display modes. ### Task List[​](#appearance-task-list "Direct link to Task List") * **Colored Tabs** draws each task's list color along its row. * **Show overdue tasks in red** colors overdue titles. * **Use friendly dates** writes every task date relative to today: Today, Tomorrow, Yesterday, a weekday name for dates within the coming week, then In 28 days or 10 days ago. Turn it off to see the calendar date instead, which suits repeating tasks when you want the date of the next occurrence. * **Show durations in headings** shows the total duration of the tasks under each heading next to its title, such as 2h 45m. Completed tasks and tasks without a duration are not counted, and a heading with no durations shows no total. When a list is sorted by **Duration**, headings that already name a duration show no total. See [Duration Totals](/docs/ios/dates-and-durations.md#duration-totals). ### Busy Days[​](#appearance-busy-days "Direct link to Busy Days") Three separate pickers decide how each calendar surface marks the days that already have tasks. Each offers **None**, **Dots**, or **Heat Map**: * **Date Pickers**, for the month calendar in the task editor. * **Mini Calendar**, for the calendar in the lists panel on iPhone and in the inspector on iPad. * **Calendar Day Bar**, for the day strip above the task list. Learn more in [Mini Calendar](/docs/ios/mini-calendar.md) and [Calendar Events in Lists](/docs/ios/calendar-integration.md). ## Tasks[​](#tasks "Direct link to Tasks") **Tasks** sets what happens when you create a task, and what happens after you complete one. **Focus Mode** opens a screen listing every one of your lists. Pick a list, then choose the Focus criteria it uses: **Overdue**, **No Due Date**, **In Progress**, **Today**, **Tomorrow**, **This Week**, **Next 3 Days**, **Next 7 Days**, **Next 30 Days**, **Next 6 Months**, **Next 12 Months**, **High Priority**, and **Starred**. You can also change these while viewing a list, by tapping and holding the Focus button above your tasks. See [Focus Lists](/docs/ios/focus-lists.md). ### Natural Language Input[​](#natural-language-input "Direct link to Natural Language Input") * **Quick Add** and **Task Editor**: with these on, which is how they ship, 2Do reads the details out of a new task's title as you write it and fills in the matching fields. The note under the pair reads: "2Do reads dates, start dates, repeats, duration, priority, tags, lists and locations from what you type and fills them in." Turn either one off to save titles exactly as typed on that surface. The pair appears only when your device is set to one of the languages 2Do can read. See [Natural Language Input](/docs/ios/natural-language-input.md). ### New Tasks[​](#default-list "Direct link to New Tasks") * **Getting Things Done® Inbox** creates a special Inbox list and makes it your main collection list. 2Do confirms before turning it on. Turning it off asks again, under the title **Delete Inbox**, because deleting the Inbox also deletes the tasks it contains. That change can be undone. * **Default list** is where new tasks go when 2Do cannot use the current list, such as when you add a task from a Focus List. Leave it on **Last Used** to follow wherever you were working. The picker is disabled while the GTD Inbox is on, because the Inbox is then the default. * **Always Use Default List** sends every new top-level task to the default list, even while you are viewing another list. * **Always Use in Quick Add** captures into the default list from [Quick Add](/docs/ios/quick-add.md). * **Due Time Shortcuts**, **Start Date Shortcuts**, and **Start Time Shortcuts** show or hide the one-tap shortcut rows in the task editor's date pickers. tip If you capture a lot of loose thoughts, turn on the **Getting Things Done® Inbox** and **Always Use in Quick Add**. Everything lands in one place, and you sort it out later. ### Default Due Date[​](#tasks-default-due-date "Direct link to Default Due Date") Turn on **Default due date for new tasks** and pick how far ahead it lands: **Same Day**, **Day After**, **2 Days Later**, **3 Days Later**, **1 Week Later**, **2 Weeks Later**, or **Next Month**. Three switches refine it: * **Only use in Quick Entry** applies the default only when capturing quickly. * **Do not use in Quick Entry** does the opposite. * **Use today's date in the Today list** gives tasks added while viewing Today a due date of today instead of the default. ### Default Due Time and Default Start Time[​](#tasks-default-times "Direct link to Default Due Time and Default Start Time") **Default due time** fills in a time the first time you give a task a due date without choosing one. It does not add a time to a task that already has a date-only due date, so changing that date, or a repeating task moving to its next occurrence, leaves it without a time. **Default Start Time** does the same for start dates. Under each, four **Shortcut** slots hold the times that appear as one-tap choices in the editor's time pickers. ### Time Zone Support[​](#time-zone-support "Direct link to Time Zone Support") **Time Zone Support** reveals the **Fixed Time Zone** switch for timed tasks in ordinary lists. It is off by default. Tasks normally use floating time, so 9:00 AM stays 9:00 AM wherever you are. Turn on a task's **Fixed Time Zone** switch when its time must represent the same moment in different places. This preference does not change task dates or make new tasks fixed. Timed tasks in iCloud shared lists, and tasks already using fixed time, offer the control without it. See [Floating and Fixed Time](/docs/ios/dates-and-durations.md#fixed-time). ### Overdue[​](#tasks-overdue "Direct link to Overdue") **Due Time taken into account when marking a task Overdue** decides whether a timed task turns overdue at its due time or only once the day has passed. ### Completed Tasks[​](#tasks-completed "Direct link to Completed Tasks") * **Show completed tasks for** keeps completed tasks visible for a chosen period, from **Never** or **Always** through **1 minute** up to **1 month**. * **Apply rule to sub-tasks** extends that rule to sub-tasks. * **Show tasks completed today in the Today list** also appears under [Today & Lists](#today-and-lists), which explains how it works. * **Auto-delete completed tasks** removes older completed tasks to keep 2Do, sync, and your connected services running smoothly. Choices run from **Never** through **1 day** up to **1 year**. * **Delay sub-tasks by 3 weeks** holds completed sub-tasks back from auto-deletion so they do not disappear from their parent too soon. important Auto-delete removes tasks permanently. Checked-off items inside a checklist or project count as completed tasks too, so they are removed once they have been completed for longer than the window, or three weeks longer with **Delay sub-tasks by 3 weeks** on. If you only want completed tasks out of sight, use **Show completed tasks for** instead. ## Today & Lists[​](#today-and-lists "Direct link to Today & Lists") **Today & Lists** decides what the Today list gathers and how lists count and sort. Under **Today List**: * **Include overdue items**. * **Include starred items**, which also pulls in starred tasks from lists you excluded from Today. * **Include 'Still Working On' tasks**. Turn it off to hide tasks with past start dates unless they are due today. * **Show tasks completed today in the Today list** is off by default. Turn it on to see the tasks you complete today in the *Done* group at the bottom of the Today list, even if they are due on another day or have no due date. Completed tasks stay in the Today list until midnight in your local time, including on days when daylight saving time starts or ends. They do not stay for a full 24 hours, so a task you complete at 11:30 PM leaves at midnight. Tasks that leave the Today list are not deleted. The same switch appears under [Tasks > Completed Tasks](#tasks-completed), and changing either one changes both. It works separately from **Show completed tasks for**, which still controls how long completed tasks stay visible in your other lists. The Today list keeps its usual rules for excluded, hidden, and locked lists. Under **Focus & Smart Lists**: * **Always list matched sub-tasks separately**. Turn it off to hide a sub-task when its parent is already in the list. * **Inherit Search** keeps the current search or Smart List filtering a project's sub-tasks when you open it. Turn it off to see every sub-task. See [Inherit Search in Project View](/docs/ios/smart-lists.md#inherit-search). Under **Sorting**: * **Sorting by due date uses grouped dates** puts tasks under Today, Tomorrow, Next 7 Days, and Future headings instead of individual dates. * **Sorting by list uses your list order** follows the order of your lists and list groups instead of sorting names alphabetically. * **Sort starred items above hi-priority**. Under **Counts**: * **Counts on lists** shows **None**, **Overdue items**, or **Overdue + Undone** beside each list name. * **Include Smart Lists** counts Smart Lists too. Turning it off speeds things up if you keep many complex Smart Lists. * **Undone counts should include Overdue tasks** includes overdue tasks in the unfinished count. With it on, do not add the red overdue number to the unfinished number: those tasks are already included. These are the counts beside list names. The [app icon badge](#alerts-badge) has its own count option under **Alerts & Badge**. See [Focus Lists](/docs/ios/focus-lists.md) and [Smart Lists](/docs/ios/smart-lists.md). ## Calendar Events[​](#calendar-events "Direct link to Calendar Events") **Calendar Events** decides whether your calendar appears above your tasks, and which calendars are included. Under **Display**: * **Show Calendar Events in Lists** shows your Calendar events above Today and your regular task lists. * **Show Calendar Events in Today** shows them above the Today task list only. It is disabled while the broader setting is on. Under **Calendars**, each calendar has its own switch. Calendars not listed as disabled are included automatically, so newly added calendars appear by default. **Calendar Access** appears until 2Do has permission. Tap **Allow Calendar Access**, or **Open Settings** if access was denied. 2Do needs full calendar access to read and show events. Learn more in [Calendar Events in Lists](/docs/ios/calendar-integration.md). ## Alerts & Badge[​](#notifications "Direct link to Alerts & Badge") **Alerts & Badge** has two tabs: **General** and **Exclusions**. ![The Alerts and Badge pane](https://downloads.2doapp.com/resources/img/2do-ios/set-notifications.png) ### Notifications[​](#alerts-notifications "Direct link to Notifications") **Notification Access** reports whether notifications are enabled for 2Do and offers **Enable Notifications**, or **Open Settings** when permission was denied. ### Alarms[​](#alerts-alarms "Direct link to Alarms") On devices running iOS 26.1 or later, an **Alarms** section offers **Ring alerts as alarms**. With it on, a task alert rings like a Clock alarm: full screen, through Silent mode and Focus, and it keeps ringing until you dismiss it. **Alarm Access** appears alongside it with **Enable Alarms** until you grant permission. Only timed alerts ring as alarms. Location alerts, action alerts, and watch alerts stay as normal notifications, and any single task can be set differently in its Alerts panel. See [Alerts and Nagging](/docs/ios/alarms-and-nagging.md). ### Default Reminders[​](#alerts-default-reminders "Direct link to Default Reminders") 2Do can automatically add a reminder when you give a task a due time or a due date. * **Remind me of tasks with a due time** fires **At due time**, or from **5 minutes before** up to **2 days before**. * **Remind me of tasks with a due date** fires **On due date**, at one of the same offsets, or at a **Custom** time. Custom adds **Days**, **Before or after**, and **Time** rows. This applies to tasks with a due date but no due time. ### Nagging[​](#alerts-nagging "Direct link to Nagging") * **Snooze interval** is the snooze used from an alert: **Always Ask**, **5 minutes**, **10 minutes**, **15 minutes**, **30 minutes**, **1 hour**, **2 hours**, **6 hours**, **12 hours**, or **1 day**. * **Nag me every** repeats an alert until you deal with the task: **Off**, **Every 5 Minutes**, **Every 15 Minutes**, **Every 30 Minutes**, **Every Hour**, or **Every Day**. ### Sounds[​](#alerts-sounds "Direct link to Sounds") **Alert sound** picks the sound 2Do uses. Choosing one plays it straight away. ### App Icon Badge[​](#alerts-badge "Direct link to App Icon Badge") **Count on app icon** picks what the badge counts: **None**, **All items**, **Overdue**, **Today**, **Due Today Only**, **Today + Overdue**, **Today + Tomorrow**, **Hi-Priority**, **Starred**, **Next 3 Days**, **Next Week**, **Next Month**, **Next 6 Months**, or **Next Year**. The row also shows when badges are turned off for 2Do in the system Settings app. The three Today options count different sets of unfinished tasks: | Option | What it counts | | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Today** | Eligible tasks selected by Today's date and inclusion rules, excluding overdue tasks. Start dates, durations, and the Starred and Still Working On settings can bring tasks into this count. | | **Due Today Only** | Tasks whose due date is today, with or without a due time. A task keeps counting after its due time has passed. Tasks due on another day, or with no due date, never count. | | **Today + Overdue** | The eligible Today tasks plus overdue tasks, counted once each. Overdue tasks count even when **Include overdue items** is off in Today settings. | **Today** and **Today + Overdue** use the lists included in Today, with the starred-task exception from **Include starred items**. They skip hidden and archived lists and tasks on hold, even if you have revealed paused tasks in the list. Count distinct tasks when comparing totals. A task due earlier today may already be overdue; **Today + Overdue** counts it once. note When [**Due Time taken into account when marking a task Overdue**](#tasks-overdue) is on, the **Today** badge can decrease during the day without you completing anything. For example, an unfinished task due at 13:22 stops counting once that time passes. Choose **Today + Overdue** to keep overdue tasks counted, or **Due Today Only** to keep counting unfinished tasks throughout their due day. **Due Today Only** looks at the due date alone. A task that has already started, or starts today, does not count unless it is also due today. A star or a duration makes no difference. All three Today badge options follow [Smart Scheduling](/docs/ios/focus-lists.md#smart-scheduling). A task can be due today but not started yet, because its start date or time is still ahead: * **Scheduled tasks shown:** it can count before its start time, if it meets the selected badge option's other rules. * **Scheduled tasks hidden:** it stays out of the count until its start date and time arrive. For **Due Today Only**, a task that starts after its due day never counts. **Due Today Only** counts only lists included in Today, and skips hidden lists, archived lists, and tasks on hold. Changing the badge option never changes what the Today list shows. Every badge option counts tasks in password-protected lists, even while those lists or the app are locked. Each device calculates its own badge count from its local tasks and settings. If the badge differs from the total you expect or from another device, see [Why does the app icon badge show a different count?](/docs/faqs/app-icon-badge-count.md). ### Exclusions[​](#alerts-exclusions "Direct link to Exclusions") The **Exclusions** tab shows **List Alerts**: one switch per list, grouped the way your lists panel is grouped. Turn off alerts for any list you don't want to hear from, including lists shared with you. note List Alerts are set per device and are not synced. Excluding a list here silences its tasks on this iPhone or iPad only. tip **Alerts & Badge > Exclusions > List Alerts** is the quiet way to keep a shared or reference list out of your notifications without changing anything on its tasks. ## Nearby[​](#nearby "Direct link to Nearby") **Nearby** controls location-based alerts. * **Nearby Alerts** turns the feature on. It will automatically alert you of nearby tasks, taking into account their start and due dates. * **Location Access** appears when 2Do needs permission, or when Precise Location is turned off, because nearby alerts may then arrive late or not at all. * **Maximum Distance** sets how far out 2Do watches. There are six choices, from 250 metres up to 10 kilometres, and each is shown in the units your device's region uses. * **Manage Locations** opens your saved locations, where you can add, search, edit, reorder, and delete them. Learn more in [Nearby Locations](/docs/ios/nearby-locations.md). ## Sync[​](#sync "Direct link to Sync") **Sync** has a **Setup** tab and an **Exclusions** tab. On **Setup**, open **Account Type** and pick a service, then tap **Set Up Sync**. Once an account is set up, **Enable Sync** is the master switch: turning it off keeps the account and its settings but stops syncing. The same tab holds the account's own options, including **Sync automatically** (turn it off to sync manually by pulling down on the task list), **Push Sync**, and **Next sync action**, which applies to one run and then returns to normal. On **Exclusions**, pick lists that should stay out of sync. Their tasks stay on this device. ![The Sync pane with an account set up](https://downloads.2doapp.com/resources/img/2do-ios/set-sync.png) For the services on offer, what each one carries, and the first-sync choices, see [Sync](/docs/ios/sync.md) and [Sync with iCloud](/docs/ios/sync-with-icloud.md). ## Mail to 2Do[​](#mail-to-2do "Direct link to Mail to 2Do") **Mail to 2Do** gives you a private email address that turns messages into tasks. Turn on **Enable Mail to 2Do**, then copy the address under **Your Address**. Under **Delivery**, **Default destination list** is used when an email doesn't name a list itself, and **Fetch Now** checks for new mail immediately. 2Do also checks in the background. Learn more in [Mail to 2Do](/docs/ios/email-to-2do.md). ## Sharing[​](#sharing "Direct link to Sharing") **Sharing** brings together your iCloud shared lists and Wi-Fi sharing. * **New Shared List…** creates a list for inviting other 2Do users through iCloud. * **Shared by Me** shows your iCloud lists. Tap one for **Manage Sharing…**, **Stop Sharing…**, or **Replace Contents…**. An unavailable list offers Stop so you can keep or delete its local copy. * **Shared with Me** shows received iCloud lists. Tap an active list to leave it, or remove a read-only copy after sharing has ended. See [Share Lists over iCloud](/docs/ios/icloud-list-sharing.md) for invitations, permissions, what is shared, and what stays personal. Replacing contents changes the shared work for everyone; it is not a way to download newer changes. ### Wi-Fi Sharing[​](#wifi-sharing "Direct link to Wi-Fi Sharing") Under **Wi-Fi**, **Browse Shared Lists** finds lists on your local network. The screen also shows lists this device publishes. To publish a regular list, use its touch-and-hold menu in the lists panel. See [Share Lists over Wi-Fi](/docs/ios/list-sharing.md). ## Security[​](#privacy "Direct link to Security") **Security** has three tabs: **Protection**, **Privacy**, and **Archived**. ![The Privacy pane with protection options](https://downloads.2doapp.com/resources/img/2do-ios/set-privacy.png) On **Protection**: * **Passcode** protects 2Do and selected lists with a four-digit passcode. Tap **Set** to create one, then **Change** or **Turn Off** later. * **Require passcode** decides how soon 2Do asks again: **Immediately**, **1 minute**, **3 minutes**, **5 minutes**, or **10 minutes**. * **Lock everything** requires the passcode to unlock the app. * **Allow Widget & Watch access when protected** keeps widgets, the Watch app, and task complications available while **Lock everything** is on. With it off, these surfaces hide task content. Individually password-protected lists stay hidden on widgets and the Watch either way. * **Password-Protected Lists** lists every list with a switch. Tasks from selected lists stay hidden until you unlock them. On **Privacy**, **List Visibility** has one switch per list. Turn off a list to hide it from the side panel. Hidden lists and tasks still sync. **Archived** shows your archived lists, including hidden ones. Tap **Unarchive** and confirm to restore a list. Its visibility and password-protection settings stay the same. If it is still hidden, turn it on under **Privacy > List Visibility**. See [Archiving a List](/docs/ios/lists-and-list-groups.md#archiving). While a passcode is set, a bar at the bottom of the pane reads **Unlock to change protected settings and list visibility**, with an **Unlock** button. Once unlocked it offers **Lock** so you can end the session yourself. Learn more in [Password Protection](/docs/ios/password-protection.md). ## Backups & Export[​](#backups "Direct link to Backups & Export") **Backups & Export** creates snapshots of your 2Do database, restores them, and exports lists. Under **Automatic Backups**, **Create backups** offers **None**, **Every 24 Hours**, or **Every 48 Hours**, and **Keep at most** holds **5**, **10**, **20**, or **30** of them. The actions below are **Create Backup Now**, **Restore from File…**, **Backup to Email**, and **Export Lists…**. Every stored backup is listed underneath with its size and date, and a menu offering **Restore…**, **Save a Copy…**, and **Delete**. Learn more in [Backups](/docs/ios/backups.md). ## Help[​](#help-about "Direct link to Help") The help links sit right on the main Settings screen: * **Walkthrough Tutorial** replays the introduction you saw at first launch. * **User Manual** opens this documentation. * **Leave a Review** opens 2Do on the App Store. ## Diagnostics[​](#diagnostics "Direct link to Diagnostics") **Diagnostics** is where you send logs to support, choose what 2Do reports on its own, and keep the database in shape. Logs record recent app activity and help 2Do support investigate problems. **Email Diagnostic Report** and **Share Diagnostic Report** package recent logs. Both explain what the logs contain and ask you to confirm before anything leaves the device. Under **Privacy**, two switches decide what this iPhone or iPad sends. Both are on by default: * **Automatic crash reporting** sends a crash report automatically when 2Do crashes, which helps find and fix the cause. Turn it off to stop these automatic reports. You can still send logs yourself with **Email Diagnostic Report** or **Share Diagnostic Report**. * **Share my usage statistics** shares usage statistics that help guide improvements to 2Do. Under **Database**: * **Optimize Database** tidies the local database and reports back when it is done. * **Reset Application Data…** wipes everything stored in 2Do on this device and installs a fresh database. warning **Reset Application Data…** cannot be undone. Create a backup and save a copy off the device first. See [Backups](/docs/ios/backups.md). ## About[​](#about "Direct link to About") The main Settings screen closes with 2Do's app icon, version, and build. --- # Automate with Shortcuts 2Do ships a set of native actions for the **Shortcuts** app on iPhone and iPad, built on Apple's App Intents. You can create, find, update, complete, move, and delete tasks; build alarm and repeat values; pause tags; and open tasks in the app, all by dragging actions together with no scripting. Data actions work while 2Do is closed Reading, creating, updating, deleting, alarm, recurrence, and value-building actions run in a separate extension, so they work while 2Do isn't open. A change made while the app is closed is waiting for you the next time you open it. Actions that open a task or a collection, or search inside 2Do, bring the app forward on purpose. The one setup requirement is to open 2Do at least once after installing or updating. Until then, data actions report *"Open 2Do once to finish setup, then run this shortcut again."* ## Your First Shortcut[​](#first-shortcut "Direct link to Your First Shortcut") A one-minute capture shortcut: 1. Open the **Shortcuts** app and tap **+** to create a new shortcut. 2. In the action search field, type **2Do**. Every 2Do action appears under the app's name. 3. Add **Ask for Input** (a built-in Shortcuts action) and set the prompt to "What needs doing?". 4. Add 2Do's **Create Task** and pass the *Provided Input* into its **Title**. 5. Optionally open Create Task and set a **Destination** list, a **Due Date**, a **Priority**, or **Tags**. 6. Give the shortcut a short, speakable name such as *Capture It*. Run it from the Shortcuts app, the home screen, the Action button, or by saying "Hey Siri, Capture It". 2Do actions take values from the actions above them and hand their results to the actions below. ## The Action Catalogue[​](#actions "Direct link to The Action Catalogue") Every action appears in Shortcuts under **2Do**. ### Find and read[​](#read-actions "Direct link to Find and read") | Action | What it does | | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | | **Find Tasks** | Finds tasks by title, list, and due date. Filter, sort, and limit the results. See [Finding Tasks](#find-tasks). | | **Get Tasks from Collection** | Returns tasks from a Focus (**All**, **Today**, **Starred**, **Scheduled**, **Done**), a list, a list group, or a Smart List. | | **Get Subtasks** | Returns the direct sub-tasks of a project or checklist. | | **Get Task by ID** | Returns the task with a stable task ID, handy when another automation handed you an identifier. | | **Get Default Task Destination** | Returns the list 2Do currently uses for new tasks. | | **Get Selected Tasks** | Returns the tasks currently selected for batch editing in 2Do. This one reads the running app, so 2Do needs to be open. | ### Create and edit[​](#write-actions "Direct link to Create and edit") | Action | What it does | | ----------------------- | ---------------------------------------------------------------------------------------------------------------- | | **Create Task** | Creates a task, project, or checklist with full 2Do scheduling and metadata. See [Creating Tasks](#create-task). | | **Update Task** | Updates selected fields on a task. Omitted values remain unchanged. | | **Set Task Completion** | Marks one or more tasks complete or incomplete. | | **Move Tasks** | Moves tasks to a list, or into a project or checklist as sub-tasks. | | **Duplicate Task** | Duplicates a task, project, or checklist. | | **Delete Tasks** | Deletes one or more tasks. It always asks you to confirm first. | | **Set Task Action** | Replaces or clears the action attached to a task. | | **Set Task Alarms** | Replaces all sound alarms on a task. An empty list clears them. | | **Set Task Recurrence** | Replaces or clears the repeat rule on a task. | | **Set Tag Paused** | Pauses or resumes one of your tags, the Shortcuts equivalent of [pausing a tag](/docs/ios/tags.md). | ### Value builders[​](#value-actions "Direct link to Value builders") Three helper actions build reusable values for the actions above without touching your data: | Action | What it builds | | ------------------------ | --------------------------------------------------------------- | | **Make Task Alarm** | A sound-alarm value for **Create Task** or **Set Task Alarms**. | | **Make Task Recurrence** | A repeat value for **Create Task** or **Set Task Recurrence**. | | **Make Task Subtask** | A sub-task value for **Create Task**. | Chain them: **Make Task Alarm** into **Create Task**, or **Make Task Recurrence** into **Set Task Recurrence**. ### Show and open[​](#show-actions "Direct link to Show and open") | Action | What it does | | ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | | **Open Task in 2Do** | Opens 2Do with the task selected and revealed. | | **Open Collection in 2Do** | Opens 2Do with a list, list group, Smart List, or Focus List selected. | | **Search in 2Do** *(iOS 18 or later)* | Opens 2Do with a search ready to run, through the system search action wired to 2Do's search bar. | | **Show Tasks** *(iOS 26 or later)* | Shows tasks in an interactive panel with completion and open controls on every row, so you can tick things off without opening 2Do. | ## Creating Tasks[​](#create-task "Direct link to Creating Tasks") **Create Task** exposes 2Do's task model in one action: * **Title** (required) and **Notes**. * **Destination**: any list, or a project or checklist to create the new item inside as a sub-task. Leave it empty and 2Do uses your default capture list. * **Task Type**: Task, Project, or Checklist. * **Starred** and **Priority**. * **Due Date**, **Due Time**, **Start Date**, **Start Time**, and **Duration**. * **Tags** and **Locations**, picked from the ones you already have. Shortcuts does not invent new tags or locations, so create them in 2Do first. * **Alarms** from **Make Task Alarm**, and **Recurrence** from **Make Task Recurrence**. * **Action Type** and **Action Value**, to give the task a call, message, email, visit, URL, or web-search action. * **Subtasks**, a list of values from **Make Task Subtask** for scaffolding a project or checklist, up to 100 of them. Each value can include its own notes, dates, duration, priority, tags, locations, alarms, recurrence, and action. Create Task returns the new task, so the next action can alarm it, move it, or open it straight away. ## Finding Tasks[​](#find-tasks "Direct link to Finding Tasks") **Find Tasks** is generated from 2Do's task model, so the Shortcuts filter builder understands real task properties: title, notes, completion, starred, paused, task type, due date, start date, priority, list, tags, and locations. Combine any number of filters with **All** or **Any** matching, sort the results, and cap how many come back. Every task that comes back carries its full field set as Shortcuts variables, including its deep link, so you can feed task details into any other app's actions without a second lookup. ## Batch Operations[​](#batches "Direct link to Batch Operations") **Set Task Completion**, **Move Tasks**, and **Delete Tasks** accept a whole list of tasks in one run, up to 100. The batch is checked before anything changes: if one task is invalid the action fails, and otherwise the changes are applied in order. **Delete Tasks** always asks for confirmation and can never run silently. Completing a repeating task moves it on to its next occurrence, the same as completing it in the app. ## Undo[​](#undo "Direct link to Undo") On iOS 26 or later, **Set Task Completion** and **Delete Tasks** register with the system undo manager, so those changes can be undone after the shortcut runs. ## Siri[​](#siri "Direct link to Siri") Any shortcut you build can be run by voice: "Hey Siri, ⟨shortcut name⟩". Give capture shortcuts short, speakable names such as *Capture It* or *Plan Tomorrow*. 2Do also ships spoken phrases of its own, so you can add, find, and complete tasks without building a shortcut first. See [Siri and Shortcuts](/docs/ios/siri-and-shortcuts.md). ## Siri on iOS 27[​](#os27-siri "Direct link to Siri on iOS 27") Requires iOS 27 or later Everything else on this page works on the versions listed under [Requirements](#requirements). On iOS 27, 2Do's tasks and lists are available to Siri conversationally: you can create, update, complete, delete, and look up tasks by asking, with no shortcut in between. See [Asking Siri to Work with Your Tasks](/docs/ios/siri-and-shortcuts.md#new-siri) for exactly which fields Siri can set. This is a separate surface from the catalogue above: it adds no actions to the **Shortcuts** app, and your own shortcuts are unaffected. The integration has two further pieces: * **Spotlight results are actionable.** Tasks indexed for Spotlight are published as the system's task type, so a task you find in search can be acted on from there rather than only opened. * **Siri knows what is on screen.** The task list reports which task each visible row represents, so you can refer to "this task" while you are looking at it. ## Spotlight[​](#spotlight "Direct link to Spotlight") Your tasks are indexed for **Spotlight**. Pull down on the home screen, type part of a task's title, and open the result to jump to it in 2Do. Spotlight follows the privacy rules below. ## Privacy and Passcodes[​](#privacy "Direct link to Privacy and Passcodes") Siri and Shortcuts are deliberately stricter than the app itself, because they can run from unattended automations: * If a **passcode** is set under **Settings > Security**, the whole Siri and Shortcuts surface fails closed. Actions report *"2Do data is unavailable to Siri and Shortcuts while an app password is set."* That holds even while 2Do is unlocked on screen. Spotlight indexes nothing in that state either. * **Password-protected lists** are always excluded. Their tasks never appear in results and are never offered as destinations, even while you have unlocked them in the app. Protection is checked again immediately before any write. * Actions that touch your data require device authentication, so a locked device will not run them. See [Password Protection](/docs/ios/password-protection.md). ## Recipes[​](#recipes "Direct link to Recipes") * **Morning briefing**: *Get Tasks from Collection* (Today) into *Show Tasks*, for an interactive checklist of the day from one tap or one phrase. * **Quick capture with a deadline**: *Ask for Input* into *Create Task* with a due date of today, a due time, and a 15-minutes-before alarm from *Make Task Alarm*. * **Project scaffold**: build each template step with *Make Task Subtask*, then pass the values to *Create Task* with Task Type set to Project. Duplicate the shortcut per template. * **Weekly sweep**: *Find Tasks* for completed tasks older than last week, into *Delete Tasks*. The confirmation prompt keeps it safe. * **Heads-down mode**: *Set Tag Paused* on your `@errands` tag as part of a bigger focus shortcut, with a matching shortcut to resume it. * **Hand off to your calendar**: *Find Tasks* due today with a duration, then create calendar events from each task's title and due time. ## Requirements[​](#requirements "Direct link to Requirements") * The core data, navigation, and value actions run on every device 2Do supports. * **iOS 18 or later** adds the **Search in 2Do** system search action. * **iOS 26 or later** adds the interactive **Show Tasks** panel. * **iOS 27 or later** adds conversational Siri access to your tasks and lists, actionable Spotlight results, and on-screen task references. ## Related Pages[​](#related "Direct link to Related Pages") * [Siri and Shortcuts](/docs/ios/siri-and-shortcuts.md): spoken phrases, conversational Siri access, and the quick-start overview. * [URL Schemes](/docs/ios/url-schemes.md): `twodo://` callback integration for apps that can only open a URL. * [Password Protection](/docs/ios/password-protection.md): what a passcode hides from automation. --- # Siri and Shortcuts 2Do speaks to Siri out of the box and plugs into the **Shortcuts** app with a full set of native actions. Nothing needs setting up inside 2Do first. ## Talking to Siri[​](#siri "Direct link to Talking to Siri") 2Do ships its own spoken phrases, in every language 2Do speaks. Say any of these and Siri hands the job to 2Do: **To add a task** * "Add to 2Do" * "Add a task to 2Do" * "New task in 2Do" * "Create a task in 2Do" * "Remember this in 2Do" **To find tasks** * "Find tasks in 2Do" * "Search for tasks in 2Do" * "Search 2Do for tasks" * "Show my tasks in 2Do" * "Look up a task in 2Do" **To complete a task** * "Complete a task in 2Do" * "Mark a task as done in 2Do" * "Finish a task in 2Do" * "Check off a task in 2Do" * "Complete a 2Do task" Siri asks for whatever it still needs, such as the task title or which list to search. New tasks go to your default capture list, which you set under **Settings > Tasks > New Tasks**. See [Settings](/docs/ios/settings.md#default-list). The same three actions appear in the Shortcuts gallery as **Quick Add**, **Find Tasks**, and **Complete Task**, so you can also run them from a shortcut, the home screen, or the Action button. note If you ask Siri to "remind me" without naming 2Do, the item goes to Apple's Reminders app instead. That still reaches 2Do if you sync with [Apple Reminders](/docs/ios/sync-with-reminders.md). Otherwise, name 2Do in the phrase. ## Asking Siri to Work with Your Tasks[​](#new-siri "Direct link to Asking Siri to Work with Your Tasks") Requires iOS 27 or later On earlier versions, use the spoken phrases above and the [Shortcuts actions](/docs/ios/shortcuts-actions.md). On iOS 27, your 2Do tasks and lists are available to Siri directly, so you can talk through a change in your own words instead of building a shortcut for it first. Siri can: * **Create a task** with a title, a destination list, notes, a due date and time, a star, tags, one URL, and a repeat. * **Update a task**: change its title, notes, due date and time, star, tags, URL, or repeat, or move it to another list. Anything you do not mention stays as it is. * **Complete a task**, or mark a completed task as not done. * **Delete one or more tasks**. * **Find tasks, lists, and list groups** by name. Tasks created this way are always plain tasks. Siri does not create projects or checklists, and it does not set a priority, start date, duration, alarms, sub-tasks, or locations. Create those in the app or with 2Do's Shortcuts actions. Siri works with your normal lists and list groups, picking from the ones you already have. It does not create lists, and Smart Lists are not offered. A repeat that does not map onto 2Do's own repeat rules is refused rather than approximated. Creating, updating, and deleting through Siri follow the same security rules as the rest of 2Do's automation: they require device authentication, and while a passcode is set under **Settings > Security**, 2Do keeps its data away from Siri and Shortcuts entirely. See [Password Protection](/docs/ios/password-protection.md). This is a separate surface from the **Shortcuts** app. It adds no actions there, and the shortcuts you have already built keep working as they are. See [Automate with Shortcuts](/docs/ios/shortcuts-actions.md) for the full catalogue. ## Naming Lists for Siri[​](#naming-lists "Direct link to Naming Lists for Siri") If you tell Siri which list to use, say the list name exactly as it appears in 2Do. Avoid list names that are also date words, such as *Today* or *Tomorrow*, because Siri may read them as dates rather than as the name of a list. ## The Shortcuts App[​](#shortcuts "Direct link to The Shortcuts App") Search for **2Do** in the Shortcuts action list and you get the whole task model: **Create Task** with dates, tags, alarms, repeats, and structured sub-tasks, **Find Tasks** with property filters, **Get Tasks from Collection**, **Set Task Completion**, **Move Tasks**, **Delete Tasks**, **Set Tag Paused**, and more. Most of them run while 2Do is closed. See **[Automate with Shortcuts](/docs/ios/shortcuts-actions.md)** for the full catalogue, a first shortcut to build, and ready-made recipes. tip Give capture shortcuts short names you can say without thinking, such as *Capture It*. A long name is a shortcut you will stop using by voice. ## URL-Scheme Flows[​](#url-schemes "Direct link to URL-Scheme Flows") For callback-style integrations, and for apps that can only open a URL, 2Do's `twodo://` scheme is still there. A clipboard-capture example: 1. **Get Clipboard**. 2. **URL Encode** the result. 3. **Open URL** with `twodo://x-callback-url/add?task=&forlist=Inbox`. See [URL Schemes](/docs/ios/url-schemes.md) for the full action and parameter reference. tip Prefer the native Shortcuts actions over URL schemes wherever both would do. They return real task values you can chain into the next action, they check their input, and they do not need to open the app. ## Spotlight[​](#spotlight "Direct link to Spotlight") Your tasks are indexed for Spotlight. Pull down on the home screen, type part of a task title, and tap the result to open that task in 2Do. Spotlight follows 2Do's privacy rules: with a passcode set, no task content is indexed at all, and tasks in password-protected lists are never indexed. See [Password Protection](/docs/ios/password-protection.md). --- # Smart Lists, Smart Filters, and Search A **Smart Filter** searches your tasks using words, tags, dates, or a combination of conditions. Save it as a **Smart List** to keep it in the lists panel. The results update as your tasks change. Use the searches on this page once or save them for later. For quick filtering with a few built-in conditions, see [Focus Filter](/docs/ios/focus-filter.md). ![A Smart List selected in the lists panel](https://downloads.2doapp.com/resources/img/2do-ios/iossmartfilter.png) ## Opening Search[​](#search-bar "Direct link to Opening Search") Tap the **search** button above the task list or press `⌘F`. Type your query in the field, or use **Search Presets** and **Search Dates** to set filters. See [Search](/docs/ios/search.md) for the available controls. ## Combine Today and Overdue[​](#today-and-overdue "Direct link to Combine Today and Overdue") To show unfinished tasks due today together with overdue tasks, enter this search: ``` type: duetoday OR overdue ``` To build the same filter with the controls: 1. Select the **All** list and open search, so the search is not limited to one list. 2. Open **Presets**. Under **Due Date**, select **Today** and **Overdue**, with no other presets selected. 3. Turn off **Match ALL filters** at the top of the sheet so it reads **Match ANY filter**. 4. Tap the checkmark to apply, then tap **New Smart List** to save. To change an existing Smart List, select it first, adjust its presets, and use the save control to update it. **Match ALL filters** requires each task to meet both conditions. Tasks overdue from earlier days cannot also be due today, so they are excluded. **Match ANY filter** includes a task when either condition matches. The saved search keeps following the current day automatically. ![The Today and Overdue search presets selected together, with OR in the search preview](https://downloads.2doapp.com/resources/img/2do-ios/search-presets.png) note A separate date range still narrows the results, even with **Match ANY filter** selected. If the range is limited to today, older overdue tasks remain excluded. Open **Date Filter**, tap **Clear**, then tap the checkmark to apply before saving. To require high priority as well, edit the search field to read: ``` type: (duetoday OR overdue) AND hiprio ``` The parentheses group the two date choices, and `AND hiprio` requires high priority for both. Choosing all three presets with **Match ANY filter** would also include high-priority tasks due on other days. ## Two Ways of Matching Text[​](#modes "Direct link to Two Ways of Matching Text") * **Full text** matching is literal, and supports wildcards, `OR`, exclusions, and exact phrases. * **Sounds-Like Search** tolerates spelling mistakes and pronunciation variants. It is on by default. Turn **Sounds-Like Search** off when you need the full-text operators to behave exactly. The operator table and worked examples are in [Search](/docs/ios/search.md#full-text-examples). tip Sounds-Like Search is good for everyday searches. Turn it off when you need exact `OR`, exclusions, or wildcards. ## Full Text and Structured Filters Together[​](#full-text "Direct link to Full Text and Structured Filters Together") Free text and structured keywords mix in one query, with the typed words **first**: ``` plumber type: starred tags: builders groups: home ``` Here `plumber` is the text search and the rest narrow it by property. ## The Nine Keywords[​](#keywords "Direct link to The Nine Keywords") 2Do recognizes nine reserved keywords, each ending in a colon: `type:`, `tags:`, `taggroups:`, `locations:`, `lists:`, `groups:`, `modified:`, `created:`, and `completed:` Each keyword filters a different task detail. You can combine them, and `type:`, `tags:`, and `locations:` each support their own inline `AND`, `OR`, commas, `!`, and parentheses. ### `type:` Filter by Task Property[​](#type "Direct link to type") Use `type:` with one or more of the task properties below: ``` type: hiprio type: (proj OR chck) AND hiprio AND !repeat type: ((starred OR hiprio) AND due) OR today ``` Inside `type:`, a comma behaves like `AND`, `!` excludes a token, and parentheses group them. #### Task Structure[​](#type-structure "Direct link to Task Structure") | Token | Matches | | ----------- | ----------------------------------- | | `alltasks` | Any task kind, as a flat view | | `task` | Top-level plain tasks only | | `subtasks` | Sub-tasks only | | `proj` | Projects | | `chck` | Checklists | | `emptyproj` | Projects with no active sub-tasks | | `emptychck` | Checklists with no active sub-tasks | #### Actions, Attachments, Notes, and Capture[​](#type-actions "Direct link to Actions, Attachments, Notes, and Capture") | Token | Matches | | -------------- | ---------------------- | | `action` | Any action attached | | `call` | Call action | | `sms` | Message action | | `email` | Mail action | | `browse` | URL action | | `visit` | Visit action | | `google` | Google action | | `audio` | Audio attachment | | `pict` | Picture attachment | | `note` | Has notes | | `repeat` | Repeating | | `capturedmail` | Captured from an email | #### Dates[​](#type-dates "Direct link to Dates") | Token | Matches | | ------------------- | -------------------------------------------------------------- | | `due` / `nodue` | Has / lacks a due date | | `start` / `nostart` | Has / lacks a start date | | `duetoday` | Due today | | `today` | Due today (alias for `duetoday`) | | `duetomorrow` | Due tomorrow | | `tomorrow` | Due tomorrow (alias for `duetomorrow`) | | `duethisweek` | Due this week | | `starttoday` | Starts today | | `starttomorrow` | Starts tomorrow | | `startthisweek` | Starts this week | | `anytoday` | Start **or** due date is today | | `anytomorrow` | Start **or** due date is tomorrow | | `anythisweek` | Start **or** due date is this week | | `thisweek` | Start **or** due date is this week | | `overdue` | Past due, across every list, including lists hidden from *All* | | `tasksoverdue` | Past due, respecting the lists you excluded from *All* | | `donetoday` | Completed today | | `doneyesterday` | Completed yesterday | | `donethisweek` | Completed this week | note `today` and `tomorrow` match the **due** date only, but bare `thisweek` matches **start or due**. Use `anytoday` and `anytomorrow` when you want the "start or due" behaviour for a single day. Tokens that check the due date also match a task whose duration counts back into that day or week, the same way the *Today* list does. See [Dates and Durations](/docs/ios/dates-and-durations.md#duration-due). "This week" follows your configured start of the week under **Settings > General**, and every date token is evaluated live, so a saved Smart List using one keeps rolling forward on its own. #### Priority[​](#type-priority "Direct link to Priority") | Token | Matches | | --------- | --------------- | | `prio` | Any priority | | `noprio` | No priority | | `hiprio` | High priority | | `medprio` | Medium priority | | `lowprio` | Low priority | | `starred` | Starred | #### State and Presence[​](#type-status "Direct link to State and Presence") | Token | Matches | | ------------ | ---------------------------------------------- | | `alarms` | Has alerts | | `duration` | Has a duration | | `inprogress` | Start date or duration window currently active | | `scheduled` | Not completed, with a future start date | | `paused` | Belongs to a paused tag | #### Tags and Locations[​](#type-tag-loc "Direct link to Tags and Locations") | Token | Matches | | ------------- | ------------------------- | | `anytag` | Has at least one tag | | `notag` | Has no tag | | `anylocation` | Has at least one location | | `nolocation` | Has no location | ### `tags:` Filter by Tag[​](#tags "Direct link to tags") Comma-separated values are OR by default. `AND`, `OR`, `!`, and parentheses all work. ``` tags: home, work # same as: tags: home OR work tags: (home OR work) AND !play tags: (call OR mail) AND work tags: ? # any tag set tags: ~ # no tag set tags: !work # has a tag, but not work tags: ~ OR !work # not tagged work, including untagged tasks ``` `tags: !work` matches tasks that have at least one tag and are not tagged `work`, so tasks with no tags are left out. To include them, use `tags: ~ OR !work`. ### `taggroups:` Filter by Tag Group[​](#taggroups "Direct link to taggroups") Match every tag inside one or more named [tag groups](/docs/ios/tags.md#tag-groups). Each group expands to the tags it holds, then behaves like `tags:`. Prefix a group with `!` to exclude it. As with a `tags:` exclusion, excluding a group that contains tags, such as `taggroups: !Someday`, only matches tasks that have at least one tag. ``` taggroups: Contexts # any tag inside the Contexts group taggroups: !Someday # exclude every tag in the Someday group ``` ### `locations:` Filter by Location[​](#locations "Direct link to locations") The same model as `tags:`. ``` locations: home, drycleaners # same as: locations: home OR drycleaners locations: (home OR work) AND !playground locations: ? # any location set locations: ~ # no location set locations: ~ OR !home # not at home, including tasks with no location ``` `locations: !home` only matches tasks that have a location set. Use `locations: ~ OR !home` to include tasks without one. ### `lists:` Filter by List[​](#lists "Direct link to lists") Filter to tasks living in one or more named lists. Positive names are OR-ed together; prefix a name with `!` to exclude a list. ``` lists: Work, Home # tasks from the Work or Home lists lists: !Archive # everything except the Archive list ``` `lists:` is **scope-replacing**: a resolved `lists:` filter searches across all your lists, whichever list is selected and whatever the [search scope](/docs/ios/search.md#scope) is set to. `groups:` and `completed:` behave the same way. The other keywords stay inside whichever list you are searching. note Because 2Do allows lists to share a name, `lists: Work` matches every list called "Work". It cannot tell two identically named lists apart. ### `groups:` Filter by List Group[​](#groups "Direct link to groups") Restrict the search to tasks inside, or outside, one or more list groups. ``` groups: projects # all tasks in the Projects list group groups: home, work # tasks in either group groups: !home # exclude the Home group ``` ### `modified:`, `created:`, and `completed:` Filter by Recency[​](#modified-created "Direct link to modified-created") All three take a relative duration: a number plus a unit. The units are `min` / `minute(s)`, `h` / `hour(s)`, `d` / `day(s)`, `w` / `week(s)`, `m` / `month(s)`, and `y` / `year(s)`. Long spellings work, and the number can be fractional. A month counts as 30.5 days and a year as 365 days. A plain value, or one prefixed with `<`, means "within the last". Prefix it with `>` for "more than that long ago". ``` modified: 2d # modified within the last 2 days modified: >2d # modified more than 2 days ago created: 2h # created within the last 2 hours created: <1w # created less than a week ago completed: 7d # completed within the last 7 days completed: >30d # completed more than 30 days ago ``` note `completed:` widens the search to include completed tasks, and across every list, so you do not have to unhide them first. It is the rolling counterpart to the fixed `donetoday`, `doneyesterday`, and `donethisweek` tokens. ## Combining Keywords[​](#combining "Direct link to Combining Keywords") Keywords can appear in any order, as long as free text comes first. Separate keyword sections are joined with an implicit **AND**, and an `OR` inside a section stays local to that section: ``` type: overdue tags: home OR school tags: someday type: prio OR starred groups: shopping tags: !work type: (hiprio AND thisweek) OR starred groups: !work ``` The first line means *overdue* **and** (tagged `home` **or** `school`). The `OR` applies only to the tags, not to the `type:` condition. ### AND by Default, `OR` to Branch[​](#and-or-model "Direct link to and-or-model") The join **between** two whole keyword sections is AND. To make a section an alternative instead, put a standalone `OR` directly in front of its keyword: ``` type: overdue OR tags: urgent ``` That returns tasks that are overdue **or** tagged `urgent`. More precisely: every unmarked section is AND-ed into one group, then each `OR`-marked section is appended as its own alternative, giving `(unmarked group) OR alt1 OR alt2`. So: ``` plumber type: hiprio OR tags: urgent OR completed: 1d ``` returns *(text "plumber" and high priority)* **or** *(tagged urgent)* **or** *(completed in the last day)*. note Only a standalone `OR` sitting directly before a keyword branches the query. An `OR` at the very start of the search, or inside a single section, is ordinary text or a within-section operator. The free-text term can never be an `OR` branch; it always joins the AND group. ## Date Filters Beyond `type:`[​](#date-filters "Direct link to date-filters") The [Search Dates](/docs/ios/search.md#dates) editor adds an explicit date condition on top of whatever else the query holds: a fixed range, a dynamic range that moves with the calendar, or **No Due Date**. By default, a task must match both the query and the date filter. Choosing a new date range keeps the other search filters in place. To make the date filter an alternative, use **`OR {datefilter}`**: ``` type: inprogress OR {datefilter} ``` This includes tasks that are in progress or match the date filter. ### Due in the Next Two Weeks[​](#next-two-weeks "Direct link to Due in the Next Two Weeks") To show unfinished tasks due from today through the next two weeks across your lists: 1. Select **All** and open search, so the saved filter is not tied to one list. 2. Replace the search text with `type: alltasks`. This clears any earlier text, preset, tag, or list filters from the query. 3. Open **Date Filter**, choose **Dynamic**, and set **2 Weeks**. Turn off **Include Scheduled** to match due dates only, then tap the checkmark to apply. 4. Check the results, then tap **New Smart List** to save. The date range moves forward each day. You can rename the Smart List, but changing its name does not change its saved filters. note `type: duethisweek` matches unfinished tasks due from today through the end of the current week. `type: !duethisweek` excludes those tasks, including today. Either preset still applies alongside a two-week date filter, so remove the **This Week** preset entirely when you want the full two-week range. ## The Search Presets Sheet[​](#rule-builder "Direct link to The Search Presets Sheet") For a structured filter without typing, use the **Search Presets** sheet from the search controls. It offers 2Do's built-in filters as tappable rows, with a **!** control for turning any of them into an exclusion, and a **Match ALL filters** / **Match ANY filter** switch. A live preview shows the exact `type:` expression it will put in the field, which you can then edit by hand. Some parser tokens are not offered as rows, such as `google`, `alarms`, `noprio`, and the completion tokens, but they are still accepted when you type them. Searching for text, a named list, a named tag or tag group, or a custom date range is not something the sheet does. Type those as keywords, or use the [Search Dates](/docs/ios/search.md#dates) editor. The two mix freely: build the structure with the sheet, then add the named criteria in the field. tip For a structured filter, start with the **Search Presets** sheet and read its preview. The keyword syntax is best for refining what it built, or for a one-off that is quicker to type than to tap out. ## Inherit Search in Project View[​](#inherit-search "Direct link to Inherit Search in Project View") When you open a project or checklist from a Smart List or while a search is active, 2Do can either keep that filter applied to the sub-tasks inside or show every sub-task unfiltered. **Settings > Today & Lists > Focus & Smart Lists > Inherit Search** controls it, described as *Project view inherits search keywords*. It is on by default. * **On**: opening a project keeps the Smart List's rule or your current search applied to its sub-tasks, so you only see the ones that match. * **Off**: the project shows all of its sub-tasks, ignoring the search. Your original search comes back when you leave the project. A Smart List's rule counts as a search here even though you did not type it, and that includes its date range. Sub-tasks in a project are matched on their own dates, so a project opened from a Smart List such as *Next 5 Days* shows only the sub-tasks dated within those five days. Sub-tasks with no date or a later date stay hidden, and the project can look empty. tip If a project opens empty or with sub-tasks missing, turn off **Inherit Search**, or open the project from the list it belongs to. ## Saving a Filter as a Smart List[​](#save "Direct link to Saving a Filter as a Smart List") When the search shows the tasks you want, tap **New Smart List** below the search field. The Smart List appears in the lists panel, named after the query. You can rename it there. A Smart List keeps the query, the date range, the search scope, and the sound-alike setting exactly as you had them. A Smart List built while a single list was selected filters within that list, so switch to the **All** focus list first if you want it to search everything. ## Updating or Editing a Smart List[​](#editing "Direct link to Updating or Editing a Smart List") Select the Smart List and open search to see its saved rule. Adjust the query, the date filter, or the presets, then tap the same save control. As long as the Smart List you are viewing is still the source of the search, it is updated in place and the view changes immediately. If you have moved to another list in the meantime, the control creates a new Smart List instead. tip A Smart List is only a view. Deleting one never deletes its tasks, so experiment freely. ### An Asterisk in the Search Field[​](#asterisk "Direct link to An Asterisk in the Search Field") If a Smart List's saved search is `*`, that asterisk appears when you open search within it. On its own, `*` matches all text; the list's date range and other filters still apply. A Smart List named *All Tasks* still uses its saved search, just like any other Smart List. Typing directly after the asterisk changes the search. With **Sounds-Like Search** off, `*book` matches words ending in *book*, such as *notebook*, but not *bookshop*. Typing `book` matches both. See [Full Text Operators](/docs/ios/search.md#full-text-examples). For a fresh text search within that Smart List, replace the `*` with your words. The saved rule stays unchanged unless you use the save control. To start with an empty field and no saved Smart List filters, select the built-in **All** list in the lists panel, then tap the **search** button. ## Completed Tasks in a Smart List[​](#hide-completed "Direct link to Completed Tasks in a Smart List") A Smart List leaves completed tasks out, so the view stays on what is still outstanding. To bring them in, ask for them in the query: `completed: 7d` for a rolling window, or `type: donetoday`, `doneyesterday`, or `donethisweek` for a fixed one. ## Recipe Library[​](#recipes "Direct link to Recipe Library") Every recipe below is a real query. Type it into the search field, confirm it returns what you expect, then save it as a Smart List. Most are best built while the **All** focus list is selected, so they search everything. ### Priority[​](#recipes-priority "Direct link to Priority") | Goal | Query | | ---------------------------- | ------------------------------ | | Anything high priority | `type: hiprio` | | High or medium priority | `type: hiprio OR medprio` | | High priority, due this week | `type: hiprio AND duethisweek` | | Prioritized but undated | `type: prio AND nodue` | | Needs a priority | `type: noprio AND !repeat` | ### Dates and Scheduling[​](#recipes-dates "Direct link to Dates and Scheduling") | Goal | Query | | ------------------------------------------ | --------------------------- | | Due today | `type: duetoday` | | Anything happening today, start or due | `type: anytoday` | | Due tomorrow | `type: duetomorrow` | | Due this week | `type: duethisweek` | | Everything this week, start or due | `type: anythisweek` | | Overdue | `type: overdue` | | [Overdue or due today](#today-and-overdue) | `type: overdue OR duetoday` | | Starts in the future | `type: scheduled` | | In progress right now | `type: inprogress` | | No due date at all, a *Someday* list | `type: nodue` | For a rolling range that includes today, see [Due in the Next Two Weeks](#next-two-weeks). ### Tags and Locations[​](#recipes-tags "Direct link to Tags and Locations") | Goal | Query | | ---------------------------------------------- | ---------------------------------- | | Tagged `waiting` | `tags: waiting` | | Not tagged `waiting`, including untagged tasks | `tags: ~ OR !waiting` | | Has a tag, but not `waiting` | `tags: !waiting` | | Tagged `home` or `errands` | `tags: home, errands` | | At work but not blocked | `tags: work AND !blocked` | | Any tag in the Contexts group, minus `phone` | `taggroups: Contexts tags: !phone` | | Has at least one tag | `type: anytag` | | Completely untagged | `type: notag` | | Has a location | `type: anylocation` | | An errand you can also navigate to | `type: anylocation AND visit` | ### Lists and Groups[​](#recipes-lists "Direct link to Lists and Groups") | Goal | Query | | ------------------------------------------- | ---------------------------------- | | Tasks from the *Work* or *Home* lists | `lists: Work, Home` | | *Work* and *Home*, only what is due today | `lists: Work, Home type: duetoday` | | Everything except the *Archive* list | `lists: !Archive` | | Everything inside the *Projects* list group | `groups: Projects` | | The *Projects* group, high priority only | `groups: Projects type: hiprio` | ### Status and Structure[​](#recipes-status "Direct link to Status and Structure") | Goal | Query | | --------------------------------------------- | -------------------------------------------- | | Starred | `type: starred` | | Repeating tasks | `type: repeat` | | Projects only | `type: proj` | | Empty projects | `type: emptyproj` | | Projects or checklists that are high priority | `type: (proj OR chck) AND hiprio` | | Has an attachment | `type: (audio OR pict)` | | Captured from email this month | `type: capturedmail created: 30d` | | Stalled: started long ago, not repeating | `type: inprogress AND !repeat created: >14d` | | Waiting on someone, or anything urgent | `tags: waiting OR type: hiprio` | | Recently created | `created: 2d` | | Recently completed | `completed: 7d` | | Everything already sized, for quick wins | `type: duration` | --- # Stars and Priorities Use **stars** and **priorities** to mark important tasks. They are separate settings, so a task can have both. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-ios/videos/starring_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-ios/videos/starring_poster.png) ## The Short Version[​](#short "Direct link to The Short Version") * **Star**: *I want this task in front of me right now.* Personal, ephemeral, easy to flip on and off. The Starred Focus List collects every starred task in one place. * **Priority**: *This task is intrinsically important.* Stable, ordered (None / Low / Medium / High), survives across reviews. Priority drives sort order and is a first-class field in Smart Filters. You can have both on the same task. You'll usually only need one. Both can be typed straight into a new task's title: `!`, `!!`, or `!!!` for Low, Medium, or High priority and `*` for a star. Write the marker as a word of its own, as in `Send the school form !!! *`; in English, leave a space before the mark, so `Say hello!` keeps its exclamation mark. Chinese, Japanese, and Korean text can place the mark directly after a character. See [Natural Language Input](/docs/ios/natural-language-input.md). ## Stars in Detail[​](#stars "Direct link to Stars in Detail") A star is a binary flag. A task is either starred or it isn't. ### Starring a Task[​](#star-task "Direct link to Starring a Task") * **On the task row**: tap the control at the right edge to reveal the priority strip, then tap **Starred**. * **Touch and hold** a task, open **Priority**, then tap **Star** or **Unstar**. * **Drag** a task onto the **Starred** Focus List in the sidebar (works in batch edit mode for many at once, see [Batch Editing](/docs/ios/batch-editing.md)). ### What Starring Does[​](#star-effects "Direct link to What Starring Does") * The task appears in the **Starred** Focus List at the top of the sidebar. * It can appear in *Today* too: the **Include starred items** switch in **Settings > Today & Lists**, when on, treats every starred task as a Today task regardless of its dates. * It can be the basis of Smart Filters via `type: starred`. ### When to Star[​](#when-star "Direct link to When to Star") Stars are best for *temporary* emphasis: a small set of tasks you want in front of you for the next few hours or today, not a permanent classification. If you find yourself starring the same tasks every week, they probably deserve a tag or a Smart List instead. ## Priorities in Detail[​](#priorities "Direct link to Priorities in Detail") A priority is one of four levels: **None**, **Low**, **Medium**, **High**. The priority dot is colour-coded and visible on every task row. ### Setting a Priority[​](#set-priority "Direct link to Setting a Priority") * **In the editor**: tap the priority control to the right of the title and pick None, Low, Medium, or High. The same menu carries the **Starred** switch. * **On the task row**: see [Quick Priority and Star on a Row](#quick-strip) below. * **Touch and hold** a task, open **Priority**, then choose a priority. * **Hardware keyboard**: `0` to `3` on a selection in the task list, or `⌥⌘0` to `⌥⌘3` while the editor is open. ### Quick Priority and Star on a Row[​](#quick-strip "Direct link to Quick Priority and Star on a Row") You do not have to open a task to change its priority. Tap the control at the **right edge of a task row** and the row expands to reveal a strip of options underneath it: **None**, **Low**, **Medium**, and **High**, plus **Starred**. Pick one and the row updates in place. This is the fastest way to work through a brain dump: expand a row, set its priority, move on to the next. ![A task row expanded to show the priority and star strip](https://downloads.2doapp.com/resources/img/2do-ios/expandedtask.png) note Changing the task's type is not offered in this strip. Use **Convert...** in the editor's More menu instead. ### Letting 2Do Work Them Out[​](#suggest "Direct link to Letting 2Do Work Them Out") Priorities are worth setting, and setting fifty of them by hand is a chore. In batch editing, the **Priority** command offers **Auto-Prioritize**, which works out None, Low, Medium, or High for every task you selected. It reads each task's title, notes, dates, list, and tags on your iPhone or iPad using Apple Intelligence, so nothing about your tasks is sent anywhere, and it changes nothing but the priority. It is worth reaching for after a brain dump, after importing a list that arrived with no priorities at all, or during a weekly review when you want a second read on this week's tasks. It fills in tasks that have no priority and can raise others; the full page covers how it treats the levels you set yourself. It needs iOS 26 or iPadOS 26 with Apple Intelligence turned on. See [Auto-Prioritize](/docs/ios/auto-prioritize.md). ### What Priority Does[​](#priority-effects "Direct link to What Priority Does") * The priority dot is colour-coded on every task row. * Sorting by **Priority** groups tasks by level, High at the top, then Medium, Low, and None. The sort bar's direction control reverses that order. Turn on **Sort starred items above hi-priority** in **Settings > Today & Lists** and starred tasks get their own section above High. * Smart Filters can match `type: hiprio`, `type: medprio`, `type: lowprio`, `type: prio` (any), and `type: noprio` (none). See [Smart Lists](/docs/ios/smart-lists.md). * The [Focus Filter](/docs/ios/focus-filter.md) includes **High Priority** and **Starred** among its conditions, so you can narrow any list to either in one tap. ### When to Use Priority[​](#when-priority "Direct link to When to Use Priority") Priority is best for *stable* emphasis. Reserve High for things that genuinely belong at the top of the heap. If everything is High, nothing is. ## Stars vs. Priorities: When to Use Which[​](#vs "Direct link to Stars vs. Priorities: When to Use Which") | Situation | Use | | ------------------------------------------------------------- | ------------------------------- | | You want this task in front of you *today only* | **Star** | | The task is intrinsically more important than its neighbours | **Priority** | | You want a sortable hierarchy of importance | **Priority** (sort by Priority) | | You want to highlight a small handful for the next 30 minutes | **Star** | | Show me only the most important tasks across every list | `type: hiprio` | | Quick "what should I do next?" view | **Starred** Focus List | tip Use Priority to label what *is* important and Star to mark what you want to *do next*. They answer different questions. tip A Smart Filter combining both, `type: hiprio AND starred`, gives you a tight "these are the few high-priority items I'm actively pushing on right now" view. ## Stars, Priorities, and the Today List[​](#today "Direct link to Stars, Priorities, and the Today List") Tasks land in *Today* mainly through their **Due Date** and **Duration**. See [Dates and Durations](/docs/ios/dates-and-durations.md). The **Today List** section of **Settings > Today & Lists** has three switches that widen what else gets in: * **Include overdue items**: anything past its due date joins *Today* until you deal with it. * **Include starred items**: every starred task appears in *Today*, whatever its dates. * **Include 'Still Working On' tasks**: tasks whose start date has already passed stay in *Today* while you work on them. Turn it off and they only appear on the day they are due. A task whose duration reaches back into today also shows up there. That is how durations work rather than something you switch on. If tasks seem to show up in Today for no reason, check those switches first. The FAQ entry [Why are tasks due tomorrow showing in the Today Focus list?](/docs/faqs/tasks-tomorrow-in-today-list.md) walks through the usual causes. --- # Sync Overview 2Do keeps your tasks in step across your devices through a sync service of your choice. You pick a service you already use, and 2Do reads and writes through it. If 2Do lives on a single iPhone or iPad, you can leave the sync method set to **None**. ![The Sync pane with the Account Type menu open](https://downloads.2doapp.com/resources/img/2do-ios/syncsettings.png) ## Sync and Shared Lists[​](#sharing "Direct link to Sync and Shared Lists") The sync service described here keeps your ordinary lists up to date between your own devices. [iCloud list sharing](/docs/ios/icloud-list-sharing.md) lets you work on a particular list with other people, using their own Apple Accounts. It runs separately, so you can share a list through iCloud while your other lists use Dropbox, Todoist, another service, or no ordinary sync service. Both owned and received iCloud shared lists stay out of your ordinary sync account. **Replace Local Data** for that account preserves shared lists and their personal settings. **Reset Database** deliberately removes the local database, including unsent sharing edits and personal settings; it is a different operation. ## Where Sync Lives[​](#where "Direct link to Where Sync Lives") Open **Settings** from the gear at the bottom of the list panel, then choose **Sync**. The pane opens with a short introduction and two tabs: * **Setup**, where you choose an account type, connect, and set the options for that account. * **Exclusions**, where you keep individual lists out of sync (see [Sync Exclusions](#exclusions)). **Setup** starts with an **Account Type** menu. Pick a method there, fill in whatever that method needs, and tap **Set Up Sync**. ### One Account at a Time[​](#one-account "Direct link to One Account at a Time") 2Do syncs through **a single active account**. Once you connect, the **Account Type** menu is locked, so you cannot add a second account or switch by accident. To move to a different method, disconnect the current one first: * **Dropbox** connects with **Link Account** and disconnects with **Unlink**. * **Every other method** connects with **Set Up Sync** and switches with **Change Account**. Changing the account clears this device's sync history and unlocks the **Account Type** menu again. Two switches control whether syncing actually happens: * **Enable Sync**, the master switch for the configured account. Its description reads *"Turning this off keeps your account and its settings, but stops syncing."* * **Sync automatically**, a device-local switch. Its description reads *"Turn this off to sync manually by pulling down on the task list."* It affects this device only. Below those, **Push Sync** lets the service wake 2Do when something changes on another device. It is unavailable, with the note **Not supported by device settings**, when the device cannot receive pushes. The Setup footer shows **Sync in Progress** while a sync runs, then **Last Sync** and, when something goes wrong, a red **Last Error**. ## Sync Methods[​](#methods "Direct link to Sync Methods") The **Account Type** menu groups the methods like this: **None**; **iCloud**, **Reminders**; **Dropbox**; **Todoist**, **Toodledo**; **iCloud CalDAV**, **Fastmail**, **Yahoo**, **Fruux**, **Custom CalDAV**. * **[iCloud](/docs/ios/sync-with-icloud.md)**, marked **Recommended**. Everything in 2Do syncs through the iCloud account you are already signed in to, with no separate account or password. * **[Apple Reminders](/docs/ios/sync-with-reminders.md)**, native sync so your tasks also appear in the Reminders app. * **[Dropbox](/docs/ios/sync-with-dropbox.md)**, which stores nearly all of your 2Do data in its own Dropbox App Folder. Link-only attachments stay on the device. * **[Todoist](/docs/ios/sync-with-todoist.md)**, connected by signing in to Todoist. Your Todoist projects appear as 2Do lists. * **[Toodledo](/docs/ios/sync-with-toodledo.md)**, for Toodledo users, with web access at toodledo.com. * **[iCloud CalDAV](/docs/ios/sync-with-icloud-caldav.md)**, Apple-hosted CalDAV using your Apple Account and an app-specific password. * **[Fastmail](/docs/ios/sync-with-fastmail.md)**, its own entry in the menu. Sign in with your Fastmail address and an app-specific password. * **[Yahoo](/docs/ios/sync-with-caldav.md)** and **[Fruux](/docs/ios/sync-with-caldav.md)**, built-in CalDAV entries. * **[Custom CalDAV](/docs/ios/sync-with-caldav.md)**, for Nextcloud, ownCloud, Synology, Kerio, SabreDAV, and other CalDAV servers. WebDAV sync is coming soon and will appear in this menu when it ships. Sharing a list over your local network Handing a list to someone on the same Wi-Fi network is a separate feature, independent of the sync account above. See [Share Lists over Wi-Fi](/docs/ios/list-sharing.md). ### If Sync Isn't Set Up Yet[​](#not-set-up "Direct link to If Sync Isn't Set Up Yet") Pulling down on the task list is how you sync by hand. Pull down before a method is configured and 2Do offers to help: an alert titled **Sync Isn't Set Up** explains *"You pulled down to sync, but no sync method is set up yet. Set one up to keep your tasks on all your devices."* Choose **Set Up Sync** to open the Sync pane, **Not Now** to dismiss it, or **Don't Remind Me Again** to stop the prompt for good. ## Choose One Method, Use It Everywhere[​](#one-method "Direct link to Choose One Method, Use It Everywhere") warning Every device that runs 2Do must use the **same** sync method and the **same** account. Mixing methods, for example Dropbox on your Mac and iCloud on your iPhone, leaves you with two disconnected sets of data. Set up every device before you start using 2Do day to day. ## What Syncs and What Stays on This Device[​](#what-syncs "Direct link to What Syncs and What Stays on This Device") Each account has an expandable **What syncs across your devices** section in **Settings > Sync**. When a method cannot carry something, it lists it as a **Stays on this device** capsule, along with a note about how other apps on the same account see your data. The short version: * **iCloud** is a complete sync method. **Dropbox** carries the same groups and task fields, plus picture and audio attachments, but link-only attachments and the manual order of the Focus Lists stay on the device. * **CalDAV** (iCloud CalDAV, Fastmail, Yahoo, Fruux, Custom CalDAV) leaves 2Do's grouping features (Smart Lists, tag groups, list groups, unused tags) on this device. * **Toodledo** leaves Actions and attachments on this device, along with the grouping features above. * **Todoist** and **Apple Reminders** leave attachments and standalone locations on this device, along with the grouping features above. [Sections](/docs/ios/task-sections.md) sync with iCloud, Dropbox, and Todoist, though Todoist leaves out section descriptions. CalDAV, Toodledo, and Apple Reminders don't sync sections, so your other devices show those tasks without them. Supported app settings sync over iCloud between your iPhone, iPad, and Mac using the same iCloud account, separately from your chosen task sync service. See [Settings Across Devices](/docs/ios/settings.md#settings-sync). tip Not sure what a method carries? Expand **What syncs across your devices** under your account in **Settings > Sync**. The **Stays on this device** capsules are the per-method list of what will not leave this device. ### At-a-Glance Comparison[​](#comparison "Direct link to At-a-Glance Comparison") | | iCloud | Dropbox | iCloud CalDAV | Custom CalDAV | Toodledo | Todoist | Apple Reminders | | ------------------------------------ | ------ | -------- | ------------- | ------------- | ------------ | ----------- | --------------- | | Mirrors all 2Do data | ✅ | partial³ | partial | partial | partial | partial | partial | | Picture & audio attachments | ✅ | ✅ | ✅¹ | ✅¹ | ❌ | ❌ | ❌ | | Locations | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | | List Groups, Tag Groups, Smart Lists | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | Manual order in Focus Lists | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | Actions | ✅ | ✅ | ✅ | ✅ | ❌ | ✅² | ✅² | | Automatic and background sync | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | Merge Sync | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | Replace Server Data | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | | Web access | None | None | iCloud.com | varies | toodledo.com | todoist.com | iCloud.com | ¹ A 2Do task can carry one picture and one audio note, and both sync over CalDAV. ² Todoist and Reminders round-trip 2Do-only fields (actions, start dates, and more) as text inside each task's notes or description, so those fields survive between your own 2Do devices. Reminders additionally carries hierarchy identity in that text; Todoist uses its native parent and child structure instead. ³ Dropbox does not sync link-only attachments. Its picture and audio attachments do sync. note iCloud is the best all-round choice, including when you also run 2Do on Android with a version that has iCloud sync. Dropbox is the alternative for older versions of 2Do, or when you want your data in a folder you can see. Pick Todoist or Apple Reminders when you want your tasks living inside those apps too and can do without attachments and standalone locations. ## Merge vs Replace[​](#replace "Direct link to Merge vs Replace") When two devices already hold data, 2Do needs to know how to combine them. There are three outcomes, and **Merge is available for every method**. ### Merge[​](#merge "Direct link to Merge") Merge reconciles the tasks and lists on this device with the data on the server. 2Do compares every item on both sides, matches existing items where it can, and keeps both copies when an item was created separately on each side and cannot be matched confidently. Merge is by far the slowest option. Every task and list has to be compared one at a time, so a first merge with a large number of tasks can take a very long time, and the progress bar may appear to stall for long stretches. It is still running, so let it finish. Choose Merge only when you are unsure which side is complete, or when both sides hold changes you need to keep. If the server already has a complete copy of your data, choose **Replace Local Data**. If this device has the complete copy and you just want to push it to the server, choose **Replace Server Data** (not offered for Todoist or Apple Reminders). Merge never deletes to make the two sides identical. At worst you get a duplicate of an item that could not be matched, which you can remove by hand. ### Replace Local Data[​](#replace-local "Direct link to Replace Local Data") Replace Local Data replaces the syncable tasks and lists on this device with the data currently on the server. Items that exist only on this device may be removed, and the server data is kept. Use this on a new or empty device that should mirror what is already on the server. ### Replace Server Data[​](#replace-server "Direct link to Replace Server Data") Replace Server Data replaces the syncable data on the server with the tasks and lists currently on this device. Items that exist only on the server may be removed, and other devices receive this device's data on their next sync. Use this when *this* device holds the data you want everywhere and the server copy is stale, for example right after restoring from a backup. warning Replace overwrites one side with the other, so confirm which side holds the tasks you want to keep before picking a direction. Choosing **Replace Server Data** from an empty device, for example, wipes the good copy on the server. ### Where You Choose[​](#where-choose "Direct link to Where You Choose") The Merge or Replace decision appears in two places: 1. **The first-sync prompt.** When both the device and the account already hold user data, 2Do shows an alert titled **Sync Method** asking *"This is the first time you're performing sync. How would you like to proceed?"* with **Replace Local Data**, **Replace Server Data**, **Merge**, and **Cancel**. Only the choices that apply to the method appear. 2. **The Next sync action picker.** Once the first sync is established, Setup shows a **Next sync action** picker. Use it when you need to replace or merge data across devices. The choice applies to the next sync only and then returns to **Sync Normally**. Either way, 2Do asks you to confirm the choice a second time before it runs. Until the first-sync decision is made, **Sync Normally** reads *Will ask before Sync*. ### Next Sync Action Availability[​](#matrix "Direct link to Next Sync Action Availability") Not every method offers every action. **Todoist and Apple Reminders never offer Replace Server Data**: their server is the app you also use directly, and 2Do will not overwrite it wholesale. | Method | Sync Normally | Merge Sync | Replace Local Data | Replace Server Data | | ---------------------------------------- | ------------- | ---------- | ------------------ | ------------------------------------ | | iCloud | ✅ | ✅ | ✅ | ✅ *(Replace Server (iCloud) Data)* | | Dropbox | ✅ | ✅ | ✅ | ✅ *(Replace Server (Dropbox) Data)* | | iCloud CalDAV | ✅ | ✅ | ✅ | ✅ *(Replace Server (iCloud) Data)* | | Fastmail / Yahoo / Fruux / Custom CalDAV | ✅ | ✅ | ✅ | ✅ *(Replace Server (CalDAV) Data)* | | Toodledo | ✅ | ✅ | ✅ | ✅ *(Replace Server Data)* | | Todoist | ✅ | ✅ | ✅ | ❌ | | Apple Reminders | ✅ | ✅ | ✅ | ❌ | ## Sync Exclusions[​](#exclusions "Direct link to Sync Exclusions") The **Exclusions** tab shows your lists, grouped the way your list panel groups them, each with a switch: *"Selected lists, along with their tasks, will be excluded from sync."* Turn a switch on and that list, along with its tasks, stays entirely on this device. Useful for a scratch list or personal notes you would rather not send anywhere. ## While a Sync Runs[​](#progress "Direct link to While a Sync Runs") Setting up an account shows its progress in place, moving through **Connecting**, **Checking for Changes**, **Downloading Changes**, **Uploading Changes**, and **Finishing Up**. You can stay in the Sync pane while a sync runs. Options you change there are picked up by the next run, and **Change Account** remains available. ## Setting Up a New Device[​](#new-device "Direct link to Setting Up a New Device") When you install 2Do on a new iPhone or iPad and connect to an account that already holds your data: 1. Open **Settings > Sync**, choose the **same** account type as your other devices, and connect with the **same** account. 2. If the device already contains user data and 2Do shows the first-sync prompt, choose **Replace Local Data** to pull everything down, leaving the server copy untouched. An empty device can complete setup without this prompt. If both sides hold data you want to keep, choose **Merge** instead and allow extra time, since merging a large number of tasks is slow. When you have just **restored from a backup** and *this* device now holds the freshest data: 1. Set up sync the same way. 2. When 2Do shows the first-sync prompt, choose **Replace Server Data** to push your restored data up, replacing the stale server copy so your other devices receive it on their next sync. If you are unsure which side is freshest, save a copy from **Settings > Backups & Export** before connecting, so you have a recovery point either way. ## Switching Sync Methods[​](#switching "Direct link to Switching Sync Methods") To change methods, for example from iCloud CalDAV to iCloud: 1. Save a backup from **Settings > Backups & Export** as a safety net. 2. On each device, disconnect the current method (**Unlink** for Dropbox, **Change Account** for the others). This resets that device's sync history. 3. Connect the new method on **one device first** and let it populate the account. 4. Connect the others, choosing **Replace Local Data** to pull from the freshly populated account, or **Merge** if a device already holds unique data worth keeping. Merge is much slower with many tasks. tip Backups are independent of sync. Keep milestone copies from **Settings > Backups & Export** somewhere safe, so even if your sync service has a bad day, you have a recovery path. ## Background Sync on iOS[​](#background "Direct link to Background Sync on iOS") iOS decides when apps may run in the background, so 2Do asks for time rather than taking it. It syncs when you bring the app to the front, when iOS grants it a background opportunity, and when the service sends a push telling it something changed. Pull down on the task list any time to sync immediately. While 2Do is open, it finds out sooner when you change something on another device on the same Wi-Fi network, and syncs right away. That is why 2Do asks for Local Network access, the same permission [Wi-Fi Sharing](/docs/ios/list-sharing.md) uses. If you decline, sync still works and changes just take a little longer to appear; you can change this later under **Settings > Privacy & Security > Local Network > 2Do**. If sync feels stale: * Check **iOS Settings > General > Background App Refresh > 2Do** and make sure it is on. * Leave **Push Sync** on in **Settings > Sync**. * **Don't force-quit 2Do.** Force-quitting tells iOS not to wake the app in the background. * On poor connections or heavy data days, iOS may delay background cycles. Learn more in [2Do isn't syncing in the background](/docs/faqs/2do-not-syncing-in-background.md). --- # Sync with Custom CalDAV (Fruux, Yahoo, Nextcloud, and more) 2Do syncs with any server that speaks CalDAV correctly. You can use a hosted service, your own server, or your company's CalDAV server. ## Supported Servers[​](#servers "Direct link to Supported Servers") * **Fruux**, its own entry in the **Account Type** menu * **Yahoo Calendar**, also its own entry * **ownCloud** and **Nextcloud** * **Synology Calendar** * **Kerio Connect** * **Oracle Calendar** * **SabreDAV**-based servers * **Apple Calendar Server (iCal Server)** * Other CalDAV providers Two providers have their own pages: **iCloud CalDAV** on [Sync with iCloud CalDAV](/docs/ios/sync-with-icloud-caldav.md), and **Fastmail** on [Sync with Fastmail](/docs/ios/sync-with-fastmail.md). tip For self-hosters, **Nextcloud** and 2Do are a popular combination: your tasks live entirely on your own server, and Nextcloud Tasks shows your projects with their sub-tasks nested. ## Lists and Task Calendars[​](#task-calendars "Direct link to Lists and Task Calendars") Every list you sync over CalDAV lives on the server as a **task calendar**, the CalDAV name for a collection that holds tasks rather than events. It is the same container as your list in 2Do under a different name: 2Do shows it as a **List**, while other CalDAV apps may label the identical collection a task calendar, a task list, or simply a calendar. Changes travel in both directions: * Create a list in 2Do and the matching task calendar appears on the server; rename the list and the server follows. * A task calendar created in another CalDAV app arrives in 2Do as an ordinary list. * Only apps that speak CalDAV can see these collections. ## What CalDAV Sync Carries[​](#what "Direct link to What CalDAV Sync Carries") * All core task fields: title, notes, dates, alerts, recurrence, priority, action, location, and duration. * **Multiple alerts per task** can sync between your 2Do devices through CalDAV. * **One picture and one audio note per task**, controlled by the **Sync pictures** and **Sync audio notes** switches under the account. **Sync list ordering** and **Sync app preferences** sit alongside them. * Tasks added in 2Do can appear in other CalDAV apps signed in to the same account. ## What Stays on This Device[​](#stays-local "Direct link to What Stays on This Device") Some 2Do features are not carried by CalDAV sync and stay on this device: * Smart Lists * [Sections](/docs/ios/task-sections.md) * Tag groups * List groups * Unused tags The paused state of a tag is also per device, so pausing a tag on one device leaves it active on the others. note Other apps and devices signed in to this account see your projects and checklists as a flat list of tasks, unless the app understands task links; see [Projects and Sub-Tasks](#hierarchy). A few things behave differently on the server side as well: * **List colors** may not sync on some CalDAV servers. * **Repeating tasks** sync as plain tasks to the server, but still repeat correctly between your own 2Do devices. * Some unusual **repeating alert** setups may not look exactly the same on the server. ### Limitations[​](#limitations "Direct link to Limitations") In short, the following do not sync as full 2Do features over CalDAV: **List Groups**, **Tag Groups**, **Smart Lists**, **Sections**, unused tags, more than one picture and one audio note per task, and the paused state of a tag. ## Projects and Sub-Tasks (Nextcloud and other CalDAV servers)[​](#hierarchy "Direct link to Projects and Sub-Tasks (Nextcloud and other CalDAV servers)") 2Do syncs your project and sub-task structure two ways over CalDAV automatically; there is no setting to turn on. The parent and child relationship travels using the standard iCalendar **RELATED-TO** link, so a parent task and its sub-tasks stay connected on the server. * Create a project or checklist with sub-tasks in 2Do, and the structure syncs up to the server. * A parent with children created directly in **Nextcloud**, or another CalDAV app, arrives in 2Do as a **project** with sub-tasks. * Between your own 2Do devices, a project stays a project and a checklist stays a checklist. How that structure appears elsewhere depends on the app. Clients that understand RELATED-TO, such as **Nextcloud Tasks**, nest your sub-tasks under their parent. Clients that ignore it show everything as a flat list of tasks. ## Read-Only Lists[​](#read-only "Direct link to Read-Only Lists") Some CalDAV servers share a calendar with you without granting permission to change it. 2Do reads that from the server and marks the list **read-only**, so you do not make edits the server would reject. The sort bar above the task list carries a **Read Only** indicator while such a list is selected, and its tasks cannot be edited, completed, moved, or deleted. Existing attachments stay viewable. You can still change how a read-only list is presented on this device: rename it locally, change its color, hide it, change its sort, or move it into a list group. Those choices stay on the device and survive syncs. ## Setup[​](#setup "Direct link to Setup") 1. Open **Settings > Sync** and stay on the **Setup** tab. 2. Open **Account Type** and choose your server: * **Fruux** or **Yahoo**, built-in entries that discover the server for you. You only enter a username and password. * **Custom CalDAV**, for **Nextcloud**, **ownCloud**, **Synology**, **Kerio**, and any other self-hosted or third-party CalDAV server. There is no named Nextcloud or Synology entry; they all connect through **Custom CalDAV**. 3. Enter your credentials. **Custom CalDAV** adds **Server Address**, **Path**, **Port**, and **Use SSL** alongside **Username** and **Password**. 4. Tap **Set Up Sync**. 2Do discovers your task collections on the server. 5. Repeat on each device, using the same account type and credentials. tip If your server offers app-specific passwords, generate one for 2Do so you can revoke it later without changing your main account password. ### Fruux Setup[​](#fruux "Direct link to Fruux Setup") 1. Open **Settings > Sync > Account Type** and choose **Fruux**. 2. Generate an app-specific password at [www.fruux.com](https://www.fruux.com). 3. Enter your username and that password, then tap **Set Up Sync**. 2Do discovers the server and account paths, so there is no URL to enter. ### Custom CalDAV Server[​](#generic "Direct link to Custom CalDAV Server") For Nextcloud, ownCloud, Synology, Kerio, and similar servers: 1. Open **Settings > Sync > Account Type** and choose **Custom CalDAV**. 2. Fill in the connection fields as your provider documents them: * **Server Address**, your server's host (for Nextcloud, often something like `your-server.example`). * **Path**, the CalDAV path your provider specifies (Nextcloud commonly uses `/remote.php/dav`). * **Port** and **Use SSL**, matching your server's configuration. SSL is on to start. 3. Enter your **Username** and **Password**. 4. Tap **Set Up Sync**. 2Do discovers your task collections. note The first time you connect to a private or self-signed server, 2Do shows a **Can't Verify This Server** prompt with the server's fingerprint, explaining that this is normal for private or self-hosted servers but can also mean the connection is not secure. If you set up the server and recognize it, tap **Continue**; 2Do remembers the choice for that account. Your first sync Close Settings and return to the task list, then **pull down** to run the first sync. When both sides already hold data, 2Do asks how to combine them; read [Merge vs Replace](/docs/ios/sync.md#replace) before choosing. You can override the next sync any time from **Settings > Sync > Next sync action**; it applies once, then returns to **Sync Normally**. ## Daily Sync[​](#daily "Direct link to Daily Sync") CalDAV syncs when you open 2Do, when iOS grants it background time, and whenever you pull down on the task list. ## Troubleshooting[​](#issues "Direct link to Troubleshooting") ### Synology server compatibility[​](#synology-server-compatibility "Direct link to Synology server compatibility") Synology Calendar works with 2Do over CalDAV. Use the address and path from your Synology Calendar's CalDAV documentation. ### 301 Moved Permanently[​](#301-moved-permanently "Direct link to 301 Moved Permanently") Some servers redirect the discovery URL. Update to the latest 2Do, which follows redirects automatically. If it persists, enter the address the server redirects to. ### Alerts on shared CalDAV lists do not sync[​](#alerts-on-shared-caldav-lists-do-not-sync "Direct link to Alerts on shared CalDAV lists do not sync") Alerts attached to tasks on shared CalDAV lists do not always copy across, depending on the server's sharing rules. Add those alerts again locally if you need them. ### Multiple alerts on repeating tasks disappear[​](#multiple-alerts-on-repeating-tasks-disappear "Direct link to Multiple alerts on repeating tasks disappear") Some CalDAV servers accept only one alert on a repeating task. Use [iCloud](/docs/ios/sync-with-icloud.md) or [Dropbox](/docs/ios/sync-with-dropbox.md) if you rely on several alerts per repeating task. ## Setting Up Another Device[​](#another-device "Direct link to Setting Up Another Device") * **Adding another device**: install 2Do, point it at the exact same server and credentials, and let the first sync pull your data down. See [Setting up a new device](/docs/faqs/setting-up-new-device.md). * **One device showing different tasks**: sync the most up-to-date device, then choose **Replace Local Data** on the ones that are behind. See [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). * **Choosing a direction**: picking the wrong side can overwrite good data. Read [Merge vs Replace](/docs/ios/sync.md#replace) before confirming. --- # Sync with Dropbox Dropbox carries task properties, picture and audio attachments, List Groups, Tag Groups, and Smart Lists, and it works on iPhone, iPad, Mac, and Android. Link-only attachments stay on the device. Manual order in the Focus Lists (**Today**, **Scheduled**, **Starred**, **All**) syncs only with iCloud; manual order in your regular lists syncs as usual. Dropbox is the method to choose when a device runs an older version of 2Do without iCloud sync, or when you want your 2Do data sitting in a folder you can see. If every device you use runs a version of 2Do with iCloud sync, including 2Do for Android, [iCloud](/docs/ios/sync-with-icloud.md) is the recommended method. On iPhone, iPad, and Mac it needs no account setup at all. ## What Dropbox Sync Supports[​](#what "Direct link to What Dropbox Sync Supports") * All task fields: title, notes, dates, duration, alerts, repeat, priority, starred state, actions, locations, and sub-tasks. * **Picture and audio attachments**, without the one-picture and one-audio limit CalDAV has. Link-only attachments stay on the device. * **List Groups, Tag Groups, and Smart Lists**, kept the same on every device. * **[Sections](/docs/ios/task-sections.md)**, with their names, descriptions, order, and tasks, kept the same on your iPhone, iPad, and Mac. * **Automatic and background sync**, as iOS allows. Four switches sit under the account: **Sync list ordering**, **Sync audio notes**, **Sync pictures**, and **Sync app preferences**. ## What 2Do Stores in Dropbox[​](#what-stored "Direct link to What 2Do Stores in Dropbox") 2Do uses Dropbox's **App Folder** permission, so it can only read and write files inside its own dedicated folder under `Apps/` in your Dropbox. 2Do cannot read, change, or even see any other file in your Dropbox. You **cannot read** 2Do's task data directly in Dropbox. Dropbox is the place where your devices exchange the sync files, not a task viewer. All traffic runs over SSL. ## Setup[​](#setup "Direct link to Setup") 1. Open **Settings > Sync** and stay on the **Setup** tab. 2. Open **Account Type** and choose **Dropbox**. 3. Tap **Link Account** and authorize 2Do against your Dropbox account. 4. 2Do creates its app folder and is ready to sync. Your Dropbox name and email appear in the account rows. 5. Repeat on each device, signing in to the **same** Dropbox account. To disconnect, tap **Unlink** under the account. Use the exact same Dropbox account on every device 2Do can only sync devices that talk to the *same* Dropbox account. Connecting one device to ** and another to **, even when both accounts are yours, leaves the two devices completely isolated. If a device is not seeing the same tasks as the rest, check first that **Settings > Sync** shows the same Dropbox email on every device. If they differ, unlink the wrong account and link the correct one. Your first sync Close Settings and return to the task list, then **pull down** to run the first sync. When both sides already hold data, 2Do asks how to combine them; read [Merge vs Replace](/docs/ios/sync.md#replace) before choosing. Later on you can override the next sync any time from **Settings > Sync > Next sync action**. It applies once, then returns to **Sync Normally**. ## Daily Sync[​](#daily "Direct link to Daily Sync") Once set up, 2Do syncs when you open it, when iOS grants it background time, and whenever you pull down on the task list. tip For an off-device backup, use **Settings > Backups & Export** and save or email a copy to yourself. Backups are independent of sync, so even if Dropbox has a bad day, you have a recovery path. ## Troubleshooting[​](#issues "Direct link to Troubleshooting") ### Old or missing tasks after upgrading[​](#old-or-missing-tasks "Direct link to Old or missing tasks after upgrading") Compare the Dropbox email shown in **Settings > Sync** in version 3 and version 4, and on your other devices. An old or different Dropbox account may contain an older copy of your tasks. Confirm the account and which copy is current before using **Replace Local Data**. See [Old or missing tasks with Dropbox](/docs/faqs/dropbox-shows-old-or-missing-tasks.md) for account checks, a full download, and the version 3 backup route. ### `v1_retired` error[​](#v1_retired-error "Direct link to v1_retired-error") Dropbox retires old API versions over time. If you see a `v1_retired` error, update 2Do to the latest version. ### 504 timeout error[​](#504-timeout-error "Direct link to 504 timeout error") A 504 usually means Dropbox could not be reached in time. Check your network and try again. Repeated 504s normally point at a temporary Dropbox outage; check [Dropbox's status page](https://status.dropbox.com/). ### 509 bandwidth error[​](#509-bandwidth-error "Direct link to 509 bandwidth error") A 509 means the Dropbox **App Folder bandwidth limit** for free accounts has been exceeded. This is rare with normal task data and mostly happens with heavy attachment use. Wait until the quota resets, or upgrade your Dropbox plan. ### Different task counts on different devices[​](#different-task-counts-on-different-devices "Direct link to Different task counts on different devices") A device that shows a different count most likely missed a sync cycle. Open 2Do there, pull down to sync, and let it finish. If it persists, see [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). ### Dropbox desktop notifications on your Mac[​](#dropbox-desktop-notifications-on-your-mac "Direct link to Dropbox desktop notifications on your Mac") If you also run the Dropbox desktop app, it may show a notification every time 2Do updates its files. Turn off file-change notifications in Dropbox's preferences, or exclude the 2Do app folder from them. ## Setting Up Another Device[​](#another-device "Direct link to Setting Up Another Device") * **Adding another device**: install 2Do, link **the exact same Dropbox account**, and let the first sync pull your data down. See [Setting up a new device](/docs/faqs/setting-up-new-device.md). * **One device showing different tasks**: sync the most up-to-date device, then choose **Replace Local Data** on the ones that are behind. See [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). * **Choosing a direction**: picking the wrong side can overwrite good data. Read [Merge vs Replace](/docs/ios/sync.md#replace) before confirming. ## Privacy[​](#privacy "Direct link to Privacy") * 2Do syncs through Dropbox's **App Folder** mechanism. Inside `Apps/`, 2Do only sees its own **2Do** folder. Every other folder in your Dropbox, including other apps under `Apps/`, is invisible and inaccessible to it. * All traffic between 2Do and Dropbox is encrypted in transit (SSL). * 2Do does not add its own encryption on top of Dropbox's storage encryption. See [Does 2Do encrypt synced data?](/docs/faqs/does-2do-encrypt-synced-data.md). Don't edit, rename, move, or delete the 2Do folder The files inside `Apps/2Do` are not meant to be read by people. They are an internal sync database 2Do uses to coordinate state across your devices. Editing, renaming, moving, copying, or deleting any file in this folder by hand can break sync **irrevocably** and cause data loss that is difficult or impossible to recover from. If you need to change your Dropbox setup, do it from **Settings > Sync** inside 2Do rather than by touching the folder. --- # Sync with Fastmail [Fastmail](https://www.fastmail.com) is a privacy-focused email provider with full CalDAV support, which makes it a solid host for your 2Do tasks. **Fastmail** has its own entry in 2Do's **Account Type** menu, so there are no server addresses or paths to fill in. Fastmail sync carries the same things as any [CalDAV server](/docs/ios/sync-with-caldav.md): all core task fields, multiple alerts, one picture and one audio note per task, and two-way project and sub-task structure. 2Do's grouping features (sections, Smart Lists, tag groups, list groups, unused tags) stay on this device. Each 2Do list is stored on Fastmail as a CalDAV **task calendar**, the same container under the protocol's own name; see [Lists and Task Calendars](/docs/ios/sync-with-caldav.md#task-calendars). ## App Password Requirement[​](#app-password "Direct link to App Password Requirement") Fastmail does not accept your regular account password from third-party apps. It requires an app-specific password to sign in, and your normal password will not work. Create one for CalDAV access (Fastmail explains these in its [App passwords](https://www.fastmail.help/hc/en-us/articles/360058752854) help article): 1. Sign in at [fastmail.com](https://www.fastmail.com) and open **Settings > Privacy & Security > Integrations (App passwords)**. 2. Choose **New app password**. 3. Give it a name you will recognize, such as *2Do*, and choose an access scope that includes **Calendars (CalDAV)**. 4. Fastmail shows the password **once**. Copy it and keep it somewhere safe; you paste it into 2Do next. Deleting the app password later revokes 2Do's access without changing your main account password. tip App passwords can be reused across devices, so one *2Do* app password covers your iPhone, iPad, and Mac. Create separate ones per device if you want to be able to revoke them individually. ## Setup[​](#setup "Direct link to Setup") 1. Open **Settings > Sync** and stay on the **Setup** tab. 2. Open **Account Type** and choose **Fastmail**. 3. Enter your **Email**, which is your full Fastmail address, and the app password as the **App-Specific Password**. 4. Tap **Set Up Sync**. 2Do connects and discovers your task calendars on the server. 5. Repeat on each device with the same address and password. Your first sync When both sides already hold data, 2Do asks how to combine them. Read [Merge vs Replace](/docs/ios/sync.md#replace) before choosing. You can run any of those choices again later from **Settings > Sync > Next sync action**; it applies once, then returns to **Sync Normally**. ## Sync Options[​](#options "Direct link to Sync Options") With Fastmail connected, the Setup tab adds the CalDAV switches: **Sync list ordering**, **Sync audio notes**, **Sync pictures**, and **Sync app preferences**, alongside the shared **Sync automatically** and **Push Sync** controls. tip If you want Smart Lists and tag groups to sync, use [iCloud](/docs/ios/sync-with-icloud.md) or [Dropbox](/docs/ios/sync-with-dropbox.md). iCloud carries every attachment type; Dropbox carries picture and audio attachments but not link-only attachments. Fastmail is the better fit when you want your tasks on a CalDAV server you already trust with your mail. ## Daily Sync[​](#daily "Direct link to Daily Sync") 2Do syncs when you open it, when iOS grants it background time, and whenever you pull down on the task list. ## Troubleshooting[​](#issues "Direct link to Troubleshooting") ### Login or password rejected[​](#login-or-password-rejected "Direct link to Login or password rejected") Almost always the password type. Make sure what you entered is an **app password created in your Fastmail account**, with CalDAV access, and not your regular account password. If a password that used to work stops, it may have been revoked; create a new one under **Fastmail > Settings > Privacy & Security** and enter it again. ### Connection succeeds but no task lists appear[​](#connection-succeeds-but-no-task-lists-appear "Direct link to Connection succeeds but no task lists appear") Check that the app password's scope includes **Calendars (CalDAV)**. A mail-only scope signs in successfully but exposes no calendar collections. ### Adding another device[​](#adding-another-device "Direct link to Adding another device") Install 2Do, choose **Fastmail** with the same address and app password, and let the first sync pull your data down. See [Setting up a new device](/docs/faqs/setting-up-new-device.md). --- # Sync with iCloud Looking for the Apple ID and app-specific password method? That is a different account type, **iCloud CalDAV**, and it has its own page: [Sync with iCloud CalDAV](/docs/ios/sync-with-icloud-caldav.md). The page you are reading covers 2Do's recommended iCloud sync, which needs no password at all. **iCloud** is the recommended way to sync 2Do across your Apple devices. Everything in 2Do syncs across your devices through the iCloud account you are already signed in to, and no separate account or password is needed. There is nothing to sign up for and nothing to type. 2Do uses the iCloud account already signed in on the device, and your tasks stay private to that account. Requires current versions of 2Do on every device Older releases of 2Do (version 3 and earlier on iPhone and iPad, and version 2.x and earlier on the Mac) do not support this sync method and cannot see tasks synced through it. Update those devices, or use a method they support, such as [iCloud CalDAV](/docs/ios/sync-with-icloud-caldav.md). 2Do for Android can sync through iCloud too, in versions that list **iCloud** separately from **iCloud CalDAV**. See [Sync with iCloud on Android](/docs/android/sync-with-icloud-native.md). ## Share a List with Someone Else[​](#sharing "Direct link to Share a List with Someone Else") This page covers syncing your own tasks between devices. To invite someone with a different Apple Account to one list, use [Share Lists over iCloud](/docs/ios/icloud-list-sharing.md). Sharing has its own permissions and personal-view settings, and works separately from the ordinary sync account configured here. ## Setup[​](#setup "Direct link to Setup") 1. Open **Settings > Sync** and stay on the **Setup** tab. 2. Open **Account Type** and choose **iCloud**. It is the entry marked **Recommended**. 3. Tap **Set Up Sync**. 4. If both this device and iCloud already hold data, choose how to combine them. See [First Sync](#first-sync) below. 5. Repeat on each of your devices, signed in to the same iCloud account. After setup, **Enable Sync** is the master switch. Turning it off keeps the account and its settings in place and stops syncing until you turn it back on. You need to be signed in to iCloud This method uses the system iCloud account, so the device has to be signed in to one. If sync does not start, open the **Settings** app and check that you are signed in to iCloud. ## First Sync[​](#first-sync "Direct link to First Sync") The first time an account syncs, and only when both sides already hold data, 2Do asks how to proceed. The alert is titled **Sync Method** and asks *"This is the first time you're performing sync. How would you like to proceed?"* It offers **Replace Local Data**, **Replace Server Data**, **Merge**, and **Cancel**. * **Replace Local Data** replaces the syncable tasks and lists on this device with what is in iCloud. Items that exist only on this device may be removed. * **Replace Server Data** replaces the syncable data in iCloud with the tasks and lists on this device. Items that exist only in iCloud may be removed, and your other devices receive this device's data on their next sync. * **Merge** reconciles the tasks and lists on this device with the data in iCloud, matching existing items where it can. When an item was created separately on both sides and cannot be matched confidently, both copies are kept. Choose **Replace Local Data** when iCloud already has the complete copy of your data, and **Replace Server Data** when this device has it. Choose **Merge** only when you are unsure, or when both sides hold changes you need to keep: it compares every item and can take a very long time with a large number of tasks. Read [Merge vs Replace](/docs/ios/sync.md#replace) before choosing a Replace direction, as it overwrites one side with the other. You can run any of these again later from **Settings > Sync > Next sync action**. It applies once, then returns to **Sync Normally**. ## What Syncs[​](#what "Direct link to What Syncs") iCloud sync is a complete sync method. Everything in 2Do syncs across your devices, including Smart Lists, tags, tag groups, list groups, locations and attachments. That includes: * Every task field: title, notes, dates, duration, alerts, repeat, priority, starred state, actions, and locations. * Projects, checklists, and sub-tasks, with their structure intact. * Lists, list groups, tags, tag groups, and Smart Lists. * [Sections](/docs/ios/task-sections.md) in your lists, with their names, descriptions, order, and tasks, on your iPhone, iPad, and Mac. * Attachments of every kind, including pictures, audio notes, files, and links. One provider option appears under the account: **Sync list ordering**, which keeps the order of your lists the same across devices. Supported app settings also sync through your iCloud account across iPhone, iPad, and Mac, separately from task sync. See [Settings Across Devices](/docs/ios/settings.md#settings-sync). ## What Stays on This Device[​](#stays-local "Direct link to What Stays on This Device") Some choices remain local to each device: * **List alert exclusions**, set under **Settings > Alerts & Badge > Exclusions > List Alerts**. Silencing a list on one device does not silence it on the others. * A task's own **Ring as Alarm** choice, set in the task editor's Alerts panel. * View state such as which projects and list groups are expanded. tip Keeping a list off iCloud entirely takes one switch: **Settings > Sync > Exclusions**. That list and its tasks then stay on this device. ## Automatic, Push, and Background Sync[​](#automatic "Direct link to Automatic, Push, and Background Sync") Once set up, 2Do syncs on its own: * **Sync automatically** is on by default: *"Turn this off to sync manually by pulling down on the task list."* * **Push Sync** lets iCloud tell 2Do that something changed on another device. It is unavailable, with the note **Not supported by device settings**, when the device cannot receive pushes. * 2Do also syncs when you bring it to the front and when iOS grants it background time. iOS decides when that happens, so background sync is regular rather than instant. See [Background Sync on iOS](/docs/ios/sync.md#background). Pull down on the task list any time to sync immediately. ## Recovering When iCloud Loses 2Do's Data[​](#recovery "Direct link to Recovering When iCloud Loses 2Do's Data") If 2Do's data is removed from iCloud, syncing stops and the Sync pane explains what happened and offers two ways forward. Which explanation you see depends on what happened: * You removed 2Do's data from iCloud. * iCloud encryption was reset, in which case the copy kept in iCloud cannot be recovered. * 2Do's data in iCloud is no longer there for another reason. The two choices are: * **Upload this device's data to iCloud again**. Nothing on this device is removed. 2Do recreates your data in iCloud from this device. Other devices affected by the same reset may ask you to choose how to recover there too. * **Remove synced data from this device too**. Anything that was synced to iCloud is removed from this device as well. Changes you made here and have not synced yet are kept. Each choice asks you to confirm before it runs. After an encryption reset, uploading this device's data again is usually the right answer. Choose from the device with the best data If several devices are waiting on this choice, start with the one holding the most complete copy and upload from there. The others can then pull that copy down. tip Sync is not a backup. Keep milestone copies from **Settings > Backups & Export** somewhere safe, independent of whichever sync method you use. ## Troubleshooting[​](#issues "Direct link to Troubleshooting") ### Sync does not start[​](#sync-does-not-start "Direct link to Sync does not start") Check that the device is signed in to iCloud in **iOS Settings**, that **Enable Sync** is on in **Settings > Sync**, and that the device has a working connection. The Setup footer shows **Last Sync** and, when a run fails, a red **Last Error** naming the problem. ### VPNs, firewalls, and network filters[​](#network-filters "Direct link to VPNs, firewalls, and network filters") A VPN, firewall, or network-filtering app can interrupt the iCloud connections 2Do uses. Working web browsing or iCloud backups do not rule out a connection problem with 2Do's sync. If sync fails, stalls, or **Last Sync** remains **Never** after an attempted first sync: 1. Fully disable the VPN in its app and turn off automatic reconnection for the test. 2. Temporarily pause any network filtering, such as a firewall app, DNS filter, or security app that filters connections. 3. Try cellular data or another Wi-Fi network with the VPN and filters still disabled. On a work or school network, ask the administrator to check access to iCloud services. 4. Try syncing again. Keep 2Do open and the screen awake until the first sync completes, then check **Last Sync** in **Settings > Sync**. Restore the settings you changed after testing. If sync works only with a VPN or filter disabled, contact its provider or your network administrator to adjust it. See [Apple's guidance on VPN and security software](https://support.apple.com/en-us/102281). ### Temporarily testing without iCloud Private Relay[​](#private-relay "Direct link to Temporarily testing without iCloud Private Relay") If you use **iCloud Private Relay**, you can also temporarily turn it off for the connected network to see whether sync improves: 1. Open the iPhone or iPad **Settings > Wi-Fi**. 2. Tap the information button beside the connected network. 3. Turn off **Limit IP Address Tracking**, then try syncing again. This is an optional connection test, not a requirement for iCloud sync. Turn the setting back on afterward. While it is off, Private Relay does not protect Safari browsing on that network. The change also applies to your other devices using Private Relay on the same network. For cellular settings, see [Apple's Private Relay instructions](https://support.apple.com/en-us/102022). ### One device shows different tasks[​](#one-device-shows-different-tasks "Direct link to One device shows different tasks") Sync on the device with the correct data and let it finish, then choose **Replace Local Data** from **Next sync action** on the device that is behind. See [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). ### Tasks arrive slowly when 2Do is in the background[​](#tasks-arrive-slowly-when-2do-is-in-the-background "Direct link to Tasks arrive slowly when 2Do is in the background") iOS grants background time on its own schedule. Keep **Background App Refresh** on for 2Do, leave **Push Sync** on, and avoid force-quitting the app. See [2Do isn't syncing in the background](/docs/faqs/2do-not-syncing-in-background.md). ### Adding another device[​](#adding-another-device "Direct link to Adding another device") Install 2Do, sign the device in to the same iCloud account, choose **iCloud** in **Settings > Sync**, and let the first sync pull your data down. See [Setting up a new device](/docs/faqs/setting-up-new-device.md). --- # Sync with iCloud CalDAV There are two iCloud methods 2Do's recommended iCloud sync needs no account details at all and carries everything: see [Sync with iCloud](/docs/ios/sync-with-icloud.md). The page you are reading covers **iCloud CalDAV**, the credential-based route that signs in with your Apple Account and an app-specific password. Choose it when non-Apple devices or other CalDAV task apps need to read the same lists. **iCloud CalDAV** lets 2Do read and write tasks through iCloud using the CalDAV protocol. Because CalDAV is an open standard, the same task lists are readable by other CalDAV apps, including clients on Android and Windows. Reminders is separate Apple's Reminders app does not read CalDAV task lists. Tasks synced through iCloud CalDAV do not appear in Reminders, and changes made in Reminders do not reach 2Do. If you want your tasks inside Reminders, use the [Apple Reminders sync method](/docs/ios/sync-with-reminders.md) instead. ## Lists and Task Calendars[​](#task-calendars "Direct link to Lists and Task Calendars") Every 2Do list you sync through iCloud CalDAV is stored in iCloud as a **task calendar**, the CalDAV name for a collection that holds tasks rather than events. It is the same container as your list in 2Do, under a different name: 2Do shows it as a **List**, while other apps may label the identical collection a task calendar, a task list, or simply a calendar. A calendar app such as **BusyCal**, for example, shows the same iCloud collection among its task calendars. Changes travel in both directions: * Create a list in 2Do and the matching task calendar appears in iCloud; rename the list and iCloud follows. * A task calendar created in another CalDAV app arrives in 2Do as an ordinary list. * Only apps that read iCloud over CalDAV can see these collections, which is why the same list turns up in some apps and not others. ## What iCloud CalDAV Carries[​](#what "Direct link to What iCloud CalDAV Carries") * Core task fields: title, notes, dates, alerts, recurrence, priority, action, location, and sub-tasks. * **Multiple alerts per task** sync through iCloud CalDAV as they are. * **One picture and one audio recording per task**, controlled by the **Sync pictures** and **Sync audio notes** switches under the account. Two more switches sit alongside them: **Sync list ordering** keeps your list order the same across devices, and **Sync app preferences** carries your 2Do settings between devices. tip If you rely on Siri to capture tasks into Reminders, remember that this method syncs iCloud CalDAV task lists, not Apple Reminders. ## What Stays on This Device[​](#stays-local "Direct link to What Stays on This Device") Some 2Do-only features are not carried by CalDAV sync and stay on this device: * Smart Lists * [Sections](/docs/ios/task-sections.md) * Tag groups * List groups * Unused tags The paused state of a tag is also per device, so pausing a tag on one device leaves it active on the others. note Other apps and devices signed in to this account see your projects and checklists as a flat list of tasks. For a sync that carries your whole 2Do setup, including Smart Lists, tag groups, list groups, and every attachment, use [iCloud](/docs/ios/sync-with-icloud.md) or [Dropbox](/docs/ios/sync-with-dropbox.md). tip If you want every 2Do feature and all attachments to sync, [iCloud](/docs/ios/sync-with-icloud.md) carries them in full and needs no password. ## App-Specific Password Requirement[​](#app-specific-password "Direct link to App-Specific Password Requirement") Apple requires **two-factor authentication** for any third-party app that reaches iCloud, so your normal Apple Account password does not work here. Generate an **app-specific password** at [appleid.apple.com](https://appleid.apple.com) under *Sign-In and Security > App-Specific Passwords*, and enter that in 2Do. App-specific passwords can be reused across apps and devices. Save yours somewhere secure, or generate a new one any time. ### Best Practices[​](#best-practices "Direct link to Best Practices") Keep these points in mind: * **Use your `@icloud.com` address, not `@mac.com`.** If your Apple Account also has an `@mac.com` address, enter the `@icloud.com` one in 2Do. * **Use your primary Apple Account, not an alias.** iCloud aliases do not work for CalDAV sign-in, only the primary email address that owns the account. * **Set your device's date and time to automatic.** Under **iOS Settings > General > Date & Time**, turn on **Set Automatically**. If the device clock is wrong, the app-specific password fails without an obvious reason. * **Resetting your Apple Account password revokes every app-specific password.** Generate a new one and enter it in 2Do again. ## Setup[​](#setup "Direct link to Setup") 1. Make sure two-factor authentication is on for your Apple Account. 2. Generate an **app-specific password** at [appleid.apple.com](https://appleid.apple.com) under *Sign-In and Security > App-Specific Passwords*. Label it *2Do* so you can revoke it later. 3. Open **Settings > Sync** and stay on the **Setup** tab. 4. Open **Account Type** and choose **iCloud CalDAV**. 5. Enter your **Apple Account** and the **App-Specific Password** you generated. 6. Tap **Set Up Sync**. 2Do connects, discovers your iCloud task calendars, and starts syncing. 7. Repeat on each device with the same Apple Account. The first device populates iCloud; the others use **Replace Local Data** to pull it down. Your first sync When both sides already hold data, 2Do asks how to combine them. Read [Merge vs Replace](/docs/ios/sync.md#replace) before choosing. You can run any of those choices again later from **Settings > Sync > Next sync action**; it applies once, then returns to **Sync Normally**. ## Daily Sync[​](#daily "Direct link to Daily Sync") iCloud CalDAV syncs when you open 2Do, when iOS grants background time, and whenever you pull down on the task list. ## Troubleshooting[​](#issues "Direct link to Troubleshooting") ### "Password is incorrect", or a cryptic `-1012` error[​](#password-is-incorrect-or-a-cryptic--1012-error "Direct link to password-is-incorrect-or-a-cryptic--1012-error") Most often this is one of: 1. **You entered your normal Apple Account password instead of an app-specific password.** Generate one at [appleid.apple.com](https://appleid.apple.com) and use that. 2. **The app-specific password was revoked** because you reset your Apple Account password. Generate a new one. 3. **The device clock is wrong.** Turn on **iOS Settings > General > Date & Time > Set Automatically**. 4. **You used an alias or an `@mac.com` address.** Use your primary `@icloud.com` address. If none of those help, remove the account from 2Do and add it again: **Settings > Sync > Change Account**, then set it up with a freshly generated app-specific password. ### "Forbidden" during sync[​](#forbidden-during-sync "Direct link to \"Forbidden\" during sync") This usually means the credentials are not accepted at all, typically for one of the reasons above. Generate a fresh app-specific password and enter it again. ### Duplicate tasks[​](#duplicate-tasks "Direct link to Duplicate tasks") If tasks suddenly appear twice, the same iCloud tasks may be reaching 2Do through two paths, for example another device syncing the same lists through a different method. Settle on one method for every device and sync again. ### Tasks that live in Reminders do not appear[​](#tasks-that-live-in-reminders-do-not-appear "Direct link to Tasks that live in Reminders do not appear") Reminders stores its lists in Apple's own Reminders system rather than on iCloud CalDAV, so a list that exists only inside Reminders cannot sync through this method. Use the [Apple Reminders sync method](/docs/ios/sync-with-reminders.md) if you want those lists in 2Do. ### 507 Insufficient Storage Error[​](#507-insufficient-storage-error "Direct link to 507 Insufficient Storage Error") Your iCloud account is out of storage. Free up space in iCloud, then sync again. ### 301 Moved Permanently[​](#301-moved-permanently "Direct link to 301 Moved Permanently") Apple occasionally moves CalDAV endpoints. Update 2Do to the latest version; current builds follow Apple's redirects automatically. ### A list you deleted comes back[​](#a-list-you-deleted-comes-back "Direct link to A list you deleted comes back") This usually means another device still holds that list and pushes it up again. Delete the list on **all** devices, then sync. ## Setting Up Another Device[​](#another-device "Direct link to Setting Up Another Device") * **Adding another device**: install 2Do, set up iCloud CalDAV against the exact same Apple Account (with an app-specific password), and let the first sync pull your data down. See [Setting up a new device](/docs/faqs/setting-up-new-device.md). * **One device showing different tasks**: sync the most up-to-date device, then choose **Replace Local Data** on the ones that are behind. See [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). * **Choosing a direction**: picking the wrong side can overwrite good data. Read [Merge vs Replace](/docs/ios/sync.md#replace) before confirming. --- # Sync with Apple Reminders Apple **Reminders** is an integrated sync method in 2Do. It is built on Apple's **EventKit**, the same framework the Reminders app itself uses, so your 2Do tasks show up right inside Reminders while 2Do keeps your projects and sub-tasks intact across your own devices. Reminders sync is not iCloud CalDAV This page covers the **Reminders** account type, which talks to Apple Reminders on this device. It is a different account type from [iCloud CalDAV](/docs/ios/sync-with-icloud-caldav.md), which syncs iCloud's CalDAV task lists and does **not** show your tasks in the Reminders app. It is also different from [iCloud](/docs/ios/sync-with-icloud.md), 2Do's recommended method, which carries your whole 2Do setup but keeps it inside 2Do. Pick one method and use it on every device. ## What Stays on This Device[​](#stays-local "Direct link to What Stays on This Device") Some 2Do features are not carried by Reminders sync and stay on this device: * Smart Lists * [Sections](/docs/ios/task-sections.md) * Tag groups * List groups * Unused tags * Attachments * Locations For a comparison of what each method carries, see [Sync Overview](/docs/ios/sync.md#comparison). Reminders or iCloud? Choose **Reminders** when you want your 2Do tasks to appear inside the Apple Reminders app and can do without attachments and standalone locations. Choose [iCloud](/docs/ios/sync-with-icloud.md) when you want every 2Do feature to travel between your devices. ## How Your Data Looks in Reminders[​](#in-reminders "Direct link to How Your Data Looks in Reminders") * **Across your own 2Do devices**, projects and sub-tasks keep their full structure. * **In the Reminders app**, they appear as a **flat list**. Reminders does not rebuild 2Do's hierarchy in its own interface. Hierarchy is also one way: **projects and sub-tasks created directly in Reminders are not shared with other apps, including 2Do**, so structure you build in Reminders does not come across. ## Extended Properties in Notes[​](#notes "Direct link to Extended Properties in Notes") Apple Reminders cannot natively store everything 2Do tracks. To preserve those extra properties, 2Do writes them as plain-text `@tag:value` lines at the bottom of the reminder's notes. That covers start dates, duration, starred state, tags, actions, project or checklist type, sub-task identity, and repeat-from-completion. | Tag | Meaning | | ---------------------------------------------------------- | -------------------------------------------- | | `@taskid:` | Stable identity for the task | | `@parenttaskid:` | Which project or parent the task belongs to | | `@tasktype:project` / `@tasktype:checklist` | Whether the item is a project or a checklist | | `@startdate:YYYY-MM-DD` (plus optional `@starttime:HH:MM`) | Start date and time | | `@duration:` | Task duration | | `@starred` | The task is starred | | `@tags:tag1, tag2` | Assigned tags | | `@action:` (plus `@actionvalue:`) | Task action (call, email, URL, and so on) | | `@repeatfromcompletion` | Recurrence counts from the completion date | Between 2Do installs these lines are parsed out and hidden, so in 2Do you see clean notes with only your own text. You see the `@…` lines if you open the note in Reminders Because these tags live in the reminder's notes, they are visible at the bottom of the note in Reminders and in any app that reads the raw note text. That is expected. Avoid editing them by hand there, as they carry the information 2Do needs to rebuild your task. ## Setup[​](#setup "Direct link to Setup") 1. Open **Settings > Sync** and stay on the **Setup** tab. 2. Open **Account Type** and choose **Reminders**. 3. Tap **Set Up Sync**. There are no username or password fields; Reminders sync uses this device's own Reminders access rather than an online login. 4. When iOS asks, allow 2Do **full access** to your reminders. 5. Repeat on each of your devices. Full access is required 2Do needs full access to Reminders. If access is denied or limited, sync cannot run, and 2Do shows a **Reminders Access Required** alert explaining *"Reminders access is required before 2Do can sync your Reminders lists and tasks."* Tap **Open Settings** to grant access in **iOS Settings > Privacy & Security > Reminders**, then try again. Once connected, the **Account Type** menu is locked. To move to a different method later, use **Change Account** first, which resets this device's sync setup, then pick a new account type. The **Enable Sync** switch turns syncing on and off without disconnecting. ## Sync Options[​](#options "Direct link to Sync Options") With Reminders selected, the Setup tab adds: * **Sync completed tasks**, a picker for how far back completed tasks are brought into 2Do: **1**, **2**, **3**, **4**, **5**, **6**, **12**, **18**, or **24 months**, with 12 months to start. Its description reads *"Older completed tasks stay in Apple Reminders and are removed from 2Do only. A shorter period keeps sync fast."* Nothing is deleted from Reminders by this setting. * **Sync automatically**, the shared device switch: *"Turn this off to sync manually by pulling down on the task list."* * **Push Sync**, which lets the system wake 2Do when something changes. The Setup footer shows **Last Sync** and, if a run failed, a red **Last Error**. ## Next Sync Action[​](#next-sync-action "Direct link to Next Sync Action") After the first sync, a **Next sync action** picker appears under **Settings > Sync**. It applies once to the next sync, then returns to **Sync Normally**. For Reminders, the choices are: * **Sync Normally** * **Merge Sync**, which reconciles this device with the synced data, matching existing items where it can and keeping both copies when an item was created separately on each side and cannot be matched confidently. * **Replace Local Data**, which replaces the syncable tasks and lists on this device with what is currently synced. Replace Server Data is not available for Reminders Reminders is an app you also use directly, so 2Do will not overwrite it wholesale. Your choices are **Sync Normally**, **Replace Local Data**, and **Merge Sync**. Before choosing **Replace Local Data**, read [Merge vs Replace](/docs/ios/sync.md#replace); the wrong choice can overwrite good data. ## Daily Sync[​](#daily "Direct link to Daily Sync") Once connected, 2Do syncs when you open it, when iOS grants it background time, and whenever you pull down on the task list. Keep a safety net Sync is not a backup. Use **Settings > Backups & Export** to keep milestone copies somewhere safe, independent of whichever sync method you use. ## Troubleshooting[​](#issues "Direct link to Troubleshooting") ### Sync stops with a Reminders access message[​](#sync-stops-with-a-reminders-access-message "Direct link to Sync stops with a Reminders access message") Access was denied or reduced. Open **iOS Settings > Privacy & Security > Reminders** and give 2Do full access, then sync again. ### Completed tasks are missing from 2Do[​](#completed-tasks-are-missing-from-2do "Direct link to Completed tasks are missing from 2Do") They are still in Reminders. 2Do only brings in completed tasks inside the **Sync completed tasks** window; widen it if you want more of your finished history in 2Do. ### One device shows different tasks[​](#one-device-shows-different-tasks "Direct link to One device shows different tasks") Sync the device with the correct data and let it finish, then choose **Replace Local Data** from **Next sync action** on the device that is behind. See [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). --- # Sync with Todoist 2Do 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. Signing in happens on Todoist's own page, and 2Do never sees or stores your Todoist password. ## Connect[​](#setup "Direct link to Connect") 1. Open **Settings > Sync** and stay on the **Setup** tab. 2. Open **Account Type** and choose **Todoist**. 3. Tap **Set Up Sync**. Todoist's sign-in page opens inside 2Do. 4. Sign in to Todoist if needed and approve 2Do's request. The page closes and the account is linked. There are no username or password fields. 2Do keeps only the access token Todoist hands back, in the device's keychain. note The sign-in step times out after **180 seconds**. If you do not finish signing in and approving within that window, tap **Set Up Sync** again to start over. Once connected, the **Account Type** menu is locked; 2Do syncs one account at a time. To connect a **different** Todoist account, reset the current one with **Change Account** first. If you authorize a different Todoist login than the one already attached, 2Do refuses it with *"Todoist account changed. Please reset Todoist sync before connecting a different account."* ### If a Previous Setup Did Not Finish[​](#reset-incomplete "Direct link to If a Previous Setup Did Not Finish") If an earlier Todoist setup was interrupted before its first sync completed, 2Do asks to clear it before continuing. The confirmation is titled **Reset Incomplete Todoist Setup** and explains *"The previous Todoist sync did not finish. Continuing will reset its incomplete sync information. Your tasks in 2Do will not be deleted."* Tap **Continue** to start the setup cleanly. ## What Syncs[​](#what "Direct link to What Syncs") When you sync with Todoist, your tasks, projects, sections, tags, due dates, durations and starred status sync across your devices. Todoist deadlines, comments, attachments and standalone locations are not synced by 2Do, and Replace Server is not available for Todoist. In practice: * **Projects become lists**, and each 2Do list becomes a Todoist project. * **Sections stay sections**: the sections in a Todoist project appear as [sections](/docs/ios/task-sections.md) in the matching 2Do list, with the same names, order, and tasks, and sections you add in 2Do appear in Todoist. Section descriptions are not synced. * **Tasks**, with their **tags**, **due dates**, **durations**, and **starred** state. * **Sub-tasks and hierarchy** are preserved between your own 2Do devices. ### Start Dates, Due Dates and Repeats[​](#dates-and-repeats "Direct link to Start Dates, Due Dates and Repeats") A task's **due date** in 2Do becomes its **Date** in Todoist. [Todoist does not support a separate start date](https://www.todoist.com/help/todoist/troubleshooting/does-todoist-support-start-dates-qhqlgZhk). With **Sync extra task properties in notes** on, 2Do stores start dates and times in the Todoist description. If a repeating task has a start date but no due date, 2Do also stores its repeat pattern and end settings there. Your other 2Do devices can then restore those settings, although Todoist itself does not repeat the task. Complete these tasks in 2Do to advance to the next occurrence. Assign a **due date** in 2Do if you want a supported pattern to repeat in Todoist itself. With a due date set, 2Do uses Todoist's native repeat settings and removes the full repeat pattern from the notes. Removing the due date while keeping a start date and repeat rule stores the pattern in notes again. Supported patterns include day, week, month and year intervals, selected weekdays, and ordinal weekdays such as the first Monday of each month. 2Do also recognizes Todoist wording such as **every weekday**, **every workday**, **every other week**, and **every first Monday**. When importing from Todoist, **every weekend** means Saturdays. ## What Stays on This Device[​](#stays-local "Direct link to What Stays on This Device") Some 2Do features are not carried by Todoist sync and stay on this device: * Smart Lists * Tag groups * List groups * Unused tags * Attachments * Locations * Section descriptions A few Todoist-only concepts do not come into 2Do either: **deadlines**, **comments**, and Todoist **attachments** are not imported. note **Replace Server Data is not available for Todoist.** Because Todoist is a full app you also use directly, 2Do will not 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](/docs/ios/sync.md#replace). tip Todoist suits you best when you want your tasks living inside Todoist too and can trade away attachments and standalone locations. If you rely on those, [iCloud](/docs/ios/sync-with-icloud.md) and [Dropbox](/docs/ios/sync-with-dropbox.md) carry them in full. ## Todoist Options[​](#options "Direct link to Todoist Options") With Todoist connected, the Setup tab shows these controls. ### Sync completed tasks[​](#completed "Direct link to Sync completed tasks") A picker for how far back 2Do imports your completed Todoist history: **3 months**, **6 months**, or **12 months**, with 12 months to start. Its description reads *"Older completed Todoist tasks outside this window aren't imported into 2Do. A shorter period keeps sync fast."* A shorter window makes the first sync lighter and faster; a longer one pulls in more of your finished history. Completed tasks left outside the window are untouched and stay in your Todoist account. ### Sync extra task properties in notes[​](#extra-properties "Direct link to Sync extra task properties in notes") A switch that is **on** to start. It 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 is how those details survive the round trip between your own devices. Turn it off if you would rather keep Todoist descriptions completely clean, and accept that those fields are dropped as they pass through Todoist. | Tag | Meaning | | ---------------------------------------------------------- | --------------------------------------------------------------------------------------- | | `@startdate:YYYY-MM-DD` (plus optional `@starttime:HH:MM`) | Start date and time | | `@starred` | The task is starred | | `@action:` (plus `@actionvalue:`) | Task action (call, email, URL, and so on) | | `@tasktype:project` / `@tasktype:checklist` | Whether the item is a project or a checklist | | `@repeat:{...}` | Full repeat pattern and end settings, only when a start date is set without a due date | | `@repeatfromcompletion` | Recurrence counts from the completion date | | `@duration:` | Task duration, written only when Todoist rejects native duration writes for the account | It is a shorter list than [Reminders uses](/docs/ios/sync-with-reminders.md#notes) because Todoist stores more natively: tags map to Todoist **labels**, and parent and sub-task structure travels through Todoist's own parent relationship. Inside 2Do these lines are parsed out and hidden; you only see your real note text. Avoid editing the `@…` lines by hand in Todoist, as they carry the information 2Do needs to rebuild your task. tip Keep **Sync extra task properties in notes** on if you use start dates, actions, or project and checklist structure. It is the only way those details survive a trip through Todoist and reappear intact on your other 2Do devices. ### Sync automatically[​](#auto "Direct link to Sync automatically") The shared device switch: *"Turn this off to sync manually by pulling down on the task list."* Leave it on for automatic sync, or turn it off on this device and sync on demand. ## Daily Sync[​](#daily "Direct link to Daily Sync") Once connected, 2Do syncs when you open it, when iOS grants it background time, and whenever you pull down on the task list. ## Troubleshooting[​](#issues "Direct link to Troubleshooting") ### Sync seems stuck or slow[​](#sync-seems-stuck-or-slow "Direct link to Sync seems stuck or slow") 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. ### Sign-in does not complete[​](#sign-in-does-not-complete "Direct link to Sign-in does not complete") The sign-in window closes on its own after 180 seconds. Tap **Set Up Sync** again and finish signing in and approving without leaving the app. ### One device shows different tasks[​](#one-device-shows-different-tasks "Direct link to One device shows different tasks") Sync the device with the correct data and let it finish, then choose **Replace Local Data** from **Next sync action** on the device that is behind. See [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). --- # Sync with Toodledo If you already use [Toodledo](https://www.toodledo.com), 2Do can sync through your account, and you keep web access at toodledo.com. ## What Toodledo Sync Carries[​](#what "Direct link to What Toodledo Sync Carries") When you sync with Toodledo, your tasks, tags, durations and starred status sync across your devices. Some 2Do-only grouping features are not supported by Toodledo and stay on this device. * Core task fields: title, notes, dates, alerts, repeat, priority, duration, and locations. * **Tags**, including which tags are assigned to a task. * **Repeating tasks**, which Toodledo models in detail. * **Web access**, so your tasks are visible at toodledo.com and in other Toodledo clients. Two switches sit under the account: **Sync 2Do lists as Toodledo Folders** (*"Turn this option OFF to sync 2Do Lists as Toodledo Contexts"*) and **Sync app preferences**. ## What Stays on This Device[​](#limitations "Direct link to What Stays on This Device") * **Actions** * **Attachments** * **Smart Lists** * [Sections](/docs/ios/task-sections.md) * **Tag groups** * **List groups** * **Unused tags** A couple of things also behave differently on Toodledo's side: * Projects map to native Toodledo folders, and other apps may show nested checklists as a flat list. * **Multiple locations** on a single task collapse to one location. * **Emoji characters** in task content can come back as question marks, depending on Toodledo's encoding. tip If you rely on Actions, attachments, or 2Do's grouping features, [iCloud](/docs/ios/sync-with-icloud.md) and [Dropbox](/docs/ios/sync-with-dropbox.md) are a better fit. ## Setup[​](#setup "Direct link to Setup") 1. Open **Settings > Sync** and stay on the **Setup** tab. 2. Open **Account Type** and choose **Toodledo**. 3. Enter your Toodledo **Username** and **Password**. 4. Tap **Set Up Sync**. 5. Repeat on each device with the same account. Your first sync Close Settings and return to the task list, then **pull down** to run the first sync. When both sides already hold data, 2Do asks how to combine them; read [Merge vs Replace](/docs/ios/sync.md#replace) before choosing. Later on you can override the next sync any time from **Settings > Sync > Next sync action**, which offers **Sync Normally**, **Replace Server Data**, **Replace Local Data**, and **Merge Sync**. It applies once, then returns to **Sync Normally**. ## Daily Sync[​](#daily "Direct link to Daily Sync") 2Do syncs when you open it, when iOS grants it background time, and whenever you pull down on the task list. Turn **Sync automatically** off in **Settings > Sync** if you would rather sync only by pulling down. ## Troubleshooting[​](#issues "Direct link to Troubleshooting") ### "Could not retrieve info from the server, please try again later"[​](#could-not-retrieve-info-from-the-server-please-try-again-later "Direct link to \"Could not retrieve info from the server, please try again later\"") Usually temporary. Wait a few minutes and try again. Repeated failures normally point at a network problem or a Toodledo outage. ### "Login is not working" or "check login or password"[​](#login-is-not-working-or-check-login-or-password "Direct link to \"Login is not working\" or \"check login or password\"") Confirm your credentials at toodledo.com first. If they work there but fail in 2Do, change your Toodledo password; some special characters confuse the API. ### "Too many logins"[​](#too-many-logins "Direct link to \"Too many logins\"") Toodledo rate-limits frequent connection attempts. Wait 15 to 30 minutes before trying again. Repeatedly pulling to sync only restarts the timer. ### Lost lists or different counts across devices[​](#lost-lists-or-different-counts-across-devices "Direct link to Lost lists or different counts across devices") Sync the most up-to-date device and let it finish, then choose **Replace Local Data** from **Next sync action** on the devices that are behind. ### Toodledo Contexts and Goals do not appear[​](#toodledo-contexts-and-goals-do-not-appear "Direct link to Toodledo Contexts and Goals do not appear") 2Do does not import Toodledo *Contexts* or *Goals*. If you used those, map them to 2Do **Tags**, which Toodledo does sync, before switching. ## Switching Away from Toodledo[​](#switching "Direct link to Switching Away from Toodledo") 1. Save a backup from **Settings > Backups & Export** as a safety net. 2. Set up [iCloud](/docs/ios/sync-with-icloud.md) or [Dropbox](/docs/ios/sync-with-dropbox.md), which carry the features Toodledo leaves behind. 3. Populate the new account from the device holding the best data, then pull it down on the others with **Replace Local Data**. ## Setting Up Another Device[​](#another-device "Direct link to Setting Up Another Device") * **Adding another device**: install 2Do, sign in to the exact same Toodledo account, and let the first sync pull your data down. See [Setting up a new device](/docs/faqs/setting-up-new-device.md). * **One device showing different tasks**: see [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). * **Choosing a direction**: picking the wrong side can overwrite good data. Read [Merge vs Replace](/docs/ios/sync.md#replace) before confirming. --- # Tags Use tags to find related tasks across your lists. For example, tag tasks `@phone` for calls you need to make or `@waiting` for things you need from someone else. ![The Tags panel in Light appearance, with Work, Home, and Travel groups](https://downloads.2doapp.com/resources/img/2do-ios/tagpanel-2026-10-18.png) ## Tagging a Task[​](#tagging "Direct link to Tagging a Task") * **In the editor**: type in the tags row. 2Do suggests matching tags as you type, and each one you accept becomes a chip. Tap **Pick** to open the full tag picker, which searches your whole library and offers **Create New Tag...** for a name that does not exist yet. * **From the task list**: touch and hold a task and choose **Tag**. * **By dragging**: drag a task from the list onto a tag in the Tags panel to apply that tag. * **In bulk**: see [Batch Tagging](#batch-tag) below. * **In Quick Add**: the composer's tag capsule opens the same picker while you are writing the task. See [Quick Add](/docs/ios/quick-add.md). * **While typing a new task**: write the tag in the title as `#errands` and [Natural Language Input](/docs/ios/natural-language-input.md) adds it for you. A word starting with `#`, with spaces around it, becomes a tag once you type a space after it, leave the title, or save. You can use a new tag name without creating it first. Add as many as you like, as in `Buy milk #errands #shopping`. Tags run together, such as `#sales#urgent`, stay in the title as plain text. To remove a tag, open the task and delete its chip from the tags row. ## The Tags Panel[​](#tags-panel "Direct link to The Tags Panel") Tags live on the first page of the utility panel. On iPhone, swipe the task list toward the utility panel. On iPad, tap **Tags** at the bottom of the lists panel. If the panel is already showing another page, use the segmented control at the top to come back to **Tags**. See [The 2Do Screen](/docs/ios/the-2do-screen.md). Tags are listed under their groups, with tags that have no group of their own gathered under **TAGS**. Three controls sit at the bottom of the panel: * **Add Tag** opens a menu with **New Tag** and **New Tag Group**. * **Visibility** limits the panel to the tags actually used by the tasks currently on screen. If tags seem to have gone missing, check this first. * **Alpha** flips the list between alphabetical order and the order you arranged yourself. tip Use the **Visibility** control while working inside one list. It reduces the panel to the tags actually in play there, which makes filtering much quicker. ### Filtering by Tag[​](#filtering "Direct link to Filtering by Tag") **Tap a tag** and the task list narrows to tasks carrying it. Tap more tags to add them to the filter, and tap a filtering tag again to take it back out. The tags currently filtering the list are shown in a banner above your tasks. This is a temporary filter. It leaves your [Focus Filter](/docs/ios/focus-filter.md) and your lists untouched. ## Creating and Editing a Tag[​](#creating-tag "Direct link to Creating and Editing a Tag") **New Tag** opens a small field at the top of the panel. Type the name and confirm. Matching tags appear as you type, so you are unlikely to create a duplicate by accident. To change a tag later, touch and hold it and choose **Edit**. The tag card holds: * The tag's **name**. * A **Tag Group** capsule. Tap it to pick a group, filter the list of groups by typing, or choose **Create New Tag Group...** to make one on the spot. * **Delete Tag**, which asks before it removes the tag. Renaming a tag here changes it on every task that uses it, which is the tidy way to fix a typo such as `@phpne`. tip Keep tag names short and consistent. A small, well-named library beats a large one you have to remember your way around. ### Deleting and Reordering[​](#tag-edit "Direct link to Deleting and Reordering") * **Delete a tag**: swipe it left and tap **Delete**, or use **Delete** in its touch-and-hold menu. * **Move a tag to another group**: drag the row onto that group's heading, or onto the space under its rows. * **Reorder tags inside a group**: drag the row where you want it. Position is only yours to choose while the panel is showing every tag in your own order, so turn **Alpha** off and turn **Visibility** off first. You can also drag a group heading to move the whole group, again with **Visibility** off. ## Tag Groups[​](#tag-groups "Direct link to Tag Groups") Tag libraries grow. Groups keep them tidy, and each group is a heading in the panel. Common patterns: * **Contexts**: `@home`, `@work`, `@phone`, `@errands`, `@waiting`. * **People**: `@boss`, `@spouse`, `@kids`. * **Energy**: `low-energy`, `deep-work`, `quick-win`. * **Status**: `@blocked`, `@in-review`, `@on-hold`. Create one with **New Tag Group** in the panel's add menu, or with **Create New Tag Group...** while editing a tag. Touch and hold a group heading for its own menu: * **Edit** renames the group. * **Manage Tag Groups** opens the **Tag Groups** screen, where you can **Create Tag Group...**, rename a group, drag groups into the order you want, and delete one. * **Delete** removes that group. ## Batch Tagging[​](#batch-tag "Direct link to Batch Tagging") To tag many tasks at once, enter [batch editing](/docs/ios/batch-editing.md), select the tasks, and open the tag picker. It is a multi-select list of your whole library, with a filter field, **Create New Tag...** for a new name, and **Remove all Tags** for clearing the selection's tags outright. ## Pausing a Tag[​](#pause "Direct link to Pausing a Tag") Any tag in 2Do can be **paused**. While a tag is paused, every task carrying it is hidden from view: *All*, *Today*, its own list, and search. The tasks are still in your database; they are simply out of sight. This is the cleanest way to put a whole context on hold without editing tasks one at a time. ### Pausing and Resuming[​](#pause-resume "Direct link to Pausing and Resuming") Swipe a tag left in the Tags panel and tap **Pause**, or use **Pause** in its touch-and-hold menu. The same command reads **Resume** once the tag is paused. The first time you pause a tag, 2Do explains that every task using that tag becomes hidden and that you can resume the tag at any time. The tag stays in your library either way. Only the visibility of its tasks changes. ### Seeing Paused Tasks Without Resuming[​](#show-paused "Direct link to Seeing Paused Tasks Without Resuming") * Tap the **Show Paused** control in the sort bar above your tasks to bring them back into view temporarily. * Or search for **`type: paused`**. See [Smart Lists](/docs/ios/smart-lists.md). ### Common Pause Patterns[​](#patterns "Direct link to Common Pause Patterns") * Pause `@waiting` while you are travelling, so anything blocked on somebody else's reply steps out of view. * Pause `@home` during a work trip, so chores you cannot do yet stop showing up. * Pause a project context such as `@kitchen-reno` while you wait for materials, and resume it when the parts arrive. tip Pausing a tag is a snapshot, not a deletion. Resume it any time and every paused task comes back exactly where it was. ## Tags on Task Rows[​](#tag-pills "Direct link to Tags on Task Rows") Task rows show their tags as small coloured pills in the **Extended** display mode. Pinch the task list outward to switch to it, or pick it under **Settings > Appearance > Display > Display Mode**. See [Pinch-Zoom and Tap-and-Hold](/docs/ios/pinch-zoom-and-tap-hold.md). A paused tag reads as paused wherever its pill appears, so you always know why a task is out of sight. ## Tags in Search and Smart Lists[​](#in-rules "Direct link to Tags in Search and Smart Lists") Tags are first-class in search: * **`tags:`** matches named tags. `tags: home, work` means either; `tags: (home OR work) AND !play` gets finer. `tags: !waiting` matches tasks that have tags, but not `waiting`; use `tags: ~ OR !waiting` to include untagged tasks as well. * **`taggroups:`** matches every tag inside a named group. `taggroups: Contexts` covers the whole group at once. * **`type: anytag`** and **`type: notag`** match tasks that have any tag, or none. Save any of these as a Smart List so the view is always one tap away. See [Smart Lists](/docs/ios/smart-lists.md). --- # The Task Editor Use the task editor to change a task's title, notes, dates, and other details on iPhone and iPad. The examples below follow a workshop task through its main fields and settings. ![Prepare team workshop in the task editor, with notes, work and design tags, separate start and due dates, a two-hour duration, and one alert](https://downloads.2doapp.com/resources/img/2do-ios/task-editor-overview-2026-10-18.png) ## Opening the Editor[​](#opening "Direct link to Opening the Editor") * **Tap** a task in the task list. * On iPhone the editor opens as a card over the list. Drag its grabber up to fill the screen, or pull it down to close it. * On iPad the editor opens in the inspector pane beside your tasks, so the list stays visible while you work. See [iPad Features](/docs/ios/ipad-features.md). Changes you make on the card, such as the title or priority, are saved as you make them. Tap **Close** at the top-left to leave, or press `⌘W` or `Escape` on a hardware keyboard. To create a task, tap **+** in the task list. Type a title, add any details you need, then tap the blue **Done** checkmark at the top-right to save it. ![A new Bring sample materials task, with Close on the left, the Quick Add lightning bolt in the middle, and the blue Done checkmark on the right](https://downloads.2doapp.com/resources/img/2do-ios/task-editor-new-task-2026-10-18.png) Add several tasks in a row While adding a task, tap the lightning-bolt **Quick Add** button in the middle of the top bar to save it and start another. It becomes available once you have typed a title. The next task uses the same destination, including its section, or opens inside a project or checklist you just created. On iPad with a hardware keyboard, `⌘N` does the same thing. ## The Top Bar[​](#top-bar "Direct link to The Top Bar") While editing an existing task, the top bar has: * **Close** on the left. * **Previous** and **Next** chevrons in the middle. They move to the task above or below in the list you opened from, without closing the editor. * The **More** menu on the right. The **More** menu has: * **Open Parent Project** or **Open Parent Checklist**, for a task that lives inside one. * **Mark as Completed** or **Mark as Incomplete**. * **Convert...**, which changes the task into a **Task**, **Project**, or **Checklist**. * **Share**. * **Email as attachments**. * **Delete**. ![The task editor's More menu with commands to complete, convert, share, email, or delete the task](https://downloads.2doapp.com/resources/img/2do-ios/task-editor-more-2026-10-18.png) tip Use the previous and next chevrons to work down a list without closing the editor between tasks. It is the quickest way to triage a long list. ## Title and Priority[​](#title "Direct link to Title and Priority") The top row of the card carries three things: the completion checkmark, the title, and the priority control. * Tap the **checkmark** to complete or reopen the task. It draws the same glyph the task row does, so a project shows its folder icon and a checklist its own. * The **title** grows onto as many lines as it needs while you type. * Tap the **priority** control on the right for **None**, **Low**, **Medium**, and **High**, plus a **Starred** switch. See [Stars and Priorities](/docs/ios/stars-and-priorities.md). While you type the title of a **new** task, [Natural Language Input](/docs/ios/natural-language-input.md) reads details such as `tomorrow at 3pm`, `every Monday`, or `#errands` out of what you wrote, fills in the matching rows, and removes those words from the title when you save. A date on its own is the due date, while a start word in front of it sets the start date, so `Work on the report starting tomorrow` sets the Start Date and leaves the Due Date unchanged. ## The List Banner[​](#list-banner "Direct link to The List Banner") The coloured banner under the title names the list the task lives in. After the list's name, it shows the task's [section](/docs/ios/task-sections.md), as in *Trip > Packing*, or its parent project or checklist. For a task inside a project or checklist, the banner names the project or checklist rather than its section. Tap the banner to open the destination picker and move the task somewhere else. See [Moving a Task](#move). When the task carries an action, a second banner sits opposite it saying what tapping the task does. Tap that banner to perform the action; touch and hold it and choose **Edit** to change it. ## Property Rows and the Toolbar[​](#rows "Direct link to Property Rows and the Toolbar") Below the banner, an existing task shows its start date, due date, duration, alerts, repeat rule, locations, notes, tags, and recording. Empty properties are hidden. To add something the task does not have yet, use the toolbar pinned to the bottom of the editor. Its six buttons open the property panels, in this order: **Dates**, **Alerts**, **Repeat**, **Action**, **Locations**, and **Attachments**. A small dot under a button means the task already has a value for that property. Tap a toolbar button or a property row to open its panel. Tap the blue **Done** checkmark at the panel's top-right to save your changes and return to the task, or **Cancel** at the top-left to return without them. Pulling the panel down or tapping its toolbar button again also returns without your changes. Choices such as dates, duration, repeat rules, and tags apply to the task when you tap the panel's **Done**. When you open a separate form for an alert, action, or location, tap **Done** to add that form to the panel. The back arrow returns without applying its changes. tip You do not need to fill every field. Start with the title, then add only what matters. The toolbar at the bottom is always there when a task needs more. ## Dates and Duration[​](#dates "Direct link to Dates and Duration") The **Dates** panel has three segments: **Start**, **Due**, and **Duration**. * **Start Date** is when a task should begin. A task with a future start date is scheduled and stays out of your lists until that day arrives. * **Due Date** is when a task must be finished. It appears in *Today* on its due date and stays there until it is done. * **Duration** tells 2Do how long the task takes. It never sets or changes the start date or due date. The Start and Due segments each show a month calendar, quick picks for **Today**, **Tomorrow**, the day after that (named after its weekday), and **Week**, plus a **Clear** control. Under the calendar, the Due segment carries a **Time** switch and a clock; the Start segment carries its own clock and four quick start times. Each schedule keeps its own set of four quick times, taken from your date shortcuts in **Settings > Tasks**. ![The Due tab with Wednesday 21 October selected and the Time switch set to 3:00 PM](https://downloads.2doapp.com/resources/img/2do-ios/task-editor-dates-2026-10-18.png) The calendar marks busy days, so you can see where work is already stacking up before you pick a date. Choose the style under **Settings > Appearance > Busy Days > Date Pickers**: **None**, **Dots**, or **Heat Map**. tip Tap and hold any date to see what's already on that day. A short list of that day's tasks appears without changing anything. The **Duration** segment offers quick lengths from **2 mins** through **6 hours**, plus wheels for any number of **Mins**, **Hours**, **Days**, or **Weeks**. Learn more about how Start Date, Due Date, and Duration interact in [Dates and Durations](/docs/ios/dates-and-durations.md). ### Smart Scheduling[​](#smart-scheduling "Direct link to Smart Scheduling") Tasks with a future start date are hidden from your lists until that start date arrives. To see them without changing anything, tap the **Scheduled** control in the sort bar above your tasks, or open the **Scheduled** focus list. See [Focus Lists](/docs/ios/focus-lists.md). ### Due Time and Duration Together[​](#time-duration "Direct link to Due Time and Duration Together") When a task has a due date, a due time, and a duration, the duration tells 2Do when the task starts needing your attention. For example, a workshop task due at **3:00 PM** with a **2-hour duration** becomes active at **1:00 PM**. The **Duration** segment shows that time as **In progress from**. ![Duration set to two hours, with In progress from showing Wednesday 21 October at 1:00 PM](https://downloads.2doapp.com/resources/img/2do-ios/task-editor-duration-2026-10-18.png) ### Default Due Date and Default Due Time[​](#defaults "Direct link to Default Due Date and Default Due Time") If most of your tasks share a pattern, set it once under **Settings > Tasks**: **Default Due Date** gives every new task a due date, and **Default Due Time** gives every new dated task a time. You can still override either on any task. ## Alerts[​](#alerts "Direct link to Alerts") The **Alerts** panel lists the task's alerts, grouped by whether they are still active. Tap **Create New Alert...** to add one, tap an existing alert to change it, or swipe an alert to **Delete** it. If the task has no alerts, the panel opens directly to **New Alert**. ![The Alerts panel with Create New Alert, one active alert for Wednesday at 3:00 PM, and Ring as Alarm turned off](https://downloads.2doapp.com/resources/img/2do-ios/task-editor-alerts-2026-10-18.png) The alert editor has two forms: * **Presets** fire a fixed distance before the task's own time: **On Time**, **5**, **10**, **15**, and **30 minutes before**, **1**, **2**, **6**, and **12 hours before**, and **1** and **2 days before**. * **Custom** either counts a number of **days before** or **days after** the task's date and fires at a time you set, or pins the alert to an exact date and time of its own. **Play Sound** decides whether the alert makes a noise. A line under the controls says what the alert counts from, so an alert on a task with no due time reads *This alert counts from the due date. With no due time, that means the start of the day.* For the workshop due on Wednesday at **3:00 PM**, the **15 minutes before** preset gives a reminder at **2:45 PM** that day. To remind yourself the day before instead, choose **Custom**, leave **Relative to Due Date** on, and set **1 day before** with the time you want. Check the date and time at the top, tap **Done** to add the alert, then tap the panel's **Done** to save it. ![New Alert with the 15 minutes before preset selected and a preview of Wednesday 21 October at 2:45 PM](https://downloads.2doapp.com/resources/img/2do-ios/task-editor-alert-presets-2026-10-18.png) ![A custom alert set to one day before the due date at 2:45 PM, with a preview of Tuesday 20 October](https://downloads.2doapp.com/resources/img/2do-ios/task-editor-alert-custom-2026-10-18.png) Where system alarms are available, a **Ring as Alarm** switch sits under the list. It decides whether this task's timed alerts ring like a Clock alarm instead of arriving as notifications. See [Alerts and Nagging](/docs/ios/alarms-and-nagging.md#ring-alerts). ## Repeat[​](#recurrence "Direct link to Repeat") The **Repeat** panel shows the current rule at the top. Choose a preset (**Never**, **Daily**, **Weekly**, **Biweekly**, **Monthly**, or **Yearly**) or one of three custom options: * **On every given period** for every N days, weeks, months, or years. * **On some days of the week**. * **On a day of each month**. For a task you do on Mondays and Wednesdays, choose **On some days of the week**, then select **M** and **W**. The summary changes to **Every Mon, Wed**. ![The Repeat panel set to every Monday and Wednesday, with those two weekdays selected](https://downloads.2doapp.com/resources/img/2do-ios/task-editor-repeat-weekdays-2026-10-18.png) **Repeat from completion date** decides whether the next occurrence is counted from the task's due date or from the moment you tick it off. Under **Ends**, choose **Never** to keep repeating, **On date** to stop on a chosen date, or **After** to stop after a number of repetitions. See [Repeating Tasks](/docs/ios/repeating-tasks.md). ## Tags[​](#tags "Direct link to Tags") Tap the tags row and start typing. Choose a suggested tag to add it, or tap **Pick** to open the full **Tags** panel. Search your saved tags there, or use **Create New Tag...** for one that does not exist yet. Tap a tag to add or remove it. A checkmark shows which tags the task already has, such as **work** and **design** for the workshop. ![The Tags picker grouped by Work and Home, with work and design checked for the workshop task](https://downloads.2doapp.com/resources/img/2do-ios/task-editor-tags-2026-10-18.png) Paused tags are marked as paused in the picker, so you always know a tag will hide the task. See [Tags](/docs/ios/tags.md). ## Locations[​](#location "Direct link to Locations") The **Locations** panel lists every place you have saved, with **Add a New Location...** at the top. Tap a place to attach it to the task, or tap it again to take it off. Swipe a row for **Edit** and **Delete**, and drag rows to reorder your catalog. To save a new place, tap **Add a New Location...** and give it a name, such as *Workshop venue*. Tap the magnifying glass to **Find Location**, search for an address or place, then select a result. You can also use the current-location arrow or tap the map to place the pin. Tap **Done** to add the place, then tap the panel's **Done** to save it and attach it to the task. ![New Location named Workshop venue, with a map pin at the British Library and the public Euston Road address below](https://downloads.2doapp.com/resources/img/2do-ios/task-editor-location-map-2026-10-18.png) Tasks with a location can appear in the **Nearby** page of the utility panel and can alert you when you arrive. See [Nearby and Locations](/docs/ios/nearby-locations.md). ## Action[​](#action "Direct link to Action") The **Action** panel turns the task itself into something you can do in one tap. Pick one of six: * **Call** * **Message** * **Mail** * **Visit** * **URL** * **Google** Each asks for what it needs: a number, an email address, a link, an address, or search text. For contact-based actions you can pull a value straight from Contacts with **Pick Contact**. See [Actions](/docs/ios/actions.md). For example, choose **URL** to keep a workshop reference page one tap away. Enter the link, tap **Done**, then tap the panel's **Done** to save the action. The action banner on the task then opens that page. ![The Action panel with Call, Message, Mail, URL, Visit, and Google choices](https://downloads.2doapp.com/resources/img/2do-ios/task-editor-actions-2026-10-18.png) ![The URL action form with the fictional example.com/workshop address entered and Done at the top-right](https://downloads.2doapp.com/resources/img/2do-ios/task-editor-action-url-2026-10-18.png) ## Attachments[​](#attachment "Direct link to Attachments") The **Attachments** panel holds two things: * **Photo**: **Take Photo**, **Choose Photo**, and **Remove Photo**. A photo also appears as a banner above the task's title. * **Voice**: **Record**, **Stop**, **Play**, **Pause**, and **Remove Audio Note**. For the workshop, you could attach a photo of a sample or record a short reminder about what to bring. ![The Attachments panel with Take Photo, Choose Photo, and Record controls](https://downloads.2doapp.com/resources/img/2do-ios/task-editor-attachments-2026-10-18.png) Tap the photo to open it full size in the viewer, where you can: * **Pinch** to zoom and drag to move around, or double-tap to return to the resting size. * Pull the picture down to put it away. * Tap **Enlarge** to open it outside the panel, filling more of the screen. * Tap **Share** to hand it to the system share sheet. ### Transcribing a Voice Note[​](#transcription "Direct link to Transcribing a Voice Note") 2Do can turn a voice note into text you can read and copy. It works on any saved note, including one you have just recorded. Tap **Stop** to finish a recording before you transcribe it. Transcription needs iOS 26 or iPadOS 26 or later, on a supported device and in a supported language. It uses your device's current language. On earlier versions of iOS and iPadOS, **Transcribe** does not appear. 1. Tap **Attachments** in the editor's toolbar. 2. Under **Voice**, tap **Transcribe**. The text appears below the playback controls and fills in as 2Do works through the recording. 3. Tap **Copy**, then paste the text into the task's notes or anywhere else. Playing or pausing the recording does not stop transcription. The transcript is not saved. Closing the Attachments panel clears it, so copy anything you want to keep first. Transcribing does not change the recording, the task, or what syncs. Transcription uses the offline speech recognition built into iOS and iPadOS. The recording and its text are processed on your iPhone or iPad, and transcribing does not upload them to 2Do's servers or to an online transcription service. The first time you transcribe in a language, your device may need to download support for that language, which needs an internet connection. After that, transcription works offline. While transcription runs, the panel shows its progress: getting ready, downloading, or transcribing. If a recording cannot be transcribed, a short message explains why: the device or language is not supported, the recording cannot be read, or no speech was found. If transcription stops because of an error, you can try again from the same place. ## Notes[​](#notes "Direct link to Notes") Tap the notes row to open the notes card. Notes hold whatever helps: context, links, snippets, or a running log. They style Markdown as you type, insert date and time stamps, link to other tasks, and gather every link they find into one menu. The notes card saves your note automatically, and **Done** at its top-left closes it. ![Workshop notes with a Session plan heading, three preparation points, and the formatting toolbar visible](https://downloads.2doapp.com/resources/img/2do-ios/task-editor-notes-2026-10-18.png) Full details are in [Notes, Markdown, and Links](/docs/ios/notes-and-markdown.md), and task links have a page of their own in [Linking to Other Tasks](/docs/ios/task-links.md). ## Sub-Tasks[​](#sub-tasks "Direct link to Sub-Tasks") Sub-tasks belong to projects and checklists. A regular task cannot hold sub-tasks of its own. For children with their own dates, tags, and alerts, convert the task to a Project with **Convert...** in the More menu. See [Projects and Checklists](/docs/ios/projects-and-checklists.md). ## Moving a Task[​](#move "Direct link to Moving a Task") Tap the list banner under the title to open the destination picker. Search for a list, project, or checklist, tap it, and then tap **Done** to move the task there. If the name you type does not exist yet, tap **Create New List...** and then **Done**, and 2Do makes the list and files the task in one step. Each list's sections appear under its name. Tap a section to move the task into it, or the list's own name to take the task out of its section, then tap **Done**. See [Sections in the List Picker](/docs/ios/task-sections.md#list-picker). ![The Move picker showing Home with its Housekeeping and Small repairs sections, plus other lists, a checklist, and a project](https://downloads.2doapp.com/resources/img/2do-ios/task-editor-move-2026-10-18.png) ## Keyboard Shortcuts[​](#shortcuts "Direct link to Keyboard Shortcuts") With a hardware keyboard connected, the editor answers these: | Shortcut | Action | | ---------------- | --------------- | | `⌘/` | Edit Dates | | `⇧⌘S` | Start Date | | `⇧⌘D` | Due Date | | `⌘'` | Alerts | | `⌘;` | Repeat | | `⌘B` | Action | | `⌘E` | Edit Note | | `⌘R` or `⇧⌘T` | Tags | | `⌘G` or `⇧⌘L` | Locations | | `⌘L` or `⇧⌘M` | Move | | `⌥⌘0` | Priority None | | `⌥⌘1` | Priority Low | | `⌥⌘2` | Priority Medium | | `⌥⌘3` | Priority High | | `⌥⌘S` | Toggle Starred | | `⌘W` or `Escape` | Close | While composing a new task, `⌘Return` saves it. The full list for the rest of the app is in [Keyboard Shortcuts](/docs/ios/keyboard-shortcuts.md). --- # Linking to Other Tasks Link related tasks from their notes, such as a meeting and its follow-ups. A link uses the format `@{Task Title}`. Tap it to open that task in its list. For example, keep your workshop plan in one task and link to **Review workshop brief** and **Prepare workshop slides** from its notes. You can open either task without searching for it again. ![Notes for Plan the workshop with highlighted links to Review workshop brief and Prepare workshop slides](https://downloads.2doapp.com/resources/img/2do-ios/task-links-note-2026-10-18.png) ## Creating a Link[​](#creating "Direct link to Creating a Link") 1. Open a task's notes. 2. Type **`@{`**. A list of tasks appears above the toolbar. 3. Leave it empty to see your recently modified tasks, or keep typing to filter by title. 4. Tap a result to insert the link. Typing `@{workshop` finds both tasks in this example. Tap the one you want; 2Do inserts its full title and the closing brace for you. ![Typing an unfinished task link for workshop shows two matching tasks and their Work plan list](https://downloads.2doapp.com/resources/img/2do-ios/task-links-suggestions-2026-10-18.png) Each result shows the task's title with its list underneath, and a sub-task also names the parent it lives in, so two tasks with similar titles are easy to tell apart. A typed query offers up to twelve matches, and 2Do never offers a link to the task you are editing. 2Do inserts the task's title wrapped in the link form, `@{Task Title}`, as plain text in your note. ## Writing a Link by Hand, on Any Device[​](#by-hand "Direct link to Writing a Link by Hand, on Any Device") A task link is not a hidden identifier. It is the task's **title** wrapped in `@{…}`, stored as ordinary text in the note. That has a useful consequence: you can type a link by hand, and you can do it anywhere 2Do runs. Write `@{Weekly review}` into a note on your iPhone, and once that note syncs, 2Do on your Mac and iPad resolves it to your **Weekly review** task there too. There are no fragile identifiers to copy around and nothing that only works on the device where you made the link. tip This makes task links good for planning on the go. Type `Blocked by @{Order parts}` into a task's notes from your phone, and the link is already live by the time you sit down at your Mac. ## How Links Resolve[​](#resolving "Direct link to How Links Resolve") Tapping a task link opens that task in its list, switching to the list or project it lives in when it needs to. Because a link's identity is its title, 2Do resolves it on a best-effort basis: * It prefers an **exact title match**, then a **prefix match**. * Matching ignores case and accents, so `@{cafe run}` still finds *Café run*. * Completed tasks can be matched too, so an old link still leads somewhere. * A task never links to itself. * Tasks in hidden, archived, or locked lists are left out. When nothing matches, 2Do shows a message rather than moving you somewhere unexpected. note Since links match by title, renaming a task or having two tasks with the same title can send a link somewhere you did not intend, or leave it unresolved. Give tasks you link to distinctive titles, such as `@{Q3 launch retro}` rather than `@{Follow up}`. ## Finding the Links in a Note[​](#finding "Direct link to Finding the Links in a Note") Task links are highlighted in the note. Tap one to open the related task, or tap the globe-shaped **Open Links** button in the bottom toolbar to see all the note's links together. Choose a task title from the menu to open it. ![The Open Links menu lists the two tasks linked from the workshop notes](https://downloads.2doapp.com/resources/img/2do-ios/task-links-menu-2026-10-18.png) The menu includes web addresses found by [link discovery](/docs/ios/notes-and-markdown.md#link-discovery), with task links listed first. ## Examples[​](#examples "Direct link to Examples") * Point a task at what is blocking it: `Blocked by @{Order parts} and @{Sign lease}`. * Connect a meeting to its follow-ups: `Discussed in @{Q3 planning meeting}`. * Leave a trail through a project: a parent task's notes can list `@{Draft copy}`, `@{Final screenshots}`, `@{Submit build}`. * Reference a recurring checklist: `Same steps as @{Weekly review}`. --- # Task Sections Use **Sections** to keep related tasks together in a list. A trip might have *Bookings*, *Packing*, and *At Home*; a grocery list might have *Fruit*, *Vegetables*, and *Pantry*. Sections are available in regular lists and the Inbox. Move sections up or down to arrange your list. The tasks within each section follow the list's sort, such as **Due Date** or **Priority**. ![The Home list with Housekeeping and Small repairs sections, each grouped by due date](https://downloads.2doapp.com/resources/img/2do-ios/task-sections-overview.png) ## How Sections Work[​](#how-sections-work "Direct link to How Sections Work") * Each section has a name and an optional description. Descriptions appear below the name on one line, with line breaks shown as spaces and long text cut off to fit. * A section can hold tasks, projects, and checklists. Sub-tasks stay with their project or checklist, and each task belongs to one section at a time. * Tasks that are not in a section stay at the top of the list, above the first section. * A list sorted by **Due Date** shows date groups such as *Today* and *Overdue* in every section. Sort the list **Manually** and you arrange the tasks in each section yourself. See [The Sort Bar](/docs/ios/the-2do-screen.md#sort-bar). * When completed tasks are visible, the *Done* group appears below the last section. Completed tasks, projects, and checklists go there; completed sub-tasks stay with their project or checklist. Items in *Done* still belong to their sections and return there when marked as not completed. Focus Lists such as *Today*, Smart Lists, and search results show tasks without sections. ## Adding a Section[​](#adding "Direct link to Adding a Section") Leave [batch editing](/docs/ios/batch-editing.md#exit) before adding a section, then use either method: * **From the lists panel**: tap **Add** at the bottom (a chip on iPad or a row on iPhone). Under the current list's name, choose **Add Section**. * **From a section**: touch and hold a section title and choose **Add Section** to add a new section right after that one. From the **Add** menu, the new section goes after the section holding the task you have selected, or at the end of the list. The section commands appear in that menu when the list on screen is a regular list or the Inbox. The new section opens for editing with its name, *New Section*, selected so you can type over it. A section added during batch editing doesn't open for editing and keeps the name *New Section*. To name it, finish batch editing, then touch and hold its title and choose **Rename Section**. ## Naming and Describing a Section[​](#naming "Direct link to Naming and Describing a Section") To rename a section, touch and hold its title and choose **Rename Section**. Tapping a section title collapses or expands the section instead. The editor shows the name, a description, and a checkmark button to save: * Type the name on one line. * Add a description if you want one. In the description, `Return` starts a new line. In the list, the description appears below the section title on one line. * Tap the checkmark to save. The keyboard's **Done** key in the name field saves too. With a hardware keyboard, `⌘Return` and `Esc` also save. Closing the editor saves your changes. Use [Undo](/docs/ios/the-2do-screen.md#undo-redo) to discard them. ## Collapsing a Section[​](#collapsing "Direct link to Collapsing a Section") Tap a section title to hide its tasks; tap again to show them. An arrow appears beside the title when the section has tasks. Empty sections have no arrow. While you scroll through a section, its title stays pinned at the top of the list, and tapping it there still collapses or expands the section. Section titles never stay selected when you tap them, and batch editing selects tasks only. ## Moving Tasks In and Out of Sections[​](#moving-tasks "Direct link to Moving Tasks In and Out of Sections") * **Drag**: touch and hold a task, drag it onto a section title or among a section's tasks, and let go to move it into that section. This works with any sort, inside or outside batch editing. Outside batch editing, holding still without dragging opens the task's menu instead. * **Move**: touch and hold a task, choose **Move**, tap a section under its list, and tap the **Done** checkmark. The section can be in the same list or another one. The task editor's list banner opens the same choices. See [Sections in the List Picker](#list-picker). * **Several at once**: in [batch editing](/docs/ios/batch-editing.md#move-to-section), select the tasks and drag any one of them onto a section title. Or tap **Move**, choose a section under its list, and tap the checkmark. This works for a section in the same list or in another list. * **Remove from Section**: touch and hold a top-level task in a section and choose **Remove from Section**. It leaves the section and, if it's unfinished, moves to the top of the list. Moving a task into or out of a section keeps its dates, priority, and other details. A project or checklist keeps its sub-tasks. If you move a sub-task into a section, it leaves its project and becomes a task in that section. ## Sections in the List Picker[​](#list-picker "Direct link to Sections in the List Picker") When you add or move a task, the list picker shows each list's sections, so you can file the task in a section directly. You can choose a section from: * The **List** capsule in [Quick Add](/docs/ios/quick-add.md#card). * The list banner in the [task editor](/docs/ios/task-editor.md#move). * **Move** in a task's menu, and **Move** in [batch editing](/docs/ios/batch-editing.md#move-to-section). * The list picker in the [share sheet](/docs/ios/getting-started.md#share-extension). Under each list, its projects and checklists that are not in a section come first, followed by its sections in the same order as in the list. Projects and checklists in a section appear under that section, one step farther in. Empty sections are listed too. Each section shows the section symbol and a line under its name. Descriptions are not shown. * Choose a section to put the task in that list and section. * Choose the list's own name to file the task outside its sections. This also takes a task out of a section in the same list. * A checkmark shows where the task is filed: on its section, or on its project or checklist if it is in one. ![The Move to picker with Small repairs selected beneath the Home list](https://downloads.2doapp.com/resources/img/2do-ios/task-section-picker.png) Only regular lists and the Inbox show sections. Read-only lists don't appear in the picker, and the sections, projects, and checklists in a locked list are hidden. Sections stay in the picker when you turn off **Show projects in the list picker** under **Settings > Tasks > List Selection**. ## Arranging Sections[​](#arranging "Direct link to Arranging Sections") Touch and hold a section title, then drag it up or down to change the order of sections. Tasks without a section always stay above the first section. To move a section to another list, drag its title onto that list in the lists panel. The section takes all of its tasks with it. ## The Section Menu[​](#section-menu "Direct link to The Section Menu") Touch and hold a section title to open its menu: * **Rename Section** opens the name and description for editing. * **Duplicate Section** adds a copy right below the original, with a new copy of every task in it, including projects and checklists with their sub-tasks. Completed tasks and sub-tasks are copied too, and the copies start out unfinished. The copy then opens so you can change its name. * **Move Section…** lists your other lists, grouped by list group. Choose one to move the section and all of its tasks to that list. To change the section's place among that list's sections, open the list and [drag its title](#arranging) up or down. * **Convert to List** creates a new list from the section in the same list group (or under **Lists** when the section is in the Inbox), moves all of its tasks, projects, and checklists into the new list, and removes the section. Any section description becomes the new list's notes. * **Delete Section** removes the section and keeps its tasks; the unfinished ones join the tasks at the top of the list. 2Do asks first; tap **Delete Section** to confirm. * **Add Section** adds a new section right after this one. * **Auto-Name Section**, below a divider, names the section after its tasks. See [Auto-Name Section](#auto-name). During batch editing, section titles have no menu and can't be dragged. With VoiceOver, the same commands are actions on the section title, except **Move Section…**, which is in the section's menu. Every change to sections can be undone. See [Undo and Redo](/docs/ios/the-2do-screen.md#undo-redo). ## Organizing a List with Apple Intelligence[​](#apple-intelligence "Direct link to Organizing a List with Apple Intelligence") Use Apple Intelligence to organize tasks into sections or name a section you've already created. ### Auto-Create Sections[​](#auto-create "Direct link to Auto-Create Sections") **Auto-Create Sections** organizes unfinished tasks by their titles. It prefers an existing section when the name fits the tasks, and creates a new section when none fits. For example, new grocery tasks can join your *Fruit* and *Vegetables* sections, with a new *Pantry* section added if needed. Choose which tasks to organize: * **Selected tasks**: open a regular list or the Inbox, enter [batch editing](/docs/ios/batch-editing.md), select the tasks, then touch and hold one of the selected task rows and choose **Auto-Create Sections**. The command is also in the **Task** menu. To organize just one task outside batch editing, touch and hold its row and choose the command. * **All unsectioned tasks in a list**: leave batch editing, then touch and hold the list name in the lists panel and choose **Auto-Create Sections**. The panel's **Add** menu offers the same command for the list on screen. The first time, 2Do explains what the command does. Tap **OK** to continue. A card shows progress; tap its close button or anywhere outside the card to cancel without making changes. Select **Do not show this message again** to skip this prompt next time. To restore it, open **Settings > General** and tap **Clear** next to **Confirmation warnings**. See [Settings](/docs/ios/settings.md#general). What changes: * With selected tasks, only the unfinished tasks in that selection are organized. They can already belong to sections. Other tasks stay where they are. * With the List command, all unfinished top-level tasks, projects, and checklists without a section are included, even those hidden from view. Tasks already in sections stay where they are. * Existing section names, descriptions, and order stay unchanged. New sections appear after the existing ones, with names in the language of your task titles. * A selected project or checklist keeps its sub-tasks. If you select a sub-task without its parent, it leaves the parent and becomes a top-level task in its assigned section. Completed tasks are skipped, though completed sub-tasks still move with a selected parent. Tasks are organized only when you run the command. You can run it again to place new tasks in suitable sections. To reverse the result, undo straight away, for example by swiping left with three fingers. One undo puts the tasks back where they were and removes any sections the command added. ### Auto-Name Section[​](#auto-name "Direct link to Auto-Name Section") **Auto-Name Section** gives a section a short name based on the titles of its tasks. Touch and hold the section title and choose **Auto-Name Section**. The section is renamed immediately; its description and tasks are unchanged. 2Do uses the titles of its top-level tasks, projects, and checklists, including completed or hidden items. To go back to the old name, undo, or rename the section yourself. An empty section can't be named this way. ### What Apple Intelligence Reads[​](#on-device "Direct link to What Apple Intelligence Reads") **Auto-Create Sections** reads the titles of the tasks it organizes and the names of existing sections. A selected project or checklist contributes its own title; a sub-task contributes its title only when selected without its parent. **Auto-Name Section** reads the titles of the section's top-level tasks, projects, and checklists. Neither command reads notes, dates, tags, or attachments. Apple Intelligence does the work on your iPhone or iPad, and there is no account to create. If the tasks being organized or the available sections change while 2Do is working, it stops without applying the result and asks you to try again. When organizing a selection, changes to unrelated tasks do not stop the command. ### What You Need[​](#requirements "Direct link to What You Need") The list must allow editing. These commands cannot change a read-only shared list or a read-only list from a sync service. The two commands need an iPhone or iPad that supports Apple Intelligence, running iOS 26 or iPadOS 26 or later, with Apple Intelligence turned on in the Settings app. * On a device that cannot run Apple Intelligence, the commands are not shown. * If Apple Intelligence is turned off or still downloading, 2Do explains what to do when you choose a command. * If Apple Intelligence doesn't support your language yet, 2Do says so and changes nothing. ## Printing Sections[​](#printing "Direct link to Printing Sections") When you [print](/docs/ios/printing.md) a list, a task, or a batch selection, **Include Sections** is on by default. Each section prints with its title, description, and sort groups, in the order shown in your list. Turn it off to print one sorted list without section titles or descriptions. See [Sections and Sort Groups](/docs/ios/printing.md#sections). ## Sections and Sync[​](#sync "Direct link to Sections and Sync") In an [iCloud shared list](/docs/ios/icloud-list-sharing.md#shared-content), section names, order, and task membership are shared with everyone. Moving a task to another section changes the shared organization. Each person can still choose a different personal list sort or Focus filter. View-only members cannot rearrange the shared work. * [iCloud](/docs/ios/sync-with-icloud.md) and [Dropbox](/docs/ios/sync-with-dropbox.md) sync sections between your iPhone, iPad, and Mac, with their names, descriptions, order, and tasks. * [Todoist](/docs/ios/sync-with-todoist.md) syncs them as Todoist sections: the name, the order, and which tasks belong to each. Descriptions are not synced with Todoist. * With other sync methods, sections are not synced. Your tasks still sync, and your other devices show them without sections. ## Sections from Things[​](#things "Direct link to Sections from Things") iPhone and iPad have no direct import from Things. Import on a Mac, where the headings in each Things project become sections, then sync with iCloud, Dropbox, or Todoist to bring them to your iPhone and iPad. See [Import from Things](/docs/faqs/import-from-things.md). ## On the Mac[​](#mac "Direct link to On the Mac") On a Mac, sections also have keyboard shortcuts and can be copied and pasted between lists. See [Task Sections for Mac](/docs/macos/task-sections.md). --- # The Main Task List Swipe between panels to see your lists, tasks, and tools. On iPad, more panels can stay visible together. ## On iPhone[​](#iphone "Direct link to On iPhone") The iPhone app has three panels: * **Lists** holds your Focus Lists, real lists, list groups, and Smart Lists, with three action rows at the bottom: **Add**, the **mini calendar**, and **Settings**. * **Tasks** holds the tasks in the selected list, with the sort bar above them and the floating `+` button below. * **Utility panel** holds **Tags**, **Nearby**, and **Calendar Events**, chosen with the segmented control at the top. The task editor is presented over the task list rather than living in a panel, so tapping a task fills the screen and closing it returns you to exactly where you were. ![The Home task list on iPhone, with Search and Batch Editing at the top, the sort bar above the tasks, and the add button below](https://downloads.2doapp.com/resources/img/2do-ios/task-sections-overview.png) ### Sliding Between Panels[​](#sliding-panels "Direct link to Sliding Between Panels") * Swipe the task list **right** to reveal the lists panel. * Swipe the task list **left** to reveal the utility panel. * Swipe back toward the middle to put the task list on its own again. Most iPhone windows let the panels slide over one another, with one bar spanning the lists and task panels together. If iOS gives 2Do a regular-width window with enough room for all three panels, they sit side by side with a bar over each one. ### Navigating Between Screens[​](#navigating-iphone "Direct link to Navigating Between Screens") * **Open a task**: tap it. * **Open the mini calendar**: tap the calendar row at the bottom of the lists panel. Tap it again to close the drawer. * **Open Settings**: tap the **Settings** row at the bottom of the lists panel. ## On iPad[​](#ipad "Direct link to On iPad") The iPad app has four panels: **Lists**, **Tasks**, the **editor pane**, and the **utility panel**. When the window is wide enough, 2Do shows the lists panel, the task list, and the widest trailing panel side by side. Below that width the panels slide instead. * Swipe the task list toward the leading side to reveal **Lists**. * Swipe toward the trailing side to move through the **editor pane** and then the **utility panel**. * Tap the **Tags** chip at the bottom of the lists panel to open the utility panel directly. Selecting a task opens it in the editor pane. With no task selected, the pane shows **RECENT**, the tasks you last opened. Below the editor sit the mini calendar and the task overview. For everything specific to the iPad, see [iPad Features](/docs/ios/ipad-features.md). ## The Lists Panel[​](#lists-panel "Direct link to The Lists Panel") The panel lists your **Focus Lists** first, then your lists and list groups, then your Smart Lists. Each row shows the list's name, its color band, and its counts. At the bottom of the panel: * **iPad**: a footer of chips. **Add** opens a menu with **New List** and **New List Group**, plus **Add Section** for the list on screen; **Tags** opens the utility panel, and **Settings** opens Settings. * **iPhone**: three rows. **Add** opens the same menu, the **calendar** row opens the mini calendar drawer, and **Settings** opens Settings. Touch and hold a list for its quick actions. See [Lists and List Groups](/docs/ios/lists-and-list-groups.md). ## The Task Bar[​](#top-toolbar "Direct link to The Task Bar") The bar above the task list has: * The **name of the selected list** on the leading edge. Tap it to open [Quick Open](/docs/ios/quick-open.md) and jump to any task or list. * **Search** and **Batch Editing** on the trailing edge. Inside a project or checklist, a back chevron appears on the leading edge and the title acts as **Back** instead of opening Quick Open. While search is open, the field takes the middle of the bar and a scope control appears below it. While batch editing is on, the title reads **Batch Editing**. ## The Sort Bar[​](#sort-bar "Direct link to The Sort Bar") The **sort bar** below it controls sorting, filtering, and hidden tasks. On the leading side: * A **briefcase** chip when a project or checklist can be opened in its own view. * The **list name**, with its color marker, a padlock for a protected list, a sharing mark for a list published to or subscribed from Wi-Fi, a **Read Only** mark where changes are not allowed, and today's date beside it. On the trailing side: * A count of tasks currently **hidden** from view. * Animated **counters** for overdue and remaining tasks. Digits roll when a value changes. * A **scheduled** chip that reveals tasks whose start date is still in the future, and a **paused** chip that reveals tasks carrying a paused tag. Each one shows a short confirmation when you toggle it. * The **sort** menu, where you choose what orders the list, such as **Due Date**, **Start Date**, **Priority**, **Title** or **Tag**, or **Manually** to arrange tasks yourself, with its ascending and descending control and a **Separated** option. Each list remembers its own sort. Inside a project or checklist the menu names project or checklist sorting, because that parent keeps its own order. See [Sorting Manually](#manual-order). **Due Date** orders by due date and then due time; a task with no due time sorts at the end of its day, and alert times play no part. See [Just a Due Date](/docs/ios/dates-and-durations.md#just-due). * The **Focus** button. A tap turns the Focus Filter on or off; touch and hold it to choose which conditions the filter uses. Each list remembers its own choices. See [Focus Filter](/docs/ios/focus-filter.md). ## The Task List[​](#task-list "Direct link to The Task List") Your chosen sort groups tasks by date, priority, or another field. Tap a group’s header to collapse or expand it. Each list remembers which groups are collapsed. If a header is pinned at the top while you scroll, tapping it first scrolls to its original position. When tasks in a section have durations, the section header shows their total next to its title, such as 2h 45m. When a list is sorted by **Duration**, headers that already name a duration show no total. See [Duration Totals](/docs/ios/dates-and-durations.md#duration-totals). You can also divide a list into sections you name yourself, such as *Bookings*, *Packing*, and *At Home*. The sort still applies inside each of these sections, so each one has its own date or priority groups beneath its title. Tap a section's title to collapse or expand it, and touch and hold the title for the section's menu. See [Task Sections](/docs/ios/task-sections.md). Each task row shows a checkmark, title, dates, and indicators for details such as tags, attachments, locations, and alarms. Tap the control at the end of the row to show its priority and star buttons. To set priorities for a whole selection at once rather than a row at a time, see [Auto-Prioritize](/docs/ios/auto-prioritize.md). ## Sorting Manually[​](#manual-order "Direct link to Sorting Manually") Choose **Manually** in the sort menu when you want to decide the order yourself. Reordering happens in batch editing. Outside it, touching and holding a task opens its menu when you hold still, and dragging moves just that task somewhere else, such as another list, without changing its place in the order. 1. Open the sort menu on the sort bar and choose **Manually**. 2. Tap **Batch Editing** at the trailing end of the bar above your tasks. 3. Touch and hold a task until it lifts, drag it to its new place, and let go. A gap opens where it will land. To move several tasks at once, select them first and drag any one of them; the whole selection moves together. 4. Tap **Batch Editing** again when you are done. The order is kept per list, so a scratch list can stay in your own order while other lists sort by date. **Today**, **Scheduled**, **Starred** and **All** keep their own manual order too. That Focus List order syncs only with [iCloud](/docs/ios/sync-with-icloud.md). A project or checklist keeps its own order for its sub-tasks: open it and choose **Manually** from its own sort menu, which the menu heading names **Project Sorting** or **Checklist Sorting**. With any other sort selected, dropping a task inside the list does not change its position; the task returns to its sorted place. Switch to **Manually** first, then drag. Dropping a task on the title of a [section](/docs/ios/task-sections.md), or among a section's tasks, is the exception: it moves the task into that section with any sort, inside or outside batch editing. Above the task list, **Calendar Events** can show your Apple Calendar day as a day bar. It stays out of Smart Lists, project views, and search. See [Calendar Events](/docs/ios/calendar-integration.md). **Pull down** on the task list to sync. If no sync method is set up yet, 2Do offers to set one up. ## The Floating Add Button[​](#fab "Direct link to The Floating Add Button") A round `+` button floats below the task list. * **Tap** it to open the editor for a new task in the current list. * **Touch and hold** it to open [Quick Add](/docs/ios/quick-add.md). An empty list prompts you to tap `+` for a new task, or to touch and hold it for Quick Add. ## The Utility Panel[​](#utility-panel "Direct link to The Utility Panel") The utility panel has three pages, chosen with the segmented control at the top: * **Tags**: every tag with its count. Tap a tag to filter the task list, and tap more tags to combine them. See [Tags](/docs/ios/tags.md). * **Nearby**: your saved locations and the tasks attached to them, sorted by distance. See [Nearby and Locations](/docs/ios/nearby-locations.md). * **Calendar Events**: the events on the selected day, with the calendar's color, all-day events, and a way to add an event. See [Calendar Events](/docs/ios/calendar-integration.md). ## The Editor[​](#editor "Direct link to The Editor") On iPhone the editor is presented over the task list. On iPad it lives in the editor pane beside the list, so you can keep browsing while a task stays open. On iPad, when no task is selected, the pane shows: * **RECENT**, the last few tasks you opened in the pane. Tap one to open it again, or tap its cross to drop it from the list. * The **mini calendar**. * The **task overview**, with four counts: **Overdue**, **Due Today**, **Done Today**, and **Tomorrow**. Tap a count to open a related search. See [Task Overview on iPad](/docs/ios/ipad-features.md#statistics) for what each count includes and how it differs from the lists panel. See [The Task Editor](/docs/ios/task-editor.md). ## Gestures[​](#gestures "Direct link to Gestures") | Gesture | Action | | ------------------------------------------------ | -------------------------------------------------------------------------------------- | | **Tap** a task | Open its editor | | **Touch and hold** a task | Open its [menu of quick actions](/docs/ios/pinch-zoom-and-tap-hold.md#tap-hold) | | **Touch and hold** a task, then drag | Move it to a list, a Focus List, a tag, a calendar date, or a section | | **Touch and hold** a task's checkmark, then drag | Select a run of tasks for [batch editing](/docs/ios/batch-editing.md) | | **Tap** a section header | Collapse or expand the section | | **Touch and hold** a named section's title | Open its [section menu](/docs/ios/task-sections.md#section-menu) | | **Pinch** the task list | Switch between the [display modes](/docs/ios/pinch-zoom-and-tap-hold.md#pinch-zoom) | | **Pull down** on the task list | Sync | | **Swipe** the task list right | Reveal the lists panel | | **Swipe** the task list left | Reveal the utility panel (iPhone) or the editor pane and then the utility panel (iPad) | | **Touch and hold** the `+` button | Open [Quick Add](/docs/ios/quick-add.md) | | **Pull from the leading edge** inside a project | Leave Project View | ## Undo and Redo[​](#undo-redo "Direct link to Undo and Redo") Common changes to tasks and lists can be undone and redone, including completing a task, editing it, moving it, tagging it, deleting it, and making batch edits. 2Do keeps one undo history for the whole app, shared across every window on iPad. Use the standard iOS gestures to undo and redo: * **Swipe left with three fingers** to undo, and **swipe right with three fingers** to redo. * **Double-tap with three fingers** to undo. * **Tap once with three fingers** to show the system shortcut bar, with **Undo** and **Redo** buttons on it. Shaking the device offers to undo the last change as well, as long as **Shake to Undo** is on under **Settings > Accessibility > Touch** in iOS Settings. It is on by default. With a hardware keyboard, `⌘Z` undoes and `⇧⌘Z` redoes. See [Keyboard Shortcuts](/docs/ios/keyboard-shortcuts.md#standard). ## Indicators on List Names[​](#status "Direct link to Indicators on List Names") Each list row can carry: * **Counts**: overdue on the left in red, and tasks not yet done on the right. What appears is set by **Counts on lists** under **Settings > Today & Lists**: **None**, **Overdue items**, or **Overdue + Undone**. * A small **glowing dot**: white when the list holds a task due today, red when it holds an overdue task. It never appears on *All*, *Done*, or *Scheduled*. * A **color band** that changes to mark a Smart List, a list excluded from *All*, a list published over Wi-Fi, a list subscribed from Wi-Fi, a shared calendar, or a locked list. ## Hardware Keyboard[​](#keyboard "Direct link to Hardware Keyboard") Connect a keyboard and the whole command set becomes available on both iPhone and iPad. Hold `⌘` to see what applies right now, and on iPadOS 26 the same commands appear in the menu bar. See [Keyboard Shortcuts](/docs/ios/keyboard-shortcuts.md). --- # URL Schemes 2Do iOS registers the `twodo://` URL scheme. You can use it from Shortcuts, launchers, widgets, browsers, and other apps that can open a URL. The public URL scheme is for user automation. It does not include sign-in, sync authorization, or other account callback URLs. tip If you are building in the Shortcuts app, prefer 2Do's native actions. They return real task values you can pass to the next action, they check their input, and most of them run without opening 2Do. See [Automate with Shortcuts](/docs/ios/shortcuts-actions.md). Use the URL scheme when the app you are automating from can only open a URL, or when you need x-callback-url replies. ## Base Format[​](#base "Direct link to Base Format") Most actions use the x-callback-url format: ``` twodo://x-callback-url/?=&= ``` Action names are case-insensitive, so `showtoday`, `showToday`, and `ShowToday` all reach the same action. ## URL Encode Your Values[​](#url-encoding "Direct link to URL Encode Your Values") URL parameters must be encoded before you put them into a URL. This matters for spaces, commas, ampersands, line breaks, and symbols. | Text | Encoded | | ------------------------------------ | ------------------------- | | `Buy milk` | `Buy%20milk` | | `Work & Home` | `Work%20%26%20Home` | | `finance,admin` | `finance%2Cadmin` | | `Line one` + line break + `Line two` | `Line%20one%0ALine%20two` | In Shortcuts, use the **URL Encode** action before **Open URL**. In JavaScript: ``` encodeURIComponent('Call Sam & book flights'); // Call%20Sam%20%26%20book%20flights ``` tip Encode only the parameter value, not the whole URL. For example, encode `Call Sam & book flights`, then place the result after `task=`. ## Quick Examples[​](#examples "Direct link to Quick Examples") Create a task in the Inbox: ``` twodo://x-callback-url/add?task=Buy%20milk&forlist=Inbox ``` Create a task with a note, due date, due time, tags, and a priority: ``` twodo://x-callback-url/add?task=Submit%20expenses¬e=Attach%20receipts&forlist=Work&due=2026-05-08&duetime=17:00&tags=finance%2Cadmin&priority=2 ``` Create a checklist from multiple lines: ``` twodo://x-callback-url/add?task=Trip%20prep&type=2&subtasks=Book%20flights%0AReserve%20hotel%0APack%20passport ``` Open the Today Focus List: ``` twodo://x-callback-url/showtoday ``` Search for tasks containing `invoice`: ``` twodo://x-callback-url/search?text=invoice ``` ## Public Actions[​](#actions "Direct link to Public Actions") These are the public x-callback-url actions that are useful for user automation in 2Do for iPhone and iPad. | Action | Purpose | | --------------- | ------------------------------------- | | `add` | Create a task, project, or checklist. | | `addnewtask` | Open the new-task interface. | | `paste` | Create tasks from plain text. | | `search` | Search tasks. | | `showall` | Open the All Focus List. | | `showtoday` | Open the Today Focus List. | | `showstarred` | Open the Starred Focus List. | | `showscheduled` | Open the Scheduled Focus List. | | `showlist` | Open a list by name. | | `showtask` | Open a task by UID. | | `gettaskid` | Find a project UID by title and list. | | `launch` | Open 2Do. | note 2Do for Mac also supports `completetasks` for marking tasks complete by UID. 2Do iOS does not include that URL action. ## Creating Tasks with `add`[​](#add "Direct link to add") Use `add` when you want a URL to create a task directly. ``` twodo://x-callback-url/add?task=Call%20Sam&forlist=Work ``` ### Basic Parameters[​](#add-basic "Direct link to Basic Parameters") | Parameter | Description | | ----------------- | -------------------------------------------------------------------------------------------- | | `task` | Task title. If omitted, 2Do uses `New Task`. | | `note` | Notes for the task. | | `forlist` | Destination list name. If omitted, 2Do uses the default or last-used list. | | `forparentname` | Parent project or checklist title. Use this with `forlist` so 2Do can find the right parent. | | `forparenttask` | Parent project or checklist UID. Use this when your automation already knows the parent UID. | | `type` | `0` for a regular task, `1` for a project, `2` for a checklist. | | `ignoredefaults` | `1` tells 2Do not to apply default list/date/alert settings while creating the task. | | `edit` | `1` creates the task, then opens it for editing. | | `saveinclipboard` | `1` copies the new task UID to the clipboard after the task is created. | note Use `addnewtask` when you only want to open the new-task interface. On iOS, `add` creates the task directly unless you pass `edit=1`. ### Dates, Times, and Repeat[​](#add-dates "Direct link to Dates, Times, and Repeat") | Parameter | Description | | --------- | ------------------------------------------------------------------------------------------------------------------------------ | | `due` | Due date. Use `yyyy-MM-dd`, a natural phrase such as `tomorrow`, or a number of days from today (`0` = today, `1` = tomorrow). | | `duetime` | Due time, such as `17:00` or `5pm`. This is applied when a due date is supplied. | | `start` | Start date/time. Use `yyyy-MM-dd HH:mm`, a natural phrase, or a number of days from today. | | `repeat` | Repeat preset: `1` daily, `2` weekly, `3` every two weeks, `4` monthly. A due date or start date is required. | Examples: ``` twodo://x-callback-url/add?task=Pay%20rent&due=2026-06-01&duetime=09:00&repeat=4 ``` ``` twodo://x-callback-url/add?task=Review%20agenda&start=2026-05-08%2009:00 ``` ### Organization and Details[​](#add-details "Direct link to Organization and Details") | Parameter | Description | | ----------- | -------------------------------------------------------------------------------------------------------------- | | `tags` | Comma-separated tag names. Existing tags are reused, and new tags can be created. | | `locations` | Comma-separated location names. 2Do matches existing locations. | | `subtasks` | Newline-separated sub-task titles. If the parent is a regular task, it becomes a checklist. | | `priority` | `0` none, `1` low, `2` medium, `3` high. | | `starred` | `1`, `true`, or `yes` stars the task. | | `action` | Adds an Action. Use `call:`, `message:`, `mail:`, `url:`, `visit:`, or `google:` followed by the target value. | | `picture` | Base64-encoded image data. Use `lastphoto` to attach the latest photo when Photos access is allowed. | | `audio` | Base64-encoded audio data. | Action examples: ``` twodo://x-callback-url/add?task=Call%20Alex&action=call%3A%2B15551234567 ``` ``` twodo://x-callback-url/add?task=Open%20project%20brief&action=url%3Ahttps%3A%2F%2Fexample.com%2Fbrief ``` ### Shortcut and App Links[​](#shortcut-actions "Direct link to Shortcut and App Links") The `url:` task action accepts app links as well as web addresses. The receiving app must be installed and support the link you supply. For an Apple shortcut named **Open Garmin**, the action value before encoding is: ``` url:shortcuts://run-shortcut?name=Open%20Garmin ``` Encode that entire value as the `action` parameter of the outer 2Do URL: ``` twodo://x-callback-url/add?task=Open%20Garmin&action=url%3Ashortcuts%3A%2F%2Frun-shortcut%3Fname%3DOpen%2520Garmin ``` The `%2520` is intentional: the inner `%20` must survive decoding the outer URL. Encode the shortcut name first, then encode the complete action value. This also preserves names containing `&`, `+`, or `%`. Opening this 2Do URL creates a task; it does not run the shortcut. Perform the task's action to run it. The shortcut must already exist with that name on the device. This example supplies no input and does not send a destination to Garmin. For setup without writing URLs, see [Opening Apps and Running Shortcuts](/docs/ios/actions.md#shortcuts). ### Clipboard Values[​](#clipboard "Direct link to Clipboard Values") For Shortcuts workflows, these parameters can use `(clipboard)` as their value: | Parameter | Clipboard behavior | | ----------- | -------------------------------------------------------- | | `task` | Uses the clipboard as the task title. | | `note` | Uses the clipboard as the notes body. | | `tags` | Uses the clipboard as the comma-separated tag list. | | `locations` | Uses the clipboard as the comma-separated location list. | Example: ``` twodo://x-callback-url/add?task=(clipboard)&forlist=Inbox ``` note For multi-line sub-tasks on iPhone and iPad, pass the encoded text directly in `subtasks`, using `%0A` for line breaks. ## Opening Lists and Focus Lists[​](#opening-lists "Direct link to Opening Lists and Focus Lists") Open a normal list by name: ``` twodo://x-callback-url/showlist?name=Work ``` Open built-in Focus Lists: ``` twodo://x-callback-url/showall twodo://x-callback-url/showtoday twodo://x-callback-url/showstarred twodo://x-callback-url/showscheduled ``` tip There is no separate `showinbox` action. Use `showlist?name=Inbox` if your Inbox list is named Inbox. ## Searching[​](#search "Direct link to Searching") Use `search` with the `text` parameter: ``` twodo://x-callback-url/search?text=invoice ``` You can also search for clipboard text: ``` twodo://x-callback-url/search?text=(clipboard) ``` ## Pasting Multiple Tasks[​](#paste "Direct link to Pasting Multiple Tasks") Use `paste` when you already have a block of plain text and want 2Do to create tasks from it. 2Do treats non-empty lines as separate tasks. | Parameter | Description | | ----------- | -------------------------------------------------- | | `text` | Plain text to paste. Use `%0A` for line breaks. | | `forlist` | Optional destination list name. | | `inproject` | Optional project/checklist title inside `forlist`. | Create three Inbox tasks: ``` twodo://x-callback-url/paste?forlist=Inbox&text=Buy%20milk%0ACall%20Sam%0ABook%20flights ``` Paste into a project: ``` twodo://x-callback-url/paste?forlist=Work&inproject=Website%20Launch&text=Write%20copy%0AReview%20screenshots ``` ## Opening a Task by UID[​](#showtask "Direct link to Opening a Task by UID") Use `showtask` when your automation already knows the task UID: ``` twodo://x-callback-url/showtask?uid= ``` The easiest way to get a newly created task UID is to call `add` with `saveinclipboard=1` or with an `x-success` callback. ## Looking Up a Project UID[​](#gettaskid "Direct link to Looking Up a Project UID") Use `gettaskid` to find a project or checklist by title inside a list. ``` twodo://x-callback-url/gettaskid?task=Website%20Launch&forlist=Work ``` | Parameter | Description | | ----------------- | ----------------------------------------------- | | `task` | Project or checklist title. | | `forlist` | List name containing that project or checklist. | | `saveinclipboard` | `1` copies the found UID to the clipboard. | On success, the callback receives a `uid` parameter. ## x-callback-url Callbacks[​](#callbacks "Direct link to x-callback-url Callbacks") Every action can use the standard x-callback-url parameters: | Parameter | Description | | ----------- | --------------------------------------- | | `x-success` | URL to open after success. | | `x-error` | URL to open after an error. | | `x-cancel` | URL to open if the action is cancelled. | | `x-source` | Optional calling app name. | The `add` action returns the new task UID in an `add` parameter: ``` twodo://x-callback-url/add?task=Draft%20proposal&x-success=shortcuts%3A%2F%2Fx-callback-url%2Frun-shortcut%3Fname%3DTask%2520Created ``` The `gettaskid` action returns the found project/checklist UID in a `uid` parameter. ## Not Available as Public Actions[​](#not-available "Direct link to Not Available as Public Actions") For clarity, these are not public iPhone and iPad automation endpoints: | Endpoint | Use this instead | | -------------------------- | ---------------------------------------------------------------------------------------------------- | | `quickEntry` | Use `addnewtask`, or create directly with `add`. | | `showinbox` | Use `showlist?name=Inbox`. | | `completetasks` | This action is available in 2Do for Mac, but not in 2Do iOS. | | Sync sign-in callback URLs | These are handled internally during account authorization and are not part of the public URL scheme. | | Widget picker callbacks | These are used by 2Do's widgets and are not needed for normal automation. | If you need a public action that is not listed here, [contact us](/docs.md). --- # Widgets 2Do's widgets keep your tasks in view without opening the app. Some answer what to do next, one shows a whole day, and one shows any list you choose. They refresh as tasks change, so completed tasks drop out and counts move on their own. ## Adding a Widget[​](#adding "Direct link to Adding a Widget") On the home screen: 1. Touch and hold an empty part of the home screen until the icons jiggle. 2. Tap the **Edit** button, then **Add Widget**. 3. Find **2Do** in the widget gallery. 4. Swipe to the size you want and tap **Add Widget**. On the lock screen: 1. Touch and hold the lock screen, then tap **Customize**. 2. Choose **Lock Screen** and tap one of the widget areas. 3. Pick a **2Do** widget from the list. To change a widget's settings later, touch and hold it and choose **Edit Widget**. ## The Widgets[​](#the-widgets "Direct link to The Widgets") ### Current & Up Next[​](#current-up-next "Direct link to Current & Up Next") Shows the task you're on now and the one coming up next. It comes as a small home-screen widget, and on the lock screen as a rectangular widget and as an inline widget beside the time. ![Current & Up Next widget showing Lunch with Maya next and Review outline as the current task](https://downloads.2doapp.com/resources/img/2do-ios/widget-current-up-next-light-2026-10-21.png) ![Current & Up Next widget showing Lunch with Maya next and Review outline as the current task](https://downloads.2doapp.com/resources/img/2do-ios/widget-current-up-next-dark-2026-10-21.png) The widget leads with the task you need next, and the section under it carries whatever else matters: what is running now, what is overdue, or the fact that the day is clear. When there is nothing left it says **Free for the day**. tip The small **Current & Up Next** widget answers the one question worth asking at a glance. Put it where your thumb lands and you will open 2Do less often. tip Add the rectangular **Current & Up Next** widget to your lock screen and the inline one beside the clock. Together they tell you what is next without unlocking the phone. ### Date & Up Next[​](#date-up-next "Direct link to Date & Up Next") A medium widget with today's date beside the task coming up next, drawn as a full task row with its list color, checkbox, title, and priority. ![Date & Up Next widget with the date beside an upcoming task and the current task](https://downloads.2doapp.com/resources/img/2do-ios/widget-date-up-next-light-2026-10-21.png) ![Date & Up Next widget with the date beside an upcoming task and the current task](https://downloads.2doapp.com/resources/img/2do-ios/widget-date-up-next-dark-2026-10-21.png) ### Today & Tomorrow[​](#today-tomorrow "Direct link to Today & Tomorrow") A large widget with your tasks for today and tomorrow, side by side in two columns under their own day headers. Each column holds up to seven tasks and adds a line counting how many more there are. A day with nothing on it says **No Tasks**. ![Today & Tomorrow widget showing fictional tasks in two day columns](https://downloads.2doapp.com/resources/img/2do-ios/widget-today-tomorrow-light-2026-10-21.png) ![Today & Tomorrow widget showing fictional tasks in two day columns](https://downloads.2doapp.com/resources/img/2do-ios/widget-today-tomorrow-dark-2026-10-21.png) ### List[​](#list-widget "Direct link to List") Shows the tasks of one list of your choice, in three home-screen sizes and as a rectangular lock-screen widget. The small widget shows a compact list, the medium widget has more room for titles, and the large widget can also show dates and list names. ![Small List widget showing six tasks in Work plan](https://downloads.2doapp.com/resources/img/2do-ios/widget-list-small-light-2026-10-21.png) ![Small List widget showing six tasks in Work plan](https://downloads.2doapp.com/resources/img/2do-ios/widget-list-small-dark-2026-10-21.png) ![Medium List widget showing Work plan tasks and the Add button](https://downloads.2doapp.com/resources/img/2do-ios/widget-list-medium-light-2026-10-21.png) ![Medium List widget showing Work plan tasks and the Add button](https://downloads.2doapp.com/resources/img/2do-ios/widget-list-medium-dark-2026-10-21.png) ![Large List widget showing Work plan tasks with dates and list names](https://downloads.2doapp.com/resources/img/2do-ios/widget-list-large-light-2026-10-21.png) ![Large List widget showing Work plan tasks with dates and list names](https://downloads.2doapp.com/resources/img/2do-ios/widget-list-large-dark-2026-10-21.png) Its options depend on the size: | Option | Available on | What it does | | --------------------- | ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | **List** | All sizes | The list the widget shows: a regular list, a Focus List (**All**, **Today**, **Starred**, **Scheduled**), or a Smart List. | | **Open** | Small; medium and large while **Add** is **None** | What tapping the widget's background does: open the **List**, or start a **Create Task**. | | **Add** | Medium, large | Shows a button on the widget for capturing a task. Set it to **None** to hide the button. | | **Multi-line Titles** | All sizes | Lets long titles wrap instead of truncating. | | **Show Dates** | Large | Shows each task's date on its row. | | **Show List Names** | Large | Shows each task's own list above its title, which helps when a Focus List or Smart List mixes several lists. | ### Today[​](#today-widget "Direct link to Today") A medium widget dedicated to your **Today** list, with today's date beside the tasks on it. There is no list to pick; it is always Today. ![Today widget with the date beside four fictional tasks](https://downloads.2doapp.com/resources/img/2do-ios/widget-today-light-2026-10-21.png) ![Today widget with the date beside four fictional tasks](https://downloads.2doapp.com/resources/img/2do-ios/widget-today-dark-2026-10-21.png) ## Widgets Choose Their Own List[​](#widget-list "Direct link to Widgets Choose Their Own List") Each widget carries its own configuration, so the list it shows is set on the widget itself rather than anywhere in 2Do's Settings. Add two List widgets and point one at *Work* and the other at a Smart List, and each keeps its own choice. ## Control Center[​](#control-center "Direct link to Control Center") 2Do also adds two buttons to Control Center: * **New Task** opens 2Do ready to add a new task. * **Today** opens your Today list. To add one, open Control Center, tap the **+** at the top left, tap **Add a control**, and look for **2Do**. ## Widgets and a Passcode[​](#privacy "Direct link to Widgets and a Passcode") Widgets sit outside 2Do, where a passcode cannot be entered, so 2Do is deliberate about what they may show: * Tasks from a **password-protected list** never appear in a widget, whether or not you have unlocked that list inside the app. * If **Lock everything** is on, widgets show your tasks only while **Allow Widget & Watch access when protected** is on. Turn that off and widgets stop showing task content, even after you unlock the app. Both settings live in **Settings > Security > Protection**. The same access setting also controls the Watch app and its task complications. See [Password Protection](/docs/ios/password-protection.md#widgets). ## Good to Know[​](#notes "Direct link to Good to Know") * Completed tasks never appear in a widget. A widget always shows what is left. * Widgets refresh on their own schedule, around upcoming times and at the turn of the day. A change you make in the app appears at the widget's next refresh rather than the same instant. * If the chosen list is deleted or no longer available, the widget shows **Today**. --- # Actions Add an **Action** to a task to make a call, send a message, open a website, or get directions. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-mac/videos/callaction_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-mac/videos/callaction_poster.png) ## Adding an Action[​](#adding "Direct link to Adding an Action") In the task editor, click the **action** button in the property row, or press `⌘B` (**Task > Edit Action**), to open the **Pick an Action** popup, a grid of six icon chips with shortcuts `⌥1` to `⌥6`: * **Call**: opens your chosen calling app for the saved number or contact. * **Message**: opens Messages (SMS / iMessage) with the contact pre-filled. * **Mail**: opens a new email pre-addressed to the contact. * **Visit**: opens an address or saved map location in your chosen map app. * **URL**: opens a website in your default browser, or a supported app link in its app. * **Google**: runs a web search using the saved search text, on your locale's Google domain. Each type asks for whatever it needs (number, email, address, URL, or search text). For Call, Message, Mail, Visit, and URL actions you can pick a contact directly from the Contacts app where contact details are available. If the contact you pick holds several matching values, such as two phone numbers or more than one address, 2Do shows a short menu of the labeled choices so you can say which one the action should use. Choose the calling and map apps under **Advanced** in **2Do > Settings > General**. Set **Default Calling App** to **Always Ask** if you want to pick an app for each call. See [Advanced settings](/docs/macos/settings.md#general-advanced) for each choice, including how **WhatsApp** works. ## Opening Apps and Running Shortcuts[​](#shortcuts "Direct link to Opening Apps and Running Shortcuts") **URL** actions can also run shortcuts saved in Apple's **Shortcuts** app. 1. Create and test the shortcut in Apple's **Shortcuts** app. To open another app, add its **Open App** action and choose the app. 2. In 2Do, open **Task > Edit Action** (`⌘B`) and choose **URL** (`⌥5` when the action picker is showing). 3. Enter the shortcut's link. For a shortcut named **Open Project**, use `shortcuts://run-shortcut?name=Open%20Project`. 4. Press Return to finish editing. Perform the task's action when you want to run the shortcut. The shortcut must be available under that name on the Mac where you run it. If you rename it in Shortcuts, update the task's action too. A task synced from iPhone or iPad can use the same link, provided its shortcut and the apps it uses are also available on your Mac. This example does not pass the task's title, notes, or address to the shortcut. For other names or to supply input, use [Apple's documented Shortcuts URL format](https://support.apple.com/guide/shortcuts-mac/run-a-shortcut-from-a-url-apd624386f42/mac). To create these tasks from another app, see [Shortcut and App Links in the URL Handler](/docs/macos/url-schemes.md#shortcut-actions). ## Performing an Action[​](#performing "Direct link to Performing an Action") Once a task has an action, an **action icon** appears at the right edge of the task row. It marks the task as actionable; it isn't a button. To run the action: * **Task > Perform Action** in the menu bar. * **Right-click** the task → **Perform Action**. * Press **P** when the task list has focus. * Click the action icon in the task editor's hint bar. tip For **Mail** actions, the email opens addressed to the contact with an empty body. Copy-paste from the task notes if you want context in the message itself. ## Editing or Removing an Action[​](#editing "Direct link to Editing or Removing an Action") * **Task > Edit Action** (`⌘B`): change the action type or the destination. * To remove an action, open the same **Pick an Action** popup and click the red **trash** chip. ## Google (Search) Actions[​](#search-actions "Direct link to Google (Search) Actions") The **Google** action is particularly handy for research tasks. Enter the search text you want 2Do to use; performing the action runs that query on your locale's Google domain. The search term is independent of the task title, so the task can read one way and search for another. tip Use **Google** actions for research tasks. Save the query once, and performing the action runs it later with no typing needed. ## Combining Actions and Locations[​](#actions-and-locations "Direct link to Combining Actions and Locations") A task can carry both a **Location** and an **Action**. A common combo: * Location: *Home Depot, 123 Main St* * Action: *Visit* pointing at the same address * Tag: `errands` Now the task can appear in the [Nearby panel](/docs/macos/nearby-locations.md), and performing its action opens your chosen map app when you're ready to go. --- # Alarms and Nagging 2Do supports multiple alerts per task, with full control over when each alert fires and whether it plays a sound. Alarms are delivered by the 2Do Alarm Helper The **2Do Alarm Helper** background app registers and shows all of 2Do's alarms, and powers [Quick Entry](/docs/macos/quick-entry.md) too. Keep **Launch 2Do Alarm Helper on System Startup** enabled under **2Do > Settings > General**, because without it alarms will not fire. If alarms stop working, see [Alarms Not Working?](#troubleshooting) below. ## Adding an Alarm[​](#adding "Direct link to Adding an Alarm") In the task editor, click the **Alerts** field, or choose **Task > Edit Alerts** (`⌘'`) with a task selected. Each alert row has two choices: * **Alert style**: **Message** or **Message with Sound** (choose **None** to remove the row). * **When it fires**: relative to the task's date: **the same day**, **the day before**, **the day after**, a number of **days before** / **days after**, or **exact time**. Choosing **exact time** swaps the row for a date-and-time picker, so the alert is pinned to a moment of its own instead of following the task's dates. A **Presets** row at the top of the popup adds a common alert in one click: **0 minutes**, **5 minutes**, **15 minutes**, **30 minutes**, **1 hour**, and **1 day**, with the shortcuts `⌥1` through `⌥6`. Each preset adds a *Message with Sound* alert at that offset. Alerts take effect as soon as you set them, and a task can carry up to **10** alerts. tip Stack a *15 minutes before* and a *1 hour before* alarm on important meetings. The early warning gives you prep time; the late one gets you out the door. You can also type an alert into a new task's title, as in `Call the clinic tomorrow at 3pm alert 30m` or `Submit the report Friday at 5pm alarm 1h`. Separate several with commas to get more than one, as in `Collect the cake Saturday at 4pm alert 10m, 30m`. See [Natural Language Input](/docs/macos/natural-language-input.md). ![A 2Do alarm alert for a task](https://downloads.2doapp.com/resources/img/2do-mac/alarmwindow.png) ## Relative vs. Absolute Alarms[​](#relative-absolute "Direct link to Relative vs. Absolute Alarms") * **Relative**: *15 minutes before due*, *1 hour before due*, *1 day before due*. The alarm fires relative to the task's due date, due time, or start date. Most useful for tasks where the deadline or start date is what matters. * **Absolute**: pick **exact time** in the row's timing popup and the alert fires at a date and time of your choosing, independent of the task's dates. Useful for "remind me on Friday at 9am, even if this isn't due yet." A single task can mix relative and absolute alarms freely. An alert does not set the task's due time. To show a time on the task in the list and sort by it, set a **Due Time**. See [Just a Due Date](/docs/macos/dates-and-durations.md#just-due). ## Repeating Sound Alerts[​](#nagging "Direct link to Repeating Sound Alerts") Some tasks must not slip. In **2Do > Settings > Alerts > General**, under **2Do Notifications**, the **Sound alerts repeat until dismissed** picker controls how often a sounding alarm replays until you deal with it: * **Never**: play the sound once. * **Every 2 mins**: the default. * **Every 5 mins** * **Every 10 mins** note Repeating sound alerts are part of 2Do's own alarm method. The picker is disabled unless **Notifications method** is set to **2Do**, since macOS Notification Center manages its own notification sounds. tip For deadlines that absolutely must not slip (filing a tax return, sending a contract), use the **2Do** notification method and set **Sound alerts repeat until dismissed** to a short interval so the alarm keeps sounding until you act. ## Automatic Alerts[​](#automatic "Direct link to Automatic Alerts") 2Do can create alerts automatically every time you set a due date for a task. Two kinds are available, configured under **2Do > Settings > Alerts** in the **Default Reminders** section: **Remind me of tasks with a due time** and **Remind me of tasks with a due date**: ### Alerts on Due Time[​](#alerts-on-due-time "Direct link to Alerts on Due Time") When a task has a **Due Time** set, **Remind me** can fire an alarm at that exact moment. The dropdown lets you offset the alarm (*5 minutes before*, *10 minutes before*, *1 hour before*, and so on), so you get the nudge before, not at, the deadline. ### Alerts on Due Date[​](#alerts-on-due-date "Direct link to Alerts on Due Date") For tasks that have a **Due Date** but no Due Time, **Remind me** can fire an alert on the due date or a chosen offset before it. Useful if you don't habitually set due times but still want a day-of nudge. ### How "Due Date Only" Is Interpreted[​](#how-due-date-only-is-interpreted "Direct link to How \"Due Date Only\" Is Interpreted") A due date with no due time has no specific clock time attached. If you use automatic due-date alerts, 2Do treats the beginning of the due day as the reference point for that alert. To give new dated tasks a preferred time automatically, set a **Default Due Time** under **2Do > Settings > Tasks**. ## Default Automatic Alerts[​](#defaults "Direct link to Default Automatic Alerts") If most of your dated tasks deserve the same reminder, set the automatic due-time and due-date reminders in **2Do > Settings > Alerts**. You can still edit or remove alerts on individual tasks at any time. ## Silencing Alerts for Specific Lists[​](#list-alerts "Direct link to Silencing Alerts for Specific Lists") Some lists deserve alarms; others just make noise, such as a low-priority someday list, or a busy [list shared with you](/docs/macos/list-sharing.md) whose alerts belong to someone else's schedule. Open **2Do > Settings > Alerts** and switch to the **Exclusions** tab: under **List Alerts**, every list appears with a switch, grouped the way your sidebar is. Alerts are **enabled for all lists by default**. Turn a list **off** to silence alerts from its tasks. * Turning a list off **silences its alerts immediately**, both pending ones and ones you have already snoozed. Turning it back on re-registers them. * The tasks themselves are untouched. They still sync, still show due dates and overdue states; only their alarms go quiet. * The choice is **local to this Mac** and doesn't sync, so you can mute a list here while your other devices keep alerting. * Smart Lists and Focus Lists are not listed, because they are views over your tasks, and alerts belong to the real list a task lives in. ## Overdue Notifications[​](#overdue "Direct link to Overdue Notifications") When a task passes its due date without being completed, it becomes overdue and shows up in overdue sections and counts. If you want a reminder on the due date itself, use an automatic due-date alert or add a task-specific alert. tip If overdue tasks are making a list count feel too busy, open **2Do > Settings > Today & Lists** and review whether undone counts should include overdue tasks. ## Notification Center vs the 2Do Alarm Window[​](#alert-system "Direct link to Notification Center vs the 2Do Alarm Window") 2Do offers two delivery methods and lets you pick between them with the **Notifications method** picker, under **Notifications** in **2Do > Settings > Alerts > General**: * **2Do** (default): 2Do's own custom alarm cards, described below. * **Notification Center**: standard macOS notifications. ### macOS Notification Center[​](#macos-notification-center "Direct link to macOS Notification Center") * Alerts appear in Notification Center alongside notifications from other apps. * macOS controls notification style, sound, and visibility under **System Settings > Notifications > 2Do**. **Caveats:** * Repeating sound alerts are not controlled by 2Do while using Notification Center. * Location and "nearby" alerts always use Notification Center banners, regardless of which method you choose. ### The 2Do Alarm Window[​](#the-2do-alarm-window "Direct link to The 2Do Alarm Window") With the **2Do** method, alarms appear as a single floating **stack of notification-style cards** in the **top-trailing corner of whichever display your pointer is on**. New cards stack on top and expand downward. * **Drag the stack** anywhere you like, and it stays put while alarms are showing. * Position is **automatic**, so 2Do places the stack for you and follows the display you're working on. There's no setting to pin it to a fixed corner. * Alarms are delivered by the **2Do Alarm Helper**, so they fire even when 2Do itself isn't running. Keep **Launch 2Do Alarm Helper on System Startup** enabled in **2Do > Settings > General**. Each card shows everything you need to act without opening the task: * The task **title**. * How long ago the alarm fired ("now", "5m ago", "1h 20m ago"). * The **list** name and color. * A **status line**: completed, time remaining, overdue, due soon, due, or start. * A one-line **notes** teaser. * Its **action shortcut** for the task's built-in action (call, message, email, visit, browse, or web search). * The task's **tags** and **priority**. A card set to **nag** keeps nudging, with a looping prompt and a shaking bell, until you hover over it or act on it. When several alarms are waiting, the cards **collapse into a single tidy stack** with the most recent card in front. No matter how many alarms are inside, a collapsed stack shows at most three layered cards. Above them sits a count chip with a bell icon and a chevron, reading *3 alarms* and so on; the chip is the toggle. Click it (or the front card) to fan the stack open and deal with each alarm individually, and click the chip again to collapse it. note There is no fixed alarm-window **position** setting. The stack positions itself automatically (top-trailing of the active display) and you can drag it wherever you want for the current session. ## Snoozing and Acting on an Alarm[​](#interacting "Direct link to Snoozing and Acting on an Alarm") Every card in the 2Do alarm window has the same three controls: * **Complete** (✓): mark the task done. * **Snooze** (zzz): open the snooze menu (below). * **Close** (✕): hide just that card. The card body handles the rest. Click the **action shortcut** to call, message, mail, visit, browse, or search straight from the alarm. Click anywhere else on the card and 2Do opens the task in the main window. On a collapsed stack, though, the first click fans the stack open, so click the card again once you can see it. Cards also clean up after themselves: a card disappears automatically when its task is completed, deleted, re-dated, or no longer has a current alarm. ### Snooze Options[​](#snooze "Direct link to Snooze Options") The **Snooze** menu offers: * **5 minutes** * **15 minutes** * **1 hour** * **This evening** * **Tomorrow morning** The two date-based rows show the time they'll land on, so the menu reads *This evening (7:00 PM)* and *Tomorrow morning (9:00 AM)*, so no mental arithmetic is needed. Picking any option dismisses both the menu and the card. note **This evening** snoozes to 7:00 PM today (it's hidden when that time is already within 30 minutes or in the past), and **Tomorrow morning** snoozes to 9:00 AM (or the hour from your **Default Due Time**, when that's set to a morning hour). ## Silencing Alarms During Focus[​](#focus "Direct link to Silencing Alarms During Focus") When you're in a meeting or heads-down, you can have macOS automatically hide and mute 2Do's alarm cards while a **Focus** is active, then reveal them (with one catch-up sound) when the Focus ends. This works only with the **2Do** notification method. There are two ways to get there. Add 2Do's Focus Filter to the specific Focus modes you want quiet. See [macOS Focus Filters (Do Not Disturb)](/docs/macos/system-focus-filters.md) for setup. Or, to cover *every* Focus without setting up a filter at all, turn on **Silence custom alarms during any Focus** under **2Do > Settings > Alerts > General**, in the **2Do Notifications** section. It's off by default. ## Alarms or Quick Entry Not Working?[​](#troubleshooting "Direct link to Alarms or Quick Entry Not Working?") The **2Do Alarm Helper** is the background app that registers and shows your alarms and powers the system-wide [Quick Entry](/docs/macos/quick-entry.md) shortcut; macOS is responsible for launching it and keeping it connected to the main app. Work through the steps below, in order, if: * Alarms aren't firing, or arrive late. * 2Do warns you that **"2Do Alarm Helper isn’t running"**. * The global **Quick Entry shortcut** does nothing when pressed. (The [last step](#reset-bg-tasks) normally resolves it when all else fails.) ### 1. Check the Background Permission[​](#helper-permission "Direct link to 1. Check the Background Permission") macOS asks for this permission when 2Do first launches. If **"Disallow"** was clicked by accident, or a macOS update reset it, the 2Do Alarm Helper can't start and alarms won't fire. 1. Open **System Settings** and go to **General > Login Items & Extensions**. 2. Scroll to the **App Background Activity** section. 3. Find **2Do** (the helper's login item may appear as **2Do Quick Entry & Alarms**) and make sure its toggle is **on**. Try toggling it off and back on. 4. If 2Do isn't listed at all, move `2Do.app` to the Trash from Applications and re-install it, which forces macOS to refresh the list. Then quit and relaunch 2Do, confirm **Launch 2Do Alarm Helper on System Startup** is on under **2Do > Settings > General**, and test with an alarm set a couple of minutes out. ### 2. Force-Restart the 2Do Alarm Helper[​](#restart-helper "Direct link to 2. Force-Restart the 2Do Alarm Helper") 1. Open **Activity Monitor** (`Applications > Utilities`). 2. Search for **"Alarms"**. The helper is listed as **2Do Quick Entry & Alarms** (bundle `com.guidedways.TodoMac.Helper`), and you should see exactly **one** instance. 3. Select it and click the **Quit (X)** button; macOS relaunches it automatically. 4. Relaunch 2Do and test an alarm. ### 3. Remove Duplicate Copies of 2Do[​](#duplicates "Direct link to 3. Remove Duplicate Copies of 2Do") 1. Use **Spotlight** (`⌘Space`) to search for **"2Do.app"**. 2. Make sure **only one copy** exists, in `/Applications/`. 3. Delete any extras (Downloads, external drives, old backups), because macOS can mistakenly launch the 2Do Alarm Helper from an outdated copy, even one inside a Time Machine archive. ### 4. Restart Your Mac[​](#reboot "Direct link to 4. Restart Your Mac") A reboot often clears stale pairings between an app and its background helper. ### 5. Reset macOS Background Tasks (Last Resort)[​](#reset-bg-tasks "Direct link to 5. Reset macOS Background Tasks (Last Resort)") If nothing above helps, reset macOS's background task management. This affects **all** installed apps, so you will see their Allow/Disallow prompts again, but it is often the one fix that works when the 2Do Alarm Helper simply refuses to start. 1. Open **Terminal** (`Applications > Utilities`). 2. Run: ``` sfltool resetbtm ``` 3. Restart your Mac, allow the 2Do Alarm Helper when prompted, and test with an alarm set a couple of minutes out. --- # AppleScript Automation Use AppleScript to find and update tasks, create projects and checklists, and organize tasks into sections in 2Do for Mac. Scripts can also complete, duplicate, move, or delete tasks; pause tags; and open tasks or lists in the app. The same command executor powers AppleScript and the [Claude MCP extension](/docs/macos/mcp.md). AppleScript and MCP use the same canonical `snake_case` command names, argument keys, response fields, and validation rules. 2Do's native [Shortcuts actions](/docs/macos/shortcuts-actions.md) run on this engine too. note This is a strict API. AppleScript exposes only the documented command terms, and each command takes one optional `arguments` parameter. Unknown command names, unknown argument keys, and unknown enum values fail instead of being normalized. There are no aliases or alternate parameter names. Privacy and passwords AppleScript follows the Mac app's current unlocked session. Unlock 2Do before running a script. A locked app returns `access_denied`; password-protected lists that are still locked are hidden and their tasks cannot be read or changed. 2Do checks the lock state again immediately before every write. tip Use command and argument names exactly as documented. ## Getting Started[​](#getting-started "Direct link to Getting Started") Open **Script Editor** from Applications > Utilities, then choose **File > Open Dictionary... > 2Do** to see the `2Do Automation Suite`. Every automation command is called inside a `tell application "2Do"` block: ``` tell application "2Do" set listsResult to list_lists given arguments:{include_archived:false} set firstList to item 1 of lists of listsResult set createdResult to create_task given arguments:{list_id:(list_id of firstList), title:"Review project plan", due_date:"2026-07-02", due_time:"17:00", priority:"high"} set createdTask to task of createdResult open_task given arguments:{task_id:(task_id of createdTask)} end tell ``` You can also run scripts from Terminal: ``` osascript -e 'tell application "2Do" to list_lists' ``` ## Stable Identifiers[​](#identifiers "Direct link to Stable Identifiers") Read identifiers from discovery, query, or create responses and pass them back to later commands. Do not construct IDs from titles. Task moves can return replacement IDs, so use the returned task records after a move, or query a section again after moving the whole section. | Identifier | Used for | | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | | `task_id` | Tasks, projects, checklists, and sub-tasks. | | `list_id` | Normal 2Do lists. | | `section_id` | A saved section in a normal list. The ID stays the same when the section moves to another list. | | `list_group_id` | List Groups. `query_tasks` can use this to query the group's dynamic Smart Filter. | | `smart_list_id` | Saved Smart Lists. | | `tag_id` | Tags. | | `tag_group_id` | Tag Groups. | | `location_id` | Locations. | | `collection_id` | Namespaced collection identity emitted on lists, List Groups, and Smart Lists: `focus:`, `list:`, `list-group:`, or `smart-list:`. | | `destination_id` | Namespaced task-creation destination: `list:` or `parent-task:`. | | `alarm_id` | Stable identity on returned alarm records. | tip Always pass type-specific identifiers such as `task_id` and `list_id`; there is no generic `id` field. ## Commands[​](#commands "Direct link to Commands") The tables below list the canonical AppleScript and MCP command names. All commands return a record. Collection commands include both the collection and `item_count`. Task mutation commands return the updated `task` record. ### Discovery[​](#discovery "Direct link to Discovery") | Command | Arguments | Returns | | ------------------------------ | ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `list_lists` | Optional `include_archived` boolean. | `lists`, `item_count`. | | `list_sections` | Required `list_id`. | `sections` in manual order, `item_count`. | | `list_list_groups` | None. | `list_groups`, `item_count`. | | `list_smart_lists` | None. | `smart_lists`, `item_count`. | | `list_tags` | Optional `tag_group_id`. | `tags`, `item_count`. Tags include `paused`. | | `list_tag_groups` | None. | `tag_groups`, `item_count`. | | `list_locations` | None. | `locations`, `item_count`. | | `get_default_task_destination` | None. | `destination`: the list new tasks go to by default, with `destination_id`, `list_id`, and `title`. Password-aware: it uses the same destination logic as task creation, so it always returns an editable normal list. | ### Sections[​](#sections "Direct link to Sections") Sections group top-level tasks within a normal list. Create a section, then use its returned `section_id` to create tasks in it, move tasks into it, or query its members. Section titles do not have to be unique. | Command | Arguments | Returns | | ------------------ | --------------------------------------------------------------------------------------------------- | ------------------------- | | `create_section` | Required `list_id`, `title`; optional `description`. | `section`. | | `move_section` | Required `section_id` and destination `list_id`. | `section`. | | `reorder_sections` | Required `list_id` and a `section_ids` list containing every section ID once, in the desired order. | `sections`, `item_count`. | This example creates a section and a task in the first available list: ``` tell application "2Do" set listsResult to list_lists set targetListID to list_id of item 1 of lists of listsResult set createdSection to create_section given arguments:{list_id:targetListID, title:"Planning", description:"Ideas to develop"} set sectionID to section_id of section of createdSection create_task given arguments:{section_id:sectionID, title:"Draft proposal"} query_tasks given arguments:{section_id:sectionID, paused_filter:"include", include_completed:true} end tell ``` Pass `section_id` as the only destination to `create_task` or `move_task`; do not also pass `list_id` or `parent_task_id`. Moving a project or checklist keeps its children together. Moving a sub-task into a section makes it a top-level task. For a top-level task staying in its current list, `update_task` accepts a section ID from that list. Use `section_id:missing value` to remove the task from its section, or omit the field to keep its membership. Moving a task to its current `list_id` also keeps its section. Use `move_task` to assign it to a section in another list. Before calling `reorder_sections`, read `list_sections` and arrange all returned section IDs in the desired order. Incomplete orders, duplicates, and sections from other lists are rejected. The unsectioned area and Done area are not sections in this array. Reordering leaves task membership and sorting unchanged. `move_section` places the heading after the destination list's existing sections and moves all its tasks, including completed and paused tasks and project or checklist children. The section keeps its ID, title, and description. Query it again for current task IDs after the move. Repeating the command with the same destination makes no change. Each section change is one **Edit > Undo** step in 2Do. Undoing a section move restores the heading and its tasks together. ### Reading Tasks[​](#reading "Direct link to Reading Tasks") | Command | Arguments | Returns | | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | | `get_task` | Required `task_id`. | `task`. | | `query_tasks` | Optional target `section_id`, `list_id`, `list_group_id`, `smart_list_id`, or `focus`; optional `search`, due/start date windows, `paused_filter`, `sort`, `offset`, `limit`, `include_completed` (default: `true`). | `tasks`, `item_count`, `total_count`. | | `list_subtasks` | Required `task_id`; optional `paused_filter`, `sort`, `include_completed` (default: `true`). | `tasks`, `item_count`, `parent_task_id`. | | `selected_tasks` | None. | `tasks`, `item_count`. Requires the Mac app UI. | `query_tasks` accepts at most one target identifier. A section query returns top-level members; use `list_subtasks` to read their children. When no target is supplied, 2Do queries the built-in All focus scope. `focus` accepts `all`, `today`, `starred`, `scheduled`, or `done`. Passing a `list_group_id` queries the same dynamic List Group task view shown when you click a List Group in the Mac sidebar. `search` must contain 1 through 256 characters and matches literal text only: a case-insensitive and diacritic-insensitive substring of title, notes, current tag titles, and current location titles, with no query-operator or boolean syntax. Date windows use inclusive `yyyy-MM-dd` fields: `due_on_or_after`, `due_on_or_before`, `start_on_or_after`, and `start_on_or_before`; tasks without the corresponding date never match a window. `offset` must be zero or greater. Because `offset` is an AppleScript command, write its record label as `|offset|` in AppleScript source. `limit` must be `1` or greater. `total_count` counts all matching tasks before `offset`/`limit`; `item_count` counts the returned tasks. `paused_filter` values: | Value | Behavior | | --------- | ------------------------------------------- | | `hide` | Default. Hide tasks paused by a paused tag. | | `include` | Include paused and unpaused tasks. | | `only` | Return only tasks paused by a paused tag. | tip Query with `paused_filter:"include"` when you want Claude or a script to reason about hidden paused-tag work. `sort` is an object with: | Key | Values | | ----------- | ------------------------------------------------------------------------------------------------------ | | `field` | `title`, `due_date`, `start_date`, `priority`, `duration_seconds`, `created`, `modified`, `completed`. | | `direction` | Optional. `ascending` or `descending`. Default: `ascending`. | Example: ``` tell application "2Do" set groupsResult to list_list_groups set groupRecord to item 1 of list_groups of groupsResult set tasksResult to query_tasks given arguments:{list_group_id:(list_group_id of groupRecord), search:"invoice", paused_filter:"include", sort:{field:"due_date", direction:"ascending"}, |offset|:0, limit:20} set starredResult to query_tasks given arguments:{focus:"starred", search:"invoice", |offset|:0, limit:20} end tell ``` tip Use `list_subtasks` with a returned `task_id` to inspect a project or checklist before modifying its children. ### Writing Tasks[​](#writing "Direct link to Writing Tasks") | Command | Arguments | Returns | | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | | `create_task` | Required `title` and exactly one of `list_id`, `section_id`, or `parent_task_id`; optional `task_type`, `subtasks`, and task write fields. | `task`, and `subtasks` when supplied. | | `update_task` | Required `task_id`; optional `task_type`, `section_id`, and task write fields. | `task`. | | `update_task_action` | Required `task_id`, `action`. | `task`. | | `delete_task` | Exactly one of `task_id` or `task_ids`; optional `recursive` boolean. Default: `true`. | Single: `task_id`, `deleted`; batch: `task_ids`, `deleted`, `item_count`. | | `duplicate_task` | Required `task_id`. | `task`. | | `move_task` | Exactly one of `task_id` or `task_ids`; exactly one of `list_id`, `section_id`, or `parent_task_id`. | Single: `task`; batch: `tasks`, `item_count`. | | `complete_task` | Exactly one of `task_id` or `task_ids`; optional `recursive` boolean. Default: `true`. | Single: `task`; batch: `tasks`, `item_count`. | | `uncomplete_task` | Exactly one of `task_id` or `task_ids`; optional `recursive` boolean (default: `true`); optional `update_parent` boolean (default: `false`, requires `recursive: true`) to reconcile a completed parent after uncompleting a child. | Single: `task`; batch: `tasks`, `item_count`. | `task_type` values are `normal`, `project`, and `checklist`. Creating a task with `parent_task_id` creates a sub-task. If the parent is a normal task, 2Do converts it to a project before adding the child. `subtasks` is accepted only with `list_id` or `section_id`; it must contain 1 through 100 child records, and each child requires a non-empty `title`. Project children may have their own dates, priorities, tags, locations, alarms, recurrence, and actions. Child records cannot include `section_id`, other destinations, `task_type`, or nested `subtasks`. Checklist children cannot set due/start fields, duration, recurrence, or relative alarms because they inherit scheduling from the checklist; absolute sound alarms remain supported. `task_ids` batches are capped at 100 unique task IDs and are validated before any task is changed. Completing a recurring task advances it to its next occurrence. Repeating the same `complete_task` call advances it again, so scripts must not retry recurring completion as an idempotent operation. Task write fields: | Field | Type | Notes | | ------------------ | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | | `title` | String | Required for `create_task`; optional for `update_task`. | | `notes` | String | Replaces notes. Use an empty string to clear notes; omit the field to leave notes unchanged. | | `starred` | Boolean | Replaces the starred state. | | `section_id` | String or `missing value` | In `update_task`, assign a top-level task to a section in its current list, or clear its membership. See [Sections](#sections). | | `due_date` | String or `missing value` | `yyyy-MM-dd`. `missing value` clears the due date and due time. | | `due_time` | String or `missing value` | `HH:mm`. Requires a due date. | | `start_date` | String or `missing value` | `yyyy-MM-dd`. | | `start_time` | String or `missing value` | `HH:mm`. Requires a start date. | | `duration_seconds` | Integer | Must be from `0` through `2147483647`. | | `priority` | String | `none`, `low`, `medium`, or `high`. | | `tag_update` | Record | See [Tags and Locations](#tags-and-locations). | | `location_update` | Record | See [Tags and Locations](#tags-and-locations). | | `alarms` | List | Omitted means unchanged. Empty list clears. Non-empty list replaces all sound alarms. A task may have at most 10 total alarms. | | `recurrence` | Record | Omitted means unchanged. `{frequency:"none"}` clears. | | `action` | Record | Replaces the task action. | Example: ``` tell application "2Do" set listsResult to list_lists set inboxList to item 1 of lists of listsResult set created to create_task given arguments:{list_id:(list_id of inboxList), title:"Call printer repair", starred:true, notes:"Ask for warranty status", due_date:"2026-07-03", due_time:"09:30", duration_seconds:1800, priority:"medium", action:{type:"call", value:"+1 555 0100"}, subtasks:{{title:"Find receipt"}, {title:"Confirm serial number", starred:true}}} complete_task given arguments:{task_ids:{task_id of task of created}, recursive:true} end tell ``` ## Tags and Locations[​](#tags-and-locations "Direct link to Tags and Locations") `tag_update` and `location_update` use the same shape: | Key | Values | | -------------- | ------------------------------------------------------- | | `operation` | `set`, `append`, or `remove`. | | `tag_ids` | For `tag_update`, a list of `tag_id` strings. | | `location_ids` | For `location_update`, a list of `location_id` strings. | Use `set` with an empty list to clear all tags or locations. ``` tell application "2Do" set tagsResult to list_tags set waitingTag to item 1 of tags of tagsResult set selectedResult to selected_tasks repeat with taskRecord in tasks of selectedResult update_task given arguments:{task_id:(task_id of taskRecord), tag_update:{operation:"append", tag_ids:{tag_id of waitingTag}}} end repeat end tell ``` ## Pausing Tags[​](#pausing-tags "Direct link to Pausing Tags") Paused tags hide matching tasks from normal task views. Automation exposes the public field as `paused`; it does not expose the internal model name. | Command | Arguments | Returns | | ------------- | ------------------ | ------- | | `pause_tag` | Required `tag_id`. | `tag`. | | `unpause_tag` | Required `tag_id`. | `tag`. | Both commands are idempotent. Pausing an already paused tag returns the current tag record without creating a second action. ``` tell application "2Do" set tagsResult to list_tags set tagRecord to item 1 of tags of tagsResult pause_tag given arguments:{tag_id:(tag_id of tagRecord)} set pausedTasks to query_tasks given arguments:{paused_filter:"only"} end tell ``` ## Actions[​](#actions "Direct link to Actions") Task actions can be set during `create_task`, replaced during `update_task`, or changed directly with `update_task_action`. | Type | Payload | | --------- | -------------------------------------------------------- | | `none` | `{type:"none"}` clears the action. | | `call` | `{type:"call", value:"+1 555 0100"}` | | `message` | `{type:"message", value:"+1 555 0100"}` | | `mail` | `{type:"mail", value:"person@example.com"}` | | `visit` | `{type:"visit", value:"1 Infinite Loop, Cupertino, CA"}` | | `url` | `{type:"url", value:"https://example.com"}` | | `google` | `{type:"google", value:"search text"}` | Automation uses 2Do's entered action variants. Contact-backed birthday and anniversary actions are not exposed in this API. ``` tell application "2Do" update_task_action given arguments:{task_id:"TASK-UID-HERE", action:{type:"url", value:"https://www.2doapp.com"}} end tell ``` tip Use `update_task_action` when your script only needs to set, replace, or clear a task action. ## Alarms[​](#alarms "Direct link to Alarms") Automation exposes sound alarms only. Alarm object: | Key | Type | Notes | | ------------ | ------ | ------------------------------------------------------- | | `sound_name` | String | Optional. Omit to use 2Do's normal/default alarm sound. | | `trigger` | Record | Required. See below. | Absolute trigger: ``` {kind:"absolute", date:"2026-07-03 09:15"} ``` Relative trigger: ``` {kind:"relative", seconds:-900, anchor:"task_time"} ``` Absolute alarm dates use floating local `yyyy-MM-dd HH:mm` values. Do not include timezone names, `Z` suffixes, or UTC offsets. Relative alarms require the task to have a due date or start date after applying the same write payload. `anchor` is `task_date` or `task_time`, and `seconds` must be between `-63071999` and `63071999`. A task may have at most 10 total alarms, including existing non-sound alarms that automation preserves. Example: ``` tell application "2Do" update_task given arguments:{task_id:"TASK-UID-HERE", due_date:"2026-07-03", due_time:"09:30", alarms:{{trigger:{kind:"relative", seconds:-900, anchor:"task_time"}}}} end tell ``` ## Recurrence[​](#recurrence "Direct link to Recurrence") Recurrence replacement is supported in `create_task` and `update_task`. | Key | Values | | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------- | | `frequency` | Required. `none`, `daily`, `weekly`, `monthly`, `yearly`, `weekdays`, or `custom`. | | `based_on` | Required unless `frequency` is `none`. `due_date` or `completion`. | | `unit` | Required for `custom`. `day`, `week`, `month`, or `year`. | | `interval` | Required for `custom`. Must be between `1` and `999`. | | `weekdays` | Optional for `weekly`. Values: `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`. Write this label as \` | | `weekday` | Required with `ordinal` for monthly ordinal weekday recurrence. | | `ordinal` | Required with `weekday` for monthly ordinal weekday recurrence. Supports `1` through `5`, or `-1` for the last matching weekday. | | `end_rule` | Optional. `{type:"never"}`, `{type:"on_date", date:"yyyy-MM-dd"}`, or `{type:"after_count", occurrence_count:n}` where `n` is 1 through 99. | Recurrence requires the task to have a due date or start date after applying the same write payload, unless `frequency` is `none` to clear recurrence. ``` tell application "2Do" update_task given arguments:{task_id:"TASK-UID-HERE", due_date:"2026-07-06", recurrence:{frequency:"weekly", based_on:"due_date", |weekdays|:{"monday", "wednesday", "friday"}, end_rule:{type:"after_count", occurrence_count:12}}} end tell ``` Clear recurrence: ``` tell application "2Do" update_task given arguments:{task_id:"TASK-UID-HERE", recurrence:{frequency:"none"}} end tell ``` ## Navigation[​](#navigation "Direct link to Navigation") These commands require the Mac app UI. | Command | Arguments | Returns | | ------------------- | -------------------------------------------------------------------- | ---------------------------- | | `select_list` | Required `list_id`. | `selected`, `list_id`. | | `select_list_group` | Required `list_group_id`. | `selected`, `list_group_id`. | | `select_smart_list` | Required `smart_list_id`. | `selected`, `smart_list_id`. | | `select_focus` | Required `focus`: `all`, `today`, `starred`, `scheduled`, or `done`. | `selected`, `collection_id`. | | `open_task` | Required `task_id`. | `opened`, `task_id`. | ## Returned Records[​](#records "Direct link to Returned Records") Task records include: | Field | Notes | | ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `task_id`, `title`, `notes`, `list_id`, `task_type` | Stable identity and core fields. | | `list_title`, `collection_id`, `list_group_id` | The owning list's name and namespaced collection identity, plus its List Group when it belongs to one. | | `section_id`, `section_title` | Present on top-level tasks assigned to a live section in their list. Omitted on unsectioned tasks and children. | | `parent_task_id` | Present when the task is a child task. | | `child_task_ids` | Present for projects or checklists with children. | | `child_task_destination_id` | Present on editable projects and checklists that can currently accept children: the task's namespaced identity as a child destination (`parent-task:`). Use the task's `task_id` as `parent_task_id` when creating or moving children. | | `completed`, `starred`, `paused` | Completion state, starred state, and paused-by-tag state. | | `due_date`, `due_time`, `start_date`, `start_time`, `duration_seconds` | Date and duration fields when present. | | `priority` | `none`, `low`, `medium`, or `high`. | | `tags`, `locations` | Full tag and location records with stable IDs. | | `action`, `alarms`, `recurrence` | Structured action, sound alarms, and recurrence records. `recurrence` is `missing value` when not repeating. | Other records: | Record | Fields | | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | | List | `list_id`, `collection_id`, `title`, `archived`, `editable`, optional `list_group_id`. | | Section | `section_id`, `list_id`, `title`, `description`, `display_order`. | | List Group | `list_group_id`, `collection_id`, `title`, `type` (`collect`, `focus`, `all_lists`, `smart_lists`, `shared_lists`, or `any`), `collapsed`. | | Smart List | `smart_list_id`, `collection_id`, `title`, `smart_search`. | | Tag | `tag_id`, `title`, `paused`, optional `tag_group_id`. | | Tag Group | `tag_group_id`, `title`. | | Location | `location_id`, `title`, `address`. | | Default destination | `destination_id`, `list_id`, `title` (from `get_default_task_destination`). | ## Errors[​](#errors "Direct link to Errors") AppleScript errors use standard AppleScript error number `-10000`. The error message starts with the stable automation error code, such as: | Code | Meaning | | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | | `invalid_arguments` | Unknown command, unknown argument key, missing required value, malformed date/time, or unknown enum value. | | `not_found` | A supplied item was not found, was deleted, or belongs to a password-protected list that is still locked and hidden from automation. | | `edit_rejected` | 2Do could not apply the requested model change. | | `automation_unavailable` | The command requires Mac UI state that is not available. | | `operation_failed` | A lower-level save or delete operation failed. | | `access_denied` | 2Do is locked, or access was revoked while an in-flight write was being revalidated. | ``` tell application "2Do" try create_task given arguments:{title:"Missing list"} on error errMsg number errNum log "2Do automation failed (" & errNum & "): " & errMsg end try end tell ``` --- # Auto-Prioritize with Apple Intelligence **Auto-Prioritize** uses Apple Intelligence to help you decide what needs attention first. Select a group of tasks, and 2Do sets their priorities to **None**, **Low**, **Medium**, or **High**, based on their details. ## What You Need[​](#requirements "Direct link to What You Need") Auto-Prioritize requires a Mac that supports Apple Intelligence, running macOS 26 or later, with Apple Intelligence turned on. The command is hidden on unsupported Macs. If Apple Intelligence is turned off or still getting ready, 2Do explains what to do when you choose the command. Auto-Prioritize is also available on iPhone and iPad. See [Auto-Prioritize for iOS](/docs/ios/auto-prioritize.md). ## Using Auto-Prioritize[​](#use "Direct link to Using Auto-Prioritize") 1. Select the tasks you want prioritized. `⌘`-click adds tasks one at a time and `⇧`-click selects a range. See [Multi-Task Actions](/docs/macos/multi-task-actions.md#selecting). 2. Right-click the selection and choose **Edit Priority > Auto-Prioritize**, the first item in the submenu. The same command is in the menu bar under **Task > Edit Priority**. 3. The first time, 2Do explains what the command does. Click **Continue** to start. Select **Do not show this message again** to skip the prompt next time. To restore it, click **Clear** next to **Confirmation warnings** in [Settings > General](/docs/macos/settings.md#counts-warnings). A progress sheet shows how many tasks have been processed. Click **Cancel** to stop without changing priorities. Afterward, **Edit > Undo** (`⌘Z`) restores all previous priorities; **Edit > Redo** reapplies the result. ## What Auto-Prioritize Uses[​](#reads-writes "Direct link to What Auto-Prioritize Uses") For each selected task, 2Do considers: * Its **title** and **notes**. * Its **start date** and **due date**, including whether it is overdue. * The **list** it belongs to and its **tags**. * Its current priority. Only the priority changes. Other task details stay as they are, and completed tasks are skipped. If you select a project or checklist, its sub-tasks keep their priorities unless you select them too. If you change a task's priority, complete it, or its list becomes read-only during processing, 2Do leaves that task alone. A summary appears if any tasks were skipped or processing could not finish. ## Existing Priorities[​](#existing-priorities "Direct link to Existing Priorities") Auto-Prioritize can add a priority or raise one you've already set. * Tasks without a priority get one when their details suggest a reason. Routine tasks with no date may stay at **None**. * Existing priorities are kept or raised. An undated task described as an optional wish or someday idea may return to **None**, unless its details give a stronger reason to keep a priority. * A task may keep the same priority if no change is needed. ## Examples[​](#results "Direct link to Examples") 2Do considers when a task is due and the importance or consequences described in its title and notes. These examples start with no priority set. | Task | Priority | | ----------------------------------------------------------------- | ---------------- | | "Renew car insurance before the policy lapses", due tomorrow | High | | "Pay the credit card bill today to avoid the late fee", due today | High | | "File tax return to avoid financial penalties", no date | Medium or higher | | "Reset the leaked password right away", no date | High | | Anything due today or tomorrow | Medium or higher | | Anything tagged **urgent** | Medium or higher | | "Buy milk", no date | None | | "Fold the laundry", no date | None | | "Maybe learn Italian someday" | None | An important task or one with serious consequences gets **High** when it is overdue, due today or tomorrow, or its wording makes clear that it needs attention now. A nearby deadline alone gives at least **Medium**. Routine tasks with no date can stay at **None**. tip Sort the list by **Priority** to review the results. See [Stars and Priorities](/docs/macos/stars-and-priorities.md#priority-effects). ## When to Use It[​](#when "Direct link to When to Use It") * **After adding several tasks.** Capture your ideas in the Inbox, then review their priorities together. See [Quick Entry](/docs/macos/quick-entry.md). * **During a weekly review.** Select tasks in *Today* or a Smart List to review what needs attention. * **After importing tasks.** Review priorities in a list brought over from another app. See [Import and Export](/docs/macos/import-and-export.md). * **When planning a project.** Write the steps, then use their details and dates to help set priorities. For help organizing tasks into sections, see [Auto-Create Sections and Auto-Name Section](/docs/macos/task-sections.md#apple-intelligence). ## Privacy[​](#on-device "Direct link to Privacy") Auto-Prioritize runs on your Mac using Apple Intelligence. It does not send your task details to Apple or another AI service, and it needs no separate account or subscription. Larger selections take longer to process. ## Troubleshooting[​](#troubleshooting "Direct link to Troubleshooting") * **The command is missing from Edit Priority.** Check that your Mac supports Apple Intelligence and runs macOS 26 or later. * **The command is dimmed.** Check whether the selection includes a task in a read-only list. You can only change priorities in lists you can edit. * **Apple Intelligence is unavailable.** Turn it on in **System Settings > Apple Intelligence & Siri**, and wait for it to finish downloading before trying again. --- # Backups 2Do automatically takes snapshots of its database on a schedule you choose, every 24 or 48 hours. It also makes a one-off safety backup automatically **before a Replace Local Data sync**, so if the data pulled down from the server isn't what you expected, you can roll back on this Mac with one click. Backups are kept locally on your Mac, completely independent of whatever sync method you use, and they can be saved, restored, or migrated without touching the cloud. Because they're local, keep an extra copy somewhere else. **Save a Copy…**, in a backup's **⋯** menu, writes a backup to iCloud Drive, Dropbox, Google Drive, or any other folder. Without an off-Mac copy, a drive failure or an accidental uninstall takes every local backup with it. ## Backup Settings[​](#settings "Direct link to Backup Settings") Open **2Do > Settings > Backups** to configure: * **Automatic Backups**: the **Create backups** picker: choose **None**, **Every 24 Hours**, or **Every 48 Hours**. This is the schedule 2Do uses for its routine snapshots. * **Keep at most**: choose how many automatic backups 2Do keeps; after each new backup, the oldest beyond that count are pruned automatically. * **Create Backup Now**: take a fresh backup on the spot. * **Restore from File…**: pick a saved backup file from disk and open it in the restore browser. Each backup in the list also has a **⋯** (more) menu with three commands: **Restore…**, **Save a Copy…** (save that backup somewhere else), and **Delete**. tip **Take a milestone backup before large changes**, such as switching sync methods or restoring another device, and put it somewhere off this Mac with **Save a Copy…**. 2Do does **not** back up before every sync. Routine backups follow the **Automatic Backups** schedule above. Separately, 2Do makes a safety backup automatically right before a **Replace Local Data** sync, when the server's data overwrites this Mac's copy, and again right before a **Restore Everything…**, so both destructive cases are handled for you and aren't settings you toggle. Backup files use the `.2dodb` extension and are named after the moment they were taken, e.g. `2Do_(2026-07-12-09_30_00).2dodb`, which is handy when picking one out of a folder later. ## What Gets Backed Up[​](#what "Direct link to What Gets Backed Up") A backup is a snapshot of 2Do's local database, including: * All lists, list groups, projects, checklists, and tasks. * All tags and tag groups. * All Smart Lists and saved list settings, including Focus Filter choices. * App preferences stored in the local database. * Locked-list state and password-protected list information. Sync credentials and license state are not part of the backup. ## Restoring a Backup[​](#restore "Direct link to Restoring a Backup") 1. **2Do > Settings > Backups**. 2. Open the backup's **⋯** menu and choose **Restore…** (or click **Restore from File…** to pick a saved backup file from disk). 3. The **Restore Backup** browser opens. Pick individual lists and click **Restore Selected**, or click **Restore Everything…** for a full rollback (see below). Of the two, **Restore Selected** is the safe one: it adds the chosen lists alongside your current data and changes nothing else. **Restore Everything…** replaces your current data, so if you're unsure, use that backup's **Save a Copy…** first to keep something to come back to. ## Restoring Individual Lists[​](#restore-lists "Direct link to Restoring Individual Lists") Sometimes you don't want to roll back everything. You just want one list back the way it was in an older backup. The backup restoration browser lets you preview a backup and pull individual lists out of it without disturbing anything else. Open the browser from **2Do > Settings > Backups**: * Click the **⋯** (more) menu on any backup row and choose **Restore…**, or * Click **Restore from File…** to pick a saved backup on disk. The browser (window title **Restore Backup**) previews the backup's restorable lists in sections. You can tick the checkbox next to any **regular list or Smart List** you want back, and each section has **Select All** and **Deselect All**. Built-in system lists aren't listed, and only lists that can actually be restored are shown. At the bottom you'll find two buttons: ### Restore Selected[​](#restore-selected "Direct link to Restore Selected") **Restore Selected** is additive and completely non-destructive. 2Do confirms with *"The selected lists will be duplicated under a Restored group. Your existing lists and tasks will not be replaced."* It then copies the chosen lists into your current 2Do under a new **"Restored"** group and shows how many lists it restored. Your existing lists and tasks are left exactly as they were, so you can compare the restored copies side by side and delete them again if they aren't what you needed. Selective restore only duplicates regular lists and Smart Lists. If a task's attachment file is missing from the backup, that attachment is skipped and the count is reported to you. ### Restore Everything…[​](#restore-everything "Direct link to Restore Everything…") **Restore Everything…** is the full, destructive restore. 2Do confirms with *"Restore Everything will replace your current 2Do database with this backup. 2Do will ask for final confirmation and may quit after the restore completes."*, asks for one final confirmation, replaces your current database with the backup, and then quits. Relaunch 2Do to continue with the restored data. warning **Restore Everything…** replaces your entire current 2Do database. Anything not in the backup, such as recent changes, local-only state, and pending sync work, is gone. If you only need one or two lists back, use **Restore Selected** instead. The Restore Backup window can't be closed while a restore is in progress. ## Recovering Deleted Tasks[​](#deleted-tasks "Direct link to Recovering Deleted Tasks") 2Do has **no trash or recycle bin**. Deleting a task removes it right away, and there is no trash folder to fish it back out of later. If you've only just deleted it, **Edit > Undo** (`⌘Z`) brings it straight back. Otherwise, recover it from a backup: 1. Open **2Do > Settings > Backups** and pick a backup taken **before** the deletion (open its **⋯ menu > Restore…**). 2. In the Restore Backup browser, tick the **list that contained the deleted tasks** and click **Restore Selected**. The list is duplicated into a **Restored** group; your current data isn't touched. 3. Copy or move the recovered tasks from the restored copy back into your real list, then delete the restored copy. You can't restore a single task on its own; the backup browser restores whole lists. Restoring the list a task lived in, then copying the task back over, is the supported way to recover it. ## Migrating to a New Mac[​](#migrating "Direct link to Migrating to a New Mac") **If you sync, start with sync.** Install 2Do on the new Mac, connect the same [sync account](/docs/macos/sync.md), and choose **Replace Local Data** on the first sync to pull everything down. With a complete method such as [Dropbox](/docs/macos/sync-with-dropbox.md) (or [WebDAV](/docs/macos/sync-with-webdav.md) once it ships), that is the whole migration. Everything comes over as-is, and no backup is needed. With a partial method (iCloud CalDAV, other CalDAV servers, Todoist, Apple Reminders, Toodledo), some 2Do-only data such as Smart Lists, tag groups, and list groups [stays on the old Mac](/docs/macos/sync.md#what-syncs). To carry those over too, migrate by backup: 1. On the old Mac, open **Settings > Backups**, open a backup's **⋯ menu**, and choose **Save a Copy…**. 2. Copy the archive to the new Mac (AirDrop, USB, iCloud Drive, anything works). 3. On the new Mac, open **Settings > Backups**, click **Restore from File…**, pick the file, and choose **Restore Everything…**. 4. Set up sync again. When 2Do asks how to combine the two sides, choose **Replace Server Data** if the restored copy is your complete, latest data and the option is offered, so your other devices pick it up. Choose **Merge** only when the server also holds changes you need to keep, or when your sync method does not offer Replace Server Data (Todoist and Apple Reminders). Merge compares every task and can take a very long time with a large number of tasks. The same backup steps work on their own if you don't sync at all, and they can be faster than a first sync on a slow network. ## Backups vs. Sync[​](#vs-sync "Direct link to Backups vs. Sync") Backups and sync solve different problems: * **Sync** keeps your devices in step in real time. Sync is great for "keep my Mac and iPhone matching." It's not great for "I deleted a task three weeks ago and I need it back." * **Backups** are time-machine snapshots. If sync has a bad day, a synced delete propagates everywhere, and the only way back is a backup. Run both. Sync for daily life, backups for the rainy day. tip **Be especially careful when changing sync providers.** Switching can lose task properties the new provider doesn't support, so an extra copy on hand is worth the minute it takes. ## Where the Files Live[​](#location "Direct link to Where the Files Live") By default, backups live inside 2Do's own Application Support data. The safest way to work with them is through **2Do > Settings > Backups**, where you can save a selected backup elsewhere or restore it. Use **Save a Copy…** when you want a backup file you can move to another Mac, keep in cloud storage, or attach to a support request. --- # Calendar Events in Lists See your Apple Calendar events above Today or your other task lists to plan tasks around your appointments. You can also [add a task to your calendar](#add-to-calendar) to set time aside for it. ![The collapsed Calendar Day Bar above the Today task list](https://downloads.2doapp.com/resources/img/2do-mac/calcollapsed.png) ## What the Day Bar Shows[​](#what "Direct link to What the Day Bar Shows") The **Calendar Day Bar** shows your events above the task list, using 2Do’s light or dark appearance. Events stay separate from your tasks. Drag a task onto the bar to [create a calendar event](#add-to-calendar). The bar shows: * **All-day events** in a separate row above the timeline. * **Upcoming and ongoing events**, with the next event’s start time or the current event’s end time. This summary stays visible when the bar is collapsed. note The day bar does not appear while you are viewing a project or checklist, using a Smart List, or searching. It stays with the main list view rather than filtered or focused task views. ## Turning It On[​](#setup "Direct link to Turning It On") Open **2Do > Settings > Calendar**. Choose where the day bar appears, grant Calendar access, and then choose which calendars to include. ### Choose Where It Appears[​](#placement "Direct link to Choose Where It Appears") The **Display** section gives you two choices: * **Show Calendar Events in Lists** shows the day bar above built-in Focus Lists, including Today, and above your regular task lists. This setting is off by default. * **Show Calendar Events in Today** shows the day bar only above Today. This setting is on by default. The two settings are mutually exclusive. Turning on **Show Calendar Events in Lists** turns off and disables the Today-only setting. To return to showing events only in Today, turn off the Lists setting and then turn on **Show Calendar Events in Today**. You can also leave both settings off to hide the day bar completely. Whichever option you choose, the day bar is hidden in project and checklist views, Smart Lists, and search results. tip Choose **Show Calendar Events in Lists** to keep appointments visible as you switch lists, or the Today-only setting to see them just in Today. ### Grant Calendar Access[​](#grant-calendar-access "Direct link to Grant Calendar Access") The first time you use the feature, 2Do needs permission to read your calendars: * Click **Allow Calendar Access** and approve the macOS prompt. * If access was previously denied, the pane shows **Open System Settings** instead. Use it to grant access under macOS privacy settings. 2Do requires **full** Calendar access to read event details. Write-only access is not enough; if only write access is granted, 2Do reports **Full Calendar Access Required** and the day bar stays empty. important This feature needs **Full Calendar Access**, not just "add events" (write-only) permission. If the day bar is blank after you granted access, re-check the permission in **System Settings > Privacy & Security > Calendars** and make sure 2Do has full access. ## Choosing Which Calendars Appear[​](#calendars "Direct link to Choosing Which Calendars Appear") The **Calendars** section lists every calendar 2Do can see, each with its color dot, title, and source. Uncheck any calendar you want to keep out of the day bar. New calendars appear automatically. Return to this list to turn off any you want to hide. The checklist is available whenever either display setting is on. If you turn both settings off, the checklist is disabled until you choose a day bar placement again. ![The Calendar settings pane with the display switches and the per-calendar checkbox list](https://downloads.2doapp.com/resources/img/2do-mac/newset_calendar.png) ## Switching the View[​](#view "Direct link to Switching the View") Use the view button in the day bar to switch between a list of events and a day timeline. The list is the default. You can expand or collapse either view. 2Do remembers both choices and syncs them over iCloud to your other Macs. The **list** view shows events and their times from top to bottom: ![The Calendar Day Bar expanded, showing the day's events as a list, with the view toggle and the date row in the header](https://downloads.2doapp.com/resources/img/2do-mac/calexpandedlist.png) The **day view** places events on a timeline: ![The Calendar Day Bar expanded, showing the day as a calendar timeline, with the view toggle and the date row in the header](https://downloads.2doapp.com/resources/img/2do-mac/calexpanded.png) **Click an event** to open it in Apple Calendar for editing. Declined invitations appear crossed out. ## Browsing Other Days[​](#navigation "Direct link to Browsing Other Days") Expand the day bar, then use its chevron button to show the **row of dates**. Choose a date from today through the next 30 days to see its events. This changes the day bar only; your task list stays as it is. 2Do remembers whether the date row is open. To mark busy dates, choose **None**, **Dots**, or **Heat Map** under **2Do > Settings > Appearance > Busy Days > Calendar Day Bar**. Closing the date row or collapsing the bar returns it to today. Expanding it again starts from today. ## Adding a Task to Your Calendar[​](#add-to-calendar "Direct link to Adding a Task to Your Calendar") To set time aside for a task, add it to your calendar as an event. The event sits next to your appointments in the day bar and in every calendar app that shows that calendar. You can drag the task onto the day bar or use a menu command. ### Drag It onto the Day Bar[​](#drag "Direct link to Drag It onto the Day Bar") Drag a task onto the day bar. A highlight and dashed outline mark the drop area. Release the task to open **Add to Calendar** below the bar. You can drop one task at a time. The bar must have Calendar access and be showing events. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-mac/videos/addtocalendar_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-mac/videos/addtocalendar_poster.png) ### Use the Menu[​](#menu "Direct link to Use the Menu") Select a task, then choose **Task > Add to Calendar...** in the menu bar, or right-click the task and choose **Add to Calendar...**. The dialog opens below the task. The command works whether or not the day bar is showing, so you can use it with the day bar turned off. If 2Do doesn't have Calendar access yet, macOS asks for it first. If access was turned off, 2Do offers to open **System Settings** so you can turn it back on. ### Fill In the Event[​](#dialog "Direct link to Fill In the Event") 2Do fills in the dialog from the task, and you can change any of it before you add the event: * **Title**: the task's title. * **All-day**: on for tasks that have dates but no times. Switching it keeps the day you picked. * **Starts** and **Ends**: the event's time, or its first and last day when **All-day** is on. * **Calendar**: every calendar that accepts new events, grouped by account. It starts on the default calendar for new events you chose in Apple Calendar's settings. * **Include Notes**: copies the task's notes into the event. It appears only when the task has notes, and it starts off. Click **Add** to save the event, or **Cancel** to close the dialog. Clicking anywhere outside the dialog also closes it without adding anything. The task itself doesn't change. ### How the Time Is Chosen[​](#timing "Direct link to How the Time Is Chosen") The dialog starts from the task's dates: | The task has | The event | | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | | A start time and a later due time on the same day | Runs from the start time to the due time. | | A start time | Starts then and lasts the task's duration. | | A due time only | Ends at the due time and starts the task's duration earlier. Without a duration, it starts at the due time. | | Dates without times | Is an all-day event from the start date through the due date. | | No dates | Goes on the day the day bar shows, or today when the bar is hidden. | Where the task has no duration, the event lasts 15 minutes. An event for a task without dates starts at the next quarter hour when it goes on today. On any other day it starts at the time chosen under [Default Due Time](/docs/macos/settings.md#default-due-time), which is 9:00 AM unless you changed it. ## Editing Calendar Events[​](#read-only "Direct link to Editing Calendar Events") To edit an event, click it to open Apple Calendar. 2Do does not edit or delete existing events; it only creates new ones through **Add to Calendar**. For more calendar features, see [BusyCal](https://www.busymac.com), our calendar app for Mac. note If you dismiss the day bar's in-context access prompt, 2Do turns the feature off. You can turn it back on any time from **2Do > Settings > Calendar**. ## Related Pages[​](#related "Direct link to Related Pages") * [Mini Calendar](/docs/macos/mini-calendar.md) is the month view in the Lists Panel for filtering and deferring tasks by date. * [The 2Do Window](/docs/macos/the-2do-window.md) explains where task lists and the day bar sit in the main window. --- # Dates and Durations (Start, Due, and Duration) A task can have a **Start Date**, a **Due Date**, and a **Duration**. Each is optional. Together, they determine when the task appears in Today, when it stays hidden as Scheduled, and how long before its deadline you need to begin. The sections below explain each setting and how they work together. tip You do not have to open a picker to set any of them. Use natural language and type the date, time, or duration into a new task's title and [Natural Language Input](/docs/macos/natural-language-input.md) fills in the fields for you. `Work on the report starting tomorrow` sets a start date, and `Field trip from 19 July until 21 July` sets a start and a due date at once. Think of them this way: * **Start Date** means “do not show this until it is time to begin.” * **Due Date** means “this is the deadline.” * **Due Time** makes the deadline precise. * **Duration** is your estimate of how long the task takes. With a due date, 2Do counts it back from the deadline to show when to begin. ## Floating and Fixed Time[​](#fixed-time "Direct link to Floating and Fixed Time") **Tasks use floating time by default.** A floating time follows the local clock: a task set for 9:00 AM still shows 9:00 AM when you travel from London to Dubai. In a shared list, people in different time zones also see 9:00 AM, which is a different moment in each place. Use this for a routine that belongs at a local time of day. **Fixed Time Zone** keeps a timed task tied to one time zone. Each device displays the corresponding local date and time. For example, a deadline fixed at 5:00 PM in Dubai appears at 1:00 PM in London in January. Use fixed time for a submission deadline, an online meeting, or any shared event that must mean the same moment for everyone. The displayed date can change too when the conversion crosses midnight. A task with only a date remains on that calendar date. For groceries or packing that simply need doing on Friday, you can leave the time off instead of choosing a time-zone mode. ### Turn Fixed Time On[​](#enable-fixed-time "Direct link to Turn Fixed Time On") 1. Open the task editor and give the task a start time, due time, or timed alarm. 2. Turn on **Fixed Time Zone** beneath the start and due fields. 3. Check the displayed date and time, then finish editing. Timed tasks in an [iCloud shared list](/docs/macos/icloud-list-sharing.md#time-zones) offer this switch automatically. For ordinary lists, turn on **2Do > Settings > Tasks > Time Zone Support** to make it available. This preference is off by default and only reveals the control; it does not convert existing tasks or make new tasks fixed. An already fixed task still shows the switch when the preference is off. Wi-Fi sharing alone does not reveal it. The switch uses your device's **current time zone** when enabled. There is no separate zone picker. Enter the time as it should appear where you are. If you are in London setting that January Dubai deadline, enter 1:00 PM in London rather than typing Dubai's 5:00 PM into the local field. ### Travel and Changes to the Time[​](#changing-fixed-time "Direct link to Travel and Changes to the Time") Turning fixed time on keeps the displayed date and clock time and saves the current zone. Travel does not replace that saved zone. If you edit the deadline while away, enter the new date and time in your current local time; 2Do keeps the task's saved zone. Turning fixed time **off** keeps the complete local date and clock time you currently see, and makes those values floating. In the Dubai example, turning it off in London keeps 1:00 PM. After travel to New York, it still shows 1:00 PM locally. Turning it on again uses the zone you are in then, not the previous saved zone. For a shared task, changing this mode or its times changes the shared schedule for everyone with access. Your device's display conversion is automatic and personal; the task's fixed-or-floating choice is shared. View-only members cannot change it. ### Repeats and Reminders[​](#time-zones-reminders "Direct link to Repeats and Reminders") One time-zone choice applies to the task's timed start, due time, and timed reminders together. A reminder fifteen minutes before the start stays fifteen minutes before it. Snoozing an alert remains a personal choice. Fixed repeating tasks follow the saved time zone's calendar, including its daylight-saving changes. Someone in another zone may see the local time shift when the two places change their clocks on different dates. Floating repeating tasks keep their local clock time instead. Neither choice creates a separate task for each member: completing a shared repeating task affects everyone. After changing time zones, open 2Do so it can refresh floating reminders. A floating reminder already scheduled with the operating system can otherwise fire at the moment calculated in the previous zone. Fixed reminders keep their scheduled moment; notification delivery still depends on device permissions and operating-system behavior. Batch date changes keep each task's existing time-zone mode. Open an individual task to change **Fixed Time Zone**. ## Duration Doesn't Change Start or Due[​](#duration-and-dates "Direct link to Duration Doesn't Change Start or Due") A duration never sets or moves a task's start date or due date, and 2Do never works out a due time by adding the duration to the start time. Each field answers its own question: * **Start**: when can you begin? * **Due**: when must it be finished? * **Duration**: how long will the work take? A start time is when a task becomes available, not a promise to finish by a certain time. *Mow the lawn* can start Saturday at 9:00 AM and take an hour, and mowing at noon is still on time. If 2Do made the task due at 10:00 AM, it would turn overdue at 10:00, a deadline you never chose. When a task must be finished by a particular time, set that time as its **Due Time**. To set aside time for a task on your calendar, use [Add to Calendar](/docs/macos/calendar-integration.md#add-to-calendar). For a task with a start time, the event begins then and lasts the task's duration, or runs to the due time when the task is due later that day. The task's own dates don't change. ## Choosing Between Start and Due[​](#choosing "Direct link to Choosing Between Start and Due") Most tasks need only one of the two. Pick by asking what you want the date to do: * Use a **Start Date** when you want the task to stay hidden until the day or time you plan to begin it. * Use a **Due Date** when the task genuinely becomes late after that date or time. * Use both only when there is a real working window between the two: a day you can begin, and a later day you must be finished by. Only a due date can make a task overdue. A start date decides when a task appears; it never decides whether the task is late. When a task has no real deadline, leave the **Due Date** off and let the start date bring it into view. tip Use **Start Date** for *anything that shouldn't bother you yet*: appointments, scheduled work, recurring chores. Use **Due Date** for actual deadlines. Use **Duration** to surface a lead-up window for tasks that need preparation. ### Daily Routines[​](#daily-routines "Direct link to Daily Routines") For a recurring task you want to see at a set time of day but do not have to finish by then, set a **Start Date** with that time, repeat it daily, and leave the **Due Date** off: * *Update journal* starting at **8:00 AM**, hidden until 8:00 AM, then available for the rest of the day. * *Check bank account* starting in the **evening**, out of the way until then. The task never becomes overdue, and each occurrence gets the next start date. Add a **Due Date** and **Due Time** only when finishing by a particular time genuinely matters. See [Repeating Tasks](/docs/macos/repeating-tasks.md) for the repeat options. ## A Plain, Undated Task[​](#undated "Direct link to A Plain, Undated Task") A task with **no dates** stays in the list it was created in. It does not appear in *Today*. It is never overdue, because nothing was promised. Use this for the long tail of intentions: rough notes, someday/maybe items, anything that genuinely doesn't have a deadline. ## Just a Due Date[​](#just-due "Direct link to Just a Due Date") A task with a **Due Date** appears in *Today* on the due date, for the **whole day**, and then becomes **overdue** until you complete it. * If the task also has a **Due Time**, alerts can be anchored to that time. Without a due time, the task is simply due on that day. * Overdue tasks can continue to appear in *Today* with an overdue indicator, depending on your Today list settings. They stay overdue until checked off. This is the simplest pattern, and the right one for genuine deadlines: *Submit invoice on Friday* appears in Today on Friday, then stays overdue until you submit it. note A due date without a due time has no specific clock time attached. If you use automatic due-date alerts, 2Do treats the beginning of the due day as the reference point for that alert. To anchor to a specific time of day, add a **Due Time**. When a list is sorted by Due Date, a task with no due time counts as due at the end of its day, so it sorts after that day's tasks that have a due time. A duration moves a task earlier in this order, because 2Do sorts it by its [effective start](#duration-due). Alert times do not affect the order. An alert does not give a task a due time. A task with a 3:00 PM alert but no due time shows no time in the list and sorts after the timed tasks. Set a **Due Time** to change that. ## Just a Start Date[​](#just-start "Direct link to Just a Start Date") A task with **only a Start Date** is **scheduled to appear** at that start date. Until the start date arrives, the task is **hidden** from the regular list and from *Today*, by design. To see what's scheduled before its start arrives: * Click the **Scheduled** focus list at the top of the Lists Panel. * Or, in the **sort bar**, toggle the visibility-of-scheduled button to display scheduled tasks alongside your normal view. * Or, **Task > Show Scheduled** (`⌘K`), a sticky toggle whose title flips to **Hide Scheduled**. It stays on until you switch it off. Showing or hiding scheduled tasks changes which tasks a view includes, which is why the same task can appear and disappear as you toggle **Task > Show Scheduled** (`⌘K`) or the sort-bar button. Sorting a list by **Start Date** also shows its scheduled tasks, in the order they start. This applies to your own lists, not to *Today* or Smart Lists. Other sort orders only change the order of what is already there. Learn more about scheduled-task visibility in [Smart Scheduling](/docs/macos/focus-lists.md#smart-scheduling). A scheduled task with no due date enters *Today* on its start date. With **Settings > Today & Lists > Include 'Still Working On' tasks** on, which is the default, it stays in *Today* every day after that until you complete it. tip A task with `start = today` and no due date is just a "today task", so it appears in *Today* without overdue behavior. Useful for soft daily intentions. Projects and child tasks Each item uses its own Start Date for scheduled visibility. A project with no Start Date stays visible when **Hide Scheduled** is on, even if one or all of its child tasks start in the future. Those children stay hidden until their own start dates arrive or you show scheduled tasks. Changing a project's dates resets its completed children Changing or removing a project's **Start Date** or **Due Date** reschedules the project, and 2Do sets its completed child tasks back to active so the rescheduled project is treated as work to do again. Starring a project does not do this. If you want finished children to stay completed, adjust the project's dates first and complete the child tasks afterwards. ## Start Date + Due Date[​](#start-and-due "Direct link to Start Date + Due Date") The most expressive pairing. * **Hidden** from the list and from *Today* until the **start date** arrives. * On the **start date**, appears in *Today*, and with **Settings > Today & Lists > Include 'Still Working On' tasks** on (the default), it stays in *Today* every day after. * The **due date** adds the deadline. * After the due date, **overdue**. Use this for tasks with a real working window. *Prep talk for Thursday's meeting* with a start date of Tuesday and a due date of Wednesday sits in *Today* from Tuesday onward, with Wednesday as the deadline. ## Just a Duration[​](#just-duration "Direct link to Just a Duration") Without dates, a duration is your estimate of how long the task takes. It doesn't change when the task appears, but 2Do uses it for [Duration Totals](#duration-totals), for sorting by **Duration**, and as the length of an event you make with [Add to Calendar](/docs/macos/calendar-integration.md#timing). 2Do counts a day of duration as 24 hours and a week as 7 days. It doesn't count working hours. Combine a duration with a due date and it also tells 2Do when to start showing the task. ## Due Date + Due Time + Duration: Effective Start[​](#duration-due "Direct link to Due Date + Due Time + Duration: Effective Start") When a task has a **due date**, a **due time**, and a **duration**, 2Do counts the duration back from the due time. That point is the task's effective start: the time it starts needing your attention. 2Do doesn't save it as a start date, and the deadline stays where you set it. Example: a meeting deadline is **tomorrow at 3:00 PM** and the task has a **30-minute duration**. Its effective start is **2:30 PM**, and the task is still due at 3:00 PM. The effective start affects the task in four ways: * **Today list**: the task appears in *Today* on the day of its effective start, for that whole day. A task due tomorrow at **9:00 AM** with a **12-hour** duration has its effective start at 9:00 PM today, so it is in *Today* all of today. * **In Progress**: when *Today* is sorted by due date, the task appears under an **In Progress** heading from its effective start until its due time. * **Status**: the task editor's hint bar shows **Starts in** and the time left until the effective start, then the time **remaining** until the due time. Hover over the duration to see the same status, or **Ended** once the due time has passed. The status is only a countdown; it doesn't track the time you spend. * **Sorting**: in a list sorted by due date, 2Do places the task at its effective start, so a long task comes before a short one due at the same time. Use this for time-boxed work: * *Join Zoom meeting* due **3:00 PM**, duration **30 minutes**, so start preparing at **2:30 PM**. * *Submit proposal* due **5:00 PM**, duration **2 hours**, so it is treated as active from **3:00 PM**. tip For appointments and meetings, combine **Due Date + Due Time + Duration**. It keeps the actual deadline clear while also telling 2Do when preparation should begin. ## Due Date + Duration: Lead-Up Window[​](#duration-lead-up "Direct link to Due Date + Duration: Lead-Up Window") A duration also works with a due date that has no due time. 2Do then counts the duration in whole days: each full day brings the task into *Today* one day earlier, and the window lasts until the end of the due day. Example: a task due **Friday** with a duration of **2 days** appears in *Today* from **Wednesday**, because the work needs time before the deadline. This is useful for tasks like *prepare slides*, *review contract*, or *pack for a trip* where the due date is not the first moment you should think about it. The task editor's hint bar shows **Starts in** before the window opens, then the time **remaining** until the end of the due day, and reads **Ended** only once the task is overdue. While the window is open, *Today* sorted by due date lists the task under **In Progress**. A duration shorter than a day doesn't change when a task without a due time appears. The task arrives in *Today* on its due date, with no countdown in the task editor and no **In Progress** heading in *Today*. The duration still places the task a little earlier among that day's tasks when the list is sorted by due date, and it still counts toward [Duration Totals](#duration-totals). To count back hours or minutes, give the task a **Due Time**. With or without a due time, once the window opens, the task keeps appearing in *Today* each day up to the deadline as long as **Include overdue items** is on in **Settings > Today & Lists**, which it is by default. With that setting off, the duration brings the task into *Today* only on the first day of the window, and the due date brings it back on the day it is due. A small consequence to be aware of: a task *due tomorrow* can already be showing in *Today*, but only when its duration is long enough to reach back into today. That's normal and intended. ## Duration + Start Date[​](#duration-start "Direct link to Duration + Start Date") A duration on a task that has a **start date** but no **due date** doesn't change when the task appears, and it doesn't give the task a due time. The task appears at its start, as described in [Just a Start Date](#just-start), and it never becomes overdue. The duration still counts toward [Duration Totals](#duration-totals), and [Add to Calendar](/docs/macos/calendar-integration.md#timing) uses it as the event's length. To have a duration bring a task into *Today* ahead of a deadline, give the task a **due date**. ## Start + Due + Duration[​](#all-three "Direct link to Start + Due + Duration") When all three are set: * **Hidden** before the start date. * **Still hidden** even when the duration's lead-up window reaches back past the start date, because the start date wins while scheduled tasks are hidden, which is the default. Show scheduled tasks to see it earlier. * **Visible** once the start date arrives. * **Overdue** after the due date. Use this when you want both a “do not show before this date” boundary and a realistic amount of working time: * *Prepare conference talk* starts **1 June**, is due **10 June at 5:00 PM**, duration **4 hours**, kept out of the way before June, then available while you plan, and treated as active as the deadline approaches. * *Renew passport* starts **Monday**, due **Friday**, duration **1 hour**, hidden before Monday, visible during the week, and due Friday. ## Repeating Tasks and Dates[​](#recurrence "Direct link to Repeating Tasks and Dates") See [Repeating Tasks](/docs/macos/repeating-tasks.md) for the full reference; the relevant points for dates: * When another occurrence remains, 2Do keeps a completed copy for your history, then moves the active task to the next occurrence. * The **next occurrence** carries the same date shape forward: start date, due date, due time, and duration are kept where they were used. * **Only a due date**: the next occurrence gets the next due date. * **Only a start date**: the next occurrence gets the next start date and stays hidden as Scheduled until that date arrives. * **Start date + due date**: 2Do keeps the same gap between them. If a task starts 2 days before it is due, the next occurrence also starts 2 days before it is due. * **Duration** carries forward intact, so a recurring "Quarterly review" with a 1-week duration starts surfacing in *Today* one week before each quarterly due date. * **Repeat from Due Date** keeps fixed schedules fixed. If rent is due on the 1st and you complete it on the 3rd, the next occurrence is still based on the 1st. * **Repeat from Completion** restarts the cycle from the day you actually completed the task. If you change your car's oil roughly every 3 months and complete the task today, the next one is scheduled 3 months from today, not from when it was originally due. If the task has reached its **End after** count or **End on** date, it simply completes instead of creating another occurrence. tip For chores that drift in real life, use **Repeat from Completion**. For dates that must stay anchored to the calendar, use **Repeat from Due Date**. In the Repeat popup this is a single **after completion** checkbox, and ticking it means the cycle restarts from the day you complete the task. ## Building a Daily View[​](#daily-view "Direct link to Building a Daily View") For everyday work the built-in *Today* list is usually enough. It already combines tasks due today with overdue tasks and tasks you are still working on. If you would rather build your own Smart List, the distinction that matters is which date the search token looks at: * `type: duetoday` matches tasks **due** today, and tasks whose duration counts back into today. Bare `today` is an alias for `duetoday`. * `type: anytoday` also matches tasks that **start** today, so reach for it when you want started tasks included too. See [Smart Lists](/docs/macos/smart-lists.md) for the rest of the search syntax. ## Duration Totals[​](#duration-totals "Direct link to Duration Totals") When the Task List is grouped into sections, each section header shows the total duration of the open tasks that belong to that section, including subtasks inside projects and checklists. Totals may update shortly after the list appears. * Only tasks that are not completed and have a duration are counted. A section without any durations shows no total. * When sorting by **Due Date**, a subtask with its own due date contributes to that date's section. A subtask without a due date contributes to its project's or checklist's section. For example, an undated 30-minute subtask inside an overdue project adds 30 minutes to **Overdue**. * **Start Date** works the same way: a subtask with no start date contributes to its parent's section. These totals do not add or change any dates on the subtasks. * Other sort orders use each subtask's own values. For example, a high-priority subtask contributes to **High** when sorting by priority. * A subtask that uses its parent's section counts as if the project or checklist were open. Searching for a project can therefore include its undated subtasks even when the search words only match the project. Completed subtasks and those hidden by the project's scheduled or paused visibility settings do not contribute. * Expanding or collapsing a project does not change its subtasks' contributions. Totals update existing headings; they do not create additional sections for subtasks. * If a project or checklist and its open subtasks with durations belong to the same section, the subtasks' durations replace the parent's own duration. Otherwise, the parent contributes its own duration, if set. * Each task counts once, even if it appears more than once in the section. * When a list is sorted by **Duration**, headers that already name a duration, such as *30 Minutes*, show no total. For example, two tasks under **Tomorrow** with durations of 1 hour and 15 minutes, plus a 30-minute project subtask that belongs to **Tomorrow**, produce a total of *1h 45m*. The subtask counts even when its project is collapsed. Select two or more tasks to see how many are selected in the [Sort Bar](/docs/macos/the-2do-window.md#sort-bar), followed by their total duration when they have one, such as *3 tasks selected · 1h 45m*. This total includes only the tasks you select, so you can include nested subtasks by selecting them too. Selecting a project alone does not add its subtasks. Completed tasks are excluded, repeated selections of the same task count once, and a parent's duration is replaced by its selected open subtasks' durations when they have any. To hide the totals in section headers, turn off **Show durations in headings** in [Settings > Appearance](/docs/macos/settings.md#appearance-task-list). ## Practical Examples[​](#examples "Direct link to Practical Examples") Each example assumes the default settings. ### At Home[​](#examples-home "Direct link to At Home") | Task | Start | Due | Duration | What you'll see | | ------------------------ | -------- | ------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------- | | Buy milk | None | None | None | Lives in its list, not in Today. | | Pay the electricity bill | None | 25th | None | Appears in Today on the 25th. Overdue from the 26th. | | Take out the bins | None | Wed 8 PM | None | Appears in Today all of Wednesday. Alarm at 8 PM if set. | | Take out the bins | Wed 8 PM | None | None | Hidden until Wednesday 8 PM, then appears in the list. | | Mow the lawn | Sat 9 AM | None | 1 hour | Appears at 9 AM on Saturday and stays in Today until done. The hour is an estimate, not a 10 AM deadline. | | Visit a friend | Sat 3 PM | Sat | 30 minutes | Hidden until 3 PM on Saturday, and due that day. A duration under a day doesn't bring a task without a due time into Today early. | | Pick up the kids | None | Today 3:15 PM | 20 minutes | Due at 3:15 PM, with an effective start of 2:55 PM. | | Pack for a trip | None | Fri | 2 days | Appears in Today from Wednesday. Due Friday. | | Renew car insurance | Mar 1 | Mar 31 | 30 minutes | Hidden until March 1, then in Today until done. Due March 31. | ### At Work or School[​](#examples-work "Direct link to At Work or School") | Task | Start | Due | Duration | What you'll see | | ------------------------------- | -------- | ------------- | ---------- | ---------------------------------------------------------------------------------------------- | | Join team meeting | None | Tomorrow 3 PM | 30 minutes | Deadline is 3 PM, with an effective start of 2:30 PM. | | Submit proposal | None | Fri 5 PM | 2 hours | Deadline is 5 PM, with an effective start of 3 PM. | | Read chapter 5 | Mon 4 PM | None | 2 hours | Hidden until 4 PM on Monday, then in Today until done. It isn't due at 6 PM. | | Hand in history essay | None | Fri | 3 days | Appears in Today from Tuesday. Due Friday. | | Prep quarterly review | Mon | Fri | None | Appears in Today from Monday onward; due Friday. | | Group presentation | Wed | Fri 2 PM | 3 days | Hidden until Wednesday, even though 3 days before the deadline is Tuesday. Due Friday at 2 PM. | | Status report, repeating weekly | None | Fri 4 PM | 1 hour | Effective start at 3 PM each Friday. Completing it moves the task to the next Friday. | ## Where to Set Each Field[​](#setting-fields "Direct link to Where to Set Each Field") In the task editor: * **Start Date**: `⌃T` (Start Today), or click the start-date field and pick. * **Due Date**: click the due-date field; type a supported date phrase such as `tomorrow`, `next Friday`, or `in 3 days`, or pick from the calendar. This field takes the date only. Set the clock time in the separate due-time field. * **Due Time**: `E` to open due time, or use the **Due Time Shortcuts** (configurable). * **Duration**: `X` to open the duration picker. For a new task you can type all of these into the title instead, in phrases such as `tomorrow at 3pm` or `[45m]`. A date on its own becomes the due date; a start word in front of it, as in `Repaint the fence starts Monday`, sets the start date, and a range such as `Field trip from 19 July until 21 July` sets both. See [Natural Language Input](/docs/macos/natural-language-input.md). Nudge the **start date** with `.` (add a day) and `,` (subtract a day), or `⇧.` / `⇧,` for a week; nudge the **due date** with `]` / `[` for a day and `⇧]` / `⇧[` for a week. Remove start date / due date / due time with `⌥,` / `⌥[` / `⇧⌘[`. --- # Mail to 2Do Mail to 2Do gives your Mac a private, receive-only email address. Anything sent to that address becomes a normal task in the 2Do list you choose: no extra apps, no account to create, nothing to install anywhere else. ## What You Need[​](#requirements "Direct link to What You Need") Mail to 2Do runs on the Mac, iPhone, and iPad. This page covers the Mac; for iPhone and iPad, see [Mail to 2Do for iPhone and iPad](/docs/ios/email-to-2do.md). On the Mac it requires an eligible license: * **Direct download**: a registered direct license. * **Mac App Store and Setapp**: an active subscription. Each Mac gets its own private address, tied to your license and the installed copy. It looks like this: `todo-xxxxxxxxxxxxxxxxxxxxxxxxxx@2doapp.email` ## Setting It Up[​](#setup "Direct link to Setting It Up") 1. Open **2Do > Settings > Mail to 2Do**. 2. Turn on **Enable Mail to 2Do**. 3. Choose the list where emailed tasks should be saved. 4. Copy your address and save it as a contact with a memorable name, such as "2Do Inbox." ## Everyday Uses[​](#uses "Direct link to Everyday Uses") * **Brain-dump.** Email yourself a one-line reminder from work, from your phone, or from anywhere else. It's waiting in 2Do when you get back to your Mac. * **Forward things that need action.** A flight confirmation, an invoice to pay, a message you must reply to: forward it and the subject becomes the task, with the message text saved in the notes. * **Send yourself a checklist.** Number the lines of the message and it arrives as a checklist (see below). * **Let others file work for you.** Anyone or anything that can send email can create tasks: a mail rule that forwards matching messages, an automation service, a report from a scanner or server, or a chore from a colleague at work. A quick example: ``` To: todo-xxxxxxxxxxxxxxxxxxxxxxxxxx@2doapp.email Subject: Pick up the dry cleaning due(tomorrow) list(Errands) ``` That arrives as a task titled "Pick up the dry cleaning" in your Errands list, due tomorrow. ## Sharing Your Address With People You Trust[​](#sharing "Direct link to Sharing Your Address With People You Trust") Your address works like a private phone number: anyone who has it can add tasks to your list, and only you decide who gets it. Share it with your partner so the groceries land on your list instead of in a chat thread. Give it to a family member who keeps "remembering things you should do." Hand it to an assistant or colleague who files errands your way. Whatever they send appears in your chosen list, ready for you to triage. Two things to know when sharing: * Mail to 2Do is receive-only. Senders never get replies, confirmations, or bounces: messages simply appear in your 2Do. * If the address ever spreads further than you'd like, use **Replace Address** in Settings. The old address stops working instantly and permanently, and you get a fresh one to share. ## From Email to Task[​](#how-it-works "Direct link to From Email to Task") Every message is converted the same way: * The **subject** becomes the task's title (leading "Re:" and "Fwd:" are trimmed off). * The **plain-text body** becomes the task's notes, up to 10,000 characters. * Attachments and HTML formatting are not captured. An HTML-only message may create a task with just its subject as the title if the body could not be parsed. * **There is no link back to the original email.** Your address is a one-way delivery into 2Do rather than a mailbox, so a task receives only the subject and text of a message and never a reference to it, and cannot reopen the original in Apple Mail or any other mail app. That is deliberate, and it is part of what keeps the message private and readable only by your Mac. ### Checklists[​](#checklists "Direct link to Checklists") Number the lines of your message body, typing `1.` `2.` `3.` yourself with one item per line, and 2Do creates a **checklist** instead of a plain task, with each numbered line as an item. Start the body with `1.`: text before the first numbered line keeps the message a normal task. When the body mixes numbered lines with other text, the full message text is kept in the checklist's notes; a body that is *only* numbered items becomes just the checklist, with no notes. A signature ("Sent from my iPhone" and the like) ends the checklist rather than becoming an item, and stays in the notes with the rest of the message. ``` Subject: Saturday shopping list(Home) 1. Milk 2. Coffee beans 3. Bird seed ``` ### Filing Instructions[​](#instructions "Direct link to Filing Instructions") The subject can carry small filing instructions in parentheses. 2Do removes them from the task title and applies them as it saves: | Instruction | What it does | Example | | ---------------------------- | ------------------------------------------------- | -------------------------- | | `start(...)` | Sets a start date | `start(today)` | | `due(...)` | Sets a due date, with a time when you include one | `due(tomorrow)` | | `priority(!)` `(!!)` `(!!!)` | Sets low, medium, or high priority | `priority(!!!)` | | `list(...)` | Files the task in an existing list | `list(Work)` | | `tag(...)` | Adds one or more tags | `tag(home, diy)` | | `action(type, value)` | Adds an Action | `action(call, 0793273373)` | Supported action types are `call`, `message`, `url`, `visit`, and `google`. Dates accept natural words such as `today` and `tomorrow`, or a typed date and time. If a named list doesn't exist, the task simply lands in your chosen destination list. ## Private by Design[​](#privacy "Direct link to Private by Design") The moment your email arrives, it is converted into a task payload and encrypted with a key that only your Mac holds (we have no access to this). The raw email is deleted immediately after conversion. Once the encrypted payload is stored, we cannot read your message; no human-readable message content is kept at rest. The encrypted payload waits only until your Mac saves the task. It is then deleted permanently and automatically. If your Mac remains offline, the payload is kept for at most 30 days and then permanently deleted. For troubleshooting, delivery logs retain sender and recipient addresses, message identifiers, and processing results for 30 days. These logs do not contain email subjects, bodies, or attachments. Mail to 2Do does not create a mailbox or a separate email account that you or anyone else can browse. ## Delivery[​](#delivery "Direct link to Delivery") Delivery is normally instant when your Mac is online and 2Do is running. If the Mac is offline or 2Do is not running, the encrypted task waits for up to 30 days and is delivered when the Mac and 2Do are available again. 2Do also checks for new mail in the background on its own. Impatient? The **Fetch Now** button under **Settings > Mail to 2Do > Delivery** checks immediately. Tasks created from email sync onward to your other devices through your normal 2Do sync, like any other task. ## Your Address and Your License[​](#address-and-license "Direct link to Your Address and Your License") An address belongs to one Mac and is tied to your license and that Mac's 2Do database. If you restore that database on a new Mac, 2Do can move the existing address to the new Mac after you confirm the move. The **Manage Addresses** screen shows how many addresses your license allows and how many are in use. Each Mac receives its own address when you enable Mail to 2Do. If every address slot is already in use when you enable the feature, 2Do shows the addresses assigned to your license, partially masked for privacy and with last-used dates, so you can permanently release one you no longer need from any of your Macs. Releasing an address deletes its undelivered mail, disables Mail to 2Do on the Mac that was using it, and frees that slot. The released address stops working permanently. Replaced, released, disabled, and expired addresses are never reused. You can also find **Replace Address** in **Settings > Mail to 2Do**. See [Troubleshooting](#troubleshooting) below for the exact effect of each option. ## Limits[​](#limits "Direct link to Limits") The following limits apply to each private address: * **512 KB per email** (524,288 bytes). This is the size of the whole email, including its headers, attachments, and embedded images, even though attachments and images are not imported. * **50 emails per UTC calendar day**. The allowance resets at midnight UTC. * **Plain-text notes up to 10,000 characters**. Longer notes are shortened. * **Attachments and HTML formatting are not imported.** Messages above the size or daily limit, or flagged as spam, are discarded without a delivery-failure notice. Shortening long notes does not reject the email. ## Troubleshooting[​](#troubleshooting "Direct link to Troubleshooting") ### Mail Is Not Arriving[​](#not-arriving "Direct link to Mail Is Not Arriving") Check that: * The receiving Mac is switched on. * 2Do is running. * The Mac is online. * Your 2Do license is current. * You sent the message to the exact private address shown in **Settings > Mail to 2Do**. Check the [message size and daily limits](#limits), especially when forwarding emails with attachments or embedded images. Try a new email with a short subject and a few words in the body, without attachments or forwarded content. Then click **Fetch Now** under **Settings > Mail to 2Do > Delivery** and check the destination list selected there. If the daily allowance has been used, send the email again after midnight UTC. Messages wait for up to 30 days while the Mac or 2Do is unavailable. After that, they are permanently deleted. **Fetch Now** checks mail already accepted by the service; it cannot recover a message discarded because it exceeded a limit. If the test email still does not appear, contact support with your private address from **Settings > Mail to 2Do**, the sender address, and the date, time, and time zone of the test. Include any error shown after clicking **Fetch Now** so support can check your inbox. ### "This Address Lives on Another Mac"[​](#address-on-another-mac "Direct link to \"This Address Lives on Another Mac\"") You may see this choice after restoring or cloning a 2Do database: * **Move Address to This Mac** keeps the existing address and moves delivery to this Mac without using another license slot. Any undelivered mail waiting for the old Mac is permanently discarded, and the old Mac can no longer use that address. * **Use a New Address** leaves the other Mac and its address unchanged, then creates a separate address for this database copy if your license has capacity. Choose **Move Address to This Mac** when this Mac is replacing the old one. Choose **Use a New Address** when both copies will remain in use independently. ### You Have Reached the Address Limit[​](#address-limit "Direct link to You Have Reached the Address Limit") When your license has no free address slots, 2Do opens the capacity sheet. It shows the license's partially masked addresses and when each was last used. Permanently release an address from a retired Mac to free its slot, then continue setup. Releasing an address permanently retires it, deletes its undelivered mail, and disables Mail to 2Do on the Mac that used it. If you still have the 2Do database or backup that owns an address you recognize, restore that database and choose **Move Address to This Mac** instead; moving preserves the address and does not use another slot. ### Replace Address or Disable Mail to 2Do[​](#replace-or-disable "Direct link to Replace Address or Disable Mail to 2Do") * **Replace Address** keeps Mail to 2Do enabled on this Mac and uses the same license slot, but gives it a new private address. The old address stops working permanently, and any mail still waiting for it is deleted. Update your saved contact with the new address. * **Disable Mail to 2Do** turns the feature off on this Mac, permanently retires its current address, deletes any undelivered mail, and frees the license slot. Enabling the feature again later creates a completely new address. Old addresses are never reused. --- # Focus Filter Use the **Focus Filter** to show tasks that meet conditions you choose, such as high priority or due today. Each list remembers its conditions, and you can turn the filter on or off with a click. ![The Focus Filter dropdown](https://downloads.2doapp.com/resources/img/2do-mac/focusfilter.png) ## Toggling Focus[​](#toggling "Direct link to Toggling Focus") * Click the **Focus** button in the Sort Bar. * Press `⌘J` (**Task > Toggle Focus Filter**). When Focus is on, the Task List shows only tasks matching the selected conditions. Turn Focus off to see everything in the selected list again. ## Choosing Focus Conditions[​](#editing-rule "Direct link to Choosing Focus Conditions") Click the small dropdown beside the Focus button in the Sort Bar to choose what Focus should show. You can tick more than one condition at a time: * **Overdue** * **No Due Date** * **In Progress** * **Today** * **Tomorrow** * **This Week** * **Next 3 Days** * **Next 7 Days** * **Next 30 Days** * **Next 6 Months** * **Next 12 Months** * **High Priority** * **Starred** When several conditions are selected, Focus shows tasks that match any of them. Turn Focus off at any time to return to the full list. tip Build a "morning review" Focus that shows High Priority items due Today. Toggle it on with `⌘J` first thing in the morning. ## Per-List Focus Rules[​](#per-list "Direct link to Per-List Focus Rules") Each list can have its own Focus condition set, and 2Do remembers which options are active for each. Switch lists and the Focus state goes with them. This is useful when different lists deserve different treatment: *Work* might focus on overdue and high-priority items, *Errands* on tasks coming up in the next few days. ## Quick Filter via the Tags Panel[​](#tags-quick "Direct link to Quick Filter via the Tags Panel") For a quick one-off tag filter, click any tag in the right utility panel. The Task List narrows to tasks carrying that tag. Hold `⌥` (Option) to add more tags to the filter. This is separate from the saved Focus conditions, so it's handy when you only need a temporary tag view. ## Saving a Focus as a Smart List[​](#save-as-smart "Direct link to Saving a Focus as a Smart List") If you need a more detailed saved filter (a specific tag, location, text search, or list group), create a Smart List instead. **File > New > New Smart List** opens the Smart List builder, where you can save a permanent view in the sidebar. See [Smart Lists](/docs/macos/smart-lists.md). tip Keep Focus for quick list narrowing. Save more detailed filters as Smart Lists, since they're easier to discover later. --- # Focus Lists (All, Today, Starred, Scheduled, Done) Near the top of the Lists Panel sit the **Focus Lists**: *All*, *Today*, *Starred*, *Scheduled*, and *Done*. They are not containers: they're built-in saved perspectives that pull tasks from across your real lists according to specific rules. Above them, in its own group, sits the optional **Inbox**, which *is* a real list, and tasks live in it until you file them somewhere else. This page explains exactly what each one shows, how to tune it, and how to keep specific real lists out of it. ## Inbox[​](#inbox "Direct link to Inbox") The **Inbox** is your GTD inbox, the place where new, un-triaged tasks land while you're capturing fast and thinking later. It appears only once you turn on **Getting Things Done® Inbox** under **2Do > Settings > Tasks**. * New tasks created via [Quick Entry](/docs/macos/quick-entry.md) land in *Inbox* by default (configurable in **Settings > Tasks**). * Tasks captured from the macOS Share Extension land in *Inbox* by default. * Tasks that arrive via [Mail to 2Do](/docs/macos/email-to-2do.md) flow through Inbox by default, whether they were captured on this Mac or synced in from your iPhone or iPad, unless the email subject sends them to another existing list. The intent is to keep Inbox **empty** at the end of each review session: triage every task into a real list, give it tags / dates / actions, and you're done. Because it is a real list, the Inbox can also be divided into [sections](/docs/macos/task-sections.md). After a large capture, **Auto-Create Sections** can group its tasks for you on a Mac with Apple Intelligence, which makes them quicker to triage. tip Treat *Inbox* as a true GTD inbox: drain it during your daily review. Anything that's been in Inbox for a week is something you've avoided deciding on. ## All[​](#all "Direct link to All") *All* shows every active task across every list, in one place, which is useful when you want to scan everything at once or apply a Smart Filter across the whole system. tip Combine the Focus Lists with Smart Filters for sharp views. *All* + `type: (hiprio AND duethisweek)` answers "what high-priority work is due this week, across everything?" ### What's In and What's Out[​](#all-membership "Direct link to What's In and What's Out") By default *All* shows everything. But it respects two important exclusions: * Tasks belonging to a list that you've **excluded from 'All'** (see below). * Tasks **hidden by a paused tag** (see [Tags: Pausing a Tag](/docs/macos/tags.md#pause)). * Tasks hidden by [Smart Scheduling](#smart-scheduling) because they have a future start date. ## Smart Scheduling and Scheduled Visibility[​](#smart-scheduling "Direct link to Smart Scheduling and Scheduled Visibility") Smart Scheduling keeps future work out of your active views. A task with a **future start date** is hidden from regular lists until that start date arrives, so *All*, *Today*, and your real lists stay focused on work you can act on now. There are two ways to peek ahead without changing the task: * Open the **Scheduled** Focus List. * Turn on **Show Scheduled** (`⌘K`) to reveal scheduled tasks inside the list you're already in. It's on the **Task** menu, and it's the same visibility toggle you'll find on the [Sort Bar](/docs/macos/the-2do-window.md#sort-bar). Under **2Do > Settings > Today & Lists**, you can also decide what happens after a task's start date has arrived: keep started tasks visible, or keep them hidden unless they are due today. ### Excluding a List from All[​](#exclude-from-all "Direct link to Excluding a List from All") Some lists shouldn't contribute to *All*, typically Someday/Maybe lists, recurring chores you only want surfaced by their alarms, or staging lists. To exclude a list: 1. **Right-click** the list in the Lists Panel. 2. Choose **Exclude from 'All'**. A small hidden-from-focus icon now appears on the list's leading color band, marking its tasks as held back from *All*. The list and its tasks remain visible when you click into the list directly. They just don't pollute the *All* view. ![Right-clicking a list to exclude it from All](https://downloads.2doapp.com/resources/img/2do-mac/excludefromall.png) ## Today[​](#today "Direct link to Today") *Today* is the daily working list. A task lands here if any of these are true: * It is **due today** (with or without a due time). * **Include overdue items** is enabled in **Settings > Today & Lists**, so past-due tasks carry forward to *Today* until completed. * **Include 'Still Working On' tasks** is enabled in **Settings > Today & Lists**, so tasks with a start date in the past or today can remain in *Today* while they are still active. * It has a **duration** whose lead-up window or effective start time covers today. * **Include starred items** is enabled in **Settings > Today & Lists**, so every starred task appears in *Today*, including starred tasks from lists you've otherwise excluded from *Today*. Learn more in [Dates and Durations](/docs/macos/dates-and-durations.md). Adding a task while *Today* is open presets its due date to today, so the task stays in the view (its home list still follows your [default list rules](/docs/macos/settings.md#new-tasks)). This is on by default. Turn off **Use today's date in the Today list** under [Settings > Tasks](/docs/macos/settings.md#default-due-date) to use your default due date there instead. That row is only active while **Default due date for new tasks** is on. To see what you've finished during the day, turn on **Show tasks completed today in the Today list** under [Settings > Today & Lists](/docs/macos/settings.md#today-list). Tasks you complete today then appear in the *Done* group at the bottom of *Today* until midnight, whatever their due date. The setting is off by default. ### Excluding a List from Today[​](#exclude-from-today "Direct link to Excluding a List from Today") Right-click the list → **Exclude from 'Today'**. The list's tasks no longer appear in *Today*, which is useful for chores you only want triggered by their alarms (you'll still get the alarm; the task just won't sit in Today all day). ### Why Tasks "Show Up Mysteriously" in Today[​](#today-mysteries "Direct link to Why Tasks \"Show Up Mysteriously\" in Today") A task showing in *Today* before its due date is almost always one of: 1. The task has a **duration** creating an earlier working window before the due date. 2. *Include 'Still Working On' tasks* is enabled and the task has a **start date** of today or earlier. 3. The task is **starred** and *Include starred items* is on. See the FAQ entry [Why are tasks due tomorrow showing in the Today Focus list?](/docs/faqs/tasks-tomorrow-in-today-list.md). ## Starred[​](#starred "Direct link to Starred") *Starred* collects every starred task across every list. It's a quick "what am I focusing on right now?" view. * **Star**: `S` on a selected task; or click the star indicator on the row. * **Unstar**: `⌃S`, or click the star again. * **Task > Toggle Starred** (`⌥⌘S`): flips the star on the selected task either way. * Drag a task onto the *Starred* Focus List to star it. Adding a task while *Starred* is open stars it automatically, so it stays in the view. For the full distinction between Stars and Priorities, and when to use which, see [Stars and Priorities](/docs/macos/stars-and-priorities.md). ## Scheduled[​](#scheduled "Direct link to Scheduled") *Scheduled* shows tasks with a **future start date** that are currently hidden from the regular list by [Smart Scheduling](#smart-scheduling). It's the place to peek at what's coming up without abandoning the focus of your active workspace. The same view is reachable from the [Sort Bar](/docs/macos/the-2do-window.md#sort-bar)'s scheduled-visibility toggle without leaving your current list. ## Done[​](#done "Direct link to Done") *Done* shows everything you've recently completed. Use it to: * Review what you got done today / this week. * Restore a task you marked complete by mistake (uncheck it from here). When *Done* holds 500 or more completed tasks and **Auto-delete completed tasks** is off, its row shows a warning badge, and selecting it opens a **Growing number of completed tasks** prompt once. **Yes** opens that setting under [Settings > Tasks](/docs/macos/settings.md#completed-tasks); **No** changes nothing, and your completed tasks stay as they are. ### Excluding a List from Done[​](#exclude-from-done "Direct link to Excluding a List from Done") Right-click the list → **Exclude from 'Done'**. Useful for shopping lists or scratch lists where the long history of completed items is just noise. ## Sync Exclusion[​](#exclude-from-sync "Direct link to Sync Exclusion") Beyond Focus List visibility, you can also stop a list from syncing entirely. Open **2Do > Settings > Sync > Exclusions** and tick the lists that should stay local to this Mac. This is useful for sensitive content you specifically don't want in the cloud, or for staging lists you don't want propagated. ## Indicators on List Names[​](#indicators "Direct link to Indicators on List Names") Excluding a list from *All* or from *Today* marks its leading color band in the Lists Panel with a small hidden-from-focus icon, a permanent reminder that the list's contribution to a Focus List has been customised. Excluding a list from *Done* carries no indicator. To change those visibility options, right-click the list and choose the matching command: **Exclude from 'All'**, **Include in 'Today'**, and so on. To change sync exclusion, use **2Do > Settings > Sync > Exclusions**. ## Counters Next to List Names[​](#counters "Direct link to Counters Next to List Names") Each list has one counter area next to its name, with room for two numbers: * **Overdue** (left, red): tasks, projects, and checklists with a due date in the past. * **Not Done**: dated or undated tasks, projects, and checklists that have not yet been completed. Sub-tasks are *not* counted here. Sub-task counts appear on the project indicator instead. What actually shows is set by the **Counts on lists** picker in **2Do > Settings > Today & Lists**: **None**, **Overdue items**, or **Overdue + Undone** (the default). **Not Done** is an unfinished-task count, not a count of tasks due today. When **Undone counts should include Overdue tasks** is on, overdue tasks are already included in it, so adding the two numbers would count them twice. The [Dock badge](/docs/macos/settings.md#dock-badge) uses its own option under **Settings > Alerts**. --- # Getting Started with 2Do for Mac This tutorial walks you through setting up 2Do for Mac and gives you a tour of every meaningful feature in the app: capture, organization, scheduling, focus, search, sync, and the small touches that make daily use feel right. Each section is brief; click through to the dedicated page when you want the full reference. ## Introduction[​](#introduction "Direct link to Introduction") 2Do is a flexible personal task manager for macOS. It scales from a simple list of errands to a full GTD-style planning system, and it's been carefully shaped by years of feedback from professionals, students, and lifelong list-keepers. There's no wrong way to use it: keep it a one-list scratchpad or push it into deep multi-project territory, and the same tools sit a click away either way. 2Do's main features include: * **[Lists and List Groups](#lists)**: color-coded lists you can group, lock, archive, or keep out of *All* and *Today*. * **[Projects, Checklists, Sub-tasks](#task-types)**: combine simple tasks with structured outcomes. * **[Task Sections](#task-sections)**: divide a list or your Inbox into named sections, by hand or with Apple Intelligence. * **[Multiple Windows](#multiple-windows)**: open several independent windows, each with its own selection, search, and layout. * **[Widgets](#widgets)**: put any list on your desktop or in Notification Center, and tick tasks off without opening the app. * **[Quick Entry](#quick-entry)**: capture system-wide, even when 2Do isn't running (powered by the 2Do Alarm Helper). * **[Natural Language Input](#natural-language-input)**: type a new task the way you'd say it and 2Do fills in the date, time, repeat, tags, and the rest. * **[Mail to 2Do](#mail-to-2do)**: a private email address for your Mac; anything sent to it becomes a task. * **[Quick Open](#quick-open)**: jump to any task or list from a Spotlight-style search. * **[Smart Lists and Smart Filters](#smart-lists)**: saved searches that behave like real lists; an extremely powerful filter syntax lives behind the search bar. * **[Tags, Tag Groups, and Pausing](#tags)**: context tools you can switch on and off in seconds. * **[Markdown notes](#notes-markdown)**: format notes in Markdown, with auto-detected links and inline date stamps. * **[Link tasks together in notes](#task-links)**: type `@{...}` to cross-reference any task; links resolve by title, even across your devices. * **[Work with Claude (Co-Work)](#co-work)**: let Claude create, update, and organise your tasks through 2Do's built-in automation server. * **[Multi-Task Actions](#multi-task)**: defer, schedule, share, or move many tasks with drag-and-drop, menus, and shortcuts. * **[Redesigned alarms with repeating sound](#alarms)**: reminders that can keep nudging until you notice them. * **[Calendar events in your lists](#calendar-today)**: see your Apple Calendar day above Today, or keep it in view across all your lists. * **[Import from other apps](#import-export)**: bring tasks in from Things, OmniFocus, or a calendar file. * **[Sync your way](#choose-sync)**: Dropbox, iCloud CalDAV, Custom CalDAV, Todoist, Apple Reminders, or Toodledo, with WebDAV coming soon. Pick what fits and stay. * **[Share lists and collaborate](#list-sharing)**: work with other 2Do users over iCloud or your local Wi-Fi network. * **[Backup restoration browser](#backups)**: selectively restore individual lists from any backup. ## The Walkthrough Tutorial[​](#walkthrough "Direct link to The Walkthrough Tutorial") The first time you open 2Do, a short **walkthrough** introduces the parts of the window and the ideas behind them. It isn't a one-time thing either: **Help > Walkthrough Tutorial** reopens it whenever you want, so you can come back to it once you've used the app for a week and the later sections mean more. ## Permissions[​](#permissions "Direct link to Permissions") After installing 2Do (from the [Mac App Store](https://apps.apple.com/us/app/2do/id477670270?mt=12) or the [direct trial](https://www.2doapp.com/2do-mac/)), open the app and start using it. macOS asks for access when a feature needs it: * **Notifications**: used for [task alerts](/docs/macos/alarms-and-nagging.md) and reminder windows. * **Location Services**: used when you add locations or use [Nearby](/docs/macos/nearby-locations.md). * **Calendar / Reminders Access**: Calendar access is used when you show [calendar events above your lists](/docs/macos/calendar-integration.md). Reminders access is used when you sync with [Apple Reminders](/docs/macos/sync-with-reminders.md). * **Contacts**: used by [Actions](/docs/macos/actions.md) when you attach contact-based calls, messages, emails, addresses, or URLs to a task. If you deny a permission by mistake, open **System Settings > Privacy & Security** or **System Settings > Notifications**, find 2Do, and enable the access you need. ## Choosing How You Sync[​](#choose-sync "Direct link to Choosing How You Sync") 2Do treats sync as your bridge between devices, never a requirement to keep your data with us. Sync lives in one place: open **2Do > Settings > Sync > Setup** and pick a provider from the **Account Type** pop-up. Pick the method that fits you: * **[iCloud](/docs/macos/sync-with-icloud.md)**: recommended. Syncs through the iCloud account you are already signed in to, with no separate password. Everything syncs, including Smart Lists, tags, tag groups, list groups, locations, and attachments. * **[Dropbox](/docs/macos/sync-with-dropbox.md)**: carries nearly every task property, plus List Groups, Tag Groups, Smart Lists, and Search Presets. * **[Apple Reminders](/docs/macos/sync-with-reminders.md)**: your tasks show up in Apple's Reminders app while 2Do keeps your projects and sub-tasks intact. * **[Todoist](/docs/macos/sync-with-todoist.md)**: sync tasks, projects, tags, dates, durations, and starred status with your Todoist account. * **[Toodledo](/docs/macos/sync-with-toodledo.md)**: for the Toodledo ecosystem; some features map with caveats. * **[iCloud CalDAV](/docs/macos/sync-with-icloud-caldav.md)**: Apple-hosted CalDAV sync. Requires an Apple Account app-specific password. * **[Fastmail](/docs/macos/sync-with-fastmail.md)**: its own entry in the Account Type picker; sign in with your Fastmail address and an app password. * **[Yahoo](/docs/macos/sync-with-caldav.md)** and **[Fruux](/docs/macos/sync-with-caldav.md#fruux)**: built-in CalDAV entries of their own, each needing only a username and password. * **[Custom CalDAV](/docs/macos/sync-with-caldav.md)**: ownCloud / Nextcloud, Synology, and any other CalDAV server. * **[WebDAV](/docs/macos/sync-with-webdav.md)**: *coming soon*: sync to your own WebDAV server as plain files you control; everything syncs. If 2Do lives on a single Mac, you can leave the Account Type set to **None**. For how 2Do reconciles the two sides the first time you connect, and the rule that keeps you on one account at a time, see [Sync](#sync) below. tip If you use 2Do on iPhone, iPad, and Mac, make sure all devices use the **same** sync method. Mixing methods leads to disconnected data on each side. [Learn more](/docs/macos/sync.md). ## Importing and Exporting[​](#import-export "Direct link to Importing and Exporting") Moving to 2Do from another app? **File > Import** brings your tasks in: * **From Things…** and **From OmniFocus…**: read your existing database directly (these menu items appear only when the app is installed), mapping areas/projects, tasks, checklists, tags, dates, reminders, and repeats as closely as possible. Things headings become [sections](#task-sections). * **Calendar File (.ics)**: import the tasks (VTODO items) from any calendar file into a list you choose. Coming from **Todoist** or **Reminders**? There's nothing to import: set up two-way sync under [Choosing How You Sync](#choose-sync) above and your tasks stay connected in both apps. **File > Export** sends your data back out: * **Calendar File (.ics)**: export selected lists and their tasks as a standard calendar file. * **Spreadsheet (.csv)**: export as a spreadsheet for a quick review or archive. ![The File menu Import submenu with From Things, From OmniFocus, and Calendar File options](https://downloads.2doapp.com/resources/img/2do-mac/import.png) [Learn more](/docs/macos/import-and-export.md). ## The 2Do Window[​](#the-2do-window "Direct link to The 2Do Window") The Mac app is built around a familiar three-pane layout: ![The main 2Do window](https://downloads.2doapp.com/resources/img/2do-mac/mainhero.png) * **Lists Panel (left)**: your lists, list groups, Focus Lists, and Smart Lists, with the mini calendar at the bottom. 2Do auto-collapses this panel when the window gets narrow and re-expands it when there's room again. * **Task List (centre)**: the tasks inside the selected list, with the Sort Bar at the top. * **Utility Panel (right)**: contextual helper with **Tags** and **Locations** buttons at the top. Hide the Lists Panel via **View > Hide Lists** (`⌥⌘←`, or the **Toggle List Panel** button), and the Utility Panel via **View > Hide Tags** (`⌥⌘→`), when you want a focused, single-pane view. For a deeper anatomy of each part of the window, see [The 2Do Window](/docs/macos/the-2do-window.md). ### The Toolbar[​](#toolbar "Direct link to The Toolbar") The toolbar gives you one-click access to the most-used commands: New Task (with a dropdown for New Project and New Checklist), the [Global Search Bar](/docs/macos/search-and-jump-bars.md#global-search), [Sync](/docs/macos/sync.md), and the Utility Panel toggle. ### The Sort Bar[​](#sort-bar "Direct link to The Sort Bar") Just below the toolbar sits the **Sort Bar**, a single strip holding several controls: * Current list name on the left, with a **briefcase button** that toggles [**Project View**](/docs/macos/projects-and-checklists.md#project-view) when a project or its sub-task is selected. * Click the **current list name** to open the [**List Jump Bar**](/docs/macos/search-and-jump-bars.md) and jump to any list, project, or checklist by name. In a focused project, clicking the name exits Project View instead. * On the right: a **scheduled-visibility toggle** (clock icon) for revealing tasks hidden by [Smart Scheduling](/docs/macos/focus-lists.md#smart-scheduling), the **sort method** dropdown with an ascending/descending arrow, and the [**Focus Filter**](/docs/macos/focus-filter.md) toggle. Each list remembers its own sort and Focus settings. ### Mini Calendar[​](#mini-calendar "Direct link to Mini Calendar") A compact month calendar lives just below the Lists Panel, and scrolls from one month to the next. It does more than display the date: * **Busy days**: days with tasks starting or due are marked with a color tint that deepens as the number of tasks rises (**Heat Map**, the default), with small **Dots**, or not at all, set under **Settings > Appearance > Mini Calendar**. Future occurrences of repeating tasks are marked too, so a glance shows what's coming. * **Click** a day to filter the Task List to that day; click again to clear. Clicking a busy day in the future shows exactly which tasks land on it, including upcoming repeats. * **Click and drag** across days to filter to a date range. * **Drag a task onto a date** to defer it. The calendar appears if it was hidden, and holding the task over the top or bottom weeks moves to the previous or next month. * **`⌥`-click** any date to create a new task with that day as its due date. [Learn more](/docs/macos/mini-calendar.md). ### Search and Jump Bars[​](#search-and-jump-bars "Direct link to Search and Jump Bars") 2Do has four distinct find surfaces, each tuned for a specific kind of "find me this" moment: * **Global Search Bar** (`⌘F`): filter the task list with Smart Filter syntax; save the filter as a Smart List. * **Task Find Bar** (bare `F`): jump the selection to a task by title without filtering. * **List Jump Bar** (bare `J`): jump to a list in the sidebar by name. * **Tag Search Bar** (bare `/`): find a tag in the Tags panel by name. See the dedicated [Search and Jump Bars](/docs/macos/search-and-jump-bars.md) page for the full breakdown. ### Collapsing Sort Groups[​](#collapse-sections "Direct link to Collapsing Sort Groups") When the Task List is grouped into sections (by date, priority, list, and so on), **`⌘`-click a section header** to collapse or expand **all** sections at once. 2Do remembers each section's collapsed state per list, so a list you like tidy stays tidy. These are the groups a sort creates; for sections you name yourself, see [Task Sections](#task-sections). ### Duration Totals[​](#duration-totals "Direct link to Duration Totals") When tasks in a section have durations, the section header shows their total next to its title, such as *2h 45m*, so you can see how much time each day or group needs. Select two or more tasks and the Sort Bar shows how many are selected and their total duration. See [Duration Totals](/docs/macos/dates-and-durations.md#duration-totals). ### Section Heat Bars[​](#heat-bars "Direct link to Section Heat Bars") Whenever a list has more than one section, a slim rail of **heat bars** runs along the task list's right edge, one small bar per section. Click a bar, or drag along the rail, to jump straight to that section, and rest the pointer on a bar to see the section's title. For the sections a sort creates, such as *Today*, the bar's length and the number in its tooltip show how many tasks the section holds; for [sections you name yourself](#task-sections), they don't. See [Section Heat Bars](/docs/macos/the-2do-window.md#heat-bars). ### Show Last Selected Task[​](#last-selected-task "Direct link to Show Last Selected Task") Lost your place after jumping around? **View > Show Last Selected Task** (`⇧F5`) returns you to the last task you had selected, switching lists or focused projects as needed and revealing the task even if a Focus Filter or search would normally hide it. Press it again to keep stepping backward through recently selected tasks. ## Multiple Windows[​](#multiple-windows "Direct link to Multiple Windows") Open as many independent windows as you like with **File > New Window** (`⌃⌥⌘N`), or right-click the Dock icon and choose **New Window**. A new window starts as a clone of the active one, then goes its own way. Each window keeps its own selection, search field and scope, scroll position, window size, and panel visibility, so you can keep a project open in one window while triaging your Inbox in another. Extra windows persist and reopen the next time you launch 2Do. (A list's sort order and Focus Filter belong to the list itself, so two windows showing the same list share those.) ![Two independent 2Do windows open at once](https://downloads.2doapp.com/resources/img/2do-mac/multiwindow.png) [Learn more](/docs/macos/multiple-windows.md). ## Appearance[​](#appearance "Direct link to Appearance") 2Do ships with a range of themes and **follows your Mac's system appearance automatically**. In **2Do > Settings > Appearance**, a Light / Dark switcher at the top lets you choose which theme 2Do wears in Light mode and which it wears in Dark mode; the app then swaps between them whenever macOS changes. To keep a single look all the time, assign the same theme to both slots. Appearance is set per device. ![The Appearance settings pane with the Light and Dark switcher and theme cards](https://downloads.2doapp.com/resources/img/2do-mac/appearance_set.png) ## Widgets[​](#widgets "Direct link to Widgets") 2Do's widgets keep your tasks in view without the app in front of you. Put them on the **desktop** (macOS 14 and later) or in **Notification Center**, and they refresh as your tasks change. * **List** (small, medium, large): the tasks of any one list you pick, including Focus Lists and Smart Lists, with live overdue and remaining counts in the header. Medium and large add a floating `+` button for capturing a task; large can also show due dates and each task's home list. * **Today**: a medium widget fixed to your *Today* list, with a calendar day tile beside what's on for the day. Click a task to jump to it in 2Do, or click its checkbox to complete it right on the widget (medium and large widgets, macOS 14 and later). To change what a widget shows, right-click it and choose **Edit "2Do"…**. [Learn more](/docs/macos/widgets.md). ## Lists and List Groups[​](#lists "Direct link to Lists and List Groups") There are three kinds of lists in 2Do, each shown in the Lists Panel: * **Focus Lists** (built-in): *All*, *Today*, *Starred*, *Scheduled*, *Done*. Saved perspectives across all your tasks. * **Lists**: your own, holding tasks, projects, and checklists. Color-coded, optionally grouped, optionally locked. * **Smart Lists**: saved searches that behave like real lists. *Inbox* sits above the Focus Lists when **Getting Things Done® Inbox** is turned on. It's a real list of its own, not a Focus List. Create a list with **File > New > New List** or the `[+]` button at the bottom of the Lists Panel. Each list has a name, a color, a sort order, a Focus rule, and an optional lock. List colors help you spot where a task belongs when several lists are shown together in *All* or *Today*. To organize related lists, create a **List Group** via **File > New > New List Group**. Drag lists into it and collapse the group when you don't need to see what's inside. ### Counters Next to List Names[​](#counters "Direct link to Counters Next to List Names") Each list shows two counters: * **Undone** (right): number of dated or undated tasks, projects, and checklists not yet completed. Sub-task counts appear on the project / checklist icon, not the list. * **Overdue** (left, red): tasks past their due date. The counts **animate** (digits roll like a number wheel when a value changes), and you choose what they show under **Settings > Today & Lists > Counts** (*None*, *Overdue items*, or *Overdue + Undone*). Values above 999 show as *999+*. A single **glowing dot** can also appear on a list row: white when the list has tasks due today, red when it has overdue tasks (red wins when both apply). The dot never appears on the *All*, *Done*, or *Scheduled* rows. A **lock icon** indicates a locked list. ### The Disclosure Triangle[​](#disclosure-triangle "Direct link to The Disclosure Triangle") If a list contains projects or checklists, a small **disclosure triangle** appears next to the list icon. Click it to reveal every project and checklist inside the list; clicking any of them highlights it directly in the task list. ![A project expanded to reveal the tasks inside it](https://downloads.2doapp.com/resources/img/2do-mac/smallproj.png) ### Excluding a List from Focus Lists[​](#exclude-from-focus-lists "Direct link to Excluding a List from Focus Lists") Some lists shouldn't contribute to *All* or *Today*: Someday lists, archives, recurring chores you only want surfaced by their alarms. Right-click a list in the Lists Panel and choose the matching **Include in...** or **Exclude from...** option for *All*, *Today*, or *Done*. A small visibility indicator appears next to the list name once any toggle is on. ![Right-clicking a list to include or exclude it from Focus Lists](https://downloads.2doapp.com/resources/img/2do-mac/excludefromall.png) ### Hiding Unwanted Lists[​](#hiding-lists "Direct link to Hiding Unwanted Lists") Distinct from Lock and Exclude, you can also **hide** lists from the sidebar entirely (including built-in Focus Lists you never use). Open **2Do > Settings > Security > Privacy**, where the **List Visibility** section shows a switch for every list; turn a list off to hide it. On Dropbox sync, this preference syncs across devices. [Learn more](/docs/macos/settings.md#security-privacy). ### Archiving a List[​](#archiving-lists "Direct link to Archiving a List") Finished with a list but not ready to delete it? Right-click it and choose **Archive List**; it steps out of your active workspace and can be restored any time from **2Do > Settings > Security > Archived**. See [Archiving a List](/docs/macos/lists-and-list-groups.md#archiving). ### Getting Things Done® Inbox and Default Capture List[​](#gtd-inbox "Direct link to Getting Things Done® Inbox and Default Capture List") Two related options under **2Do > Settings > Tasks**, in the **New Tasks** section: * **Getting Things Done® Inbox**: when on, *Inbox* is your true capture surface; new tasks from Quick Entry and the share extension land there for triage. While it's on, **Always Use Default List** is switched on for you and can't be changed. * **Always Use Default List**: every new task goes to the chosen default list regardless of which list was selected when you created it. For more, including the indicators that appear next to a list name, see [Lists and List Groups](/docs/macos/lists-and-list-groups.md#indicators). ## Focus Lists[​](#focus-lists "Direct link to Focus Lists") The top of the Lists Panel always shows your **Focus Lists**: * **All**: every task across every list, except those hidden by a paused tag, scheduled to start in the future, or in a list excluded from *All*. * **Today**: tasks due today, plus tasks whose duration window covers today. Depending on your **Today & Lists** settings, Today can also include overdue tasks, starred tasks, and tasks you are still working on. * **Starred**: every starred task. * **Scheduled**: tasks with a future start date currently hidden by [Smart Scheduling](/docs/macos/focus-lists.md#smart-scheduling). * **Done**: completed tasks. Above them sits the optional **Inbox**, which appears once **Getting Things Done® Inbox** is turned on. It's a real list where new captures land for triage, not a Focus List. Use `⌘1`–`⌘5` to jump between *All*, *Today*, *Starred*, *Scheduled*, and *Done*. Use `⌘0` for the Inbox when it's enabled. For the per-list deep dive, including each list's exact membership rules, see [Focus Lists](/docs/macos/focus-lists.md). ## Calendar Events in Your Lists[​](#calendar-today "Direct link to Calendar Events in Your Lists") 2Do can show your **Apple Calendar** day right above your tasks, so appointments and tasks sit side by side. Out of the box the events appear above **Today**; turn on **Show Calendar Events in Lists** and they stay in view across your regular lists and Focus Lists too. Set it up under **2Do > Settings > Calendar**: grant Calendar access, pick where the bar appears, and uncheck any calendars you'd rather leave out (new calendars are included automatically). The events are **read-only** (2Do displays them but never edits them), and the bar stays out of Project View, Smart Lists, and search. A small toggle inside the bar switches between a compact timeline and an expanded day view. ![The Today list with the Calendar Day Bar of Apple Calendar events pinned above it](https://downloads.2doapp.com/resources/img/2do-mac/calendarevents.png) [Learn more](/docs/macos/calendar-integration.md). ## Tasks, Projects, and Checklists[​](#task-types "Direct link to Tasks, Projects, and Checklists") 2Do has three task types that work together: * **Task**: a single standalone item. Can carry notes, tags, dates, alerts, location, and an action. Add a sub-task and it becomes a project. * **Project**: a parent for related tasks. Each child carries its own properties (dates, alerts, tags) and shows up individually in Focus Lists. * **Checklist**: a parent for items that only matter together. Children **cannot** carry their own dates (they inherit scheduling from the checklist), though they can carry tags; the whole checklist behaves as one item in Focus Lists. Create with **File > New > New Task** (`⌘N`), **New Project** (`⌥⌘N`), **New Checklist** (`⌃⌘N`), or **New Sub-Task** (`⌃⌥N`). Convert between types via **Task > Convert** at any point. ![Projects and checklists in 2Do](https://downloads.2doapp.com/resources/img/2do-mac/projects.png) ### Project View[​](#project-view "Direct link to Project View") When you're inside a project, **Task > Toggle Project View** (`⌥⌘J`) collapses everything else and leaves only the project's tasks. Useful when you want to work on one plan without the rest of the list in view. ### Project / Checklist from Selection[​](#from-selection "Direct link to Project / Checklist from Selection") Select a handful of existing tasks → right-click → **New > Project from Selection** (or **Checklist from Selection**). The selection becomes children of a new parent. For more, see [Projects and Checklists](/docs/macos/projects-and-checklists.md). ## Task Sections[​](#task-sections "Direct link to Task Sections") Divide a long list, or your Inbox, into named sections such as *Bookings*, *Packing*, and *At Home*. Add one with **File > New > New Section** (`⌃⌥⇧⌘N`), then drag tasks, projects, and checklists into it. The list's sort still applies inside each section, so a list sorted by due date shows its own date groups in every section. Collapse the sections you aren't working on, drag section titles to reorder them, or move a section to another list with all of its tasks. On a Mac with Apple Intelligence, right-click a list's name in the sidebar and choose **Auto-Create Sections** to have 2Do put the loose tasks into new, named sections. **Auto-Name Section** in a section's menu names it after its tasks. Both read only your task titles, and the work happens on your Mac. [Learn more](/docs/macos/task-sections.md). ## Task Completion Feedback[​](#completion-feedback "Direct link to Task Completion Feedback") When you mark a task done (or undone) from the task list, 2Do plays a short **completion sound**; toggle it under **Settings > General > Sounds > Play task completion sounds** (on by default). Clear a list entirely and its empty state shows a short **celebration**: confetti, balloons, fireworks, a trophy, and other randomized animations (the *Starred* list adds a shooting star). Cleared search results and empty Smart Lists stay quiet, so celebrations only mark real "all done" moments. ## The Task Editor[​](#task-editor "Direct link to The Task Editor") Every task in 2Do can carry a rich set of details, all visible in the editor: ![The inline task editor in the main 2Do window](https://downloads.2doapp.com/resources/img/2do-mac/editor.png) * **Title and notes**: the headline and any free-form context. Notes support **Markdown**, auto-detected links, and inline **`@{…}` links to other tasks**. See [Notes, Markdown, and Links](/docs/macos/notes-and-markdown.md). Drop in timestamps via **Edit > Insert Time Stamp** or the notes toolbar's **Insert Date & Time** chip. * **List selector**: move the task between lists from inside the editor. * **[Start date and Due date](/docs/macos/dates-and-durations.md)**: type a natural date or time straight into the field (each has a date segment and a time segment with autocomplete), or pick from the dropdown. Type **None** to clear a date, **No Time** to clear just the time. * **[Due time and Duration](/docs/macos/dates-and-durations.md#duration-due)**: a specific deadline and an estimated length. * **[Priority](/docs/macos/stars-and-priorities.md)**: set from the priority button at the right of the task row, which opens a small menu ordered **None / High / Medium / Low**, plus **Star**. * **[Tags](/docs/macos/tags.md)**: comma-separated; new tags created on the fly, with autocomplete as you type. * **[Location](/docs/macos/nearby-locations.md)**: a place on the map, useful for the Locations panel's Nearby view and for location alerts on iPhone and iPad. * **[Action](/docs/macos/actions.md)**: turns the task itself into a click: Call, Message, Mail, Visit, URL, Google. * **[Alerts](/docs/macos/alarms-and-nagging.md)**: one or many, relative to dates or fixed to a specific date and time, with optional sound. * **[Recurrence](/docs/macos/repeating-tasks.md)**: repeat with flexible rules. * **Attachments**: pictures, audio notes, file links. The editor opens inline, so you can keep your place in the task list while filling in the details you need. For the full reference, see [The Task Editor](/docs/macos/task-editor.md). ### Copying and Linking a Task[​](#editor-copy "Direct link to Copying and Linking a Task") The editor's top-bar **Copy** chip opens a menu with more than a plain copy: * **Copy**: the full task, same as `⌘C`. * **Copy Title** / **Copy Notes**: just the text you want. * **Copy Embeddable Link**: the task's `@{Title}` token; paste it into another task's notes for a live inline link. * **Copy Shareable Link**: a `twodo://` deep link that reopens this exact task. ### Editor Shortcuts and Picker Presets[​](#editor-shortcuts "Direct link to Editor Shortcuts and Picker Presets") While editing, set priority without touching the mouse: **`⌥⌘0`/`⌥⌘1`/`⌥⌘2`/`⌥⌘3`** for None / Low / Medium / High, and **`⌥⌘S`** to toggle the star. You can also jump straight to a field's picker: **`⌘;`** (Recurrence), **`⌘'`** (Alerts), **`⌘B`** (Action), and more. Once a picker is open, press **`⌥1`–`⌥6`** to choose a preset instantly. Each chip shows its own `⌥N` hint: in the Recurrence picker `⌥1` is Daily and `⌥2` is Weekly, and in the Alerts picker `⌥2` adds a "5 minutes before" reminder. ### Quick Look: Preview Without Opening[​](#quick-look "Direct link to Quick Look: Preview Without Opening") Press **Spacebar** with a task selected and a redesigned Quick Look panel shows the full multi-line title, Markdown-rendered notes, dates, alarms, attachments, a prominent action card, and (for projects / checklists) a percentage-of-completion bar. The panel stays open as you step through the list with the up/down arrow keys, refreshing live, and its own copy menu mirrors the editor's. Press **Spacebar** again or `⌘W` to close. ### Hover Priority and Star[​](#hover-priority "Direct link to Hover Priority and Star") You don't have to enter edit mode to change priority or star a task: **hover the mouse over the right side of any task row** and the **priority button** appears. Click it for a small menu ordered **None / High / Medium / Low**, plus **Star**. ## Natural Language Input[​](#natural-language-input "Direct link to Natural Language Input") Type a new task the way you would say it. 2Do marks the details it recognizes with a soft capsule and fills in their fields as you type. A tag you type appears after you add a space, leave the title, or save. The detected text is taken out of the title when you save, along with helper words such as `starting` that lead into it. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-mac/videos/nlpmac_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-mac/videos/nlpmac_poster.png) ``` Pack the school bag tomorrow at 7pm #family => due tomorrow 7:00 PM, tag family Renew the passport on 5 September !!! => due 5 September, High priority Tidy the desk every weekday at 5pm => due the next weekday at 5:00 PM, repeats Monday to Friday Home repairs from 19 July until 21 July => starts 19 July, due 21 July Post the letters /errands => saved to the Errands list ``` A date on its own is the due date. A start word such as `starting`, `starts`, `begins`, or `from` in front of a date sets the **start date** instead, and it can lead a range so the task gets a start and a due date in one line. Dates, times, start dates, ranges, repeats, alerts, durations, priority, stars, tags, lists, and locations you have already saved can all be typed this way, in any of ten languages. Each language has its own supported words and word order, so not every everyday phrase is recognized. Turn it on or off per surface under **2Do > Settings > Tasks > New Tasks**, or for a single task from the chip in the editor's top bar. [Learn more](/docs/macos/natural-language-input.md). ## Notes, Markdown, and Links[​](#notes-markdown "Direct link to Notes, Markdown, and Links") Task notes are more than a plain scratch area. **Markdown** is styled live as you type (bold, italics, headings, lists, quotes, code, strikethrough, and links), and the **Markdown Preview** chip flips the notes into a clean rendered view with clickable links. The underlying text you save stays plain Markdown, so nothing is locked into a proprietary format. 2Do also finds every URL, email, and file path in your notes; the **Open Links in Notes** chip lists them all, and **Insert Date & Time** stamps the current date or time at the caret in any format you like. ![A task's notes with Markdown styling and a linked task](https://downloads.2doapp.com/resources/img/2do-mac/markdown.png) [Learn more](/docs/macos/notes-and-markdown.md). ### Linking to Other Tasks[​](#task-links "Direct link to Linking to Other Tasks") Notes can point at other tasks. Type **`@{`** in any note and a picker opens at the cursor: leave it empty to see your recent tasks, or keep typing to filter by title, then press Return to insert an **`@{Title}` link**. Click that link later and 2Do jumps to the task in its list. The editor's **Copy Embeddable Link** chip puts the same token on the clipboard for whichever task you have open. A link is only the task's title, not a hidden identifier, so you can type one by hand on any device and it resolves everywhere your notes sync: `Blocked by @{Order parts}` written on your iPhone is already live when you reach your Mac. The trade-off is that titles are what get matched, so give tasks you link to distinctive names. [Learn more](/docs/macos/task-links.md). ## Dates and Durations[​](#dates-and-durations "Direct link to Dates and Durations") A task in 2Do has up to three time-shaped properties (**Start Date**, **Due Date**, and **Duration**), each independently optional. Together they decide when a task is visible, when it's hidden as Scheduled, and how far in advance 2Do should remind you about it. * **Just a Due Date**: appears in *Today* on the day, then becomes overdue until you complete it. * **Just a Start Date**: hidden until the start date arrives, then appears in the list. * **Start + Due**: hidden before start, visible during the working window, surfaces in *Today* on the due date. * **Due + Due Time + Duration**: the duration creates an effective start time before the deadline. A task due at **3:00 PM** with a **30-minute duration** becomes active around **2:30 PM**. * **Due + Duration**: the duration acts as a date-only lead-up window, useful for tasks that need preparation before the due date. Tasks with a future start date are hidden by [**Smart Scheduling**](/docs/macos/focus-lists.md#smart-scheduling); reveal them via the *Scheduled* Focus List, the clock icon on the Sort Bar, or **Task > Show Scheduled** (`⌘K`). A due date with no due time has no specific clock time attached. If you'd like new dated tasks to inherit a preferred time of day automatically, set a **Default Due Time** under **Settings > Tasks**. You can also type dates straight into the title of a new task, including start dates such as `starting Monday`: see [Natural Language Input](/docs/macos/natural-language-input.md). Learn more: [Dates and Durations](/docs/macos/dates-and-durations.md). ## Stars and Priorities[​](#stars-and-priorities "Direct link to Stars and Priorities") Two ways to mark a task as *more important*, with deliberately different jobs: * **Star**: *I want this in front of me right now.* Personal, ephemeral, easy to flip on and off. The Starred Focus List collects every starred task. * **Priority**: *This task is intrinsically important.* Stable, ordered (None / Low / Medium / High). Priority drives sort order and is a first-class field in Smart Filters. Set priority with bare `0`/`1`/`2`/`3` (when the Task List has focus), `=`/`-` to increase/decrease, or by clicking the **priority button** at the right of a task row and picking from its menu (**None / High / Medium / Low**, plus **Star**). With Apple Intelligence turned on, right-click a selection and choose **Edit Priority > [Auto-Prioritize](/docs/macos/auto-prioritize.md)** to have 2Do work out a priority for every selected task. For the decision tree on when to use which, see [Stars and Priorities](/docs/macos/stars-and-priorities.md). ## Quick Entry[​](#quick-entry "Direct link to Quick Entry") Quick Entry is 2Do's system-wide capture window. Press **`⌃⌘Space`** (the default hotkey, changeable under **2Do > Settings > General**) from anywhere on your Mac to bring up a focused editor. Keep **Launch 2Do Alarm Helper on System Startup** enabled; the Helper powers Quick Entry and 2Do's alarms, and keeps both working even when 2Do isn't running. ![Quick Entry on Mac](https://downloads.2doapp.com/resources/img/2do-mac/quickentry.png) * Uses the same task editor style as the main app, with the fields you need for fast capture. * Optionally appears **centred above the currently focused window** for multi-monitor setups. * Drag and drop **files** onto the 2Do dock icon to open Quick Entry pre-filled with a file link. * Share **selected text or a web page** from another app with **Add to 2Do** (the Share or Services menu) to open Quick Entry pre-filled. * Within 2Do, `⇧⌘2` opens Quick Entry without the global hotkey. * Type the task the way you'd say it and [Natural Language Input](/docs/macos/natural-language-input.md) fills in the date, time, tags, and more as you go. For more, see [Quick Entry](/docs/macos/quick-entry.md). ### Pasting Multiple Tasks at Once[​](#multi-paste "Direct link to Pasting Multiple Tasks at Once") Copy a chunk of text from another app (bullet points from an email, lines from a document), paste into 2Do (`⌘V`), and **one task is created per non-empty line**. With a project or checklist selected first, they become sub-tasks of the parent. ## Mail to 2Do[​](#mail-to-2do "Direct link to Mail to 2Do") Give your Mac its own private, receive-only email address: anything sent to it lands in 2Do as a task. Forward a flight confirmation from your phone, send yourself a thought from the office, or point an automation at it; the subject becomes the title and the plain-text body becomes the notes. Subject instructions like `due(tomorrow)`, `priority(!!!)`, `list(Work)`, and `tag(home)` file the task as it arrives, and a body of numbered lines becomes a checklist. Enable it under **2Do > Settings > Mail to 2Do** (the pane appears when your license is eligible). Mail is encrypted for this Mac the moment it arrives and deleted as soon as the task is delivered. ![The Mail to 2Do settings pane showing the private address](https://downloads.2doapp.com/resources/img/2do-mac/mail_set.png) [Learn more](/docs/macos/email-to-2do.md). ## Quick Open[​](#quick-open "Direct link to Quick Open") Quick Open is a Spotlight-style jump box for your whole task database. Press **`⇧⌘O`** (or **Edit > Quick Open...**) and a search panel drops into view, ready to type. Leave the field empty and it lists your **recently modified tasks** and **recently accessed lists**; start typing and it matches tasks and lists by title. Press **Return** to open the top hit: a task jumps to and focuses itself in its list, a list simply switches to it. It's the fastest way to reach something without hunting through the sidebar. Quick Open is distinct from [**Quick Entry**](/docs/macos/quick-entry.md), which *creates* a new task, and from the [**Search Bar**](/docs/macos/search-and-jump-bars.md), which filters the current view in place. Quick Open is a transient overlay that jumps you anywhere in the app and then dismisses. ![The Quick Open panel showing recent tasks and matched lists](https://downloads.2doapp.com/resources/img/2do-mac/quickopena.png) [Learn more](/docs/macos/quick-open.md). ## Tags[​](#tags "Direct link to Tags") Tags attach context to a task without depending on which list it's in. * Common patterns: GTD contexts (`home`, `phone`, `waiting`), people, energy levels, status flags. * Group related tags into [**Tag Groups**](/docs/macos/tags.md#tag-groups) for tidier management. * Filter the Task List by clicking a tag in the Tags panel; click more tags to combine them, and click again to remove one from the filter. * Click the **eye** chip at the bottom of the Tags panel to narrow the panel to the tags used by the tasks currently on screen; click it again to show every tag. * Sort a list by **Tag** and each section header shows the task's full tag set as readable, comma-separated tag names (untagged tasks gather under *No Tags*). ### Showing and Hiding Tag Names[​](#tag-names "Direct link to Showing and Hiding Tag Names") By default, tag bubbles appear right on each task row. Prefer a cleaner list? Turn off **Settings > Appearance > Task List > Always show tag names** and the bubbles hide behind a small indicator; **hold Option (`⌥`)** any time to reveal them while held. ### Pausing a Tag[​](#pause-tag "Direct link to Pausing a Tag") Any tag can be **paused**. When a tag is paused, every task carrying that tag is hidden from view automatically: *All*, *Today*, list views, search. Paused tags stay in your library; only their tasks change visibility. Show paused tasks without resuming the tag via **Task > Show Paused** (`⌘U`) or **Task > Show Scheduled & Paused** (`⇧⌘K`). For more, see [Tags](/docs/macos/tags.md). ## Smart Lists, Smart Filters, and Search[​](#smart-lists "Direct link to Smart Lists, Smart Filters, and Search") A **Smart Filter** is anything you can describe in 2Do's search bar: a keyword, a tag query, a date range, a combination. A **Smart List** is a Smart Filter that's been **saved** as a permanent entry in the sidebar. The same search engine powers the [Global Search Bar](/docs/macos/search-and-jump-bars.md#global-search) and Smart Lists, with two modes: * **Soundex**: sound-alike matching, so *plumver* can find *plumber*, *Steven* can find *Stephen*, and *alexnder* can find *Alexander*. * **Full Text**: precise matching with exclusions, `OR`, and wildcards. For example, `new job` requires both words, `new job -find` excludes *find*, and `new*` matches words like *new*, *newer*, and *newest*. Reserved keywords let you build structured filters: **`type:`** (priority, dates, action types, attachments, status, structure), **`tags:`**, **`taggroups:`**, **`locations:`**, **`lists:`**, **`groups:`**, and **`modified:` / `created:` / `completed:`**. **`lists:`** limits (or, with `!`, excludes) tasks by list name, searching across *every* list regardless of what's selected, while **`taggroups:`** pulls in every tag under a named Tag Group. Combine tokens with `AND`, or place a standalone **`OR`** between them for alternatives: ``` type: hiprio AND duethisweek tags: ~ OR !waiting type: overdue OR tags: urgent ``` The first line finds high-priority tasks due this week that aren't tagged `waiting`; the `~` keeps tasks with no tags in the results. The second finds tasks that are overdue **or** tagged `urgent`. Save with the `[+]` button next to the search field. Common Smart Lists: *This Week*, *Stalled*, *Waiting On*, *High Priority*, *Errands Nearby*. note By default, opening a project or checklist keeps your active search or Smart List applied to its sub-tasks. Turn **Settings > Today & Lists > Inherit Search** off if you'd rather see a project's full contents unfiltered. For the complete reference and recipe library, see [Smart Lists, Smart Filters, and Search](/docs/macos/smart-lists.md). ## The Focus Filter[​](#focus-filter "Direct link to The Focus Filter") The Focus Filter switches a list between everything it holds and only the tasks matching the conditions you pick. Click the Focus button in the Sort Bar (or press `⌘J`) to toggle it on. Each list remembers its own focus choices. The Focus Filter uses a built-in condition menu: for example *High Priority*, *Today*, *This Week*, or *Starred*. For more detailed filters such as a specific tag or location, save a Smart List. For more, see [Focus Filter](/docs/macos/focus-filter.md). ## Multi-Task Actions[​](#multi-task "Direct link to Multi-Task Actions") Select multiple tasks (`⌘`-click or `⇧`-click), then act on the whole selection with the keyboard: * `D`: Defer the selection by a relative offset. * `K`: Schedule the selection to a specific date. * `T` / `Y`: Set Due Today / Due Tomorrow. * `S`: Star the selection; `⌃S` to unstar. * `0`/`1`/`2`/`3`: Set priority None / Low / Medium / High. * `L` / `⌥L`: Tag / Untag. * `M`: Move to another list. * `⌘D`: Duplicate. You can also drop the selection on a **list** in the sidebar (move; `⌥` to copy), on **Today** (set due today), on **Scheduled** (opens the schedule picker), on **Starred** (star), on **Done** (complete), on a **tag** in the Tags panel (apply tag), or on a **date** in the mini calendar (set due date). Smart Lists do **not** accept drops; they're virtual. For date changes across several selected tasks, use `D` or **Task > Defer...** to open the batch date dialog and shift the selection together. ![Batch editing due dates for multiple selected tasks](https://downloads.2doapp.com/resources/img/2do-mac/batchdefer.png) ### Move To and Copy To[​](#move-copy-to "Direct link to Move To and Copy To") Right-click a selection and the task menu offers **Move To ▸** and **Copy To ▸** submenus that list every eligible list, grouped just like the sidebar. A list that holds projects or checklists expands into a nested submenu, so you can drop the selection straight into a specific project or checklist as sub-tasks. Just-moved tasks surface together at the top or bottom of their sort group (depending on the sort direction) so you can see where they landed. For more, see [Multi-Task Actions](/docs/macos/multi-task-actions.md). ### Sharing Tasks[​](#sharing "Direct link to Sharing Tasks") Two ways to send a copy of tasks elsewhere: * **Edit > Copy** (`⌘C`): plain text representation. Paste into Mail, Notes, Messages. * **Task > Share**: the macOS Share menu with the selection bundled (Mail, AirDrop, Messages, etc.). For a single task, drag it from the task list onto the Desktop and 2Do writes a **`.twodo` file** carrying its full detail; another 2Do user can drop that file onto the [Dock icon](/docs/macos/quick-entry.md#dock-drop) to import it. Right-click a selection and choose **Export Selection to CSV...** to send just those tasks to a spreadsheet. See [Importing and Exporting](/docs/macos/import-and-export.md#export-twodo). Sending a copy this way is one-way; recipients do not receive later edits. To work on a list together instead, use [list sharing](#list-sharing). ## Repeating Tasks[​](#repeating-tasks "Direct link to Repeating Tasks") Make any task repeat with flexible rules: * **Presets**: Daily, Weekly, Every 2 weeks, Monthly, Quarterly, Yearly (`⌥1`–`⌥6` while the rule is still *Never*). * **Custom**: every N days/weeks/months/years, or specific days of the week, or a given weekday of each month (*the second Tuesday*). * **End conditions**: never, after N occurrences, on a specific date. The most important choice: **Repeat from Due Date** vs **Repeat from Completion**. The first is for fixed schedules (rent on the 1st); the second is for chores that restart when you finally do them (change your car's oil every 3 months, water the plants every few days). For more, see [Repeating Tasks](/docs/macos/repeating-tasks.md). ## Alarms and Repeating Sound Alerts[​](#alarms "Direct link to Alarms and Repeating Sound Alerts") A task can carry one alert or many, relative to its due date or start date, or fixed to a specific date and time. Alerts can also play a sound. 2Do offers two delivery methods, chosen in **Settings > Alerts** under **Notifications method**: * **2Do** (default): redesigned alarm cards that stack in the top-trailing corner of whichever display your pointer is on. Each card shows the task title, when it fired, its list, notes teaser, action, and tags, and can keep playing its sound until you dismiss it. The **Sound alerts repeat until dismissed** row under **2Do > Settings > Alerts** (General tab, **2Do Notifications** section) sets the interval: **Never**, **Every 2 mins** (the default), **Every 5 mins**, or **Every 10 mins**. The stack is draggable, and because alarms are delivered by the 2Do Alarm Helper, cards fire even when 2Do itself isn't running. * **Notification Center**: alerts appear alongside other apps and are managed by macOS. Each 2Do alarm card carries buttons to **Complete**, **Close**, **Snooze**, **Open** the task, or perform its action. The snooze menu offers **5 minutes**, **15 minutes**, **1 hour**, **This evening**, and **Tomorrow morning**, with the last two showing the exact time they'll land on. ![A 2Do alarm alert card with its actions](https://downloads.2doapp.com/resources/img/2do-mac/alarmwindow.png) ### Automatic Alerts[​](#automatic-alerts "Direct link to Automatic Alerts") Under **Settings > Alerts > Default Reminders**, 2Do can add a reminder to dated tasks for you automatically: * **Remind me of tasks with a due time**: fires at the due time, or an offset before it like *5 minutes before*. * **Remind me of tasks with a due date**: for tasks without a due time, fires on the due date (midnight) or an offset before it. To silence 2Do's alarm cards while a macOS Focus is on, see [macOS Focus Filters](#macos-focus-filters). For more on alerts, see [Alarms and Nagging](/docs/macos/alarms-and-nagging.md). ## macOS Focus Filters[​](#macos-focus-filters "Direct link to macOS Focus Filters") macOS 13 and later let apps hook into **Focus** modes. Add 2Do to a Focus in **System Settings > Focus > (your Focus) > Focus Filters > Add Filter > 2Do**, turn on **Silence 2Do Alarms**, and 2Do's custom alarm cards stay hidden and silent whenever that Focus is active. Anything that fires while suppressed is held back and revealed when the Focus ends. Prefer a blanket rule? **Settings > Alerts > Silence custom alarms during any Focus** does the same thing for *every* Focus, without adding a per-Focus filter. Either way, this affects only the **2Do** alarm method; it's separate from the in-app [Focus Filter](/docs/macos/focus-filter.md) that hides non-matching tasks in a list. [Learn more](/docs/macos/system-focus-filters.md). ## Actions[​](#actions "Direct link to Actions") Every task can carry an **Action** that turns the task itself into something you can *do*: * **Call**: open your chosen calling app for a saved number or contact. * **Message**: SMS / iMessage. * **Mail**: pre-fill a new email. * **Visit**: open an address or saved map location in your chosen map app. * **URL**: open a link in your default browser. * **Google**: run a web search using saved search text. Click the action button on the task row (or press `P`) to perform it. For more, see [Actions](/docs/macos/actions.md). ## Nearby and Locations[​](#nearby "Direct link to Nearby and Locations") Attach a location to a task and 2Do becomes context-aware: * The task can appear under **Nearby** in the **Locations** panel. * A **Visit** action for the same address can open it in your chosen map app. * The same location can sync to iPhone and iPad for Nearby Alerts. The **Locations** panel is where you create and manage locations, with a **Nearby** selector inside it. Open the utility panel on the right, then click its **Locations** button at the top. Drag a location onto a task to assign it, or assign it directly from the editor. For more, see [Nearby and Locations](/docs/macos/nearby-locations.md). ## Sync[​](#sync "Direct link to Sync") Providers and setup are covered in [Choosing How You Sync](#choose-sync) above. Once you are connected, sync behaves like this: * 2Do keeps a **single active sync account** at a time; connect one, then click **Change Account** if you ever need to switch (Dropbox uses **Link Account** / **Unlink**). * Each provider's **What syncs across your devices** panel spells out exactly what travels and what "stays on this Mac." * When both this Mac and the account already hold user data, 2Do asks how to reconcile the two sides: **Replace Local Data**, **Replace Server Data** (not offered for Todoist or Apple Reminders), or **Merge** (matches items where it can and keeps both copies when something was created independently on each side; available for every method, but slow with a large number of tasks). * A master **Enable Sync** switch turns syncing on or off, a per-device **Sync automatically** switch lets you sync manually when you prefer, and the **Exclusions** tab keeps chosen lists out of sync entirely. For setup details and provider-specific caveats, see [Sync](/docs/macos/sync.md). warning When 2Do asks whether to **Replace Server Data** or **Replace Local Data**, pause and choose carefully. Use **Replace Local Data** when the cloud already has your latest tasks, and **Replace Server Data** only when this Mac has the data you want to keep. Choose **Merge** only when you are unsure, or when both sides hold changes you need to keep; it can take a very long time with many tasks. See [Merge vs Replace](/docs/macos/sync.md#merge-vs-replace). ## List Sharing and Collaboration[​](#list-sharing "Direct link to List Sharing and Collaboration") Share a list over iCloud to plan a trip with friends or work through a project checklist with a colleague. Right-click the list name in the sidebar and choose **Share via iCloud…**, then invite people and choose who can edit. Open **Window > Sharing** and select **iCloud** to see the lists you own and those shared with you. Task content, sections, and manual task order are shared. Your list name, color, list sort, Focus filters, and alert choices remain personal. Tasks use floating local time by default; turn on **Fixed Time Zone** for a shared deadline that must mean the same moment to people in different time zones. See [Share Lists over iCloud](/docs/macos/icloud-list-sharing.md) for setup and examples. It requires macOS 14 or later, or iOS 18 or iPadOS 18 or later, with a supported version of 2Do. The shared list uses iCloud separately from the sync service for your other lists. The **Wi-Fi LAN** section in the same window lets you [find lists shared over Wi-Fi](/docs/macos/list-sharing.md) by people on your trusted local network, without a cloud account. That option requires the publishing device to stay awake and reachable and remains available on macOS 13. ## Backups[​](#backups "Direct link to Backups") 2Do automatically backs up your local database on a schedule you choose (every 24 or 48 hours) and makes a safety backup before a **Replace Local Data** sync. Use **Save a Copy…** (from a backup's **⋯** menu in **Settings > Backups**) to keep an extra copy in iCloud Drive, Dropbox, or another safe location. Restore from **2Do > Settings > Backups**. Open a backup's **⋯ menu > Restore…** (or **Restore from File…**) to launch the restore browser, where you can **pick individual lists** to bring back. **Restore Selected** is non-destructive; it duplicates the chosen lists (regular lists and Smart Lists) into a new **Restored** group without touching your existing data. **Restore Everything…** does a full destructive restore and relaunches the app. 2Do has **no trash or recycle bin**. Deleting a task removes it straight away, so `⌘Z` is your immediate undo and a backup is the way back after that. See [Recovering Deleted Tasks](/docs/macos/backups.md#deleted-tasks). For more, see [Backups](/docs/macos/backups.md). ## Password Protection[​](#password-protection "Direct link to Password Protection") Lock individual lists or the whole app behind a password; Touch ID is supported on capable Macs. Locked lists stay hidden until you unlock them. Auto-lock can lock 2Do again after a chosen period of computer inactivity. For more, see [Password Protection](/docs/macos/password-protection.md). ## Notifications and Overdue Alerts[​](#notifications "Direct link to Notifications and Overdue Alerts") Beyond per-task alerts, 2Do's counts and overdue sections make missed deadlines visible. If you want an alert when a task reaches its due date, use a task-specific alert or automatic due-date / due-time alerts under [Settings > Alerts](/docs/macos/settings.md#alerts). The glowing dot on a list row flags a list holding tasks due today (white) or overdue (red). See [Alarms and Nagging](/docs/macos/alarms-and-nagging.md) for the alert options. ## Printing[​](#printing "Direct link to Printing") 2Do can print neatly formatted task lists, useful for team meetings, fridge-door checklists, or genuinely offline days. **File > Print...** (`⌘P`) opens a preview of the current list with a few choices beside it: * **Tasks**: **All Tasks** in the list, or just the **Selected Tasks** you highlighted before printing. * **Include Sections**: print the list's [sections](#task-sections), each with its title in bold and its description below. It is on by default. * **Include Sub-tasks**: print the children of projects and checklists, not only their parents. * **Include Notes**: add each task's notes under its title. Section descriptions print with **Include Sections** instead. * **Include Tags**: print each task's tags. * **Font Size**: **Small**, **Normal**, or **Large**. With **Include Sections** on, tasks that are not in a section print first, then each section in the order you gave the sections, with the list's sort groups inside it, and the *Done* group, when completed tasks are shown, last. **Selected Tasks** prints only the sections that hold your selection. With it off, the tasks print as one sorted list without section titles or descriptions: 2Do groups them again by the list's sort, so a group such as *Today* prints once rather than once in every section. Either way, only the printout changes; your tasks stay in their sections and the list keeps its sort. The preview updates as you change them, so you can see the page before committing paper to it. **File > Page Setup...** (`⇧⌘P`) sets paper size and orientation. ## Siri and Shortcuts[​](#siri-shortcuts "Direct link to Siri and Shortcuts") 2Do ships **native actions for the macOS Shortcuts app**: Create Task with dates, tags, alarms, recurrence, and structured sub-tasks, Find Tasks with property filters, Get Tasks from Collection, Set Task Completion, Move Tasks, Delete Tasks, Set Tag Paused, and more. Drag them together in Shortcuts with no scripting, run them from any trigger Shortcuts can fire (or by name with Siri), and they work **even while 2Do isn't running**. The classic **`twodo://` URL scheme** remains available for callback-style flows. For more, see [Automate with Shortcuts](/docs/macos/shortcuts-actions.md), [Siri and Shortcuts](/docs/macos/siri-and-shortcuts.md), and [URL Schemes](/docs/macos/url-schemes.md). ## Work with Claude (Co-Work)[​](#co-work "Direct link to Work with Claude (Co-Work)") 2Do ships a built-in **MCP server**, so AI agents running on your Mac can work with your live tasks. **Claude Co-Work**, the Claude Desktop extension, is the first-class way in: Claude can browse your lists, query tasks, create and update tasks, build projects and checklists, pause a tag, and open a task in the 2Do window. Ask it for the ten tasks due soonest, or hand it your travel plans and let it write the packing checklist. Install the extension in Claude Desktop, keep 2Do running while you work, and unlock any password-protected list before you ask about it. Nothing travels over the network: the extension talks to 2Do's own local automation socket, the same engine behind Shortcuts and AppleScript, so any MCP-capable agent can drive 2Do too. [Learn more](/docs/macos/mcp.md). ## URL Schemes and Automation[​](#url-schemes "Direct link to URL Schemes and Automation") The `twodo://` x-callback-url scheme can create tasks, open lists, run searches, mark tasks complete by UID on Mac, and return task identifiers to Shortcuts or other automation tools. For richer Mac automation, use the native [Shortcuts actions](/docs/macos/shortcuts-actions.md) or [AppleScript Automation](/docs/macos/applescript.md). Both share the same stable task automation API as the MCP server behind [Claude Co-Work](#co-work), covering listing, creating, updating, moving, completing, and opening tasks. Email is a capture pipe too: [Mail to 2Do](#mail-to-2do) turns anything sent to your private address into a task. iPhone and iPad have the same feature, each device with its own private address; see [Mail to 2Do for iPhone and iPad](/docs/ios/email-to-2do.md). Tasks created that way sync onward like any other task. For the complete URL reference, see [URL Schemes](/docs/macos/url-schemes.md). ## Keyboard Shortcuts[​](#shortcuts "Direct link to Keyboard Shortcuts") A handful that pay for themselves quickly: | Shortcut | Action | | --------------- | -------------------------------------------------------------------- | | `⌘N` | New Task | | `⌥⌘N` | New Project | | `⌃⌘N` | New Checklist | | `⌃⌥N` | New Sub-Task | | `⌃⌥⇧⌘N` | New Section | | `⌃⌥⌘N` | New Window | | `⇧⌘2` | Quick Entry (within 2Do) | | `⌃⌘Space` | Quick Entry (system-wide; changeable in Settings > General) | | `⇧⌘O` | Quick Open | | `⌘J` | Toggle Focus Filter | | `⌥⌘J` | Toggle Project View | | `⌘.` | Mark As Completed | | `S` / `⌃S` | Star / Unstar | | `D` / `K` | Defer / Schedule selected tasks | | `T` / `Y` | Set Due Today / Due Tomorrow | | `0`/`1`/`2`/`3` | Set Priority None / Low / Medium / High | | `=` / `-` | Increase / Decrease Priority | | `⌘F` | Find (Global Search Bar) | | `F` / `J` / `/` | Task Find / List Jump / Tag Search Bar | | `⌥⇧⌘F` | Find Options | | `⌘0`–`⌘5` | Jump to Inbox or a Focus List (All, Today, Starred, Scheduled, Done) | | `⇧F5` | Show Last Selected Task | | `Spacebar` | Quick Look | | `⌘S` | Sync | | `⌘P` | Print | For the full reference, see [Keyboard Shortcuts](/docs/macos/keyboard-shortcuts.md). --- # Share Lists over iCloud Share a list over iCloud to collaborate with other 2Do users on Mac, iPhone, and iPad. Keep a grocery list with your household, prepare a trip with friends, or work through a project checklist with a colleague. You can organize the list on your Mac while someone else adds details or completes tasks on an iPhone or iPad. Changes pass through iCloud, so you do not need to be on the same network or keep the owner's Mac awake. You invite people to one list, not your whole collection of tasks. The person who shares it is its **owner** and controls who can edit or only view it. ## Before You Start[​](#requirements "Direct link to Before You Start") Everyone needs a version of 2Do that includes iCloud list sharing. Each person must be signed in to iCloud on their device with their own Apple Account, using Apple's **System Settings** on a Mac, or the **Settings** app on iPhone or iPad. 2Do uses that device account for sharing; there is no separate iCloud sign-in inside 2Do. Participating Macs require **macOS 14 or later**. iPhones and iPads require **iOS 18 or iPadOS 18 or later**; see their [sharing guide](/docs/ios/icloud-list-sharing.md). 2Do still supports macOS 13 for other features, but that version of macOS cannot participate in iCloud list sharing. Older 2Do versions, 2Do for Android, Apple's Reminders app, and web browsers cannot use these shared lists. Check the devices you need before moving an existing list into sharing. Your other lists keep their sync service You do not need to select iCloud in **2Do's Sync settings**. List sharing works independently of that choice: your other lists can use Dropbox, Todoist, another service, or no sync service at all. [Wi-Fi sharing](/docs/macos/list-sharing.md) remains available for people on the same local network. ## Share an Existing List[​](#share-existing "Direct link to Share an Existing List") 1. Right-click or Control-click the **list name in the sidebar**, then choose **Share via iCloud…**. 2. Read the confirmation and click **Share**. The list moves into **Shared Lists** and switches to iCloud sharing. 3. In Apple's sharing screen, choose who to invite and whether they may edit or only view the list. Send the invitation using one of the offered options. ![The confirmation that appears before you share a list via iCloud](https://downloads.2doapp.com/resources/img/2do-mac/icloud-sharing-share-confirm.png) How this list syncs Sharing an existing list moves it out of your normal sync account. The list, including its tasks, projects, checklists, and sections, continues syncing between your supported Apple devices through iCloud sharing. Your other lists keep using your chosen sync service. With the recommended [iCloud sync method](/docs/macos/sync-with-icloud.md), the shared list continues to use the same iCloud account, with no extra sync setup. If you use Todoist, Apple Reminders, CalDAV, or another sync service, that service no longer syncs this list. Changes made on the remote service are no longer pulled into the shared list in 2Do, and changes to the shared list are not sent back to that service. Your shared list iCloud Sharing Your Apple devices Your other lists Your usual sync service Your devices Your shared list keeps syncing between your own Apple devices. Only regular lists can start iCloud sharing. Smart Lists, Focus Lists, the Inbox, and lists already shared over Wi-Fi do not offer this action. Put the work into a regular list first, or stop its Wi-Fi sharing. ## Create a New Shared List[​](#create "Direct link to Create a New Shared List") Choose **Window > Sharing**, select **iCloud**, then click **New Shared List…**. 2Do creates an empty list and opens Apple's invitation screen. When you close that screen, the new list is selected in the main window so you can rename it. ![The Sharing window with iCloud selected, lists shared by you and with you, and a selector for Wi-Fi LAN](https://downloads.2doapp.com/resources/img/2do-mac/icloud-sharing-window.png) The **Sharing** window keeps both sharing methods in one place. Use **iCloud** for invitations and the lists you share with other people. Choose **Wi-Fi LAN** to [find lists shared on your local network](/docs/macos/list-sharing.md#discover). Name the list before inviting people If you want the invitation to start with a particular name, [create and name a regular list](/docs/macos/lists-and-list-groups.md#creating) first, then use **Share via iCloud…**. Later renames are personal and do not rename other people's copies. Closing the invitation screen without inviting anyone leaves the list in place. Right-click its name and choose **Manage Sharing…** when you are ready to invite people. ## Accept an Invitation[​](#accept "Direct link to Accept an Invitation") Open the invitation on a supported Mac, iPhone, or iPad with 2Do installed, and follow Apple's prompts to accept it in 2Do. Sign in with the Apple Account the owner invited. The list appears in **Shared Lists**, marked as shared with you. Accepting the same invitation again reuses the existing copy. Open 2Do on your other supported Apple devices using that same iCloud account to receive the list there too. Each device keeps its own name, color, and view settings for the list. ## Work on the List Together[​](#shared-content "Direct link to Work on the List Together") With editing permission, you can add, change, complete, and delete tasks. Those changes affect the shared work for everyone. The shared content includes: * Task titles, task notes, attachments, completion, priorities, stars, and task actions such as opening a link. * Start and due dates, times, durations, time-zone choices, repeats, and task reminders. * Projects, checklists, and their sub-tasks. * Section names, order, and task membership. * Tag and location assignments, dragged task order, and project sorting. Plan a trip together For a trip, one person might arrange sections for bookings, packing, and places to visit while another adds reservation details. That organization is shared. You can still choose to view the list by due date or apply a Focus filter without changing someone else's view. Task details can identify who added a task and who last edited it. They do not provide a complete edit history. When people change the same detail before syncing, one change may replace the other. Task-note edits can merge, but discussion is better kept in your usual messaging app than in simultaneous changes to the same sentence. Downloaded content remains readable offline. With editing permission, you can make changes and send them when you reconnect. Open 2Do to receive updates; use the **Sync** toolbar button or `⌘S` to request a sync. A push notification can bring changes in sooner, but delivery depends on the network and operating system. Do not rely on every update appearing immediately while an app is closed. ## Keep Your Own View[​](#personal-settings "Direct link to Keep Your Own View") These settings are personal. They are not sent to other people through list sharing: | Your choice | What it affects | | ------------------------------- | --------------------------------------------------------------------------------------------------------- | | List name and color | The label and color on this Mac. The initial name comes from the shared list; later renaming is personal. | | List group and sidebar position | Where this copy sits among your lists. | | List sort and view options | Your selected sort field and direction, combined view, and completed-task display. | | Focus | Your Focus filter, inclusion in All, Today, and Done, and personal task ordering inside Focus Lists. | | Show Paused and Show Scheduled | Which tasks your views show, without changing their shared dates. | | Visibility and expansion | Whether the list is hidden or archived locally, and which projects are expanded. | | Alerts and protection | Muting this list, snoozing an alert, and protecting your local copy with a password. | | List notes | Notes about the list itself. Task notes are shared with everyone who has access. | List settings belong to the local copy. Some app-wide preferences, including Show Paused and Show Scheduled, can sync between **your own devices** using your iCloud account. That is separate from sharing a list with another person. Tag and location assignments are shared. Receiving a task does not change the paused state of an existing personal tag. Tags and locations may also sync through your own ordinary sync service. Silence alerts on your Mac For a quieter list, open **2Do > Settings > Alerts > Exclusions** and turn the list off under **List Alerts**. This silences its alerts on this Mac without changing anyone else's reminders. Changing the reminder on the task itself is a shared edit. See [Silencing Alerts for Specific Lists](/docs/macos/alarms-and-nagging.md#list-alerts). A local password does not hide shared content A local password protects access on this Mac; it does not hide shared tasks, task notes, or attachments from invited members. Use an unshared list for private tasks, and keep personal list notes separate from the task notes others can read. ## Choose the Right Time for Everyone[​](#time-zones "Direct link to Choose the Right Time for Everyone") **Floating time is the default.** A task set for 9:00 AM keeps that local clock time when you travel. Two people in different time zones both see 9:00 AM, even though their 9:00 AM happens at different moments. This is useful for a routine tied to the local time of day. Use **Fixed Time Zone** for a shared deadline or online meeting that must happen at the **same moment**. A task fixed at 5:00 PM in Dubai appears at 1:00 PM in London in January. Each person sees the deadline in their own local time. | What you need | Which to use | | ------------------------------------------------------- | ---------------------------------- | | A grocery or packing list with no precise deadline | No time, or a date without a time. | | A routine you want at 9:00 AM wherever you are | Leave **Fixed Time Zone** off. | | One submission deadline for people in several countries | Turn **Fixed Time Zone** on. | Open the task editor, add a start time, due time, or timed alarm, and turn on **Fixed Time Zone**. The control appears automatically for a timed task in an iCloud shared list. You do not need to turn on the general **Time Zone Support** preference to use it there. Time-zone choices are shared This choice applies to the task's timed start, due time, and timed alarms together. It is part of the shared task, so changing it affects everyone. Date-only values remain calendar dates. Completing a shared repeating task also completes it for the other members; floating time does not give each member a separate occurrence to complete. Turning fixed time on uses the Mac's current time zone, with no separate zone picker. Turning it off keeps the dates and times currently displayed on this Mac. Check those values before changing a shared task's mode. See [Floating and Fixed Time](/docs/macos/dates-and-durations.md#fixed-time) for travel, editing, and daylight-saving examples. ## Manage People and Permissions[​](#permissions "Direct link to Manage People and Permissions") Right-click a list you own and choose **Manage Sharing…** to open Apple's participant screen. Invite another person, change someone to editing or view-only access, or remove them. You can also choose **Window > Sharing**, select **iCloud**, and use **Manage Sharing** beside your list under **Shared by Me**. Editing permission includes changing and deleting shared task content. View-only members can read the list and customize their personal view, but cannot complete, reorder, or edit its tasks. Permission changes take effect on another device when it receives the update. Once access becomes view-only, pending edits cannot continue to be sent. 2Do offers private invitations, not a public list anyone with a link can join. Removing a person stops their access to future updates; it cannot erase information they have already seen or copied. ## Leave a List or Stop Sharing[​](#stop "Direct link to Leave a List or Stop Sharing") For a list someone else owns, right-click its name and choose **Leave List…**, then confirm. Your local list and its tasks are removed, and you leave the share. The owner's list and the other members are unaffected. If the owner removes you or stops sharing, the last downloaded copy stays readable with a **No longer shared** mark. It is read-only and receives no further updates. Choose **Remove List…** to remove this local copy. Accepting a new invitation from the owner can restore access to a retained copy. For a list you own, right-click its name and choose **Stop Sharing…**: * **Keep List** returns this copy to an ordinary, editable list. It can use your normal sync service again. * **Delete List** removes your list and ends sharing. * **Cancel** leaves sharing unchanged. ![The Stop Sharing confirmation with Keep List, Delete List, and Cancel](https://downloads.2doapp.com/resources/img/2do-mac/icloud-sharing-stop-confirm.png) After stopping in Apple's sharing screen If you have already stopped the share in Apple's participant screen, 2Do still asks whether to keep or delete the local list. Cancel is no longer available because sharing has ended. If the originating window closes before you choose, 2Do keeps the local list. Other members keep a read-only copy until they remove it themselves. ## Sharing and Your Sync Service[​](#sync "Direct link to Sharing and Your Sync Service") iCloud shared lists, including the owner's copy, are separate from your ordinary [sync account](/docs/macos/sync.md). They do not pass through Dropbox, Todoist, Apple Reminders, or CalDAV. You cannot use sync exclusions to stop a shared list from syncing while keeping it shared. Reset Database removes local data Your ordinary service's **Replace Local Data** action preserves shared lists and their personal settings. **Reset Database** deliberately removes the local database, including personal settings and unsent edits. It is not a routine refresh for sharing. Replace Contents affects everyone The owner can choose **Window > Sharing**, select **iCloud**, and click **Replace Contents** beside a list. This makes this Mac's copy replace the shared contents for everyone. Use it only when that is the result you want. To receive other people's latest work, use an ordinary sync instead. ## If Something Does Not Update[​](#troubleshooting "Direct link to If Something Does Not Update") ### If an invitation does not arrive[​](#missing-invitation "Direct link to If an invitation does not arrive") Apple handles iCloud invitations, and an invitation email may not reach the recipient. 2Do does not show pending invitations inside the app. If someone has not received yours, send the link manually: 1. Right-click the list you own in the sidebar and choose **Manage Sharing…**. You can also open **Window > Sharing**, select **iCloud**, and click **Manage Sharing** beside the list under **Shared by Me**. 2. Choose **Copy Link** in Apple's sharing screen and send the link to the invited person in a message or email. 3. Ask them to open it on a supported device with 2Do installed and accept using the Apple Account you invited. Copying the link does not make the list public or give access to someone you have not invited. If the person is not listed in **Manage Sharing…**, invite them there first. ### If a shared list does not update[​](#if-a-shared-list-does-not-update "Direct link to If a shared list does not update") Open 2Do on both devices, check the internet connection, and sync. Make sure each person is signed in with the Apple Account used for the invitation and still has access. Changing Apple Accounts does not transfer a share to the new account. For a failed invitation, read the error, check the account and connection, and try the invitation again. If the invitation is no longer valid, ask the owner to send a new one from **Manage Sharing…**. Interrupted work can continue on a later sync. If iCloud storage is full, make space and retry. Content that exceeds the service's size limit may stay in your local copy without reaching other people; reduce the affected task or attachment and edit it again. Check the receiving device before treating the update as delivered. Check your personal view settings If the list appears different but its content is up to date, compare personal sort, Focus, Show Paused, and Show Scheduled settings. If a deadline shows a different clock time, check [its time-zone choice](#time-zones). --- # Importing and Exporting 2Do can pull tasks in from other apps and calendar files, and push your lists back out as calendar files or spreadsheets. Everything lives under **File > Import** and **File > Export**. Import is a best-effort, one-time mapping: 2Do lines up the other app's concepts with its own as faithfully as it can, and does its best with anything that doesn't have a direct equivalent. The **Import** menu is always available, because calendar (`.ics`) import works everywhere. The **From Things…** and **From OmniFocus…** items only appear when those apps are installed on your Mac. ### Import, Not Sync[​](#why-direct "Direct link to Import, Not Sync") Syncing with Things or OmniFocus is a frequent request. Neither app, however, syncs over an open standard such as CalDAV or two-way Apple Reminders, both of which 2Do supports, so there is no route for live sync between the apps. Reading each app's local database directly is the reliable alternative, and 2Do does it **read-only**, without changing anything in the other app. Once imported, your tasks stay portable: sync onward over [CalDAV](/docs/macos/sync-with-caldav.md) or [Apple Reminders](/docs/macos/sync-with-reminders.md), or [export everything](#export-csv) as a `.csv` spreadsheet or `.ics` calendar file at any time. ## Import from Things[​](#things "Direct link to Import from Things") If Things is installed, choose **File > Import > From Things…**. 1. 2Do opens an intro dialog explaining that the import is a best-effort mapping. Click **Locate Database** (or **Cancel** to back out). 2. An open panel appears, pre-navigated to the Things database with the message *"Select a Things database package or folder containing main.sqlite."* Confirm the selection and click **Import**. 3. A progress sheet runs, then a **"Things Import Complete"** alert tells you it finished. 2Do reads the Things database directly, so Things doesn't need to be running. The structure carries over at full size: an Area becomes a **List Group**, every Project inside it becomes a **list** of its own, its headings become **sections** in that list, and its to-dos become tasks. Here's how the two apps line up: | Things | 2Do | | ----------------- | ----------------- | | Areas | List Groups | | Projects | Lists | | Headings | Sections | | To-Dos | Tasks | | Checklists | Checklist items | | Tags & Tag Groups | Tags & tag groups | | When / Deadline | Start / Due dates | | Reminders | Alarms | | Repeating To-Dos | Recurring tasks | | Someday | Someday list | The import handles these details as follows: * A Project's notes are kept as the new list's notes, and a checklist on the Project itself arrives as tasks at the top of that list. * Things headings become [sections](/docs/macos/task-sections.md) in 2Do, in the same order. The to-dos under a heading go into its section, and empty headings come across too. * A to-do with a checklist becomes a 2Do **checklist**, with its items as sub-tasks. * To-dos that sit outside any Project land in a list named **Things** (inside their Area's group, or in a *Things* group when they had no Area). Loose Someday items get their own **Someday** list. * Tags used by your imported tasks come across, and Things' nested tags become 2Do [tag groups](/docs/macos/tags.md#tag-groups). A tag applied to an Area or Project in Things is applied to each imported task instead, since 2Do lists don't carry tags of their own. * Completed to-dos keep their completion dates, and creation and modification dates are preserved. * If a group with the same name already exists in 2Do, the imported one is named *Things: (name)* rather than merging into yours. Trashed items, including trashed headings, are skipped; canceled to-dos are imported as completed tasks. ## Import from OmniFocus[​](#omnifocus "Direct link to Import from OmniFocus") If OmniFocus is installed, choose **File > Import > From OmniFocus…**. The flow is the same as Things: an intro dialog, then an open panel pre-navigated to your local OmniFocus **4** database with the message *"Select your local “Local.OmniFocusModel” database package."* If your database lives elsewhere, navigate to it manually in the same panel. 2Do reads the OmniFocus 4 local database directly. Mappings: | OmniFocus | 2Do | | ------------------ | ----------------- | | Projects | Lists | | Actions & Groups | Tasks & sub-tasks | | Inbox | Inbox | | Tags | Tags | | Flagged | Starred | | Defer & Due | Start & Due dates | | Estimated Duration | Duration | | Repeats | Recurring | ## One Import, Then It's Yours[​](#after-import "Direct link to One Import, Then It's Yours") Both imports are **one-time copies**. Things and OmniFocus keep your data in their own local databases rather than an open sync format such as CalDAV, so reading that database directly is the most faithful way to bring everything across, and 2Do reads it strictly **read-only**, so nothing changes in the other app. Nothing stays linked afterwards, either: from the moment the import finishes, the tasks are ordinary 2Do tasks, and later edits in the other app won't flow in. That also means you're free to make the result your own. Rename or merge lists, drag tasks between them, gather lists into [List Groups](/docs/macos/lists-and-list-groups.md), retag, or convert tasks into [projects and checklists](/docs/macos/projects-and-checklists.md). The import gives you a faithful starting point, not a layout you're committed to. tip **Check the result before you rely on it.** Concepts that map cleanly (lists, tasks, tags, dates, alarms, recurrence) come across faithfully, but anything without a direct 2Do equivalent is approximated or dropped. ## Import a Calendar File (.ics)[​](#import-ics "Direct link to Import a Calendar File (.ics)") Choose **File > Import > Calendar File (.ics)**, which is always available, whether or not any other task app is installed. 1. Pick an `.ics` file. The open panel is restricted to calendar files. 2. In the **"Import into:"** popup, choose the destination list. This must be a normal [list](/docs/macos/lists-and-list-groups.md), because Smart Lists and Focus lists can't be import destinations. The popup pre-selects the list you're currently viewing when it's a normal list. 3. 2Do imports the tasks as a single undoable change and shows an **"Import Complete"** alert with the count and the destination list name. Only **VTODO** items (to-dos) are imported. Calendar events (VEVENT) and journal entries (VJOURNAL) are ignored. Imported tasks flow through the same pipeline 2Do uses for CalDAV sync, so they carry their tags, locations, alarms, inline attachments, and recurrence. Every imported task is given a **fresh identity**, so importing never overwrites or merges with tasks you already have. You always get new copies. Project and checklist hierarchy is rebuilt from the file's `RELATED-TO` relationships, with parents imported first; any item whose parent isn't in the file (or that would form a loop) comes in as a top-level task. tip **Don't run the same `.ics` import twice.** Calendar import always assigns fresh identities, so a second run creates duplicates rather than updating the first copies. If the file contains no to-dos, 2Do reports *"The selected calendar file does not contain any tasks."* ## Export a Calendar File (.ics)[​](#export-ics "Direct link to Export a Calendar File (.ics)") Choose **File > Export > Calendar File (.ics)** to write your lists out as a standard calendar file. 1. A save panel appears with the default filename **`2DoList.ics`** and the message *"Exports the selected calendars and their tasks as a calendar file (.ics)."* 2. In the accessory area under **"Select calendars to export:"**, tick the checkbox for each list you want to include. A **Select all** switch checks or unchecks everything at once. 3. Use the **"Tasks to export:"** popup to choose which tasks go out: **All**, **Not Done**, or **Done**. The default is **All**. 4. Save the file. The export scope is **whichever lists you check**, not the list you happen to be viewing. Each task is written as a VTODO, and `RELATED-TO` links are emitted only between parents and children that are both inside the exported set. warning No list is pre-checked when the panel opens, and if no list is checked nothing is exported and no file is written. Make sure at least one list is ticked before you save. ## Export a Spreadsheet (.csv)[​](#export-csv "Direct link to Export a Spreadsheet (.csv)") **File > Export > Spreadsheet (.csv)** sits right beside the calendar export and works the same way: a save panel with the same list-selection accessory (labelled **"Select lists to export:"**, with **Select all**) and the same **"Tasks to export:"** popup (**All**, **Not Done**, **Done**). Choose your lists, pick the tasks to include, and save a `.csv` you can open in Numbers, Excel, or any spreadsheet app. Because both exports go by the checkboxes, you can pull a single project into its own file or write out every list at once. ### Export Just a Few Tasks[​](#export-selection "Direct link to Export Just a Few Tasks") You don't have to export whole lists. Select the tasks you want in the task list, right-click, and choose **Export Selection to CSV...**, and only the selected tasks land in the file. ### Drag a Task to the Desktop (.twodo)[​](#export-twodo "Direct link to Drag a Task to the Desktop (.twodo)") For a single task, skip the panels entirely: **drag the task from the task list onto the Desktop** (or any Finder folder) and 2Do writes it out as a **`.twodo` task file**, carrying the task's full detail. Hand the file to another 2Do user, or drop it back onto [2Do's Dock icon](/docs/macos/quick-entry.md#dock-drop) to import it as a task. Dragging a task into a text app pastes its plain-text representation instead. --- # Keyboard Shortcuts 2Do is built for the keyboard. Most shortcuts on this page are 2Do's own menu commands, so open the relevant menu in the app and you'll see the same key listed beside the command. A few (`Return` to edit, `Esc` to end editing, `Spacebar` for Quick Look) aren't menu items at all; the task list handles them directly. Standard macOS commands such as `⌘W`, `⌘M`, `⌘Q`, and `⌘H` work as they do everywhere and aren't repeated here. Many of the most-used shortcuts are **bare keys** (no modifier required) that fire when the Task List has focus and one or more tasks are selected. They look minimal but they're the heart of how power users drive the app. ## Capture[​](#capture "Direct link to Capture") | Shortcut | Action | | ----------------------- | ---------------------------- | | `⌘N` | New Task | | `⌥⌘N` | New Project | | `⌃⌘N` | New Checklist | | `⌃⌥N` | New Sub-Task | | `⇧⌘N` | New List | | `⌘T` | New Tag | | `⇧⌘T` | New Tag Group | | `⇧⌘2` | Quick Entry (within 2Do) | | `⌃⌥⇧⌘N` | New Section | | `⌥⇧⌘N` (with selection) | New Project from Selection | | `⌃⇧⌘N` (with selection) | New Checklist from Selection | The system-wide Quick Entry hotkey is **`⌃⌘Space`** by default and user-configurable in **2Do > Settings > General**, and 2Do warns you if a chord is already taken by macOS or another app. ## Focus Lists and Navigation[​](#focus-lists "Direct link to Focus Lists and Navigation") | Shortcut | Action | | ----------- | -------------------------------------------- | | `⌘0` | Inbox | | `⌘1` | All | | `⌘2` | Today | | `⌘3` | Starred | | `⌘4` | Scheduled | | `⌘5` | Done | | `⌘↑` / `⌘↓` | Previous List / Next List | | `⌘J` | Toggle Focus Filter | | `⌥⌘J` | Toggle Project View | | `⌃⌘F` | Toggle Full Screen | | `⌃⌥⌘N` | New Window | | `⇧⌘1` | Window > 2Do: brings the main window forward | | `⇧F5` | Show Last Selected Task | Each window keeps its own selection, search, and layout. See [Multiple Windows](/docs/macos/multiple-windows.md). **Show Last Selected Task** steps back through the tasks you visited most recently, switching lists as needed to reveal each one. ## Find and Jump[​](#find "Direct link to Find and Jump") The three "find" surfaces have **bare-letter** shortcuts when the relevant area has focus. The Cmd-prefixed variants are the menu-driven Find: | Shortcut | Action | | -------- | ----------------------------------------------------------------------- | | `⇧⌘O` | Quick Open: jump to any task or list from a floating search field | | `⌘F` | Find: opens the global search | | `⌥⇧⌘F` | Find Options: configure where Find searches | | `⌥⌘F` | Toggle Search Scope (in the find bar) | | `F` | Task Find Bar: quickly jump to a task by title (focus on the Task List) | | `J` | List Jump Bar: jump to a list by name (focus on the Lists Panel) | | `/` | Tag Search Bar: find a tag by name (focus on the Tags panel) | ## Editing a Task[​](#editing "Direct link to Editing a Task") These shortcuts open the editor pre-focused on a specific field. Useful for changing one thing across many tasks rapidly: | Shortcut | Action | | -------- | ----------------------------------------------------------------- | | `Return` | Edit selected task (handled by the task list, not a menu command) | | `Esc` | End editing (handled by the task list, not a menu command) | | `⌘↩` | Task > End Task Editing | | `⌘.` | Mark As Completed | | `⌥⌘.` | Mark As Not Completed | | `⌘D` | Duplicate | | `⌘L` | Edit List (move) | | `⌘'` | Edit Alerts | | `⌘/` | Edit Dates | | `⌘E` | Edit Note | | `⌘R` | Edit Tags | | `⌘B` | Edit Action | | `⌘G` | Edit Location | | `⌘;` | Edit Recurrence | | `⌃⌥R` | Remove All Tags | ## In-Picker Quick Presets[​](#picker-presets "Direct link to In-Picker Quick Presets") The Action, Alarm, Recurrence, Date, and Duration pickers show a row of preset "chips" when you first open them. Hold **Option** and press the number shown on a chip (`⌥1`–`⌥6`) to apply that preset instantly. Each chip prints its own `⌥N` hint, so there's nothing to memorise. Open the picker first with `⌘B` (Action), `⌘'` (Alerts), `⌘;` (Recurrence), `⌘/` (Dates), or `X` (Duration...). | Picker | `⌥1` | `⌥2` | `⌥3` | `⌥4` | `⌥5` | `⌥6` | | -------------- | --------- | --------- | ------------- | ---------- | --------- | ------ | | **Action** | Call | Message | Mail | Visit | URL | Google | | **Alarm** | 0 minutes | 5 minutes | 15 minutes | 30 minutes | 1 hour | 1 day | | **Recurrence** | Daily | Weekly | Every 2 weeks | Monthly | Quarterly | Yearly | | **Date** | Today | Tomorrow | 2 Days | Week | - | - | | **Duration** | 30 mins | 1 hour | 2 hours | None | - | - | The Action chips show icons rather than words, and the only text on each one is its `⌥N` hint, so the names in the table above describe what each icon does: call, message, mail, visit, URL, and Google. Those Action chips appear only until an action is set, and the Recurrence chips only while the rule is still "Never". The Alarm chips stay visible for as long as the task can take another alarm, so you can stack several reminder offsets, up to ten per task. ## Star[​](#star "Direct link to Star") | Shortcut | Action | | -------- | ------ | | `S` | Star | | `⌃S` | Unstar | ## Priority[​](#priority "Direct link to Priority") When the Task List has focus and one or more tasks are selected, **bare number keys** set the priority directly: | Shortcut | Action | | -------- | ----------------- | | `0` | Priority None | | `1` | Priority Low | | `2` | Priority Medium | | `3` | Priority High | | `=` | Increase Priority | | `-` | Decrease Priority | (`⌘=` and `⌘-` are reserved for font-size in the View menu.) While **editing a task**, the bare number keys type into text fields, so priority uses the Option-Command variants instead: | Shortcut | Action | | -------- | --------------- | | `⌥⌘0` | Priority None | | `⌥⌘1` | Priority Low | | `⌥⌘2` | Priority Medium | | `⌥⌘3` | Priority High | | `⌥⌘S` | Toggle Starred | ## Dates and Scheduling[​](#dates "Direct link to Dates and Scheduling") The bare-key shortcuts for **adjusting dates** target Start Date and Due Date independently: | Shortcut | Action | | ----------- | --------------------------------- | | `D` | Defer...: pick a relative offset | | `K` | Schedule...: pick a specific date | | `T` | Due Today | | `Y` | Due Tomorrow | | `⌃T` | Start Today | | `E` | Due Time... | | `X` | Duration... | | `.` / `,` | Start Date: add / subtract a day | | `]` / `[` | Due Date: add / subtract a day | | `⇧.` / `⇧,` | Start Date: add / subtract a week | | `⇧]` / `⇧[` | Due Date: add / subtract a week | | `⌥,` | Remove Start Date | | `⌥[` | Remove Due Date | | `⇧⌘[` | Remove Due Time | **Remove Start Time** has no shortcut. It is on the **Task > Start Date** submenu, alongside its dated siblings above. ## Tag, Move, Convert[​](#tag-move-convert "Direct link to Tag, Move, Convert") | Shortcut | Action | | ------------- | --------------------------------------- | | `L` | Tag... | | `⌥L` | Untag... | | `M` | Move | | `⌃⌘↑` / `⌃⌘↓` | Move Up / Move Down (manual sort order) | | `⌥⇧⌘1` | Convert To a Task | | `⌥⇧⌘2` | Convert To a Project | | `⌥⇧⌘3` | Convert To a Checklist | tip Drag tasks between lists to move them. **Hold `⌥` (Option) while dragging** to *copy* them instead, leaving the originals in place, a fast way to duplicate a task into another list. See [Multi-Task Actions](/docs/macos/multi-task-actions.md) for the full set of drag targets. ## Sections[​](#sections "Direct link to Sections") With a section title selected in the task list: | Shortcut | Action | | ------------- | ------------------------------------------------------------------------- | | `Return` | Rename the section | | `←` / `→` | Collapse / Expand the section | | `⌃⌘↑` / `⌃⌘↓` | Move the selected sections up / down | | `⌘N` | New task in the selected section | | `⌘D` | Duplicate Section | | `⌘C` | Copy the selected sections | | `⌘V` | Paste copied sections after the selected section, or copied tasks into it | | `⌫` / `⌘⌫` | Delete the selected sections, keeping their tasks | You can select several section titles to move, copy, or delete them together. `⌘D` needs exactly one selected section title, and `←` and `→` collapse or expand one section at a time. With several section titles selected, `⌘N` and `⌘V` use the one that comes first in the list, and by default `Return` renames just one of them. While you edit a section, `Tab` moves between the name and the description, `⇧Return` starts a new line in the description, `Return` or `⌘Return` saves, as does clicking elsewhere in the task list, and `Esc` closes the editor without saving. See [Task Sections](/docs/macos/task-sections.md). ## Action and Open Links[​](#action "Direct link to Action and Open Links") | Shortcut | Action | | -------- | -------------------------------------------------------- | | `P` | Perform Action (call / message / mail / open URL / etc.) | | `U` | Open Links found in notes | ## View Toggles[​](#view "Direct link to View Toggles") | Shortcut | Action | | ------------- | ------------------------------------------------- | | `⌘=` | View > Font Size > Increase | | `⌘-` | View > Font Size > Decrease | | `⌘O` | Show Completed / Hide Completed | | `⌘K` | Show Scheduled / Hide Scheduled | | `⇧⌘K` | Show Scheduled & Paused / Hide Scheduled & Paused | | `⌘U` | Show Paused / Hide Paused | | `C` | Collapse Project (when a project is selected) | | `⌥⌘↓` / `⌥⌘↑` | Expand / Collapse all Projects | | `⇧⌘↓` / `⇧⌘↑` | Expand / Collapse all List Groups | | `⌥⌘←` | Show Lists / Hide Lists (the Lists Panel) | | `⌥⌘→` | Show Tags / Hide Tags (the Tags panel) | Those four Show/Hide commands (Completed, Scheduled, Paused, and Scheduled & Paused) each carry a single shortcut, and the menu title flips between *Show* and *Hide* to match what the current list is doing. The same is true of the two panel toggles. ## Sync, Print, Export[​](#sync "Direct link to Sync, Print, Export") | Shortcut | Action | | -------- | ---------------------------------- | | `⌘S` | Sync | | `⌘P` | Print | | `⇧⌘P` | Page Setup | | `⇧⌘E` | File > Export > Spreadsheet (.csv) | ## Standard Edit[​](#standard "Direct link to Standard Edit") | Shortcut | Action | | ------------------ | ------------------ | | `⌘Z` | Undo | | `⇧⌘Z` | Redo | | `⌘X` / `⌘C` / `⌘V` | Cut / Copy / Paste | | `⌘A` | Select All | **Quick Look** (`Spacebar`) previews the selected task without entering the editor. It is not an Edit-menu command, because the task list handles the key itself, and it only responds when Quick Look is switched on in **2Do > Settings > Tasks**. ## Customising Shortcuts[​](#customize "Direct link to Customising Shortcuts") The system-wide Quick Entry hotkey is configurable in **2Do > Settings > General**. Standard menu shortcuts can be remapped via **System Settings > General > Keyboard Shortcuts > App Shortcuts** like any macOS app. tip If you live in 2Do, learn five bare-key shortcuts first: `D` (Defer), `K` (Schedule), `S` (Star), `T` (Due Today), and `1`–`3` (Priority). Combined with multi-select, they cover most daily work. --- # Share Lists over Wi-Fi 2Do can share a list directly between copies of the app on the same local network: no cloud service, no separate account. One person **publishes** a list; anyone else running 2Do on the same Wi-Fi or wired network can **discover** it, **subscribe**, and, when the publisher allows it, edit tasks, with changes syncing back and forth. A single published list can be shared with several people at once. Publishing and subscribing work between Macs, iPhones, and iPads on your network. This page covers the Mac; for the iPhone and iPad side, see [Share Lists over Wi-Fi on iPhone and iPad](/docs/ios/list-sharing.md). This is a peer-to-peer feature for people on the same network. It is not a replacement for [Sync](/docs/macos/sync.md), which keeps *your own* devices in step through a service like Dropbox. Want to share with people away from this network? Use [iCloud list sharing](/docs/macos/icloud-list-sharing.md). It uses private invitations and keeps the list up to date without the publishing device staying awake. ## How It Works[​](#how "Direct link to How It Works") Sharing has two roles: * **Publisher**: the Mac that owns the list and shares it out. It stays the source of truth for that list. * **Subscriber**: anyone who finds the shared list on the network and pulls down a live copy of it. When you subscribe, 2Do imports the list as a normal local list on your Mac (a "mirror") and keeps it up to date with the publisher's copy. If the publisher shares the list **read-write**, your edits are sent back and merged into their copy too. When two people edit the same task's notes at once, 2Do combines both sets of changes, so nobody's writing is lost. ## Requirements[​](#requirements "Direct link to Requirements") * **macOS 13 (Ventura) or later** on both the publishing and subscribing Macs. Older versions can't publish or subscribe. * Both Macs must be on the **same Wi-Fi or local network**. * **Local Network permission.** On macOS 15 or later, macOS asks whether 2Do may access devices on your local network the first time 2Do needs it. The prompt reads *"2Do uses your Wi-Fi network to share task lists with nearby 2Do users, and to tell your other devices when there are changes to sync so they update sooner."* Allow it; finding shared lists and keeping them up to date won't work otherwise. You can review this later in **System Settings > Privacy & Security > Local Network**. * **The publisher's Mac must stay awake and on the network** while sharing. Subscribers only receive live changes while the publishing Mac is reachable. A published list is remembered, so quitting and reopening 2Do puts it back on the network by itself. There is nothing else to switch on: any list that qualifies below can be published, and any 2Do on the network can subscribe. tip **Keep the publisher awake.** If you're the one sharing, adjust your energy settings (or keep the app frontmost) so your Mac doesn't sleep during a working session. ## Publish a List[​](#publish "Direct link to Publish a List") 1. **Right-click** (or Control-click) the list in the source list and choose **Publish List to LAN…**. 2. In the **Publish to your local network** sheet, set: * **Shared name**: the name nearby users will see. It defaults to the list's name. Changing it here does **not** rename your local list. * **Access**: leave **Read-only** off to let subscribers edit the list, with their changes syncing back to you. Turn **Read-only** on to give subscribers a live, view-only copy that they can't change. (If the list you're sharing isn't editable to begin with, Access is locked to read-only.) * **Require a passcode**: **on by default**. 2Do generates a **6-digit code** shown as `123-456`, with buttons to copy it or generate a new one. Turn this off only if you're happy for anyone on the network to subscribe without a code. (Generating a new code while people have recently connected asks you to confirm first, since it locks out anyone still using the old one.) 3. Click **Publish**. 4. The sheet switches to its live state, "Sharing on your local network", and shows a **Recently Connected Subscribers** section covering roughly the past week. Click **Done**. The list now shows a **Published on LAN** Wi-Fi badge in your source list. Share the passcode (if you set one) with the people you want to subscribe. Publishing a protected list exposes its tasks If the list is [password-protected](/docs/macos/password-protection.md) (or the app is locked with **Lock everything**), 2Do asks you to confirm **Publish this protected list?** first. Publishing bypasses that local lock: subscribers can read (and, if read-write, edit) the tasks inside without your app password. Only publish protected lists to people you trust, and prefer keeping the passcode requirement on. Only regular [lists](/docs/macos/lists-and-list-groups.md) can be published. **Publish List to LAN…** doesn't appear for Smart Lists, [Focus Lists](/docs/macos/focus-lists.md), the Inbox, or lists you've subscribed to from someone else. ## Discover Shared Lists[​](#discover "Direct link to Discover Shared Lists") To find what others are sharing, choose **Window > Sharing**. On Macs with iCloud list sharing, select **Wi-Fi LAN** at the top of the window. On macOS 13, the window opens directly to the Wi-Fi browser. The **iCloud** section is for [lists shared by invitation](/docs/macos/icloud-list-sharing.md), including people away from your local network. In **Wi-Fi LAN**: * The **left sidebar** lists nearby Macs, each with an online/offline indicator. Your own Mac isn't shown. * Select a Mac to see the lists it's sharing on the **right**. Each row shows whether the list is **read-only** and whether it requires a **passcode**. * Use the **refresh** button at the bottom of the sidebar to re-scan the network. Keep **Wi-Fi LAN** selected while you look for a list to subscribe to. Switching to **iCloud** or closing the window ends this browsing session; lists you already subscribe to continue syncing normally. ## Subscribe to a List[​](#subscribe "Direct link to Subscribe to a List") 1. In the **Wi-Fi LAN** section of **Sharing**, click **Subscribe** next to the list you want. (The button is disabled while that Mac is offline.) 2. If the list is passcode-protected, 2Do prompts **Enter passcode**. Type the **6-digit code** the publisher gave you. A wrong code shows "That code didn't match. Try again." 3. 2Do downloads the list and adds it to your source list as a normal local list, marked **Subscribed from LAN**. You can rename the subscribed list or move it into a [List Group](/docs/macos/lists-and-list-groups.md) locally; those tweaks don't affect the publisher's copy. Alerts set on a shared list's tasks fire on your Mac too. To keep the list but silence its alarms, open **2Do > Settings > Alerts > Exclusions** and turn the list off under **List Alerts**; see [Silencing Alerts for Specific Lists](/docs/macos/alarms-and-nagging.md#list-alerts). ## Stop Sharing or Unsubscribe[​](#stop "Direct link to Stop Sharing or Unsubscribe") **If you're the publisher** and want to stop sharing: 1. Right-click the published list and reopen the sheet; the menu item now reads **Published on LAN…**. 2. Click the red **Stop Sharing** button and confirm **Stop sharing this list?**. Sharing stops immediately, the passcode is cleared, and your subscribers will no longer receive updates. tip **Hand off a list quickly.** Publish a list read-write, let a colleague on the same network subscribe and add their tasks, then **Stop Sharing** when you're done. The tasks they added remain in your original list. **If you're a subscriber** and want to leave a shared list, do either of the following: * In the **Wi-Fi LAN** section of **Sharing**, click **Unsubscribe** on that list's row, or * Right-click the mirrored list in your source list and choose **Unsubscribe List...**. Unsubscribing deletes the local list and its tasks Unsubscribing removes the subscribed list, and all of the tasks in it, from *your* Mac. The publisher's copy and everyone else's subscription are unaffected, but there's no local copy left behind on your side. (2Do won't let you unsubscribe if it would leave you with no regular lists at all.) ## Good to Know[​](#sync-behavior "Direct link to Good to Know") * **Everything in the task travels**: fields, sub-tasks, and [attachments](/docs/macos/task-editor.md), not just titles. * **Simultaneous edits sort themselves out.** If two people change the same thing at once, the newer change wins, and notes [merge](#how) rather than fight. For a list shared among a few people, it stays simple and predictable. * **Sharing and account sync work together.** You can publish a list that already syncs with your [sync account](/docs/macos/sync.md) (Dropbox, CalDAV, and so on). Edits subscribers send back land in your list like any other change, and carry on to your other devices from there. * **A subscribed copy stays on this Mac.** It's a mirror of someone else's list, so it never syncs to your own account; it's kept in step directly with the publisher instead. * **Switching a list to read-only drops subscribers' unsent edits.** Any changes they hadn't synced back yet are discarded, and their copies become view-only. * **When the publisher goes offline,** your copy stays readable from the last sync, with an amber banner letting you know. Changes resume on their own once the publishing Mac is back. ## Security & Privacy[​](#security "Direct link to Security & Privacy") For trusted networks only: traffic isn't encrypted LAN sharing is meant for **networks you trust**, such as a home or small-office Wi-Fi. Shared task data is **not encrypted** as it travels across the network. The optional **6-digit passcode** is the only gate: with it off, anyone running 2Do on the same network can subscribe and read (or, if read-write, edit) the list. Don't publish sensitive lists on public or untrusted networks. * **Changing the passcode disconnects current subscribers.** If you regenerate the code on a published list, the old one stops working right away and existing subscribers have to re-enter the new code to keep syncing. * **No approval step.** There's no per-person "accept" prompt; the passcode is the whole access control. Leave it on unless you truly want the list open to everyone on the network. * **If a passcode-protected list stops appearing,** its saved passcode may have failed to load, which can happen after restoring 2Do from a backup. 2Do keeps the list unadvertised rather than sharing it without protection. Reopen the publish sheet and generate a new passcode to start sharing it again. --- # Lists and List Groups Use lists to organize tasks for work, home, or any other part of your day. Your lists appear in the **Lists Panel** on the left. ## Three Kinds of Lists[​](#list-types "Direct link to Three Kinds of Lists") There are three kinds of lists shown in the Lists Panel: * **Focus Lists**: built-in saved perspectives across all your tasks: *All*, *Today*, *Starred*, *Scheduled*, and *Done*. Always pinned to the top of the panel. See [Focus Lists](/docs/macos/focus-lists.md) for the full reference. * **Lists**: your own lists, holding tasks, projects, and checklists. Color-coded, optionally grouped, optionally locked. The optional *Inbox* is one of these real lists. * **Smart Lists**: saved searches that behave like real lists. See [Smart Lists, Smart Filters, and Search](/docs/macos/smart-lists.md). ## Focus Lists[​](#focus-lists "Direct link to Focus Lists") The top of the panel always shows your **Focus Lists**. These are not real lists: they're saved perspectives that pull tasks from across your real lists. * **All**: every task, across every list, that isn't hidden by a paused tag or scheduled to start in the future. * **Today**: tasks due today, plus tasks whose duration window covers today. Depending on your **Today & Lists** settings, Today can also include overdue tasks, starred tasks, and tasks you're still working on. * **Starred**: tasks you've starred. * **Scheduled**: tasks with a future start date that are still hidden by [Smart Scheduling](/docs/macos/focus-lists.md#smart-scheduling). * **Done**: completed tasks. Above them, the optional **Inbox** is your GTD inbox: a real list for tasks not yet sorted into another list. New tasks captured via [Quick Entry](/docs/macos/quick-entry.md) (when the global option is set), or those that arrive through [Mail to 2Do](/docs/macos/email-to-2do.md), on this Mac or synced in from your iPhone or iPad, land here by default unless the email subject sends them to another existing list. See [GTD Inbox and Default Capture List](#gtd-inbox). New tasks pick up the focus you're viewing: a task added while *Today* is open is due today, and a task added while *Starred* is open is starred automatically. The Today behavior is on by default. Turn off **Use today's date in the Today list** under [Settings > Tasks](/docs/macos/settings.md#default-due-date) to have your default due date apply there too. Use the keyboard shortcuts `⌘1`–`⌘5` to jump between Focus Lists, and `⌘0` to open the Inbox. ### Excluding a List from Focus Lists[​](#exclude-from-focus "Direct link to Excluding a List from Focus Lists") Some lists shouldn't contribute to *All* or *Today*: a "Someday/Maybe" list, recurring chores you only want surfaced by their alarms, or a list staged for future work. Right-click the list and choose the matching command (the menu names the list itself, e.g. **Exclude from 'All'** or **Include in 'Today'**). You can independently exclude a list from: * **All** * **Today** * **Done** Sync exclusion is separate and lives under **2Do > Settings > Sync > Exclusions**. A small indicator appears next to the list name once any global-visibility option is customized. The list and its tasks are still visible when you click into the list directly; they just don't show up in the Focus Lists you've excluded them from. The same menu carries a fourth, related switch: **Exclude Completed** keeps the list's finished tasks out of view (the item reads **Include Completed** once it's on). Useful for a list that accumulates a lot of ticked-off history you never need to look at. ![Right-clicking a list to include or exclude it from Focus Lists](https://downloads.2doapp.com/resources/img/2do-mac/excludefromall.png) ## Creating a List[​](#creating "Direct link to Creating a List") * **File > New > New List**: opens a sheet to choose a name and color. * `[+]` button at the bottom of the Lists Panel. Each list has: * **Name**: what shows in the sidebar. Up to [200 characters](/docs/faqs/maximum-list-name-length.md); longer names are shortened automatically. On a CalDAV account the server stores a 25-character version of the name, while the list keeps its full name in 2Do. * **Color**: color-codes every task that belongs to the list. Useful for at-a-glance scanning when several lists' tasks appear together in *All* or *Today*. * **Sort order**: any of the sort methods, from Due Date and Priority through Tag, Duration, and Manually. * **Focus rule**: whether tasks contribute to Focus Lists. * **Lock**: see [Password Protection](/docs/macos/password-protection.md). You can edit any of these later from **Task > Edit List** with the list selected, or by right-clicking the list. tip Color-code lists by domain, not by priority. Use [Tags](/docs/macos/tags.md) for cross-list contexts and the [Focus Filter](/docs/macos/focus-filter.md) for what's important right now. ### Duplicate List Names[​](#duplicate-names "Direct link to Duplicate List Names") Two lists are allowed to share the same name. A list's identity is internal, not its name, so renaming accepts any non-empty title even if another list already uses it; name your lists whatever reads best for you. note The `lists:` search token matches **every** list with a given name. `lists: Work` selects tasks from all lists named "Work" at once and can't tell two identically-named lists apart. Keep names unique where you rely on `lists:` to target one specific list. See [Smart Lists, Smart Filters, and Search](/docs/macos/smart-lists.md) for the search tokens. ## List Groups[​](#list-groups "Direct link to List Groups") A growing system needs a way to keep the sidebar calm. **List Groups** are folders for lists. Create one with **File > New > New List Group**, drag lists into it, and collapse the group when you don't need to see what's inside. * **Expand all List Groups** / **Collapse all List Groups**: see the **View** menu. * List groups can be color-coded too. ## Sections Inside a List[​](#sections "Direct link to Sections Inside a List") To give a long list some order without splitting it into several lists, divide it into named sections, such as *Fruit*, *Vegetables*, and *Pantry* in a grocery list. The Inbox can have sections too. The list's sort still applies inside each section, and you can collapse, reorder, and move sections with their tasks. On a Mac with Apple Intelligence, right-click the list's name in the Lists Panel and choose **Auto-Create Sections** to organize its unfinished, unsectioned tasks. It uses existing sections where they fit and creates new ones where needed. See [Task Sections](/docs/macos/task-sections.md). ## Disclosure Triangle: Jump to a Project or Checklist[​](#disclosure "Direct link to Disclosure Triangle: Jump to a Project or Checklist") If a list contains one or more **projects** or **checklists**, a small **disclosure triangle** appears next to the list icon in the Lists Panel. Click it and the panel reveals every project and checklist inside that list. Click any of them to highlight it directly in the task list, without scrolling or expanding everything inline. This is the fastest way to navigate to a specific project hidden inside a busy list. Projects and checklists **always appear here**, even when they're hidden from the task list by a [paused tag](/docs/macos/tags.md#pause) or a future start date; paused ones just render slightly **dimmed**. That's deliberate: the task list keeps your working view clean by hiding what's paused or scheduled, while the Lists Panel is for *reaching* things, so nothing you've set aside ever drops out of sight entirely. ## Reordering and Drag-and-Drop[​](#reordering "Direct link to Reordering and Drag-and-Drop") Lists are fully drag-and-droppable: * Drag a list up or down to reorder. * Drag a list onto a List Group to move it inside. * Drag tasks **onto** a list in the sidebar to move them into that list. * Hold `⌥` (Option) while dropping to **copy** instead of move. * Drag the title of a [section](/docs/macos/task-sections.md) onto a list in the sidebar to move the section there with all of its tasks. note Moving a task to another list (by drag-and-drop or **Move To**, including dropping it into a project or checklist) refreshes the task's list-entry time. Preset sorts use that time as a tie-breaker, so tasks you just moved surface together where you can see them instead of scattering into the middle of the list. Your list's sort direction decides whether they gather at the top or the bottom. ## The List Right-Click Menu[​](#list-menu "Direct link to The List Right-Click Menu") Right-clicking a list gathers everything you can do to it in one place: * **Rename...**: edit the name in place. * **Color ▸**: pick from a curated palette of swatches, or choose **Custom** to open the macOS color picker for any shade you like. * **Exclude from 'All' / 'Today' / 'Done'** and **Exclude Completed**: the visibility switches described [above](#exclude-from-focus). * **Auto-Create Sections**: uses Apple Intelligence to organize the list's unfinished, unsectioned tasks. It prefers suitable existing sections and creates new ones where needed. Shown on Macs that support Apple Intelligence. See [Auto-Create Sections](/docs/macos/task-sections.md#auto-create). * **Delete all Tasks**: empties the list but keeps the list itself, its color, and its settings. 2Do asks for confirmation first. This is the difference between it and **Delete**, which removes the list as well. * **Lock / Unlock**: see [Password Protection](/docs/macos/password-protection.md). * **Share via iCloud…**: invite people to work on the list from supported Macs, iPhones, and iPads. Owners can **Manage Sharing…** or **Stop Sharing…**; members can **Leave List…**, or **Remove List…** after access ends. See [Share Lists over iCloud](/docs/macos/icloud-list-sharing.md). * **Publish List to LAN…**: share the list with other 2Do users on your network. See [List Sharing](/docs/macos/list-sharing.md). * **Archive List**: see [Archiving a List](#archiving). * **Delete**: removes the list and everything in it. warning **Delete all Tasks** acts on the whole list at once, including tasks currently filtered out of view. `⌘Z` undoes it, but take a moment before confirming. Right-clicking a **List Group** gives you a shorter menu: **Rename...**, **Color grouped lists...** (recolors every list inside the group in one step), and **Delete**. ## Shared Lists[​](#shared "Direct link to Shared Lists") [iCloud list sharing](/docs/macos/icloud-list-sharing.md) keeps task content, sections, and manual task order up to date between invited people. You keep your own list name, color, group, list sort, Focus filters, and alert choices. View-only members can personalize that view but cannot change the shared tasks. Open **Window > Sharing** and select **iCloud** to see the lists you own and those shared with you. Sharing uses iCloud separately from your ordinary sync service. The **Wi-Fi LAN** section in the same window lets you [browse lists shared on your local network](/docs/macos/list-sharing.md#discover). ## Smart Lists[​](#smart-lists "Direct link to Smart Lists") Smart Lists also live in the Lists Panel; they're saved searches that behave like real lists. See [Smart Lists](/docs/macos/smart-lists.md). ## Locking a List[​](#locking "Direct link to Locking a List") Right-click a list and choose **Lock** to require a password before its contents are shown (the same menu shows **Unlock** afterwards). Locked lists can be excluded from Focus Lists too, so a lock can hide the list completely. For details, see [Password Protection](/docs/macos/password-protection.md). ## Archiving a List[​](#archiving "Direct link to Archiving a List") To get a list out of your active workspace without deleting it, right-click and choose **Archive List**. Archived lists are accessed from **2Do > Settings > Security > Archived** and can be restored at any time. Archived lists and their tasks stay out of active views, except Smart Lists and the *Done* Focus List. They still sync unless you also exclude the list under **2Do > Settings > Sync > Exclusions**. ## GTD Inbox and Default Capture List[​](#gtd-inbox "Direct link to GTD Inbox and Default Capture List") Two related settings under **2Do > Settings > Tasks** shape where new tasks land by default: * **Getting Things Done® Inbox**: when on, the *Inbox* Focus List is your true inbox: tasks captured from Quick Entry, the share extension, and Mail to 2Do captures without a subject-selected list, made here or synced in from your iPhone or iPad, land here for triage. The Inbox lives in a special **Collect** list group that can't be renamed or moved. * **Always Use Default List**: when on, *every* new task goes to the chosen default list, **regardless of which list you were viewing when you created it**. New tasks created while a Focus List like *Today* or *Starred* is selected still inherit that focus list's nature (they're due today or starred), but their home list is the default. The due-today part follows the **Use today's date in the Today list** setting under [Settings > Tasks](/docs/macos/settings.md#default-due-date). The combination makes capture predictable: hit `⌘N` from anywhere, capture, triage during the daily review. tip Keep your *Inbox* truly empty by reviewing it daily; anything in the Inbox is something you haven't yet decided what to do with. To send one new task somewhere else as you write it, type a slash and the start of the list name in the title, as in `Buy milk /errands` or `Clear out the loft /homeproj` for *Home Projects*. Capitals and spaces are ignored, the list picker follows along as you type, and a closing slash is optional, so `/Health/` works too. If nothing matches, the words stay in the title and the task keeps its current list. If two lists share a name, 2Do picks the one shown first in the list picker. Web addresses and file paths are left alone. A list whose name ends in a slash is matched by typing the start of its name. See [Natural Language Input](/docs/macos/natural-language-input.md). ## Indicators on List Names[​](#indicators "Direct link to Indicators on List Names") * **Undone count**: to the right of a list name, the number of dated or undated tasks, projects, and checklists that haven't been completed. Sub-task counts appear on the project / checklist icon, not the list. * **Overdue count**: to the left of the list name, in red, when a list has tasks past their due date. Always shown alongside the Undone count. * A faint **white glowing dot** indicates a task due today is hiding inside that list. A **red glowing dot** indicates an overdue task is hiding inside. * **Visibility indicator**: one or more of the list's Focus List visibility options have been changed. * A **lock icon** indicates a locked list. * A **down-arrow** indicates a collapsed group or project. These counts are **live**: each number is an animated wheel that rolls up or down the moment a task is added, completed, or moved, so the panel always reflects your current workload at a glance. See [The 2Do Window](/docs/macos/the-2do-window.md) for more on the Lists Panel and its counters, and set what the counts include under **2Do > Settings > Today & Lists**. --- # Claude Desktop MCP Extension Connect 2Do for Mac to Claude Desktop to find tasks, plan projects, and organize your work. You can ask Claude to create a packing checklist, review upcoming deadlines, or arrange tasks into sections without writing a script. In 2Do, this integration is called **Claude Co-Work**. The extension uses [MCP](https://modelcontextprotocol.io), a standard that lets AI apps use tools. Other MCP clients that support local stdio servers can use the same 2Do server. ## Requirements[​](#requirements "Direct link to Requirements") * **2Do for Mac** with the **2Do Automation Suite**. You can check for this suite in 2Do's [AppleScript dictionary](/docs/macos/applescript.md#getting-started). * [**Claude Desktop for Mac**](https://claude.ai/download) with desktop extension support. Keep 2Do running while you use the extension. If the app or a password-protected list is locked, unlock it in 2Do before asking Claude to access that data. ## Installing the Extension[​](#install "Direct link to Installing the Extension") ### Step 1: Download the extension[​](#step-1-download-the-extension "Direct link to Step 1: Download the extension") Download the latest **`2do..mcpb`** file from the [2Do extension releases page](https://github.com/BeehiveInnovations/2doapp-mcpb/releases/latest). ### Step 2: Install it in Claude Desktop[​](#step-2-install-it-in-claude-desktop "Direct link to Step 2: Install it in Claude Desktop") In Claude Desktop, open **Settings > Extensions > Advanced settings**, click **Install Extension…**, and select the downloaded file. If your organization manages Claude Desktop, its settings may limit which extensions you can install. See [Claude's desktop extension guide](https://support.claude.com/en/articles/10949351-getting-started-with-local-mcp-servers-on-claude-desktop) for installation and administrator settings. ### Step 3: Review the installation prompt[​](#step-3-confirm-the-installation "Direct link to Step 3: Review the installation prompt") Claude Desktop may show a broad access warning for a manually installed extension. The 2Do extension provides tools to read and change data in 2Do and to open items in the app. Read [Privacy and Security](#privacy) for how that data reaches Claude, then click **Install** to continue. ### Step 4: Try a request[​](#step-4-start-using-it "Direct link to Step 4: Try a request") Open 2Do, start a new chat in Claude Desktop, and ask: "List my 2Do lists." Once Claude returns your lists, try one of the requests below. After updating the app or extension, start a new chat so Claude loads the current tools. note When testing an unreleased version, use the extension package supplied with that app build. An older app may reject commands or arguments added by a newer extension. ## What You Can Do[​](#what-you-can-do "Direct link to What You Can Do") Describe what you want to do and name the relevant list, section, or task. For example: * "Show me the first 10 unfinished tasks due this week, with the earliest due first." * "Create a packing checklist in my Travel list, with tasks for my passport, charger, and medication." * "Create Bookings and Packing sections in my Travel list, then put the packing checklist in Packing." * "Move the Packing section above Bookings." * "Move the Packing section and its tasks to my Summer Trip list." * "Pause my Waiting tag, then show me which tasks it hides." Claude can also find List Groups, Smart Lists, tags, tag groups, and locations; edit task dates, notes, priorities, alarms, recurrence, and actions; and complete, duplicate, or delete tasks. It can open a task in 2Do or select a list or built-in Focus view. Each command that changes data is one **Edit > Undo** step in 2Do, including commands that change several tasks. A command that makes no change adds no undo step. ## Organizing Tasks into Sections[​](#sections "Direct link to Organizing Tasks into Sections") Sections group tasks within a normal list. You can ask Claude to create a section, add tasks to it, move tasks to another section, reorder the sections, or move a whole section to another list. These tools require extension version **0.2.0** or later and a 2Do build that supports section automation. ### Create a section and add tasks[​](#create-a-section-and-add-tasks "Direct link to Create a section and add tasks") Ask Claude to create the section in a named list, then create or move tasks into it. A section can have a title and an optional description. Titles do not have to be unique, so the tools use the `section_id` returned by 2Do to identify each section. For clients making tool calls directly: 1. Use `list_lists` to get the list's `list_id`. 2. Call `create_section` with that `list_id` and a `title`, or call `list_sections` to find an existing section. 3. Pass its `section_id` to `create_task` or `move_task`. The section already identifies the destination list; do not also pass `list_id` or `parent_task_id`. `move_task` accepts one `task_id` or a batch of `task_ids`. Moving a project or checklist keeps its children together. Moving a sub-task into a section makes it a top-level task. ### Change or clear a task's section[​](#change-or-clear-a-tasks-section "Direct link to Change or clear a task's section") Use `move_task` with the destination `section_id` to move tasks between sections, including sections in different lists. For a top-level task staying in its current list, `update_task` also accepts `section_id`. Send `section_id:null` to remove the task from its section while keeping it in the list. Omit the field to leave the section unchanged. Moving a task to its current `list_id` leaves its section unchanged too. ### Reorder or move whole sections[​](#reorder-or-move-whole-sections "Direct link to Reorder or move whole sections") To reorder sections, call `list_sections`, then pass every returned `section_id` exactly once to `reorder_sections`, in the desired order. This changes the section order; tasks keep their membership and follow the list's sort setting. The unsectioned area and Done area are not entries in this array. To move a section to another list, call `move_section` with its `section_id` and the destination `list_id`. The section is placed after that list's existing sections. All its tasks move with it, including completed and paused tasks and project or checklist children. The section keeps its title, description, and `section_id`. Calling it again with the same destination makes no further change. Task IDs can change during a move between lists. Use `query_tasks` with the section's ID to read the current top-level members, then `list_subtasks` for their children. Include `paused_filter:"include"` and `include_completed:true` when you want all members. ## Available Tools[​](#tools "Direct link to Available Tools") You do not need to remember tool names during a chat. The tables below help you review Claude's actions or write your own MCP client. MCP and [AppleScript](/docs/macos/applescript.md) use the same command names, arguments, response fields, and validation rules. For workflows in the Shortcuts app, see [Shortcuts actions](/docs/macos/shortcuts-actions.md). ### Read and Discovery[​](#read-tools "Direct link to Read and Discovery") | Tool | What it does | | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | | `list_lists` | List normal lists. Set `include_archived:true` to include archived lists. | | `list_sections` | List saved sections in a normal list, in manual order. Requires `list_id`. | | `list_list_groups` | List List Groups. | | `list_smart_lists` | List saved Smart Lists. | | `list_tags` | List tags and their `paused` state. Optionally filter by `tag_group_id`. | | `list_tag_groups` | List tag groups. | | `list_locations` | List task locations. | | `get_default_task_destination` | Return the editable list used for new tasks by default, with its `destination_id`, `list_id`, and `title`. | | `get_task` | Get one task, project, checklist, or sub-task by `task_id`. | | `query_tasks` | Find tasks in a section, list, List Group, Smart List, or Focus view. With no target, use All. Supports search, date filters, sorting, and pagination. | | `list_subtasks` | List a task's children. Supports `paused_filter`, `sort`, and `include_completed`. | | `selected_tasks` | Return the tasks selected in the Mac app. | `query_tasks` accepts at most one of `section_id`, `list_id`, `list_group_id`, `smart_list_id`, or `focus`. The Focus values are `all`, `today`, `starred`, `scheduled`, and `done`. A List Group query uses the same dynamic task view as selecting that group in the sidebar. A section query returns its top-level tasks. Use `search` for a literal phrase of 1 through 256 characters. It matches task titles, notes, tag names, and location names without regard to case or accents. It does not interpret query operators or Boolean expressions. Filter dates with `due_on_or_after`, `due_on_or_before`, `start_on_or_after`, and `start_on_or_before`. These fields use `yyyy-MM-dd` and include both endpoints. A task without the relevant date does not match that filter. Use `sort` to order results by title, due date, start date, priority, duration, creation date, modification date, or completion date. Use `offset` and `limit` to request a page of results; `offset` starts at zero and `limit` must be at least `1`. Responses include `item_count` for the returned page and `total_count` for all matches. `include_completed` defaults to `true`; set it to `false` for unfinished tasks only. ### Changes[​](#mutation-tools "Direct link to Changes") | Tool | What it does | | -------------------- | ---------------------------------------------------------------------------------------------------- | | `create_section` | Create a section at the end of a normal list. Requires `list_id` and `title`; accepts `description`. | | `move_section` | Move a section and all its tasks to another list. Requires `section_id` and destination `list_id`. | | `reorder_sections` | Set a list's section order. Requires `list_id` and all its `section_ids` in the desired order. | | `create_task` | Create a task, project, checklist, or sub-task in a list, section, or parent task. | | `update_task` | Change task fields, including section membership within the current list. | | `update_task_action` | Set, replace, or clear the task action. | | `delete_task` | Delete a task or a batch of tasks. | | `duplicate_task` | Duplicate a task. | | `move_task` | Move a task or batch to a list, section, or parent task. | | `complete_task` | Mark a task or batch complete. | | `uncomplete_task` | Mark a completed task or batch incomplete. | | `pause_tag` | Pause a tag. | | `unpause_tag` | Unpause a tag. | Complete, uncomplete, delete, and move accept either one `task_id` or up to 100 unique `task_ids`. 2Do validates the whole batch before applying it in order. Delete, complete, and uncomplete also accept `recursive`, which defaults to `true` and includes children. Uncomplete accepts `update_parent:true` to update a completed parent too; this requires `recursive:true`. Completing a recurring task advances it to its next occurrence. Repeating that command advances it again, so clients must not automatically retry recurring completion as though it made no further change. ### Navigation[​](#navigation-tools "Direct link to Navigation") | Tool | What it does | | ------------------- | ----------------------------------------------- | | `select_list` | Select a normal list in the Mac app. | | `select_list_group` | Select a List Group's dynamic task view. | | `select_smart_list` | Select a saved Smart List. | | `select_focus` | Select All, Today, Starred, Scheduled, or Done. | | `open_task` | Open or focus a task in the Mac app. | ## Task Editing Support[​](#task-editing "Direct link to Task Editing Support") Claude can create or update these task fields: | Field | Notes | | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | | `title`, `notes` | Task title and notes. | | `starred` | Whether the task is starred. | | `task_type` | `normal`, `project`, or `checklist`. When creating a task, this applies only to a top-level task. | | `section_id` | Create or move a task into a section. In `update_task`, assign a top-level task to a section in the same list, or use `null` to clear membership. | | `due_date`, `due_time` | Date as `yyyy-MM-dd`; time as `HH:mm`. Use `null` to clear. | | `start_date`, `start_time` | Date as `yyyy-MM-dd`; time as `HH:mm`. Use `null` to clear. | | `duration_seconds` | Estimated duration, from `0` through `2147483647` seconds. | | `priority` | `none`, `low`, `medium`, or `high`. | | `tag_update` | An `operation` (`set`, `append`, or `remove`) and `tag_ids`. | | `location_update` | An `operation` (`set`, `append`, or `remove`) and `location_ids`. | | `alarms` | Sound alarms. Omit to leave unchanged, send an empty array to clear, or send an array to replace. A task can have at most 10 total alarms. | | `recurrence` | Daily, weekly, monthly, yearly, weekdays, or custom recurrence. | | `action` | `none`, `call`, `message`, `mail`, `visit`, `url`, or `google`. | For an action alone, use `update_task_action`. For example, ask Claude to "change this task to call Sarah." To create a project or checklist with children, pass `subtasks` to `create_task` with a `list_id` or `section_id`. Include 1 through 100 children, each with a non-empty `title`. Children do not have their own section membership. Project children can have their own dates, priorities, tags, locations, alarms, recurrence, and actions. Child records cannot include `section_id`, other destinations, `task_type`, or nested `subtasks`. Checklist children inherit scheduling from their parent, so they cannot set due or start fields, duration, recurrence, or relative alarms. They can have absolute sound alarms. ## Paused Tags[​](#paused-tags "Direct link to Paused Tags") Pause a tag to hide matching tasks from normal task views; unpause it to show them again. `pause_tag` and `unpause_tag` take a `tag_id` and return the current tag record. Repeating either command leaves the tag in the requested state. When reading tasks with `query_tasks` or `list_subtasks`, choose how to treat paused tasks: | `paused_filter` | Behavior | | --------------- | ----------------------------------- | | `hide` | Default. Hide tasks paused by tags. | | `include` | Include paused and unpaused tasks. | | `only` | Return only paused tasks. | For example, ask Claude to "include paused tasks when you review my Work list" or "show only tasks hidden by paused tags." ## Dates, Alarms, and Recurrence[​](#dates-alarms-recurrence "Direct link to Dates, Alarms, and Recurrence") Use these formats when making tool calls directly: * Dates: `yyyy-MM-dd`, such as `2026-10-20`. * Times: `HH:mm`, such as `09:30`. * Absolute alarm triggers: `yyyy-MM-dd HH:mm`, such as `2026-10-20 09:15`. * Relative alarm triggers: seconds, such as `-900` for 15 minutes before. Offsets range from `-63071999` through `63071999`. Dates and times are local values. Do not include timezone names, `Z` suffixes, or UTC offsets. Relative alarms require a due date or start date. Recurrence also requires a due date or start date. To clear recurrence, send `{"frequency":"none"}`. A recurrence rule uses `based_on` (`due_date` or `completion`) and an `end_rule`; an `after_count` end rule accepts an `occurrence_count` from 1 through 99. In task write requests, only the date and time fields above accept `null`, plus `section_id` in `update_task`. Omit other optional fields when you want to leave them unchanged. See the [AppleScript task reference](/docs/macos/applescript.md#writing) for complete field rules and examples. MCP uses the same arguments as JSON objects instead of AppleScript records; use JSON `null` where an AppleScript example uses `missing value`. ## Privacy and Security[​](#privacy "Direct link to Privacy and Security") The extension communicates with 2Do locally on your Mac. It returns requested data and command results to Claude, which processes that information under your Claude account's privacy terms. The extension does not add another network relay. Automation uses the app's current unlocked session. Locked app data and locked password-protected lists remain unavailable. The API does not accept account passwords or sync credentials. ## Troubleshooting[​](#troubleshooting "Direct link to Troubleshooting") **Claude says 2Do is not available** Open 2Do for Mac and keep it running while Claude uses its tools. **Claude cannot find a list, section, or tag** Ask Claude to list the relevant items first. `list_sections` needs the containing list's `list_id`. Claude should use the returned IDs in later calls, especially when several items share a name. Unlock any password-protected list you want Claude to access. **Claude reports an invalid argument or does not offer the section tools** Check that your app and extension support the command, then start a new chat to reload the tool definitions. Unknown argument names and unsupported values are rejected. Section tools require extension version 0.2.0 or later and a matching app build. **Claude reports "automation socket isn't available"** The extension could not connect to 2Do. Check these steps in order: 1. Confirm 2Do is running and includes MCP support. 2. Quit and reopen 2Do. 3. Quit and reopen Claude Desktop. If the problem continues, 2Do's support logs show the socket path selected at launch. The [protocol notes below](#protocol) include paths for local diagnostics. ## Advanced Protocol Note[​](#protocol "Direct link to Advanced Protocol Note") The native `TwoDoMCPBridge` executable runs as a local stdio MCP server. It negotiates MCP `2025-11-25` or `2025-06-18` through the `initialize` / `notifications/initialized` handshake. Its tool catalog stays fixed for the life of that process. The bridge forwards calls to a Unix-domain socket in 2Do's App Group container. The app removes stale socket files at startup and creates its socket with `0600` permissions. The normal release path is: ``` ~/Library/Group Containers/EKT6323JY3.com.guidedways/Automation/2do-mcp.sock ``` If the full path exceeds the Unix socket length limit, 2Do uses: ``` ~/Library/Group Containers/EKT6323JY3.com.guidedways/mcp ``` Debug and internal builds use their matching App Group. For direct socket diagnostics, send one JSON object followed by a newline: ``` {"command":"query_tasks","arguments":{"paused_filter":"include","sort":{"field":"due_date","direction":"ascending"},"limit":10}} ``` A successful response contains `result`: ``` {"ok":true,"result":{"tasks":[],"item_count":0,"total_count":0}} ``` An error response contains a code and message: ``` {"ok":false,"error":{"code":"invalid_arguments","message":"Unknown argument 'id' for get_task."}} ``` Use the published MCP tools or [AppleScript API](/docs/macos/applescript.md) for normal automation. The socket examples above describe the app connection, not MCP request envelopes. --- # Mini Calendar / Calendar Control Use the **Mini Calendar** below the Lists Panel to see busy days, filter tasks by date, reschedule tasks by dragging, or create a task for a specific day. ## Move Through the Months[​](#months "Direct link to Move Through the Months") **Scroll** the calendar with a trackpad or mouse wheel to move through the months. A line marks where one month ends and the next begins. Use the **previous** and **next** arrows at the top to change months one at a time; the month and year sit between them. Hold `⌥` (Option) while clicking an arrow to move a whole year. When today's month scrolls out of view, a **back to today** button appears in the header. Click it to return to today. The button disappears again once today is back in view. To hide the dividers, turn off **2Do > Settings > Appearance > Mini Calendar > Show month dividers**. The lines between months then disappear completely, including the stronger ones that show while you scroll. ## Busy Days[​](#busy-days "Direct link to Busy Days") The Mini Calendar marks dates with tasks. Each task counts toward its due date, or its start date if it has no due date. Tasks with and without times count the same way. Choose how to show busy days: * **Heat Map** (the default): a translucent tint behind the date, deepening across ten steps as the number of tasks rises. One task gives the lightest tint, ten or more the deepest. It works in both light and dark themes. * **Dots**: small dots under the date instead of a tint. The more dots, the busier the day. * **None**: no busy-day markers. To change the style, pick one under **2Do > Settings > Appearance > Mini Calendar > Busy Days**. The setting syncs over iCloud, so your iPhone and iPad use the same style. See [Settings](/docs/macos/settings.md#appearance-mini-calendar). You can also switch styles from the main window. Move the pointer near the **calendar button** below the Lists Panel, the one that shows and hides the Mini Calendar, and an arrow appears beside it. Click the arrow, or press and hold the calendar button, to open a **Display style:** menu with the same three choices. Picking a style also shows the calendar if it was hidden. Future occurrences of **repeating tasks** are marked too, so the Mini Calendar shows what's coming in the next few weeks before you click into any list. This is useful when you're planning ahead and want to avoid stacking too many tasks onto the same day. To see what's on a busy day weeks away, **click it**. The task list filters to that date and shows which tasks land there, including the future occurrence of the repeating task that marked it. ## Filter to One Day[​](#one-day "Direct link to Filter to One Day") **Click a day** to filter the current task list to just the tasks for that date. **Click the same day again** to clear the filter. This works no matter which list you're in (*All*, *Today*, a regular list, or a Smart List) and lets you focus on a single day without changing the list's sort order or losing your place. ## Filter to a Date Range[​](#date-range "Direct link to Filter to a Date Range") **Click and drag** across several days to filter the task list to that range. For example, drag from Monday through Friday to see your working-week deadlines, or drag across the weekend to plan errands and home tasks. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-mac/videos/minicalfilter_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-mac/videos/minicalfilter_poster.png) ## Defer a Task by Dragging[​](#defer "Direct link to Defer a Task by Dragging") **Drag a task onto a date** in the Mini Calendar to defer it to that day. The task's due date updates automatically, with no editor required. To reschedule several tasks together, select them with `⌘`-click or `⇧`-click, then drag the selection onto a date. If hidden, the Mini Calendar appears while you drag a task and hides again when the drag ends. The instruction below it reads *Drop on date to set due date*. To reach a date further out, hold the dragged task over the top or bottom row of weeks. After a short pause the calendar moves to the previous or next month, then pauses again before moving further, so you page through the months one at a time. ![Dragging a task onto the Mini Calendar](https://downloads.2doapp.com/resources/img/2do-mac/calendardrag.png) tip If you only want to look ahead without rescheduling, use the date filter first. Then, if you decide a task belongs on a different day, drag it onto that date. ## Create a Task on a Specific Date[​](#create "Direct link to Create a Task on a Specific Date") Hold `⌥` (Option) and click a date to create a **new task** with that day pre-filled as the due date. Use this when you're planning around a known day: a bill to pay, a call to make, a form to submit, or any errand that only makes sense on a specific date. ## Clearing the Filter[​](#clear "Direct link to Clearing the Filter") If the task list looks shorter than expected, the Mini Calendar may still be filtering by a day or date range. **Click the selected date again** to clear the filter, or switch to a different list to return to your normal view. ## Related Pages[​](#related "Direct link to Related Pages") * [The 2Do Window](/docs/macos/the-2do-window.md): where the Mini Calendar sits in the main window. * [Dates and Durations](/docs/macos/dates-and-durations.md): how start dates, due dates, due times, and durations affect task visibility. * [Multi-Task Actions](/docs/macos/multi-task-actions.md): more ways to defer, schedule, move, copy, and share tasks. --- # Multi-Task Actions Select several tasks to reschedule, tag, move, share, or delete them together using menus, shortcuts, or drag and drop. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-mac/videos/dragchangedate_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-mac/videos/dragchangedate_poster.png) ## Selecting Tasks[​](#selecting "Direct link to Selecting Tasks") * **`⌘`-click** to add tasks to the selection one at a time. * **`⇧`-click** to select a contiguous range. * **`⌘A`** to select all visible tasks. Selected tasks highlight together and act as one, so every command below applies to the whole selection. The [Sort Bar](/docs/macos/the-2do-window.md#sort-bar) shows how many tasks are selected and their total duration, such as *3 tasks selected · 1h 45m*. ## Drag and Drop Targets[​](#targets "Direct link to Drag and Drop Targets") Drag the selected tasks to one of these destinations: * Drop on a **list** in the Lists Panel to move tasks there. Hold `⌥` (Option) while dropping to copy instead of move. * Drop on the **Today** Focus List to set the due date to today. * Drop on the **Scheduled** Focus List to schedule a start date. * Drop on the **Starred** Focus List to star tasks. * Drop on the **Done** Focus List to mark tasks complete. * Drop on a **tag** in the Tags panel to apply that tag. * Drop on a **date** in the [Mini Calendar](/docs/macos/mini-calendar.md) to set the due date. * Drop on a **section title** in the task list to move tasks into that [section](/docs/macos/task-sections.md#moving-tasks). Hold `⌥` while dropping to put copies there instead. ![Dragging selected tasks onto the Today Focus List](https://downloads.2doapp.com/resources/img/2do-mac/dragtotodayfocuslist.png) note Smart Lists show matching tasks from other lists; they do not store tasks themselves. To move tasks, drop them on a regular list. tip At the start of a review, drag a small selection onto *Today*, *Scheduled*, *Starred*, or *Done* instead of opening each task. Those Focus Lists are useful drop targets, not just views. ## Menu-Bar Equivalents[​](#menu-bar "Direct link to Menu-Bar Equivalents") If you'd rather use the menu, every multi-task action has a menu equivalent: | Action | Menu | | ---------------------- | --------------------------------- | | Defer | Task > Defer... | | Schedule | Task > Schedule... | | Copy | Edit > Duplicate (`⌘D`) | | Move | Task > Move | | Share | Task > Share | | Tag | Task > Edit Tags or Task > Tag... | | Delete | Edit > Delete | | Organize into sections | Task > Auto-Create Sections | ## Organizing Selected Tasks into Sections[​](#auto-create-sections "Direct link to Organizing Selected Tasks into Sections") In a regular list or the Inbox, select the tasks, right-click one of them, and choose **Auto-Create Sections**, or use **Task > Auto-Create Sections**. Apple Intelligence organizes only the unfinished tasks in your selection, using existing sections where they fit and adding new sections where needed. The list must allow editing. This requires a Mac that supports Apple Intelligence, running macOS 26 or later, with Apple Intelligence enabled. See [Auto-Create Sections](/docs/macos/task-sections.md#auto-create) for details, including how selected sub-tasks are handled. ## Move To and Copy To Submenus[​](#move-copy-to "Direct link to Move To and Copy To Submenus") Right-click your task selection and 2Do shows two submenus that expand into your full list structure: * **Move To ▸**: moves the selected tasks to another list. * **Copy To ▸**: drops a copy of the selected tasks into another list, leaving the originals where they are. Both submenus show your list groups as headers and each list as a colored-bullet item. Choose a list and the tasks land at that list's root. When a list already contains **projects or checklists**, that list becomes a **nested submenu**. The first item is the list itself (move or copy to the list's root); below a separator, each project and checklist inside it is listed. Pick one to move or copy the selected tasks directly **into** that project or checklist, as its children. These submenus are context-menu only, with no keyboard shortcut. Focus Lists, Smart Lists, and archived lists aren't offered as destinations, and locked or read-only lists appear disabled. ## Keyboard Shortcuts for Multi-Task Actions[​](#shortcuts "Direct link to Keyboard Shortcuts for Multi-Task Actions") Most multi-task operations have a single-letter keyboard shortcut, with no modifier required when the Task List has focus and one or more tasks are selected. They work the same way on a single task or a multi-selection. ### Dates[​](#dates "Direct link to Dates") | Key | Action | | ----------- | ------------------------------------------------------------------------------------------ | | `D` | Defer...: pick a relative offset (Today / Tomorrow / a named weekday / Next Week / Custom) | | `K` | Schedule...: pick a specific date | | `T` | Due Today | | `Y` | Due Tomorrow | | `⌃T` | Start Today | | `E` | Due Time... | | `X` | Duration... | | `.` / `,` | Add a Day / Subtract a Day to the **Start Date** | | `]` / `[` | Add a Day / Subtract a Day to the **Due Date** | | `⇧.` / `⇧,` | Add a Week / Subtract a Week to the **Start Date** | | `⇧]` / `⇧[` | Add a Week / Subtract a Week to the **Due Date** | | `⌥,` | Remove Start Date | | `⌥[` | Remove Due Date | | `⇧⌘[` | Remove Due Time | ### Status, Priority and Star[​](#status-priority-and-star "Direct link to Status, Priority and Star") | Key | Action | | --------------------- | ----------------------------------- | | `⌘.` | Mark As Completed | | `⌥⌘.` | Mark As Not Completed | | `S` | Star | | `⌃S` | Unstar | | `0` / `1` / `2` / `3` | Priority None / Low / Medium / High | | `=` / `-` | Increase / Decrease Priority | ### Tag, Move, Convert[​](#tag-move-convert "Direct link to Tag, Move, Convert") | Key | Action | | ------ | ---------------------- | | `L` | Tag... | | `⌥L` | Untag... | | `M` | Move... | | `⌥⇧⌘1` | Convert To a Task | | `⌥⇧⌘2` | Convert To a Project | | `⌥⇧⌘3` | Convert To a Checklist | ### Editor Quick-Jumps[​](#editor-jumps "Direct link to Editor Quick-Jumps") When a task is selected, these shortcuts open the editor pre-focused on a specific field, which is handy when you want to change one thing across many tasks rapidly: | Key | Field | | ----------- | --------------------------------------- | | `⌘E` | Edit Note | | `⌘'` | Edit Alerts | | `⌘/` | Edit Dates | | `⌥⌘0`–`⌥⌘3` | Set Priority None / Low / Medium / High | | `⌘R` | Edit Tags | | `⌘B` | Edit Action | | `⌘G` | Edit Location | | `⌘;` | Edit Recurrence | | `⌘L` | Edit List (move) | | `⌃⌥R` | Remove All Tags | ### Other Useful[​](#other-useful "Direct link to Other Useful") | Key | Action | | ---------- | ------------------------------------------------------------ | | `⌘D` | Duplicate selected tasks | | `⌘⌫` | Delete | | `Spacebar` | Quick Look (preview without opening the editor) | | `P` | Perform Action (call, email, open URL, etc.) | | `U` | Open Links found in notes | | `F` | Quick Find (jump to a task by title within the current list) | tip Use `D` to defer, `K` to schedule, or `S` to star the selected tasks. These shortcuts work for one task or several. ## Batch Schedule and Defer[​](#batch-schedule "Direct link to Batch Schedule and Defer") For finer control over many tasks at once, select the tasks first, then use **Task > Defer...** (`D`), **Task > Schedule...** (`K`), or **Task > Duration...**. 2Do opens a batch date dialog for the selection, where you can: * Pick a start date and/or due date. * Adjust by a relative amount (push everything by 3 days). * Reset alarm offsets. Useful for shifting an entire project after a delay, or pushing a backlog of overdue tasks onto next week. ![Batch editing due dates for multiple selected tasks](https://downloads.2doapp.com/resources/img/2do-mac/batchdefer.png) ## Adjusting Priorities in Bulk[​](#priority-bulk "Direct link to Adjusting Priorities in Bulk") Right-click any selection → **Task > Priority > Increase Priority** / **Decrease Priority**, or just press `=` / `-` (bare keys) when the Task List has focus. Each step moves all selected tasks one level up or down. Or set a specific level directly: bare `0`, `1`, `2`, `3` for None / Low / Medium / High. tip Hover over a single task and click the **priority dot**, and a small menu opens with the four levels; pick one and the task updates in place, no editor required. To let Apple Intelligence set priorities, right-click the selected tasks and choose **Edit Priority > Auto-Prioritize**, or use **Task > Edit Priority** in the menu bar. See [Auto-Prioritize](/docs/macos/auto-prioritize.md). ## Sharing Tasks[​](#sharing "Direct link to Sharing Tasks") The word *sharing* here means "send a copy of these tasks to somebody else", **not** collaborative editing (2Do doesn't offer real-time co-editing of tasks). Two routes: * **Edit > Copy** (`⌘C`): copies a plain-text representation of the selected tasks to the clipboard. Paste into Mail, Messages, Notes, or anywhere that accepts text. * **Task > Share**: opens the macOS Share menu with the selected tasks pre-bundled. Targets include **Mail, AirDrop, Messages**, and any app installed that registers a Share extension. Both work on a single task or a multi-selection. The recipient gets the task content, not a live link, so changes you make to your copy after sharing don't propagate. --- # Multiple Windows Sometimes one window isn't enough: you want your *Today* list open while you plan a project in another list, or a reference checklist visible on a second monitor. 2Do lets you open **as many independent windows as you like**, each with its own view into the same underlying tasks. ![Two independent 2Do windows open at once](https://downloads.2doapp.com/resources/img/2do-mac/multiwindow.png) tip A second window is the fastest way to keep a reference list (a shopping list, project notes, a checklist you're working through) visible while you triage a different list in the main window. Size it small and park it in a corner; its frame is remembered independently of the main window. ## Opening a New Window[​](#open "Direct link to Opening a New Window") * **File > New Window** (`⌃⌥⌘N`). * **Right-click (or Control-click) the 2Do icon in the Dock** and choose **New Window**. There's no toolbar button for this; it's a menu and Dock action. A new window opens as a copy of the window you were just in, and from that point on the two windows go their own separate ways. note iPad supports multiple windows too, so you can keep two 2Do windows side by side there as well. See [Multiple Windows on iPad](/docs/ios/multiple-windows.md). ## Every Window Is Independent[​](#independent "Direct link to Every Window Is Independent") Each window is a fully separate view of your tasks. Open two, and the following are tracked **per window**, so changing one never disturbs the other: * The **list, group, or project** selected in the Lists Panel. * The **task selection** and highlight. * The **search field**: its text, its scope (current list vs. all lists), and any active **date range**. * The **window frame**: position and size on screen. * The **Lists Panel and Utility Panel** widths and whether each is shown or hidden. * The **Mini Calendar** visibility and the find-bar visibility. * The **scroll position** in the task list. So you can leave one window parked on *Today*, sized small in a corner, while another sits full-width on a big project, and each remembers exactly how you left it. note A window's **sort order** and **Focus Filter** are *not* per-window; they belong to the **list**, not the window. If two windows are showing the same list, they share that list's sort order and focus settings; change the sort in one and it changes in the other. Only selection, search, panel layout, and window geometry stay separate. See [The Sort Bar](/docs/macos/the-2do-window.md#sort-bar) and [Focus Filter](/docs/macos/focus-filter.md). tip Because search scope is per-window, you can run an all-lists search in one window while another stays pinned to a single list; handy for comparing "everything matching X" against "just this project." ## Windows Reopen Across Launches[​](#persistence "Direct link to Windows Reopen Across Launches") Additional windows aren't throwaway. Quit 2Do with two or three windows open and they **come back the next time you launch**: same lists, same layout, same positions. 2Do restores the whole set, so your multi-window workspace survives restarts. If you're done with a window, **close it explicitly** (`⌘W` or the red close button). Closing an additional window discards its saved state, so it won't reappear on the next launch. (The main window always comes back.) The standard **Window** menu lists every open 2Do window, so you can hop between them by name, alongside **2Do** (`⇧⌘1`), which brings the main window forward. note **File > New Window** is unavailable while 2Do is **password-locked**. Unlock the app first, then open the extra window. --- # Natural Language Input (Type Your Task in Plain Words) Type a new task the way you would say it out loud and 2Do fills in the details for you. No tabbing between fields, no pickers to open: write the sentence, and the date, time, repeat, alert, duration, priority, tags, list, and saved location come with it. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-mac/videos/nlpmac_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-mac/videos/nlpmac_poster.png) ## What It Does[​](#what-it-does "Direct link to What It Does") As you type a new task's title, 2Do marks the details it recognizes with a soft capsule behind the words and fills in their fields as you type. A tag you type appears after you add a space, leave the title, or save. The text stays fully editable, so you can go back and change any word at any point. When you save, the words 2Do used are taken out of the title, leaving just the task: ``` Call the dentist tomorrow at 3pm => saved as "Call the dentist", due tomorrow at 3:00 PM ``` Everything 2Do fills in is an ordinary field on the task, so you can adjust any of it afterwards in the usual way. ## Where It Works[​](#where "Direct link to Where It Works") Detection runs while you type the title of a **new** task, in two places: * The task editor in the main 2Do window. * [Quick Entry](/docs/macos/quick-entry.md), including text that is already waiting in the field when the window opens. It applies to new tasks only. Editing the title of a task you saved earlier leaves that task's fields exactly as they are. ## Turning It On and Off[​](#on-off "Direct link to Turning It On and Off") ### In Settings[​](#settings "Direct link to In Settings") Two switches under **2Do > Settings > Tasks > New Tasks** control it, and both are on out of the box: * **Detect dates and details as you type in Quick Entry** * **Detect dates and details as you type in the task editor** Turn either one off and that surface goes back to plain typing: your title is saved exactly as written and no fields are filled in. The two switches appear only when your Mac is set to a language 2Do can read. See [Languages](#languages). ### For a Single Task[​](#chip "Direct link to For a Single Task") The task editor's top bar carries a chip that switches detection off for the task you are typing, without touching your Settings. Its tooltip reads **Stop detecting dates and details as you type** while detection is on, and **Detect dates and details as you type** once it is off. Turning detection off puts back the values 2Do filled in, so the task is left as plain typing would have left it. Anything you changed yourself in a field stays as you set it, even when 2Do had rewritten the matching word in the title. Tags added by detection are dropped, and your title text stays as typed. Switch it back on and 2Do reads the title again in one pass. tip Use the chip for the rare task where you would rather type everything by hand. ## What You Can Type[​](#what-you-can-type "Direct link to What You Can Type") The examples below are English. Each supported language has its own supported words and word order. Not every everyday phrase is recognized. tip Write the task first and the details last. `Collect the parcel tomorrow at 3pm #errands` reads the way you would say it, and it keeps the saved title clean. ### Dates[​](#dates "Direct link to Dates") ``` Call the plumber today => due today Book a car service tomorrow => due tomorrow Collect the parcel day after tomorrow => due the day after tomorrow Submit the timesheet Friday => due this coming Friday Book the dentist next Friday => due Friday of next week Plan the family trip next week => due Monday of next week Renew the gym membership next month => due the 1st of next month Pay the school fees on 5 September => due 5 September Order the textbooks September 5th => due 5 September Send the birthday card on the 5th => due the next 5th of the month File the insurance claim 9/5 => due 5 September, or 9 May, depending on your date order Water the plants in 3 days => due three days from today Review the household budget in 2 weeks => due two weeks from today ``` `9/5` means September 5 with month/day order and May 9 with day/month order. A date on its own is always the **due date**. To set a start date instead, use one of the [start words](#start-end). ### Times[​](#times "Direct link to Times") ``` Call mum at 3pm => due at the next 3:00 PM Take the medicine at 15:30 => due at the next 3:30 PM Break for lunch at noon => due at the next 12:00 PM Lock the front door at midnight => due at the next 12:00 AM Ring the clinic tomorrow at 3pm => due tomorrow at 3:00 PM ``` If the task has no due date, a time means its next occurrence: type `3pm` at nine in the morning and the task is due today, type it at six in the evening and it is due tomorrow. If a due date is already set, the time uses that date. ### Ranges[​](#ranges "Direct link to Ranges") Two dates or two times joined together give the task a start **and** a due date. ``` Work on the science project 19 July to 21 July => starts 19 July, due 21 July Study session 1pm-3pm => starts 1:00 PM, due 3:00 PM Join the food drive 9am-11am tomorrow => starts tomorrow 9:00 AM, due tomorrow 11:00 AM Family visit September 5-7 => starts 5 September, due 7 September ``` A start word can lead the range, and `to`, `until`, `till`, `through`, or a dash can join the two ends. Each end can carry its own time. ``` Project starts tomorrow 2pm - 8 September 3:40pm => starts tomorrow 2:00 PM, due 8 September 3:40 PM Field trip from 19 July until 21 July => starts 19 July, due 21 July Exam prep starting Monday 9am through Friday 5pm => starts Monday 9:00 AM, due Friday 5:00 PM ``` ### Start and End Words[​](#start-end "Direct link to Start and End Words") A start word in front of a date makes that date the **start date** and leaves the due date unchanged. The start words are `starting`, `starts`, `start`, `begins`, `beginning`, and `from`. ``` Work on the report starting tomorrow => starts tomorrow, no due date added Repaint the fence starts Monday => starts Monday Volunteer shift from 5 September => starts 5 September ``` An end word sets the due date. After a start date, use `ending`, `ends`, `finishes`, `finishing`, or `due`, optionally preceded by `and`. You can also write `is due` or `and is due`. ``` Tidy the store room starting tomorrow ending Friday => starts tomorrow, due Friday Prepare the workshop starting tomorrow at 3pm ending Friday at 5pm => starts tomorrow 3:00 PM, due Friday 5:00 PM Essay begins Monday, due Friday => starts Monday, due Friday Garden clean-up starts Saturday 9am and finishes Sunday 4pm => starts Saturday 9:00 AM, due Sunday 4:00 PM ``` Without an earlier start date, the other end words stay in the title as ordinary text; `due` is still read and removed. `Finish report ending Friday` is due Friday and saves as **Finish report ending**. tip Capsules show the values 2Do picked up. Some helper words, including `starting` and `ending`, are removed with the detected date even though only the date is marked. ### Repeats[​](#repeats "Direct link to Repeats") ``` Take vitamins tomorrow every day => due tomorrow, repeats daily Submit the timesheet every weekday => due the next weekday, repeats Monday to Friday Team review every Monday => due the next Monday, repeats weekly on Mondays Change the water filter Friday every 2 weeks => due Friday, repeats every second week Pay the rent every month on the 15th => due the 15th, repeats monthly Renew the membership every year on September 5 => due 5 September, repeats yearly Visit the parents every Monday and Wednesday => due the next Monday or Wednesday, repeats weekly on both days ``` The date can come before the repeat words instead, so `Renew the membership September 5 every year` works just as well. A repeat needs a date to count from. 2Do can infer one from some rules; otherwise include a date or time. See [Repeating Tasks](/docs/macos/repeating-tasks.md) for the full set of rules. ### Alerts[​](#alerts "Direct link to Alerts") Add an alert ahead of the due time by writing how much warning you want. ``` Ring the clinic tomorrow at 3pm alert 30m => due tomorrow 3:00 PM, alert 30 minutes before Submit the report Friday at 5pm alarm 1 hour before => due Friday 5:00 PM, alert one hour before Collect the cake Saturday at 4pm alert 10m, 30m => due Saturday 4:00 PM, alerts 10 and 30 minutes before ``` See [Alarms and Nagging](/docs/macos/alarms-and-nagging.md) for alert styles, sounds, and repeating alerts. ### Duration[​](#duration "Direct link to Duration") Put the length in square brackets. ``` Review the lesson plan [45m] => duration 45 minutes Deep clean the kitchen [2h] => duration 2 hours ``` Paired with a due date and time, a duration also gives the task a head start before its deadline. See [Dates and Durations](/docs/macos/dates-and-durations.md#duration-due). ### Priority and Star[​](#priority "Direct link to Priority and Star") Write the marker as a word of its own. ``` Buy milk ! => Low priority Return the library books !! => Medium priority Pay the electricity bill !!! => High priority Call mum * => starred Send the school form !!! * => High priority and starred ``` In English, leave a space before the mark, so `Say hello!` keeps its exclamation mark. Chinese, Japanese, and Korean text can place the mark directly after a character. ### Tags[​](#tags "Direct link to Tags") A word starting with `#`, with spaces around it, becomes a tag. Add as many as you like. ``` Plan the week #work => tag work Buy milk #errands #shopping => tags errands and shopping ``` Tags run together, such as `#sales#urgent`, are left in the title as plain text. See [Tags](/docs/macos/tags.md). ### Lists[​](#lists "Direct link to Lists") Type a slash followed by the start of a list name to file the task there. 2Do matches your lists as you type, ignoring capitals and spaces, and the list picker follows along. A closing slash is optional. ``` Buy milk /errands => saved to the Errands list Clear out the loft /homeproj => saved to the Home Projects list Book the dentist /Health/ next Tuesday => saved to the Health list, due next Tuesday ``` If nothing matches, the slash and the words after it stay in the title and the task keeps its current list. If two of your lists share a name, 2Do picks the one shown first in the list picker; choose the other one from the picker if you meant it. Web addresses and file paths are left alone. A list whose name ends in a slash is matched by typing the start of its name. ### Locations[​](#locations "Direct link to Locations") Type `@` followed by the name of a location you have already saved in 2Do. Spaces and capitals do not matter, the match appears as soon as the name is complete, and it stays while you keep writing after it. ``` Collect the prescription @ Pharmacy => location Pharmacy Meet Amina @centrallibrary tomorrow at 4pm => location Central Library, due tomorrow 4:00 PM Drop the books at @ Central Library and buy bread => location Central Library, title "Drop the books at and buy bread" ``` The whole name has to match: `@central` on its own sets nothing. When your saved names overlap, the longest one that fits wins. If the name is not one of your saved locations, 2Do sets no location and leaves the words in the title. See [Nearby and Locations](/docs/macos/nearby-locations.md) for saving a location and for what one does once it is set. ## Try These[​](#try-these "Direct link to Try These") Copy any of these into a new task and watch the fields fill in. ``` Pick up the kids from school tomorrow at 3pm #family => due tomorrow 3:00 PM, tag family Pay the electricity bill on 5 September !!! => due 5 September, High priority Book a car service next Friday at 9am alert 1h => due Friday of next week 9:00 AM, alert one hour before Read to the children every day at 8pm => due at the next 8:00 PM, repeats daily Collect the prescription @ Pharmacy #errands => location Pharmacy, tag errands Call the landlord tomorrow at 11am !! * => due tomorrow 11:00 AM, Medium priority, starred Deep clean the kitchen Saturday [2h] #home => due Saturday, duration 2 hours, tag home Submit the timesheet every weekday at 5pm => due the next weekday at 5:00 PM, repeats Monday to Friday Plan the family trip next week /Home Projects/ => due Monday of next week, saved to Home Projects Study for the exam 9am-11am tomorrow #study => starts tomorrow 9:00 AM, due tomorrow 11:00 AM, tag study Water the plants Saturday every 2 weeks => due Saturday, repeats every second week Book the dentist in 3 days #health => due in three days, tag health Drop the donation off Friday at 1pm #community => due Friday 1:00 PM, tag community Work on the science project 19 July to 21 July !! => starts 19 July, due 21 July, Medium priority Paint the garden shed starting Saturday #home => starts Saturday, no due date added, tag home Revise for the maths test from Monday until Friday #study => starts Monday, due Friday, tag study Redecorate the hallway begins 5 September, due 8 September !! => starts 5 September, due 8 September, Medium priority Renew the car insurance every year on September 5 #home => due 5 September, repeats yearly, tag home ``` ## Keeping a Word Literal[​](#literal "Direct link to Keeping a Word Literal") Sometimes a word that looks like a date really is part of the task. Wrap it in double quotes and 2Do leaves it alone. The quotes are not marked, and they come off when you save. ``` Read "tomorrow" => saved as "Read tomorrow", with no date Read "tomorrow" tomorrow => saved as "Read tomorrow", due tomorrow ``` Extra spaces between words do not affect detection. Spacing elsewhere in the title is preserved; spaces around removed details are tidied. tip Use quotes for the odd task whose title really does contain a date word. ## Changing a Detail Afterwards[​](#editing "Direct link to Changing a Detail Afterwards") None of it is locked in. While the task is still open: * Change a **date**, **time**, or **duration** in its own field and 2Do updates the matching text in the title. Changing one end of a range can rewrite the whole range. If 2Do cannot read the replacement, it removes the detected text and keeps your field edit. * Change a **repeat**, **alert**, **priority**, **star**, **list**, **location**, or **tag** by hand and 2Do takes the words it detected out of the title instead. * Delete the detected words to restore the earlier value. If you changed that field yourself, your most recent field choice stays. * Clear a field by hand and 2Do leaves it clear, and takes the matching words out of the title. ## Languages[​](#languages "Direct link to Languages") Natural Language Input reads English, German, Spanish, French, Italian, Dutch, Japanese, Korean, Chinese (Simplified), and Russian. Each supported language has its own supported words and word order. Not every everyday phrase is recognized. If your Mac is set to a language that is not on the list, the feature stays out of the way: the Settings switches and the editor chip do not appear, and titles are saved exactly as typed. ## Reference[​](#reference "Direct link to Reference") | What you type | What it sets | Example | | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- | ------------------------------------------------ | | `today`, `tomorrow`, `day after tomorrow`, `Friday`, `next Friday` | Due date | `Call the plumber tomorrow` | | `next week`, `next month` | Due date: Monday of next week, or the 1st | `Plan the trip next week` | | `5 September`, `September 5th`, `on the 5th`, `9/5` | Due date. `9/5` is September 5 with month/day order, May 9 with day/month order | `Pay the fees on 5 September` | | `in 3 days`, `in 2 weeks` | Due date counted from today | `Wash the towels in 3 days` | | `at 3pm`, `15:00`, `3:30pm`, `noon`, `midnight` (or `12pm`, `12am`) | Due time | `Ring the bank at 3pm` | | `19 July to 21 July`, `1pm-3pm`, `from Monday until Friday`, `starts tomorrow 2pm - 8 September 3:40pm` | Start and due together | `Homework help 1pm-3pm` | | `starting`, `starts`, `start`, `begins`, `beginning`, `from` before a date | Start date | `Sort out the garage starts Monday` | | `ending`, `ends`, `finishes`, `finishing`, `due` after a start date, optionally with `and`, or written as `is due` | Due date. Without a start date, only `due` is read | `Work on report starting tomorrow ending Friday` | | `every day`, `every weekday`, `every Monday`, `every 2 weeks`, `every month on the 15th`, `every year` | Repeat, counted from a date in the title or one 2Do can infer | `Walk after dinner tomorrow every day` | | `alert 30m`, `alarm 1h`, `alert 10m, 30m` | Alerts before the due time | `Call at 3pm alert 30m` | | `[45m]`, `[2h]` | Duration | `Iron the shirts [45m]` | | `!`, `!!`, `!!!` | Priority Low, Medium, High | `Pay the bill !!!` | | `*` | Star | `Reply to the school *` | | `#errands` | Tag | `Buy milk #errands` | | `/Home Projects/` | Moves the task to that list | `Clear out the loft /Home Projects/` | | `@ Pharmacy` | A location you have already saved in 2Do | `Pick up the vitamins @ Pharmacy` | | `"tomorrow"` | Keeps the word as plain text | `Practice the word "tomorrow"` | --- # Nearby and Locations Add locations to tasks to see them on a map and in the **Nearby** panel. If you also use 2Do on iPhone or iPad, those locations sync and can trigger Nearby Alerts there. ![The Nearby panel showing location-tagged tasks](https://downloads.2doapp.com/resources/img/2do-mac/locationfilter.png) ## Adding a Location[​](#adding "Direct link to Adding a Location") Open a task and click the **Location** field. You can enter a location three ways: * **Type an address**: *123 Main St, Boston*, and 2Do geocodes it via Apple Maps. * **Search by name**: *Trader Joe's*, *the dentist*, *Apple Park*. * **Pin a point**: open the embedded map preview and pin a custom point. While typing a new task you can also reach a location you have **already saved** in 2Do: write `@` and its name, as in `Collect the prescription @ Pharmacy`. Spaces and capitals do not matter, so `@centrallibrary` finds *Central Library*, and the match appears as soon as the whole name is there. A part of a name, such as `@central`, sets nothing, and a name you have never saved stays in the title as plain text. Typing `@` never creates a new location. You can keep writing after it; the words that follow stay in the title. See [Natural Language Input](/docs/macos/natural-language-input.md). After picking a location, the task appears with a location indicator in the task list and can be found from the **Nearby** panel. note The Mac app manages task locations and helps you review nearby work. Nearby Alerts are configured and delivered on iPhone or iPad, where iOS Location Services can monitor places in the background. tip For repeating errands (groceries every Saturday), use a [Repeating Task](/docs/macos/repeating-tasks.md) with a location attached. The location persists across each new occurrence. ## The Nearby Panel[​](#nearby-panel "Direct link to The Nearby Panel") The right utility panel has a **Nearby** tab. It shows: * A map with pins for every task that has a location. * A list, sorted by distance from your current location. * A switch between **Nearby** and **All Locations**. * A visibility toggle for locations currently used by the displayed tasks. Click a pin to see its tasks; double-click a task to open the editor. note The Nearby panel may need macOS Location Services to know where you are. If location access is disabled, enable it under **System Settings > Privacy & Security > Location Services**. ## Smart Lists for Errands[​](#smart-lists "Direct link to Smart Lists for Errands") A *Errands Nearby* Smart List works wonders. Build it with: * **all** of: - Has location - Within 1 km of current location - Completed is no When you sit down at your desk or pop to the high street, a click reveals the right-now-doable subset of your task system. See [Smart Lists](/docs/macos/smart-lists.md). tip Tag location-tagged tasks with `errands`. Combined with the Nearby panel and an *Errands Nearby* Smart List, you'll never wonder again whether there was something to grab from the hardware store. ## Sync of Locations[​](#sync "Direct link to Sync of Locations") Locations sync between your 2Do devices when the selected sync method supports task locations. A location set on the Mac can show up on iPhone, iPad, and Android. On iPhone or iPad, that same synced location can be used with Nearby Alerts. --- # Notes, Markdown, and Links The notes field is the free-form part of every task: context, links, snippets, or a running log. On Mac it does more than hold plain text: it styles Markdown as you type, stamps in dates and times, links to other tasks, and surfaces every link it finds for quick opening. This page covers all of that. For the rest of the task editor, see [The Task Editor](/docs/macos/task-editor.md). ![A task's notes with Markdown styling and a linked task](https://downloads.2doapp.com/resources/img/2do-mac/markdown.png) ## The Notes Toolbar[​](#toolbar "Direct link to The Notes Toolbar") Beside the notes field, in its left margin, sits a small column of chips. From top to bottom: * **Markdown Preview**: toggles a rendered, read-only preview of your notes. * **Insert Date & Time**: opens a menu of date and time stamp formats. * **Open Links in Notes**: appears once your notes contain at least one link, and lists every link found. The Insert Date & Time and Open Links chips are disabled while Markdown Preview is active. To format text, type the Markdown markers shown under [Supported Markdown](#supported-markdown). ## Markdown in Notes[​](#markdown "Direct link to Markdown in Notes") 2Do styles Markdown live as you type. The source markers stay visible, so a `**bold**` word shows the asterisks and renders bold at the same time. Your notes are never converted or rewritten behind your back. What gets saved is always the source Markdown you typed, not a rendered version of it. tip Because the saved note is always the source Markdown, you can round-trip notes through sync and other 2Do apps without losing your formatting markers. ### Supported Markdown[​](#supported-markdown "Direct link to Supported Markdown") * **Emphasis**: `*italic*` or `_italic_` * **Strong**: `**bold**` or `__bold__` * **Inline code**: `` `code` ``, and fenced code blocks * **Strikethrough**: `~~struck~~` * **Headings**: `#` through `######` * **Blockquote**: lines beginning with `>` * **Lists**: unordered and ordered; pressing Return at the end of a list line continues the marker * **Links and autolinks**: `[label](https://…)` and bare URLs * **Highlight**: `::highlighted::` * **Underline**: `underlined` or `[u]underlined[/u]`, opened and closed on the same line * **Horizontal line**: `***` on a line of its own * **Escaping**: a backslash keeps a marker literal, so `\*not italic\*` renders its asterisks as text note There is no GitHub-style task-checkbox rendering. A `- [ ]` line stays as literal Markdown text, so use 2Do's own [sub-tasks or checklists](/docs/macos/projects-and-checklists.md) for tickable items. ### Underlining Text[​](#underline "Direct link to Underlining Text") Markdown has no underline marker of its own, so 2Do uses tags. Type `` before the text and `` after it: ``` Call the venue before Friday. ``` `[u]` and `[/u]` work the same way. Both tags of a pair must be on the same line, so to underline several lines, give each line its own pair: ``` Signed contract Two forms of ID ``` While you edit, the tags stay visible and the text between them is underlined. In [Markdown Preview](#markdown-preview), the tags are hidden. ### Horizontal Lines[​](#horizontal-line "Direct link to Horizontal Lines") To split a note into parts, type `***` on a line of its own, with a blank line above and below it: ``` Agenda for Monday *** Notes from the call ``` While you edit, the line shows as `***`. In [Markdown Preview](#markdown-preview), it is drawn as a thin line across the notes field. ### Markdown Preview[​](#markdown-preview "Direct link to Markdown Preview") Click the **Markdown Preview** chip to switch the notes field into a read-only rendered view. In preview the source markers are stripped, links become clickable, and the chip fills with your accent color to show preview is on. Click it again to return to editing. note Preview is per-session and read-only, and it never changes what is stored. The saved note is always the source Markdown. Entering preview clears the notes field's undo stack for that session, and the Insert Date & Time and Open Links chips are disabled while preview is showing. There's no setting to turn Markdown styling off; it's always on. The same renderer is used by [Quick Look](/docs/macos/task-editor.md#quick-look). ## Insert Date & Time[​](#insert-date-time "Direct link to Insert Date & Time") Drop a formatted date or time stamp straight into your notes, which is handy for journaling progress or logging when something happened. Two ways to reach it: * The notes toolbar chip **Insert Date & Time**. * The main menu **Edit > Insert Time Stamp** submenu. Both open the same list of formats: | Format | Example style | | --------------------- | ---------------------------------------------------------- | | Short Date | localized short date | | Short Date & Time | localized short date with time | | Long Date | localized long date | | Long Date & Time | localized long date with time | | Universal Date | `yyyy-MM-dd` | | Universal Date & Time | `yyyy-MM-dd` plus the time in your 12/24-hour clock format | | ISO 8601 Date & Time | UTC `yyyy-MM-dd'T'HH:mm:ss'Z'` | | Time | current time | | Weekday | full weekday name | | Month | full month name | The stamp is inserted at the cursor (replacing any selection) with a trailing space. note There's no keyboard shortcut for inserting a stamp, and the notes field must be focused, because the menu items stay greyed out otherwise. The chip focuses notes for you first. Inserting a stamp is disabled during Markdown Preview. ## Linking to Another Task[​](#task-links "Direct link to Linking to Another Task") Type **`@{`** in the notes field and pick a task to drop in a live **`@{Task Title}`** link, and you can click it later to jump straight to that task in its list. Because the link is just the task's title stored as plain text, you can also type it by hand on any device, and 2Do resolves it to the matching task wherever your notes sync. For the full picture, covering composing links across devices, how they resolve by title, the **Copy Embeddable Link** shortcut, and worked examples, see [Linking to Other Tasks](/docs/macos/task-links.md). tip Use `@{` links to stitch related tasks together, so a project task can point at its dependencies, and one click jumps you straight there. ## Link Discovery[​](#link-discovery "Direct link to Link Discovery") As you type or paste, 2Do watches your notes for links and detects them automatically: * **Task links**: `@{…}` tokens. * **URLs**: web addresses and email addresses. * **File links**: whole-line local paths beginning with `/` or `~/`, backed by a secure bookmark. Detected links are underlined inline in the notes field. Once at least one link exists, the **Open Links in Notes** chip appears. Clicking it opens a menu titled **Open Links** with a heading that reports the number of links found and up to three sections: task links, URLs, and local file links. * Click a link inline, or a row in the menu, to open it. * Hovering a menu row selects and scrolls the notes field to that link's source text. * Web and mail links open through the system; file links open through a sandbox-scoped opener that may prompt you to regrant access; task tokens focus the task. You can also copy every link in one shot with **Copy Links from Notes** in the editor's [Copy menu](/docs/macos/task-editor.md#copy-menu). The Open Links chip and menu are disabled during Markdown Preview. note This is distinct from the **Task menu**'s "Open Links" command, which opens all ordinary URLs in the selected task at once rather than presenting the per-link menu. --- # Password Protection Some tasks are nobody else's business. 2Do lets you lock individual lists or the whole app behind a password. ## Setting a Password[​](#setting "Direct link to Setting a Password") * **2Do > Settings > Security**: enable password protection and set a password. * You can use **Touch ID** to unlock if your Mac supports it. tip Use a password manager. 2Do's lock is a layer of privacy, not a substitute for a strong, unique password. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-mac/videos/passprotectlist2_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-mac/videos/passprotectlist2_poster.png) ## Locking the Whole App[​](#lock-app "Direct link to Locking the Whole App") Once you've set a password, click the padlock in the window title area to lock the whole app, or let 2Do lock after a period of computer inactivity. The app hides its content and asks for the password before showing it again. Auto-lock intervals are configured under **2Do > Settings > Security > Protection**. ## Locking Individual Lists[​](#lock-list "Direct link to Locking Individual Lists") Right-click a list in the Lists Panel → **Lock**. A locked list asks for the master password before its tasks are shown. You can lock as many lists as you like. Each lock uses the global app password, and there is not a separate password per list, by design. To unlock a single list, click it in the sidebar and enter the password. ## Hiding Unwanted Lists Entirely[​](#hide-unwanted "Direct link to Hiding Unwanted Lists Entirely") Distinct from locking, 2Do lets you **hide** lists from the sidebar entirely. Useful for built-in Focus Lists you never use (the *Scheduled* Focus List, for example) or any real list you'd rather not see day-to-day: 1. Open **2Do > Settings > Security > Privacy**. 2. Click the lock icon to make changes and authenticate yourself. 3. Tick the lists you want to hide from the Lists Panel. Hidden lists vanish from the Lists Panel completely. Tasks in the selected lists stay hidden everywhere, including Smart Lists, until you unlock them. note Hidden lists are still part of your 2Do data. If you want a list and its tasks excluded from sync entirely, use **2Do > Settings > Sync > Exclusions** instead. tip Use **Security > Privacy** for lists you'd rather not see in the sidebar during normal browsing. Use **Lock** when you want the list to remain visible but require the password before opening its contents. ## What's Protected[​](#protected "Direct link to What's Protected") A locked or hidden list is meant to keep its tasks out of normal browsing until you unlock it. Depending on the option you use, this can include: * The Lists Panel. * Focus Lists like *All*, *Today*, *Starred*. * Search results. A locked **app** hides the main interface until you unlock it. ## Sync and Locking[​](#sync "Direct link to Sync and Locking") Locking is local to each device. Sync continues to run for protected task data, but each device controls its own password and Touch ID settings. Configure locking separately on every device you use. ## Resetting a Forgotten Password[​](#reset "Direct link to Resetting a Forgotten Password") If you forget the password: * If you sync via Dropbox or CalDAV, you may be able to recover by reinstalling 2Do, restoring from sync, and choosing a new password. * On a single-device install, there's no backdoor for unlocking protected content without the password. We recommend pairing password protection with regular [Backups](/docs/macos/backups.md). --- # Projects and Checklists Use **projects** and **checklists** to break work into smaller steps. Each step is a **sub-task**. Projects let you schedule the steps separately; checklists keep them on one schedule. ## Tasks[​](#tasks "Direct link to Tasks") A **Task** is the basic unit. It can carry notes, dates, alerts, tags, a location, and an action. A regular task cannot hold sub-tasks of its own: sub-tasks live inside projects and checklists. When you add a sub-task to a regular task, 2Do converts that task into a project first (see [Adding Sub-Tasks](#adding-sub-tasks)). For small steps that only matter together, such as "Pack: passport, charger, headphones", use a checklist. When each step needs its own due date, alarm, or tag, use a project. ## Projects[​](#projects "Direct link to Projects") A **Project** is a parent that contains real tasks. Each child task carries its own properties, including its own due date, alarm, tag, and action, and shows up individually in your Focus Lists. Changing or removing the project's own dates reschedules it and sets completed children back to active; see [Dates and Durations](/docs/macos/dates-and-durations.md#just-start). ![A project containing several tasks](https://downloads.2doapp.com/resources/img/2do-mac/projectview.png) Use a project when: * You have a goal made of multiple actions that don't need to happen in order. * The individual actions deserve their own tags, dates, or alerts. * You want each action to appear in *Today* on its own due date. Examples: *Plan the conference talk*, *Hire a new designer*, *Refresh the kitchen*. ### Creating a Project[​](#creating-project "Direct link to Creating a Project") * **File > New > New Project** (`⌥⌘N`) * The `+` button in the toolbar, using its dropdown to pick **New Project**. * Select existing tasks → **File > New > New Project from Selection** (`⌥⇧⌘N`) to bundle them under a new project parent. The same command is on the task list's right-click menu under **New**. ### Project View[​](#project-view "Direct link to Project View") When you're inside a project and want to focus only on the work inside that project, toggle **Task > Toggle Project View** (`⌥⌘J`). The rest of the list collapses out of the way and you're left with just the project's tasks. When you open a project from a Smart List or while searching, Project View shows only the sub-tasks that match by default. If a project opens empty or with sub-tasks missing, see [Inherit Search in Project View](/docs/macos/smart-lists.md#inherit-search). ### Sorting Inside a Project[​](#project-sort "Direct link to Sorting Inside a Project") A project or checklist keeps **its own sort order**, separate from the list it sits in. Select it (or any of its sub-tasks), right-click, and use the **Sort Project** submenu, which reads **Sort Checklist** for a checklist, to sort its children by Status, Priority, Start Date, Due Date, Creation, Note, Title, Tag, Location, Duration, or **Manually**, ascending or descending. So a list sorted by due date can still hold a project whose steps stay in the manual order you dragged them into. The submenu only appears when a project, checklist, or one of their sub-tasks is selected. ### Collapsing Projects[​](#collapsing "Direct link to Collapsing Projects") Projects and checklists expand and collapse in place: * **`C`** (**Task > Collapse Project**) folds the selected project. * **`⌥⌘↓`** / **`⌥⌘↑`** expand or collapse **every** project in the list at once. Collapsed or not, a list's projects and checklists are always reachable from the [disclosure triangle](/docs/macos/lists-and-list-groups.md#disclosure) in the Lists Panel. ## Checklists[​](#checklists "Direct link to Checklists") A **Checklist** is also a parent, but checklists hold *items*, not full tasks. A checklist item has a title, can be marked complete, and can carry its own tags, but it has no dates of its own. It inherits its scheduling from the checklist, so it can't have its own due or start dates, repeats, or date-based alerts. The whole checklist behaves like one task in your Focus Lists. Use a checklist when: * You have a sequence of small steps that only matter together. * You don't want each step to clutter *Today* on its own. Examples: *Packing list*, *Pre-flight checklist*, *New-hire onboarding steps*. ### Creating a Checklist[​](#creating-checklist "Direct link to Creating a Checklist") * **File > New > New Checklist** (`⌃⌘N`) * The `+` button in the toolbar, using its dropdown to pick **New Checklist**. * Select existing tasks → **File > New > New Checklist from Selection** (`⌃⇧⌘N`). tip Checklists are perfect templates. Duplicate a checklist (`⌘D`) when you need a fresh copy for the next trip, the next launch, or the next onboarding. ## Adding Sub-Tasks[​](#adding-sub-tasks "Direct link to Adding Sub-Tasks") * Select a task, project, or checklist, then use **File > New > New Sub-Task** (`⌃⌥N`). With a project or checklist selected, the new task is filed inside it. With a regular task selected, 2Do converts that task into a project first, then adds the sub-task inside it. With a sub-task selected, the new sub-task joins the same parent. * Drag an existing task onto a project or checklist to file it inside. Dragging a task onto a regular task converts that task into a project, then files the dragged task inside it. * While [Project View](#project-view) is open, **File > New > New Task** (`⌘N`) adds inside the open project or checklist. Projects and checklists cannot be filed inside another project or checklist. Dragging or moving one onto a project or checklist flattens it: the dragged project and everything inside it become ordinary sub-tasks of the destination. ## Converting Between Types[​](#converting "Direct link to Converting Between Types") You're never locked into your first choice. **Task > Convert** lets you switch: * **Task → Project** or **Task → Checklist**: the task becomes an empty parent, ready for sub-tasks. * **Project → Task** or **Checklist → Task**: the parent becomes a regular task, and each of its sub-tasks becomes a separate task at the top level of the same list. * **Project → Checklist**: the sub-tasks stay inside, but they lose their own due and start dates, repeats, and date-based alerts. From then on they take their scheduling from the checklist. * **Checklist → Project**: the items stay inside and become project sub-tasks. They have no dates of their own until you set them. * **Sub-Task → Project** or **Sub-Task → Checklist**: the sub-task leaves its parent and becomes a parent at the top level of the same list. tip Start with a regular task. When it needs steps, add a sub-task and 2Do turns it into a project. Convert it to a checklist instead when the steps share one schedule and only matter together. ## Projects in Sections[​](#sections "Direct link to Projects in Sections") A list can be divided into named [sections](/docs/macos/task-sections.md), and a project or checklist can sit in any of them. Its sub-tasks always stay with it in the same section. Sections divide a list, not a project: to arrange the steps inside a project, use its own [sort order](#project-sort). ## Behavior in Focus Lists[​](#focus-behavior "Direct link to Behavior in Focus Lists") * **Project sub-tasks** appear individually in *All*, *Today*, *Starred*, etc., wherever their own dates and properties qualify them. * **Checklists** appear as a single item in Focus Lists. Their items take their scheduling from the checklist, so they do not qualify for date-based lists on their own. --- # Quick Entry Use **Quick Entry** to add a task while working in another app. Press its shortcut from anywhere on your Mac to open the editor. ![Quick Entry on Mac](https://downloads.2doapp.com/resources/img/2do-mac/alpachaqe.png) ## Triggering Quick Entry[​](#trigger "Direct link to Triggering Quick Entry") * **Global hotkey**: `⌃⌘Space` out of the box, and user-configurable in **2Do > Settings > General**. 2Do rejects a chord already reserved by macOS or used by a 2Do menu command. * **From within 2Do**: **Window > Quick Entry** (`⇧⌘2`). * **Drop files on 2Do's Dock icon**: Quick Entry opens pre-filled with the dropped files (see [Drop Files on the Dock Icon](#dock-drop)). The 2Do Alarm Helper is a small companion app that powers the global hotkey (and delivers 2Do's [alarms](/docs/macos/alarms-and-nagging.md)), keeping both alive even when the main 2Do app is closed. note The 2Do Alarm Helper is **required** for the system-wide Quick Entry shortcut and for alarms, so keep **Launch 2Do Alarm Helper on System Startup** enabled in **2Do > Settings > General**. If the shortcut stops responding, see [Alarms or Quick Entry Not Working?](/docs/macos/alarms-and-nagging.md#troubleshooting) tip The default `⌃⌘Space` chord is quick to reach, but any combination you can record works. If the one you press is unavailable, 2Do beeps and shows an error rather than saving it, so press a different chord and carry on. ## What's in the Window[​](#fields "Direct link to What's in the Window") Quick Entry uses the same task editor style as the main app, so you can capture much more than a title: * Title and notes * List * Start date, due date, due time, duration * Priority * Tags * Location * Action * Alarms * Recurrence A short idea can be entered with just a title, and if it is already a fully-formed plan you can fill everything out before you save. Typing the details into the title works too: [Natural Language Input](/docs/macos/natural-language-input.md) picks up due dates, times, start dates, repeats, alerts, durations, priority, tags, lists, and saved locations as you write, and it reads text that is already waiting in the field when the window opens. `Collect the parcel tomorrow at 3pm #errands` and `Paint the garden shed starting Saturday` both arrive with their fields filled in. Detection is on out of the box; turn it off for Quick Entry with **Detect dates and details as you type in Quick Entry** under **2Do > Settings > Tasks > New Tasks**. The window has two extras: * A **task-type popup** in the window converts what you're capturing into a plain **Task**, a **Project**, or a **Checklist** before it's saved. * Paste a line that is a **URL** and the new task automatically gets a **URL** action pointing at it, so one click opens the page later. tip Keep Quick Entry fast: type the title first, then tab into the date, list, tag, or alert fields only when the task already needs those details. ## Where the Task Lands[​](#destination "Direct link to Where the Task Lands") You can pick the list for each capture in the Quick Entry window itself, and set the fallback under **2Do > Settings > Tasks > Default list**. The picker offers every list you have, plus **Last used**, the list you added a task to most recently, so captures follow whatever you've been working on. If you'd rather send everything to a single collection point, turn on **Getting Things Done® Inbox** in the same pane: captures then land in the **Inbox**, and the **Default list** picker is locked for as long as it's on. ## Pasting Multiple Tasks at Once[​](#paste-multiple "Direct link to Pasting Multiple Tasks at Once") Want to turn a chunk of text from another app (bullet points from an email, a copy-pasted list from a document) into a stack of tasks in one move? * Copy the text in the source app (`⌘C`). * Switch to 2Do. * `⌘V` paste anywhere in the task list. 2Do creates one task per non-empty line. Indent a line with a tab or four spaces and it becomes a **sub-task of the line above it**, so an outline you paste keeps its shape. To paste the whole batch under an existing project or checklist instead, select the parent first, then `⌘V`. Quick Entry works differently on purpose: it captures **one** task, whatever you paste into it. Multi-line text isn't split into separate tasks. The title keeps what fits and the rest is moved into the task's notes. Paste into the main task list when you want several tasks out of one block of text. ## Drop Files on the Dock Icon[​](#dock-drop "Direct link to Drop Files on the Dock Icon") Drag one or more **files onto 2Do's Dock icon** and Quick Entry opens with a new, untitled task already carrying them. Only the first file is considered for the task's picture attachment, and only if it's a readable image; if it isn't, it's added to the notes as a secure file link like the rest. Type a title, adjust anything else you like, and save. Two file types take their own route instead: a **2Do task file** (`.twodo`, or the older `.twodotask`, shared from another copy of 2Do) is imported directly as a task, and a 2Do **backup file** opens the [restore browser](/docs/macos/backups.md#restore), where you can bring back just the lists you tick or restore everything, and a full restore replaces all of your current data and relaunches 2Do. ## Always Centered Above the Active Window[​](#centered "Direct link to Always Centered Above the Active Window") If you work across multiple monitors, the Quick Entry window can appear **centered above the app you're working in**, not on whichever monitor 2Do happens to be on. Turn on **Display above currently focused application** in **2Do > Settings > General**. With the 2Do Alarm Helper enabled at startup, the global hotkey works **even if 2Do isn't running**, including after a system reboot or after you've quit 2Do deliberately. Press the hotkey, the Quick Entry window appears, capture the task, and 2Do quietly takes care of the rest in the background. Quick Entry can also auto-fill the new task's notes with the current clipboard text. Turn on **Auto-fill notes with text from clipboard** in **2Do > Settings > General**. To capture the *selected* text from another app instead, use the **Add to 2Do** share extension described below. ## Quick Entry from Other Apps[​](#from-other-apps "Direct link to Quick Entry from Other Apps") Beyond the global hotkey, Quick Entry is reachable from: * **Add to 2Do (Share extension)**: select text in any app, or open a web page in Safari, then choose **Add to 2Do** from the **Share** button. 2Do opens **Quick Entry pre-filled** with the selected text or the page's link, so you can set the list, tags, dates, and any other fields before saving. Nothing is captured until you confirm the Quick Entry window. * **URL schemes**: see [URL Schemes](/docs/macos/url-schemes.md) for programmatic capture from Shortcuts and external apps. --- # Quick Open Use **Quick Open** to find a task or list anywhere in 2Do. Press the shortcut, type part of its name, and press `Return` to open it. ![The Quick Open overlay showing recent tasks and matched lists](https://downloads.2doapp.com/resources/img/2do-mac/quickopena.png) ## Opening Quick Open[​](#open "Direct link to Opening Quick Open") * **Edit > Quick Open...** (`⇧⌘O`). A Spotlight-style panel floats over the upper third of the current window with the text field already focused, ready for you to type. It's a **transient overlay**: pick something and it dismisses, dropping you at your destination. ## Starting Empty: Recents[​](#recents "Direct link to Starting Empty: Recents") Open Quick Open without typing anything and it shows you where you've just been: * **Recently modified tasks**: the tasks you last changed. * **Recently accessed lists**: the lists you last opened (the list you're already viewing is left out, since you're there). That alone makes it a fast "take me back" jump between the handful of things you're actively working on. ## Typing: Match Tasks, Then Lists[​](#matching "Direct link to Typing: Match Tasks, Then Lists") Start typing and Quick Open matches against titles, showing **tasks first, then lists**, each under its own labeled heading. Matching is by title, so a few distinctive letters is usually all it takes to surface what you want. * The **top result is highlighted automatically**. Press `Return` to open it. * Use the **up/down arrow keys** to move the highlight, or **click** any row to pick it. * Choosing a **task** jumps to it: if it's already visible in your current view, 2Do simply selects it in place; otherwise it switches to the task's own list and reveals it there. * Choosing a **list** switches straight to it. Quick Open selects and briefly highlights the task without opening its editor. To edit its details, press `Return` once the task is selected, or double-click the task. If a match is a **sub-task** of a project or checklist, its row shows a **`List › Parent`** breadcrumb so you can tell two similarly-named sub-tasks apart at a glance. note **Quick Open** is unavailable while 2Do is **password-locked**. Unlock the app first. ## How It's Different from Quick Entry and Search[​](#vs "Direct link to How It's Different from Quick Entry and Search") 2Do has several "type something" surfaces that are easy to confuse. Each does a genuinely different job: * **Quick Open** (`⇧⌘O`): **jumps** you to an existing task or list, anywhere in the app, then gets out of the way. It never creates anything. * **[Quick Entry](/docs/macos/quick-entry.md)**: **creates** a new task. It has a system-wide hotkey, so it works even when 2Do isn't the front app. Reach for it to *capture*, not to navigate. * **[Search Bar](/docs/macos/search-and-jump-bars.md#global-search)** (`⌘F`): **filters the current view in place**, collapsing the task list to just the matches and staying open while you work on that subset. * **[List Jump Bar](/docs/macos/search-and-jump-bars.md)** (`J`): jumps to a **list** in the sidebar by name, keeping you in the sidebar where you can carry on exploring. Quick Open reaches lists too, along with tasks and sub-tasks; use whichever matches what you're doing. In short: **Quick Entry** to add, **Search Bar** to filter, the **List Jump Bar** to hop around the sidebar, and **Quick Open** to go anywhere (tasks or lists) with your recents one keystroke away. There's no wrong pick; 2Do just lets you find things however you like to work. tip Hop between lists without touching the sidebar: type a couple of letters of the list name into Quick Open and press `Return`. Prefer staying inside a panel and browsing as you go? The in-place [Search and Jump Bars](/docs/macos/search-and-jump-bars.md) do the same job from within each panel. --- # Repeating Tasks Set tasks to repeat for regular appointments, chores, and other work you need to do again. ## Adding Recurrence[​](#adding "Direct link to Adding Recurrence") In the task editor, click the **Repeat** button, or press `⌘;` (**Task > Edit Recurrence**), then pick a preset or build a custom rule from the **Repeat** menu. The task doesn't need a date first: if it has no start or due date, 2Do gives it a due date automatically as soon as you set a rule. For a new task you can type the rule instead, in phrases such as `every day`, `every weekday`, `every Monday`, `every 2 weeks`, `every month on the 15th`, or `every year on September 5`. Put a date in the title too when the rule needs something to count from, as in `Take vitamins tomorrow every day`. See [Natural Language Input](/docs/macos/natural-language-input.md). ### Presets[​](#presets "Direct link to Presets") Six presets cover the common schedules. They're listed under a **Presets** heading in the **Repeat** menu, and while the rule is still *Never* they also appear as chips you can trigger with `⌥1`–`⌥6`: | Preset | Shortcut | Repeats | | ----------------- | -------- | -------------------------------------------------- | | **Daily** | `⌥1` | Every day | | **Weekly** | `⌥2` | Every week, on the same weekday as the task's date | | **Every 2 weeks** | `⌥3` | Every second week | | **Monthly** | `⌥4` | Every month, on the same date | | **Quarterly** | `⌥5` | Every three months | | **Yearly** | `⌥6` | Every year, on the same date | Once a rule is set the chips step out of the way; reach the presets from the **Repeat** menu instead. ### Custom Rules[​](#custom "Direct link to Custom Rules") Above the presets, the same **Repeat** menu offers three rule shapes. Picking one swaps in its own set of controls: * **On every given period**: every N **days**, **weeks**, **months**, or **years** (N from 1 to 999). * **On some days of the week**: tick any combination of Mon through Sun, so *Monday, Wednesday, Friday* or a weekdays-only or weekends-only rule is a few clicks away. * **On a day of each month**: the **1st**, **2nd**, **3rd**, **4th**, **5th**, or **Last** of a chosen weekday, for rules like *the second Tuesday of every month*. An **Ends** row finishes the rule: **Never**, **After** a number of occurrences (up to 99), or **On date**. A separate **after completion** checkbox switches the rule to count from completion rather than the task's date. See below. note There's no single-click *Weekday* or *Weekend* preset. Build either with **On some days of the week**: tick Mon–Fri, or tick Sat and Sun. ### Every 3 or 4 Weeks[​](#every-few-weeks "Direct link to Every 3 or 4 Weeks") Use **On every given period** for a task that repeats every few weeks. For example, to review a project budget every three weeks: 1. Give the task a due date for the first review. 2. Click **Repeat** in the task editor, or press `⌘;`. 3. Choose **On every given period** from the **Repeat** menu. 4. Enter **3** and choose **weeks** from the unit menu. Leave **after completion** unchecked to keep the review on its schedule. 5. Click outside the popup to return to the task. ![The Mac Repeat popup set to every 3 weeks, with after completion unchecked](https://downloads.2doapp.com/resources/img/2do-mac/repeat-three-weeks.png) Three weeks is 21 days. If the first review is due on October 19, the following dates are November 9 and November 30. To repeat every four weeks, choose **4 weeks** instead. Four weeks and a month are different Four weeks is 28 days. Starting on October 19, a four-week rule gives you November 16 next; a monthly rule gives you November 19. Use **weeks** when the gap must stay the same number of weeks. For a task such as replacing a water filter, you may want to wait four weeks after you finish each replacement. Set **4 weeks** and tick **after completion**. If you finish on October 21, the next replacement is due on November 18, even if the previous one was due earlier. ![The Mac Repeat popup set to every 4 weeks, with after completion checked](https://downloads.2doapp.com/resources/img/2do-mac/repeat-four-weeks-completion.png) ## Repeat From Due Date vs. Completion[​](#repeat-from "Direct link to Repeat From Due Date vs. Completion") This trip-up is worth understanding clearly. * **Repeat from Due Date**: the next occurrence is calculated from the *previous due date*, regardless of when you completed the task. Best for fixed schedules: paying rent on the 1st, weekly status reports. * **Repeat from Completion**: the next occurrence is calculated from the *date you marked the task complete*. Best for chores and maintenance where the cycle restarts when you actually finish: changing your car's oil every 3 months, watering the plants every few days, or going to the gym every other day, whenever you actually got around to it. Examples: * A task due on the **1st of every month** and completed on the **3rd** still repeats from the 1st when set to **Repeat from Due Date**. * A task to **change your car's oil every 3 months** repeats 3 months from the day you complete it when set to **Repeat from Completion**, so if you finish it a couple of weeks late, the next one shifts with you instead of stacking up. Switch modes with the **after completion** checkbox in the Repeat popup, where ticking it means the rule counts from completion. tip Use **Repeat from Due Date** for promises tied to the calendar. Use **Repeat from Completion** for maintenance, chores, exercise, reviews, and anything where the next cycle should begin when you actually finished the last one. ## What Happens When You Complete One[​](#completion "Direct link to What Happens When You Complete One") When you complete a repeating task and another occurrence remains, 2Do keeps a completed copy for your history and moves the active task to the next occurrence. This means your Done list still shows the completed occurrence, while the task you continue working with becomes the next one. If the task has reached its **End after** count or **End on** date, the final occurrence simply completes. The dates move forward using the same shape you gave the task: | Original task | Next occurrence | | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Only a due date** | The due date moves to the next due date. | | **Only a start date** | The start date moves to the next start date, and the task stays Scheduled until then. | | **Start date + due date** | The due date moves forward, and 2Do keeps the same gap between start and due. A task that starts 2 days before it is due keeps that 2-day planning window next time. | | **Due time** | The same due time is kept on the next occurrence. A task with no due time stays without one, so set it once and every occurrence keeps it. | | **Duration** | The same duration is kept, so lead-time reminders continue to work. | For projects and checklists, the next occurrence starts fresh so you can work through the sub-tasks again. The completed occurrence remains in your history with the work you already checked off. note If a repeating task uses **End after**, each completion uses up one occurrence. If it uses **End on**, 2Do stops creating new occurrences once the next one would be beyond that end date. ## What Carries Over[​](#carry-over "Direct link to What Carries Over") When the next occurrence is generated, the new task inherits: * The title, notes (without timestamps), tags, location, action, alarms, recurrence rule, priority, and duration. * A **fresh** completion state, alarm fire history, and (if applicable) sub-task progress. Your notes timestamps and any per-occurrence completed sub-tasks do not carry over. ## Editing a Repeating Task[​](#editing "Direct link to Editing a Repeating Task") A repeating task is one task that moves forward each time you complete it. There is no separate series to edit: whatever you change on the task, such as its list, tags, alarms, or dates, is what the next occurrence inherits. Dates deserve a closer look, because the next occurrence is counted from the task's current date. This applies whether you change a date in the editor, use **Task > Defer...** or **Task > Schedule...**, or nudge it from the **Task > Due Date** and **Task > Start Date** submenus and their [keyboard shortcuts](/docs/macos/dates-and-durations.md#setting-fields). With **Repeat from Due Date**: * **Due date changed**: the next occurrence is counted from the new due date. Move a monthly task from September 21 to September 22, and its next occurrence is due October 22. * **Start date changed, and the task also has a due date**: the due dates keep their schedule, but the new gap between start and due carries into future occurrences. * **Start date changed, and there is no due date**: the start date is what the task repeats from, so the next occurrence moves with it. With **Repeat from Completion**, the next occurrence is counted from the day you complete the task, so a date change affects only the current occurrence. The gap between start and due date still carries forward. tip To put off an alert without touching the task's dates, snooze the notification instead of moving the task. ## Unfinished or Skipped Occurrences[​](#skipping "Direct link to Unfinished or Skipped Occurrences") If you still need to do a repeating task, leave it incomplete. It stays overdue after its due date passes; 2Do does not automatically complete it or advance its dates. For an accurate completion history, mark the task complete only when you have done the work. Completing it records a finished occurrence and advances to the next one if the repeat rule allows. It does not record a skipped occurrence. To move the task to a later date without adding a completion to your history, edit its due date (or its start date if it has no due date). This changes the task's schedule; see [Editing a Repeating Task](#editing) for how it affects future occurrences. tip To put a recurring task on hold without breaking the cycle, give it a status tag like `on-hold` and pause that tag from the Tags panel. The active occurrence steps out of view; resume the tag to bring it back. See [Tags](/docs/macos/tags.md#pause). ## Examples[​](#examples "Direct link to Examples") * **Weekly review**: Repeat: Weekly on Friday at 4pm. Repeat from Due Date. * **Change car oil**: Repeat: Every 3 months. Repeat from Completion. * **Pay insurance premium**: Repeat: Quarterly. Ends: Never. * **Stand-up**: Repeat: Mon, Tue, Wed, Thu, Fri at 9:30am. tip For chores like *Weekly review*, set a relative alert and keep sound alerts repeating in **2Do > Settings > Alerts** if you need a stronger reminder. --- # Search and Jump Bars Most apps have one find field. 2Do has **five**, each tuned for a different kind of "find me this" moment. There's no single right one; knowing what each is for lets you find things whichever way fits how you work. | Surface | Shortcut | Purpose | | ------------------------------------------- | ---------- | --------------------------------------------------------------------------------- | | **Global Search Bar** | `⌘F` | Filter the task list by Smart Filter syntax, and save the filter as a Smart List. | | **Task Find Bar** | `F` (bare) | Jump the selection to a task by title within the current list. No filtering. | | **List Jump Bar** | `J` (bare) | Jump to a list in the Lists Panel by name. | | **Tag Search Bar** | `/` (bare) | Find a tag in the Tags panel by name. | | **[Quick Open](/docs/macos/quick-open.md)** | `⇧⌘O` | Jump to any task, list, project, or sub-task anywhere in the app. | The bare keys work from **anywhere in the main window**, as long as you aren't typing in a text field. You don't even need the target panel open: press `J` with the sidebar hidden, or `/` with the Tags panel closed, and 2Do reveals the panel for the search and puts things back the way they were when you're done. tip Three bare-letter shortcuts cover most "find me X" moments: `F` for tasks, `J` for lists, `/` for tags. They work from anywhere in the main window; if one isn't responding, you're probably typing in a text field, so press `Esc` or click out first. The three in-place bars share one behavior model, so learning one teaches all three: * **Type** and matching items **highlight** as you go; the first match is focused right away. * **`↑` / `↓`** move between matches, wrapping at the ends. * **`Return`** commits the focused match and closes the bar. * **`Esc`** cancels. * An **exact-match toggle** on the bar switches between loose and exact word matching; each bar remembers its own setting. tip The Global Search Bar lives in the toolbar; the three jump bars appear in-place over the area they search. The visual difference is intentional: the toolbar one is "filter and save", the in-place ones are "jump and go". ## Global Search Bar: Filter and Save[​](#global-search "Direct link to Global Search Bar: Filter and Save") The Global Search Bar is the magnifying-glass field in the toolbar. It's the entry point to **Smart Filters**: anything you can describe in the search syntax can be applied as a one-off filter or saved as a permanent Smart List. * **`⌘F`**: open the Global Search Bar. Clicking the magnifying glass expands and collapses it too. * The search bar **auto-collapses** when you click away; it stays out of your face when you're not searching. * Click the **filter button** in the bar (or press `⌥⇧⌘F`) for **Find Options**: Search Presets, date filters (a fixed range, a rolling range, or tasks without a due date), the Soundex switch, whether Scheduled tasks are included, and the search scope. * Click the **`+` button** at the end of the field to **save** the current filter as a Smart List. When you're viewing a Smart List and refining its filter, the same button becomes an **update** button instead. * `⌥⌘F` toggles the **Search Scope** between the current list and All Lists. With **Soundex** on, 2Do can find tasks even when the spelling is not exact. For example, *plumver* can find *plumber*, *Steven* can find *Stephen*, and *alexnder* can find *Alexander*. With Soundex off, the same field supports **Full Text Search**. You can require words with `new job`, exclude words with `new job -find`, match either word with `Call OR new`, or use wildcards such as `new*` (prefix), `*book` (suffix), and `*ject*` (contains). Beyond free text, the bar understands nine reserved keywords that filter by a specific task property: `type:`, `tags:`, `taggroups:`, `locations:`, `lists:`, `groups:`, `modified:`, `created:`, and `completed:`. Combine them freely; sections are AND-ed by default, and a standalone `OR` before a keyword branches the query. For example: ``` type: hiprio AND duethisweek lists: Work, Home type: duetoday type: overdue OR tags: urgent ``` For the complete keyword reference, the `type:` preset catalogue, the AND/OR model, and dozens of copy-pasteable recipes, see [Smart Lists, Smart Filters, and Search](/docs/macos/smart-lists.md). To include both tasks due today and overdue tasks, use `type: duetoday OR overdue`, or combine the two **Due Date** rules with **Any**. See [Combine Today and Overdue](/docs/macos/smart-lists.md#today-and-overdue) for the full steps and how to check for a date range that could still exclude older tasks. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-mac/videos/2dosmartsearch_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-mac/videos/2dosmartsearch_poster.png) ## Task Find Bar: Jump to a Task by Title[​](#task-find-bar "Direct link to Task Find Bar: Jump to a Task by Title") When you know the task is *there* and you just want to **navigate to it**, not filter the list down to it, use the Task Find Bar. [Quick Open](/docs/macos/quick-open.md) can jump to a task too, but it lands you wherever that task lives. The Task Find Bar keeps you in the view you've set up: same sort order, same neighbors, everything else due around the match still in sight. When the tasks *around* the one you're finding are part of the decision, this is the one to reach for. * **Bare `F`**: opens the *Go to...* bar at the bottom of the Task List. Or **View > Task Find Bar...** from the menu. * Type any part of the task title. Matching tasks highlight, and the selection **moves** to the first match right away. * `↑` / `↓` step through the other matches, wrapping around at the ends. * If a match is a **sub-task** of a project or checklist, 2Do **automatically expands** the parent so it's visible. * Press `Return` to land on the focused match and close the bar, or `Esc` to close it where you are; either way the selection stays put. This is the fastest way to navigate inside a long list or a deep project. The list doesn't change shape; only your selection moves. ### Task Find vs. Global Search[​](#find-vs-search "Direct link to Task Find vs. Global Search") A small but important distinction: * **Global Search** (`⌘F`) **filters**: the list collapses to just the matching tasks, hiding everything else. * **Task Find** (`F`) **jumps**: the list keeps everything visible, the selection moves to the first match. Use Search when you want to *work on a subset*. Use Find when you want to *go to one specific task*. ## List Jump Bar: Jump to a List by Name[​](#list-jump-bar "Direct link to List Jump Bar: Jump to a List by Name") Got a sidebar with dozens of lists tucked into groups? The List Jump Bar lets you skip the scrolling and pick a list by name. * **Bare `J`**: opens the List Jump Bar at the bottom of the Lists Panel. Or **View > List Jump Bar...** from the menu. If the sidebar is hidden, 2Do reveals it for the search and hides it again afterwards. * Type any part of the list name. Matching lists **highlight** in place, and collapsed groups holding a match **expand temporarily** so nothing stays out of sight. * `↑` / `↓` move between matches; press `Return` to switch to the focused one. * `Esc` cancels, and any group expanded just for the search folds back. Regular lists, Smart Lists, built-in Focus lists, and even the projects and checklists shown under a list's [disclosure triangle](/docs/macos/lists-and-list-groups.md#disclosure) all match by name. Groups themselves aren't jump targets; they simply open up to reveal the matches inside. tip The List Jump Bar keeps you in the sidebar, where you can land on a list and keep exploring its neighbors. When you already know exactly which list, task, or sub-task you're after, [Quick Open](/docs/macos/quick-open.md) takes you straight there from anywhere. Neither is the "right" way; 2Do simply lets you find things however suits the moment. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-mac/videos/jumpbarlist_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-mac/videos/jumpbarlist_poster.png) ### A Companion to the Disclosure Triangle[​](#disclosure "Direct link to A Companion to the Disclosure Triangle") If you frequently jump *into* a project or checklist rather than just to its parent list, pair the List Jump Bar with the **disclosure triangle** that appears next to any list containing projects/checklists. See [Lists and List Groups: Disclosure Triangle](/docs/macos/lists-and-list-groups.md#disclosure). ## Tag Search Bar: Find a Tag by Name[​](#tag-search-bar "Direct link to Tag Search Bar: Find a Tag by Name") Long tag library? The Tag Search Bar finds a tag in the Tags panel by name, which is useful when you want to filter by a tag or apply one but can't see it in the list. * **Bare `/`**: opens the Tag Search Bar in the Tags panel. Or **View > Tag Search Bar...** from the menu. If the Tags panel is closed, 2Do opens it for the search. * Type any part of the tag name. Matching tags **highlight** as you type, with the first match focused. * `↑` / `↓` move between matches; press `Return` to select the focused tag. * Or work with a match directly: click a tag to filter the Task List by it, or drag it onto a task (or a selection of tasks) to apply it. * `Esc` closes the bar and clears the highlights. ![Tag Search Bar](https://downloads.2doapp.com/resources/img/2do-mac/tagfilter.png) ## Quick Open: Jump Anywhere[​](#quick-open "Direct link to Quick Open: Jump Anywhere") The four bars above each live inside a specific panel. **Quick Open** (`⇧⌘O`) floats above them all: type a few letters and jump to any task, list, project, or sub-task anywhere in the app, with your recently used tasks and lists offered the moment it opens. ![The Quick Open panel showing recent tasks and matched lists](https://downloads.2doapp.com/resources/img/2do-mac/quickopena.png) It has a page of its own: [Quick Open](/docs/macos/quick-open.md). --- # Settings 2Do's settings are grouped the way you use the app. Open them from **2Do > Settings**: the sidebar lists, in order: **General**, **Appearance**, **Tasks**, **Today & Lists**, **Calendar**, **Alerts**, **Mail to 2Do** (shown for eligible licenses), **Sync**, **Security**, **Backups**, **Updates** (direct-download builds only), and **Diagnostics**. This page walks the settings window pane by pane, in the same order, covering every option. ## Settings Across Devices[​](#settings-sync "Direct link to Settings Across Devices") 2Do syncs supported app settings over iCloud between your Mac, iPhone, and iPad when they use the **same iCloud account**. This happens separately from the service you choose for task sync. Allow time for changes to reach your other devices. ## General[​](#general "Direct link to General") General settings cover startup, language and region, Quick Entry, sounds, calling and map apps, and warnings. ### Startup[​](#startup-helper "Direct link to Startup") * **Launch 2Do on System Startup**: opens the main app when you sign in. Turning it on also enables the 2Do Alarm Helper below. * **Launch 2Do Alarm Helper on System Startup**: the **2Do Alarm Helper** is 2Do's alarm and Quick Entry engine: it registers and shows your alarms and keeps the global Quick Entry shortcut alive, even when 2Do itself is not open. If it hasn't been allowed yet, this row shows an **Allow 2Do Alarm Helper** button instead; if it's allowed but not running, 2Do points you to **System Settings › General › Login Items & Extensions › App Background Activity** (on macOS 13 and 14 the path is **System Settings › General › Login Items › Allow in the Background**). Its login item appears there as **2Do Quick Entry & Alarms**. Turning the helper off also turns off *Launch 2Do on System Startup*. important The **2Do Alarm Helper** is **required** for alarms and Quick Entry to work: alarms are delivered by the helper, not the main app. Keep it enabled. If alarms stop firing, see [Alarms Not Working?](/docs/macos/alarms-and-nagging.md#troubleshooting) ### Language & Region[​](#language-region "Direct link to Language & Region") * **Language**: changes 2Do's interface language from a long list of built-in translations, or **Default** to follow macOS. Changing it asks you to relaunch 2Do (**Quit** now or **Later**). * **Week Starts**: **Automatic** (follow macOS) or a fixed first day of the week. ### Quick Entry[​](#quick-entry "Direct link to Quick Entry") **Quick Entry** is the fast capture window you can call from anywhere on your Mac. * **Shortcut**: record the system-wide hotkey that opens Quick Entry. It works even when 2Do isn't running, provided **Launch 2Do Alarm Helper on System Startup** is enabled. If your chosen combination is already taken, 2Do beeps and asks for another. * **Auto-fill notes with text from clipboard**: puts the current clipboard text into the new task's notes. On by default. * **Display above currently focused application**: shows Quick Entry over the app you're already using, which is helpful on multi-monitor setups. On by default. ### Sounds[​](#general-sounds "Direct link to Sounds") * **Play task completion sounds**: plays a short sound when you mark tasks done or undone from the task list. Completing a task also triggers a brief haptic on supported hardware. ### Advanced[​](#general-advanced "Direct link to Advanced") Under **Advanced** in **2Do > Settings > General**, choose the apps that open when you perform a task's **Call** or **Visit** action. These choices apply only to this Mac and don't sync to your other devices. They also apply when you click the **action shortcut** on an [alarm card](/docs/macos/alarms-and-nagging.md#interacting). #### Default Calling App[​](#default-calling-app "Direct link to Default Calling App") **Default Calling App** starts on **System Default**, which uses your Mac's default app for phone calls. The menu also lists the apps on your Mac that can make calls, such as **FaceTime**. **WhatsApp** is listed too, even if its Mac app isn't installed. To pick an app for each call, choose **Always Ask**. When you perform a **Call** action, a dialog asks which app to use. Choose one from its menu and click **Call**. The setting stays on **Always Ask**, so 2Do asks again next time. If only one choice is available, 2Do uses it without asking. **WhatsApp** opens a chat with the number, where you can start the call. If the WhatsApp app is installed on your Mac, the chat opens there. Otherwise, 2Do opens WhatsApp in your web browser, where you can continue to the chat in WhatsApp Web. You might need to sign in to WhatsApp Web first. WhatsApp needs the full international phone number, so use `+` and the country code, such as `+44 20 7946 0018`. For a local number without a country code, 2Do asks you to update the number instead of opening WhatsApp. If you remove the calling app you chose, the setting shows **System Default** and 2Do uses it. Install the app again and 2Do goes back to your choice. Removing the WhatsApp app doesn't change the setting, because **WhatsApp** also works in your web browser. #### Default Map App[​](#default-map-app "Direct link to Default Map App") **Default Map App** sets where a **Visit** action opens an address or saved map location. **Apple Maps**, the default, opens it in the Maps app. **Google Maps** opens it on the Google Maps website in your web browser. To add a **Call** or **Visit** action to a task, see [Actions](/docs/macos/actions.md#adding). ### Warnings[​](#counts-warnings "Direct link to Warnings") * **Confirmation warnings** has a **Clear** button that restores the prompts you previously hid with "Don't Ask Me" choices, such as project-completion and archive warnings, and the [Auto-Prioritize](/docs/macos/auto-prioritize.md) explanation you hid with **Do not show this message again**. ## Appearance[​](#appearance "Direct link to Appearance") Appearance settings control the theme, the Mini Calendar, and how the task list looks. ### Theme[​](#appearance-theme "Direct link to Theme") At the top, a **Light / Dark switcher** (sun and moon) sits above the theme cards. It does not force a look on the whole app: instead it selects *which* slot you are editing: the theme used when macOS is in Light mode, and the theme used when macOS is in Dark mode. 2Do follows your Mac's current appearance automatically and applies the matching slot. * To let 2Do switch looks with the system, assign a light theme to the Light slot and a dark theme to the Dark slot. * To force one look everywhere, assign the **same** theme to both the Light and Dark slots. note Your theme choice is stored per device and is not synced over iCloud. The active theme applies to the whole app, not to individual windows. ### Display[​](#appearance-basic "Direct link to Display") * **Text Size**: a slider from a compact small-"A" size up to very large task text. * **Content Width**: a slider from **Full** to **Compact**; narrower settings add padding around your tasks for easier reading. ### Mini Calendar[​](#appearance-mini-calendar "Direct link to Mini Calendar") * **Busy Days**: how the [Mini Calendar](/docs/macos/mini-calendar.md#busy-days) marks days that have tasks starting or due: **None** for no markers, **Dots** for small dots under the date, or **Heat Map** for a color tint that deepens as the number of tasks rises. Heat Map by default. The setting syncs over iCloud, so your iPhone and iPad use the same style. * **Show month dividers**: draws a line between one month and the next as you scroll the calendar. On by default; turn it off to hide the lines completely, including the stronger ones that appear while scrolling. ### Task List[​](#appearance-task-list "Direct link to Task List") * **Always show list names**: shows the source list next to tasks when several lists are visible together. * **Always show tag names**: keeps tag bubbles visible on task rows. When turned off, hold **Option** to reveal them at any time. See [Tags](/docs/macos/tags.md). * **Show notes under tasks**: shows note previews in the task list. * **Use friendly dates**: every task date is written relative to today: *Today*, *Tomorrow*, *Yesterday*, a weekday name for dates within the coming week, then *In 28 days* or *10 days ago*. Turn it off to see the calendar date instead, which suits repeating tasks when you want the date of the next occurrence. * **Show overdue tasks in red**: makes overdue tasks easier to spot. * **Show durations in headings**: shows the total duration of the tasks under each heading next to its title, such as *2h 45m*. Completed tasks and tasks without a duration are not counted, and a heading with no durations shows no total. When a list is sorted by **Duration**, headings that already name a duration show no total. See [Duration Totals](/docs/macos/dates-and-durations.md#duration-totals). ## Tasks[​](#tasks "Direct link to Tasks") The Tasks pane follows a task's life from top to bottom: where new tasks land, the due date and time they receive, when they count as overdue, what happens to them once completed, and finally the keyboard behaviors used while working with them. ### New Tasks[​](#new-tasks "Direct link to New Tasks") * **Detect dates and details as you type in Quick Entry** and **Detect dates and details as you type in the task editor**: with these on, which is how they ship, 2Do reads the details out of a new task's title as you write it and fills in the matching fields. The note under the pair reads: "2Do reads dates, start dates, repeats, duration, priority, tags, lists and locations from what you type and fills them in." Turn either one off to save titles exactly as typed on that surface. The pair appears only when your Mac is set to one of the languages 2Do can read. To leave detection on but skip it for the task in front of you, use the chip in the task editor's top bar. See [Natural Language Input](/docs/macos/natural-language-input.md). * **Getting Things Done® Inbox**: shows a special *Inbox* list that becomes your main collection list for GTD-style triage. Enabling it asks for confirmation and switches **Always Use Default List** on; disabling it deletes the Inbox list *and its tasks*, so 2Do double-checks first. * **Default list**: the list new tasks land in when you create them from a Focus List or Quick Entry. Pick any list, or **Last Used**. Locked while the GTD Inbox is on (the Inbox is the default then). * **Always Use Default List**: sends *every* new task to the default list, regardless of the list you're viewing. Forced on while the GTD Inbox is enabled. ### Default Due Date[​](#default-due-date "Direct link to Default Due Date") * **Default due date for new tasks**: a switch paired with a picker: turn it on, then choose **Same Day**, **Day After**, **2 Days Later**, **3 Days Later**, **1 Week Later**, **2 Weeks Later**, or **Next Month**. The options below unlock when it's on. * **Only use in Quick Entry**: apply the default due date only to Quick Entry captures. * **Do not use in Quick Entry**: use the default due date everywhere except Quick Entry. * **Use today's date in the Today list**: new tasks added while viewing the [Today list](/docs/macos/focus-lists.md#today) are due today instead of the default due date, so they stay in the list you're looking at. On by default; turn it off to have your default due date apply in Today too. ### Default Due Time[​](#default-due-time "Direct link to Default Due Time") * **Default due time**: a switch paired with a time picker: the time of day a task gets the first time you give it a due date without choosing one (9:00 AM until you change it). A task that already has a date-only due date keeps no time when its date changes. note Due time gives a dated task a specific time of day. If you prefer date-only tasks with no visible clock time, leave the default due time off. ### Time Zone Support[​](#time-zone-support "Direct link to Time Zone Support") **Time Zone Support** reveals the **Fixed Time Zone** switch for timed tasks in ordinary lists. It is off by default. Tasks normally use floating time, so 9:00 AM stays 9:00 AM wherever you are. Turn on a task's **Fixed Time Zone** switch when its time must represent the same moment in different places. This preference does not change task dates or make new tasks fixed. Timed tasks in iCloud shared lists, and tasks already using fixed time, offer the control without it. See [Floating and Fixed Time](/docs/macos/dates-and-durations.md#fixed-time). ### Overdue[​](#overdue "Direct link to Overdue") * **Due Time taken into account when marking a task Overdue**: with this on, a task turns overdue the moment its due *time* passes, not just its due date. ### Completed Tasks[​](#completed-tasks "Direct link to Completed Tasks") * **Show completed tasks for**: how long completed tasks stay visible: **Never**, **Always**, or a window from **1 minute** up to **1 month**. * **Apply rule to sub-tasks**: applies the same hiding rule to completed sub-tasks. * **Show tasks completed today in the Today list**: also appears under [Today & Lists > Today List](#today-list), which explains how it works. * **Auto-delete completed tasks**: removes older completed tasks automatically (**Never**, or from **1 day** up to **1 year**) to keep 2Do, sync, and your connected services running smoothly. The deletion syncs like any other change, so the task is removed from your connected service as well. This setting also trims what sync imports in the first place: completed tasks already older than this window are skipped when [Reminders](/docs/macos/sync-with-reminders.md#options) or [Todoist](/docs/macos/sync-with-todoist.md#completed) history is imported, rather than downloaded and deleted again. This keeps first syncs fast and, with Todoist, avoids wasting its limited API quota. * **Delay sub-tasks by 3 weeks**: gives completed sub-tasks a three-week grace period before auto-delete touches them. warning Auto-delete removes tasks permanently. Checked-off items inside a checklist or project count as completed tasks too, so they are removed once they have been completed for longer than the window, or three weeks longer with **Delay sub-tasks by 3 weeks** on. If you only want completed tasks out of sight, use **Show completed tasks for** instead. ### Keyboard[​](#keyboard "Direct link to Keyboard") * **Hit ⏎ to create a new task, ⌘+⏎ to edit**: swaps what plain Return does in the task list. * **Hit ⏎ when editing sub-task titles to create a new sub-task**: keeps you in flow when typing out a checklist. * **Enable Quick Look for Tasks**: press Spacebar on a task to see a zoomed-in Quick Look window with additional information. ## Today & Lists[​](#today-lists "Direct link to Today & Lists") Everything about what your Today list includes, how lists sort, and the counts they show. ### Today List[​](#today-list "Direct link to Today List") Calendar events can appear above Today or across supported lists. Choose where they appear under [Calendar](#calendar). * **Include overdue items**: whether Today also shows what's overdue. * **Include starred items**: whether Today shows starred tasks, including starred tasks from lists otherwise excluded from Today (right-click a list to edit its exclusion options). * **Include 'Still Working On' tasks**: turn this off to hide tasks with past start dates unless they're due today. * **Show tasks completed today in the Today list**: off by default. Turn it on to see the tasks you complete today in the *Done* group at the bottom of Today, even if they're due on another day or have no due date. Completed tasks stay in Today until midnight in your local time, including on days when daylight saving time starts or ends. They don't stay for a full 24 hours, so a task you complete at 11:30 PM leaves at midnight. Tasks that leave Today aren't deleted. The same switch appears under [Tasks > Completed Tasks](#completed-tasks), and changing either one changes both. It works separately from **Show completed tasks for**, which still controls how long completed tasks stay visible in your other lists. Today keeps its usual rules for excluded, hidden, and locked lists. ### Focus & Smart Lists[​](#focus-smart-lists "Direct link to Focus & Smart Lists") * **Always list matched sub-tasks separately**: uncheck to hide sub-tasks when their parent task is also visible in the list. * **Inherit Search**: opening a project or checklist keeps the active search or Smart List applied, so the project view shows only the sub-tasks that match. Turn it off to see every sub-task while inside a project. See [Inherit Search in Project View](/docs/macos/smart-lists.md#inherit-search). ### Sorting[​](#sorting "Direct link to Sorting") * **Sorting by due date uses grouped dates**: tasks appear under grouped headings (*Today, Tomorrow, Next 7 Days, Future*) instead of individual dates. * **Sorting by list uses your list order**: on by default. When you sort by **To-do List**, the sections follow the order of your lists and List Groups as arranged in the Lists Panel. Turn it off to sort the sections A–Z by list title instead. * **Sort starred items above hi-priority**: changes priority sorting when stars and priorities overlap. ### Counts[​](#counts "Direct link to Counts") * **Counts on lists**: choose which badge numbers each list shows in the sidebar: **None**, **Overdue items**, or **Overdue + Undone**. * **Undone counts should include Overdue tasks**: includes overdue tasks in the unfinished count. With it on, do not add the red overdue number to the unfinished number: those tasks are already included. These are the counts beside list names. The [Dock badge](#dock-badge) has its own count option under **Alerts**. ### Widget[​](#widget "Direct link to Widget") * **Widget List**: the list where tasks created from a [widget's](/docs/macos/widgets.md) `+` button or New Task action are filed. Leave it on **None** to use your usual default-list rules. ## Calendar[​](#calendar "Direct link to Calendar") The **Calendar** pane shows your Apple Calendar events as a read-only bar pinned above Today and other supported task lists. * **[Show Calendar Events in Lists](/docs/macos/calendar-integration.md#placement)** is off by default. It shows your Calendar events above built-in Focus Lists, including Today, and above your regular task lists. The day bar remains hidden in project and checklist views, Smart Lists, and search results. * **Show Calendar Events in Today** is on by default. It shows your Calendar events only above Today. Turning on the Lists setting turns this option off and disables it. To use Today-only display again, turn off the Lists setting and then turn this setting on. Leave both settings off to hide the day bar. * **Calendars** is a per-calendar checklist (color dot, title, and source). Calendars that are not disabled are included automatically, so newly added calendars appear by default. Uncheck a calendar to exclude it. The checklist is disabled only when both display settings are off. If 2Do has not been granted access yet, this pane shows an **Allow Calendar Access** button; if access was denied, it shows **Open System Settings** instead. Write-only access gets its own row, **Full Calendar Access Required**: *"2Do needs Full Calendar Access to read and show events"*: again with an **Open System Settings** button. [Learn more about Calendar integration](/docs/macos/calendar-integration.md). ## Alerts[​](#alerts "Direct link to Alerts") Alerts settings control automatic reminders, how alert windows appear, what the Dock badge counts, and which lists are allowed to alert you at all. The pane has two tabs: **General** and **Exclusions**. ### Notifications[​](#notification-method "Direct link to Notifications") The **Notifications method** picker chooses how 2Do delivers alarms: * **2Do**: shows 2Do's own alert cards. They stack in the top-trailing corner of the display your pointer is on (the position is automatic, and you can drag the stack while it is visible) and unlock the repeat-sound and Focus options below. Alerts are delivered by the 2Do Alarm Helper, so they reach you even when the app isn't running. * **Notification Center**: hands the alert to macOS to deliver as a standard notification. note Alarms are registered and shown by the **2Do Alarm Helper**, so **Launch 2Do Alarm Helper on System Startup** (under [General](#startup-helper)) is required for alerts to fire. Location and "nearby" alerts always use Notification Center regardless of this setting. ### 2Do Notifications[​](#twodo-notifications "Direct link to 2Do Notifications") These options apply only when the notification method is set to **2Do**; they are disabled for Notification Center. * **Sound alerts repeat until dismissed**: how often 2Do replays an unacknowledged alert's sound: **Never**, **Every 2 mins**, **Every 5 mins**, or **Every 10 mins**. * **Silence custom alarms during any Focus**: off by default. Turn it on to hide and silence 2Do's alarm cards whenever *any* macOS Focus is active. Leave it off if you only want alarms silenced in the specific Focus modes where you add the 2Do Focus Filter. See [System Focus Filters](/docs/macos/system-focus-filters.md) and [Alarms and Nagging](/docs/macos/alarms-and-nagging.md). ### Default Reminders[​](#automatic-alerts "Direct link to Default Reminders") 2Do can add a reminder for you automatically when you give a task a due time or a due date. Each row pairs a reminder's timing picker with its own switch: * **Remind me of tasks with a due time**: automatically adds a reminder to every task that has a due time. The picker next to the switch chooses the timing: **At due time**, or **5 / 10 / 15 / 30 minutes**, **1 / 2 / 6 / 12 hours**, or **1 / 2 days before**. * **Remind me of tasks with a due date**: the same, for tasks that have a due date but no due time. A due date without a time means midnight on that day, so the timings (**On due date**, or the same offsets before it) count back from midnight. tip Alarms and Quick Entry are handled by the 2Do Alarm Helper: keep **Launch 2Do Alarm Helper on System Startup** enabled under [General](#startup-helper), or alerts won't fire. ### Dock Badge[​](#dock-badge "Direct link to Dock Badge") * **Count on Dock app icon**: chooses what the red badge on 2Do's Dock icon counts: **None**, **All items**, **Overdue**, **Today**, **Due Today Only**, **Today + Overdue**, **Today + Tomorrow**, **Hi-Priority**, **Starred**, **Next 3 Days**, **Next Week**, **Next Month**, **Next 6 Months**, or **Next Year**. The three Today options count different sets of unfinished tasks: | Option | What it counts | | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Today** | Eligible tasks selected by Today's date and inclusion rules, excluding overdue tasks. Start dates, durations, and the Starred and Still Working On settings can bring tasks into this count. | | **Due Today Only** | Tasks whose due date is today, with or without a due time. A task keeps counting after its due time has passed. Tasks due on another day, or with no due date, never count. | | **Today + Overdue** | The eligible Today tasks plus overdue tasks, counted once each. Overdue tasks count even when **Include overdue items** is off in Today settings. | **Today** and **Today + Overdue** use the lists included in Today, with the starred-task exception from **Include starred items**. They skip hidden and archived lists and tasks on hold, even if you have revealed paused tasks in the list. Count distinct tasks when comparing totals. A task due earlier today may already be overdue; **Today + Overdue** counts it once. note When [**Due Time taken into account when marking a task Overdue**](#overdue) is on, the **Today** badge can decrease during the day without you completing anything. For example, an unfinished task due at 13:22 stops counting once that time passes. Choose **Today + Overdue** to keep overdue tasks counted, or **Due Today Only** to keep counting unfinished tasks throughout their due day. **Due Today Only** looks at the due date alone. A task that has already started, or starts today, does not count unless it is also due today. A star or a duration makes no difference. All three Today badge options follow [Smart Scheduling](/docs/macos/focus-lists.md#smart-scheduling). A task can be due today but not started yet, because its start date or time is still ahead: * **Show Scheduled** on: it can count before its start time, if it meets the selected badge option's other rules. * **Show Scheduled** off: it stays out of the count until its start date and time arrive. For **Due Today Only**, a task that starts after its due day never counts. **Due Today Only** counts only lists included in Today, and skips hidden lists, archived lists, and tasks on hold. Changing the badge option never changes what the Today list shows. Every badge option counts tasks in password-protected lists, even while those lists or the app are locked. Each device calculates its own badge count from its local tasks and settings. If the badge differs from the total you expect or from another device, see [Why does the app icon badge show a different count?](/docs/faqs/app-icon-badge-count.md). ### Exclusions[​](#alerts-lists "Direct link to Exclusions") The **Exclusions** tab decides which lists may alert you. Every list appears with a switch under **List Alerts**, grouped by list group. Alerts are **enabled for all lists by default**: turn a list **off** to silence alerts from its tasks, including [lists shared with you](/docs/macos/list-sharing.md). * Turning a list off cancels its pending and snoozed alerts immediately; turning it back on re-registers them. * The setting is **local to this Mac** and never syncs: mute a noisy list here while your other devices keep alerting. * Smart Lists and Focus Lists aren't listed; alerts belong to the real list a task lives in. Hidden lists appear here only while the Security settings are unlocked. See [Silencing Alerts for Specific Lists](/docs/macos/alarms-and-nagging.md#list-alerts). ## Mail to 2Do[​](#mail-to-2do "Direct link to Mail to 2Do") Mail to 2Do gives this Mac a private, receive-only email address: anything sent to it becomes a task. The pane appears when your license is eligible for the feature. This is the settings reference; the full guide, including subject filing instructions and troubleshooting, lives on [Mail to 2Do](/docs/macos/email-to-2do.md). * **Enable Mail to 2Do**: the master switch: *"Create tasks by sending email to your private 2Do address."* Turning it on provisions your private address (a small spinner shows while 2Do sets it up). Turning it **off** asks for confirmation first, because the address is **deleted permanently** along with any pending mail. Re-enabling later creates a completely different address. If something needs attention, a status line appears here (address expired, license paused, all address slots in use, and so on). * **How Mail to 2Do works**: an expandable summary of the feature with its limits shown as capsules: **No attachments**, **Plain text only**, **Notes up to 10,000 characters**, and **50 emails per day**. The privacy note says mail is encrypted for this Mac the moment it arrives, 2Do's service can't read it, and it's deleted the instant your task saves (or after 30 days, whichever comes first). * **Your Address**: shown once enabled: your private `…@2doapp.email` address in selectable monospaced text, with a one-click **copy** button. * **Default destination list**: under **Delivery**, the list emailed tasks land in when the email doesn't name a list itself (via `list(...)` in the subject). Defaults to the **Inbox**; grouped like your sidebar. * **Fetch mail**: also under **Delivery**: 2Do checks for new mail automatically in the background, and the **Fetch Now** button checks immediately. * **Replace Address**: under **Manage**: immediately and permanently retires the current address and issues a new one on the same license slot. 2Do confirms first; pending mail for the old address is deleted. Use it if your address has spread further than you'd like. Two situations bring up extra choices: * **Address ownership**: after restoring or cloning a database, 2Do may ask whether to **Move Address to This Mac** (keep the address; the other Mac stops receiving, its undelivered mail is deleted) or **Use a New Address** (leave the other Mac untouched and give this copy its own address). * **Address slots**: a sheet lists the license's addresses (partially masked, with last-used dates) so you can permanently **Release** one you no longer need. It's titled **Manage Addresses** normally, and **Free an Address Slot** when every slot on your license is in use. In that case setup retries automatically once you release one. The footer shows how many address slots are in use. ## Sync[​](#sync "Direct link to Sync") Sync keeps your lists and tasks in step across your Macs and mobile devices. The pane has two tabs: **Setup** and **Exclusions**. ### Setup[​](#sync-setup "Direct link to Setup") 2Do syncs through a single account at a time. Under **Setup**, choose a provider from the **Account Type** pop-up and connect: * **Account Type**: pick one of **None**, **[iCloud](/docs/macos/sync-with-icloud.md)** (marked **Recommended**, and requiring macOS 14 or later), **[Reminders](/docs/macos/sync-with-reminders.md)**, **[Dropbox](/docs/macos/sync-with-dropbox.md)**, **[Todoist](/docs/macos/sync-with-todoist.md)**, **[Toodledo](/docs/macos/sync-with-toodledo.md)**, **[iCloud CalDAV](/docs/macos/sync-with-icloud-caldav.md)**, **[Fastmail](/docs/macos/sync-with-fastmail.md)**, **[Yahoo](/docs/macos/sync-with-caldav.md)**, **[Fruux](/docs/macos/sync-with-caldav.md#fruux)**, or **[Custom CalDAV](/docs/macos/sync-with-caldav.md)**: each linked to its own setup guide. Once an account is connected this pop-up is locked, so you can't silently add or switch to a second service. ([WebDAV](/docs/macos/sync-with-webdav.md) is coming soon and will appear here when it ships.) * **Enable Sync**: a master switch that turns all syncing on or off once a provider is configured. * **Credentials**: the fields depend on the provider. **Dropbox** signs in with a **Link Account** button (and shows your account name and email once linked, with **Unlink** to disconnect). **Reminders** and **Todoist** need no credentials here; use **Set Up Sync** (Todoist signs you in through your browser). **iCloud CalDAV** asks for your **Apple Account** and an **App-Specific Password**, and **Fastmail** asks for your **Email** and an **App-Specific Password** (in both cases your normal password won't work). **Yahoo**, **Fruux**, and **Toodledo** take a username and password. **Custom CalDAV** adds **Server Address**, **Path**, **Port**, and **Use SSL** (on by default). * **Set Up Sync / Change Account**: providers show **Set Up Sync** to connect, then **Change Account** once connected. Changing the account resets the current sync setup (2Do confirms first) and lets you pick a different Account Type. The footer shows **Last Sync**, and the **Last Error** if something went wrong. A small **?** button at the bottom opens the online guide for the selected sync method. Use the same account on every device that runs 2Do. note The first time you connect to a self-hosted server with a private certificate, 2Do shows a **"Can't Verify This Server"** prompt with the server's fingerprint: confirm to trust it. [Learn more about Sync](/docs/macos/sync.md), or jump straight to the setup guide for [iCloud](/docs/macos/sync-with-icloud.md), [Dropbox](/docs/macos/sync-with-dropbox.md), [Apple Reminders](/docs/macos/sync-with-reminders.md), [Todoist](/docs/macos/sync-with-todoist.md), [Toodledo](/docs/macos/sync-with-toodledo.md), [iCloud CalDAV](/docs/macos/sync-with-icloud-caldav.md), [Fastmail](/docs/macos/sync-with-fastmail.md), [Custom CalDAV (Fruux, Yahoo, Nextcloud…)](/docs/macos/sync-with-caldav.md), or [WebDAV (coming soon)](/docs/macos/sync-with-webdav.md). ### What Syncs[​](#what-syncs "Direct link to What Syncs") Each connected account has an expandable **What syncs across your devices** summary. When a provider can't carry something, it shows a "Stays on this Mac" strip of capsules, plus a small help button with more detail. What syncs varies by service: Dropbox leaves link-only attachments on this Mac, CalDAV leaves out 2Do's grouping features (Smart Lists, tag groups and list groups), and Todoist and Reminders leave attachments and standalone locations on this Mac. ### Provider Options[​](#sync-provider-options "Direct link to Provider Options") Below the summary, each provider adds its own switches: * **Keep completed tasks** (Reminders and Todoist): how far back completed tasks are imported and kept in 2Do. Reminders offers **1, 2, 3, 4, 5, 6, 12, 18, or 24 months**; Todoist offers **3, 6, or 12 months**. 12 months is the default for both. With **Reminders**, completed tasks older than the window are removed from 2Do only and left untouched in Apple Reminders. With **Todoist**, completed tasks outside the window are simply never imported into 2Do. If **Auto-delete completed tasks** is on under [Tasks](#completed-tasks), the import reaches back only as far as the shorter of the two windows: older completions are skipped entirely rather than imported and immediately deleted. * **Sync extra task properties in notes** (Todoist): stores 2Do-only fields as text in Todoist task descriptions so they survive between your devices. See [Sync with Todoist](/docs/macos/sync-with-todoist.md#extra-properties). * **Sync 2Do lists as Toodledo Folders** (Toodledo): turn off to sync 2Do lists as Toodledo *Contexts* instead. * **Sync list ordering** (CalDAV, Dropbox, and WebDAV when available): keeps your sidebar's list order in sync. * **Sync audio notes** / **Sync pictures** (CalDAV, Dropbox, and WebDAV when available): whether a task's audio and picture attachments travel with it. Both on by default. * **Sync app preferences** (CalDAV, Toodledo, Dropbox, and WebDAV when available): syncs supported app preferences alongside your tasks. ### Automatic Sync[​](#sync-automatic "Direct link to Automatic Sync") * **Sync automatically**: leave it on for continuous background sync, or turn it off to sync manually (`⌘S`). This choice is local to each device. ### Next Sync Action[​](#next-sync-action "Direct link to Next Sync Action") After the first sync, a **Next sync action** picker at the bottom of Setup changes what the next sync does: **Replace Server Data** (the picker names the service, e.g. **Replace Server (Dropbox) Data**), **Replace Local Data**, or **Merge Sync**, then it returns to **Sync Normally**. It applies only to the next sync; 2Do asks you to confirm any destructive choice. Merge Sync is available for every provider; Replace Server Data is offered for every provider except Todoist and Reminders. important Use Replace Server Data only when this Mac has the data you want to keep. Use Replace Local Data when the sync service has the data you want to pull down. Merge reconciles both sides and keeps unmatched items from each, but it compares every task and can take a very long time with a large number of tasks. Choose it only when you are unsure which side is complete, or when both sides hold changes you need to keep. ### Exclusions[​](#sync-exclusions "Direct link to Exclusions") The **Exclusions** tab lets you switch on lists that should stay on this Mac. Selected lists, along with their tasks, are excluded from sync. Lists are grouped by their list group. (Lists [subscribed over LAN sharing](/docs/macos/list-sharing.md) can't be excluded because they don't take part in account sync. The tab is also briefly unavailable while a sync is running.) ## Security[​](#security "Direct link to Security") Security settings control the master password, list privacy, and archived lists. The pane has three tabs: **Protection**, **Privacy**, and **Archived**. A lock button at the bottom of every tab guards these settings themselves: once a master password is set, click the lock to make changes and click it again to prevent them (it also relocks itself after a while). ### Protection[​](#security-protection "Direct link to Protection") **Master Password** * **Set Password… / Change Password…**: creates or changes the master password used to unlock protected content. Passwords need at least 4 characters. * **Remove Password**: removes password protection (shown once a password exists). **Auto-Lock** * **Lock after a period of inactivity**: relocks protected content when your Mac has been idle. * **Lock after**: the inactivity window: **1, 2, 5, 10, or 20 minutes** (2 minutes by default). * **Lock when the window is minimized**: relocks as soon as the 2Do window is minimized. * **Use Touch ID to unlock**: unlocks with Touch ID; shown only on Macs that support it. Touch ID also works in the password dialogs themselves. **App Lock** * **Lock everything**: requires the password to unlock the app's whole UI, instead of protecting individual lists. Turning it on replaces any per-list locks. **Password-Protected Lists** A per-list switch group: tasks from selected lists stay hidden from *all* places, including Smart Lists, until unlocked. See [Password Protection](/docs/macos/password-protection.md). ### Privacy[​](#security-privacy "Direct link to Privacy") **List Visibility**: toggle the visibility of individual lists if you don't want certain lists shown in the side panel. The switch means "visible", so turn a list *off* to hide it; 2Do won't let you hide your last remaining list. note Hidden lists and their tasks are still included during sync. To keep a list off the server too, exclude it under **Sync > Exclusions**. tip Use **Privacy** when you do not want a list visible during normal browsing. Use **Lock** when the list can remain visible but should require the password before opening. ### Archived Lists[​](#security-archived "Direct link to Archived Lists") Archived lists stay out of your active sidebar without being deleted. Each row has an **Unarchive** button that makes the list visible again after a quick confirmation. note Archived lists stay hidden from active views, except Smart Lists and Done. They still sync unless you also exclude the list under **Sync > Exclusions**. ## Backups[​](#backups "Direct link to Backups") Backups are local safety snapshots of your 2Do data. * **Create backups**: choose **None**, **Every 24 Hours**, or **Every 48 Hours**. 2Do also makes a safety backup automatically before a **Replace Local Data** sync (this one is handled for you, not a toggle). * **Keep at most**: how many automatic backups 2Do keeps: **5, 10, 20, or 30**. * **The backup list**: one row per backup with its size and creation date. Each row's **⋯ menu** offers **Restore…**, **Save a Copy…** (save that backup somewhere else, such as iCloud Drive or Dropbox), and **Delete**. * **Create Backup Now**: takes a fresh backup on the spot. * **Restore from File…**: pick a saved backup file from disk and open it in the restore browser. Choosing **Restore…** (from a backup row's **⋯** menu, or **Restore from File…**) opens the **Restore Backup** browser, where you can restore just the lists you need rather than everything: * **Restore Selected** is additive and non-destructive. It duplicates the lists you tick (regular lists and Smart Lists) into a new **Restored** group, leaving your existing lists and tasks untouched. * **Restore Everything…** is destructive. After a final confirmation it replaces your current 2Do database with the backup (2Do saves a fresh safety backup of your existing data first) and quits; relaunch it to continue with the restored data. [Learn more about Backups](/docs/macos/backups.md). important **Restore Everything…** replaces the current local data. If you're unsure, save a fresh backup first, or use **Restore Selected** to bring back individual lists safely. ## Updates[​](#updates "Direct link to Updates") This pane only appears in direct-download builds: Mac App Store and Setapp builds update through their own store apps. * **Join 2Do Beta**: opt in to beta releases. You're prompted automatically when the next beta is available to download, and you're still notified of stable releases so you always have the latest copy installed. ## Diagnostics[​](#diagnostics "Direct link to Diagnostics") Diagnostics are for troubleshooting and support. * **Show Logs**: reveals 2Do's log folder in Finder. * **Email Diagnostic Report**: asks for confirmation first (**Share Logs with Support?**), then bundles the logs and a database summary into an email addressed to 2Do support. * **Optimize Database**: performs local database maintenance and cleans up auto-deletable completed tasks. * **Reset Application Data…**: wipes local app data and installs a fresh, empty database. 2Do warns you clearly first, and quits for a relaunch once done. important Reset Application Data is destructive: everything stored in 2Do on this Mac is removed. Save a backup first unless you are deliberately starting over. ## Related Pages[​](#related "Direct link to Related Pages") * [Quick Entry](/docs/macos/quick-entry.md) * [Natural Language Input](/docs/macos/natural-language-input.md) * [Alarms and Nagging](/docs/macos/alarms-and-nagging.md) * [System Focus Filters](/docs/macos/system-focus-filters.md) * [Calendar Integration](/docs/macos/calendar-integration.md) * [Backups](/docs/macos/backups.md) * [Sync](/docs/macos/sync.md) * [Tags](/docs/macos/tags.md) * [Smart Lists](/docs/macos/smart-lists.md) * [Password Protection](/docs/macos/password-protection.md) --- # Automate with Shortcuts 2Do for Mac ships a full catalogue of **native actions for the macOS Shortcuts app**, built on Apple's App Intents. You can create, find, update, complete, move, and delete tasks; build alarms and recurrence rules; pause tags; and open tasks in the app, all by dragging actions together with no scripting. Under the hood these actions drive the **same canonical automation engine** as [AppleScript](/docs/macos/applescript.md) and [Claude Co-Work](/docs/macos/mcp.md), so the three surfaces stay in step: the same fields, the same validation, the same results. Data actions work while 2Do is closed Read, create, update, delete, alarm, recurrence, and value-building actions run through a dedicated App Intents extension, so they work while 2Do isn't running. A change made while the app is closed is waiting for you the next time 2Do opens, and a running 2Do picks it up immediately. Actions that open a task or collection, or search inside 2Do, intentionally launch or bring forward the app. The one setup requirement is to **open 2Do at least once** after installing or updating. Until then, data actions report *"Open 2Do once to finish setup, then run this shortcut again."* ## Your First Shortcut[​](#first-shortcut "Direct link to Your First Shortcut") A 60-second capture shortcut: 1. Open the **Shortcuts** app on your Mac and click **+** to create a new shortcut. 2. In the action search field, type **2Do**. Every 2Do action appears under the app's name. 3. Drag in **Ask for Input** (a built-in Shortcuts action) and set the prompt to "What needs doing?". 4. Drag in 2Do's **Create Task** and pass the *Provided Input* into its **Title**. 5. Optionally expand Create Task and pick a **Destination** list, a **Due Date**, a **Priority**, or **Tags**. 6. Name the shortcut something speakable, such as *Capture It*, and run it from the Shortcuts menu-bar icon, a keyboard shortcut, or Siri ("Hey Siri, Capture It"). 2Do actions accept values from the actions above them and hand their results to the actions below. ## The Action Catalogue[​](#actions "Direct link to The Action Catalogue") The core data and value actions require **macOS 13 Ventura or later** and appear in Shortcuts under **2Do**. Search and interactive display actions have the newer system requirements noted below. ### Find and read[​](#read-actions "Direct link to Find and read") | Action | What it does | | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Find Tasks** | The most powerful query action. Filter tasks by any combination of properties (see [Finding Tasks](#find-tasks) below), sort, and limit. | | **Get Tasks from Collection** | Returns tasks from a **Focus** (All, Today, Starred, Scheduled, Done), a **list**, a **List Group**, or a **Smart List**. Options: *Include Completed* (on by default) and *Limit* (default 100, up to 1000). | | **Get Subtasks** | Returns the direct sub-tasks of a project or checklist, with an *Include Completed* option. | | **Get Task by ID** | Returns one task from its stable task ID. This is handy when another automation (AppleScript, MCP, or a URL callback) handed you an identifier. | ### Create and edit[​](#write-actions "Direct link to Create and edit") | Action | What it does | | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Create Task** | Creates a task, project, or checklist with the full 2Do field set. See [Creating Tasks](#create-task). | | **Update Task** | Changes only the fields you supply; everything omitted stays untouched. Includes explicit *Clear Due Date / Due Time / Start Date / Start Time / Duration* switches, and tag/location updates with a **Set / Add / Remove** operation. | | **Set Task Completion** | Marks one or **many** tasks complete or incomplete, with an *Include Subtasks* switch (on by default). | | **Move Tasks** | Moves one or many tasks to another list, or **into a project or checklist** as sub-tasks. | | **Duplicate Task** | Duplicates a task, project, or checklist. | | **Delete Tasks** | Permanently deletes one or many tasks. Always asks you to confirm first. | | **Set Task Action** | Replaces or clears a task's action (None, Call, Message, Email, Visit, URL, Google). | | **Set Task Alarms** | Replaces every sound alarm on a task with the alarm values you pass in; an empty list clears them. A task may have at most 10 total alarms. | | **Set Task Recurrence** | Replaces the repeat rule on a task, or clears it with the *Clear Recurrence* switch. | | **Set Tag Paused** | Pauses or resumes one of your tags, the Shortcuts equivalent of [pausing a tag](/docs/macos/tags.md#pause). | ### Value builders[​](#value-actions "Direct link to Value builders") Three helper actions build reusable values for the actions above, without touching your data: | Action | What it builds | | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Make Task Alarm** | A sound-alarm value: *At Date and Time* (absolute) or *Relative to Task* (anchored to the **Task Date** or **Task Time**, with an offset from -63,071,999 through 63,071,999 seconds; negative fires before). An optional *Sound Name* overrides the default alarm sound. | | **Make Task Recurrence** | A repeat rule: frequency **Never / Daily / Weekly / Monthly / Yearly / Weekdays / Custom** (with interval 1–999 and a Day/Week/Month/Year unit), repeat from **Task Date** or **Completion Date**, optional weekdays, a monthly ordinal weekday (1st–5th or last), and an end condition (**Never / On Date / After Count**, from 1 through 99 occurrences). The *Never* frequency represents no recurrence. | | **Make Task Subtask** | A sub-task value for **Create Task**, with its own notes, dates, duration, priority, tags, locations, alarms, recurrence, and action. | Chain them: **Make Task Alarm** into **Create Task** (Alarms), **Make Task Recurrence** into **Set Task Recurrence**, or **Make Task Subtask** into **Create Task** (Subtasks). ### Show and open[​](#show-actions "Direct link to Show and open") | Action | What it does | | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **Open Task in 2Do** | Brings 2Do forward with the task selected and revealed. | | **Open Collection in 2Do** | Brings 2Do forward with a list, list group, Smart List, or Focus List selected. | | **Search in 2Do** *(macOS 15 or later)* | Opens 2Do with a search ready to run through the system search action wired to 2Do's search bar. | | **Show Tasks** *(macOS 26 or later)* | Displays tasks in an **interactive panel** with a completion checkmark and an open button on every row. Tick tasks off right from the snippet without opening 2Do. | On earlier macOS versions, the read and write actions still show a static task preview card after they run. ## Creating Tasks[​](#create-task "Direct link to Creating Tasks") **Create Task** exposes the full 2Do model in one action: * **Title** *(required)* and **Notes**. * **Destination**: any list, or a **project / checklist** to create the new item inside as a sub-task. Leave it empty and 2Do uses your default capture list (Inbox, unless you've changed it). * **Task Type**: Task, Project, or Checklist. * **Starred**, **Priority** (None / High / Medium / Low). * **Due Date**, **Due Time**, **Start Date**, **Start Time**, **Duration in Seconds** (from 0 through 2,147,483,647). * **Tags** and **Locations**: picked from your *existing* tags and locations. Shortcuts won't invent new ones on the fly; create tags and locations in 2Do first. * **Alarms**: one or more values from **Make Task Alarm**. * **Recurrence**: a value from **Make Task Recurrence**. * **Action Type** + **Action Value**: give the task a Call, Message, Email, Visit, URL, or Google action. * **Subtasks**: a list of values from **Make Task Subtask**, up to 100 of them. Use it with Task Type = Project or Checklist and a list destination (or the default list) to scaffold a container. It is not accepted for a normal task or when Destination is already a project or checklist. Create Task returns the new task entity, so the next action can immediately alarm it, move it, or open it. ## Finding Tasks[​](#find-tasks "Direct link to Finding Tasks") **Find Tasks** is generated from 2Do's task entity, which means the Shortcuts *filter builder* understands real 2Do properties: * **Title** (contains / is), **Notes** (contains) * **Completed**, **Starred**, **Paused** (is) * **Task Type** (Task / Project / Checklist) * **Due Date** and **Start Date** (is / is before / is after) * **Priority** (is) * **List**: any Focus, list, List Group, or Smart List * **Tags** and **Locations** (contains) Combine any number of filters with **All** (and) or **Any** (or) matching, sort by **Title, Due Date, Start Date, Priority, or Duration**, and cap the result count. The result is a list of task entities ready for the next action. tip Every returned task carries its full field set as Shortcuts *variables*: title, notes, dates, tags, priority, its list, and even a **Deep Link** URL. You can feed task details into any other app's actions (calendar events, messages, documents) without extra lookups. ## Batch Operations[​](#batches "Direct link to Batch Operations") **Set Task Completion**, **Move Tasks**, and **Delete Tasks** accept a whole list of tasks in one run (up to 100). The whole batch is validated before any changes are made. If any task is invalid, the action fails; otherwise, it applies the changes in order. **Delete Tasks always asks for confirmation** and can never run silently. Completing a recurring task advances it to its next occurrence. Running **Set Task Completion** again on that recurring task advances it again. ## Using Siri[​](#siri "Direct link to Using Siri") Any shortcut you build can be run by voice: **"Hey Siri, ⟨shortcut name⟩"**. Give capture shortcuts short, speakable names such as *Capture It*, *Log Expense*, or *Plan Tomorrow*. Siri can run 2Do's data actions while the app is closed; navigation and in-app search actions bring 2Do forward. 2Do includes spoken phrases for its own actions on the Mac, in 21 languages, so you can add, find, or complete a task by voice without building a shortcut first. See [Siri and Shortcuts](/docs/macos/siri-and-shortcuts.md) for the voice and automation overview. ## Siri on macOS 27[​](#os27-siri "Direct link to Siri on macOS 27") Requires macOS 27 or later Everything else on this page works on the versions listed under [Requirements](#requirements). On macOS 27, 2Do's tasks and lists are available to Siri conversationally: you can create, update, complete, delete, and look up tasks by asking, with no shortcut in between. See [Asking Siri to Work with Your Tasks](/docs/macos/siri-and-shortcuts.md#new-siri) for exactly which fields Siri can set. This is a separate surface from the catalogue above: it adds no actions to the **Shortcuts** app, and your own shortcuts are unaffected. The integration has two further pieces: * **Spotlight results are actionable.** Tasks indexed for Spotlight are published as the system's task type, so a task you find in search can be acted on from there rather than only opened. * **Siri knows what is on screen.** The task list reports which task each visible row represents, and the sidebar does the same for lists, list groups, and Focus Lists, so you can refer to "this task" or "this list" while you are looking at it. ## Spotlight[​](#spotlight "Direct link to Spotlight") Your tasks are also indexed for **Spotlight**: search a task's title, notes, tag, or location name from the Spotlight bar, and opening the result reveals the task in 2Do. Spotlight indexing respects the same privacy rules described below. ## Privacy and Passwords[​](#privacy "Direct link to Privacy and Passwords") Siri and Shortcuts are deliberately **stricter** than 2Do's other automation surfaces: * If an **app password** is set (Settings > Security), the entire Siri & Shortcuts surface fails closed. Actions report *"2Do data is unavailable to Siri and Shortcuts while an app password is set."* This applies even while 2Do is unlocked on screen. * **Password-protected lists** are always excluded: their tasks never appear in results, and they're never offered as destinations. Protection is re-checked immediately before any write. * Actions that touch your data **require device authentication**. A locked Mac won't run them. AppleScript and Claude Co-Work follow the app's current interactive unlock session: they can use app or list data that you have unlocked in 2Do, but locked data remains unavailable. Shortcuts and Siri use the stricter rules above because they can run from unattended automations. ## Shortcuts, AppleScript, or Claude?[​](#which-surface "Direct link to Shortcuts, AppleScript, or Claude?") All three drive the same engine. Pick the surface that fits the job: * **[Shortcuts](/docs/macos/shortcuts-actions.md)**: visual, no code, runs from Siri, the menu bar, hotkeys, or any Shortcuts trigger. Its data actions work while 2Do is closed; navigation actions bring the app forward. Best for personal capture-and-review automations. * **[AppleScript](/docs/macos/applescript.md)**: a scripting dictionary with the complete strict command set. Best for power scripting and integration with other scriptable Mac apps. Requires 2Do to be running. * **[Claude Co-Work (MCP)](/docs/macos/mcp.md)**: let an AI plan and execute multi-step task work conversationally. Requires 2Do to be running. The `twodo://` [URL scheme](/docs/macos/url-schemes.md) remains available for callback-style integrations from any app. ## Recipes[​](#recipes "Direct link to Recipes") * **Morning briefing**: *Get Tasks from Collection* (Today, Include Completed off) → *Show Tasks*. One click (or "Hey Siri, Morning Briefing") for an interactive checklist of the day. * **Quick capture with a deadline**: *Ask for Input* → *Create Task* with Due Date = Today, Due Time = 17:00, and a 15-minutes-before alarm from *Make Task Alarm*. * **Project scaffold**: build each template step with *Make Task Subtask*, then pass the values to *Create Task* with Task Type set to Project. Duplicate the shortcut per template. * **Weekly sweep**: *Find Tasks* (Completed is true, Due Date is before Last Week) → *Delete Tasks*. The confirmation prompt keeps it safe. * **Heads-down mode**: *Set Tag Paused* (your `errands` or `waiting` tag, Paused = true) as part of a bigger "start focus" shortcut; a matching "wrap up" shortcut resumes it. * **Hand-off to calendar**: *Find Tasks* (Due Date is today, has Duration) → create calendar events from each task's title and due time. ## Requirements[​](#requirements "Direct link to Requirements") * **macOS 13 Ventura or later** for the core data, navigation, and value actions. * **macOS 14 or later** adds native Find actions for collections, tags, tag groups, and locations. * **macOS 15 or later** deepens Spotlight integration (tasks as first-class entities with openable URLs). * **macOS 26 or later** for the interactive **Show Tasks** panel. * **macOS 27 or later** adds conversational Siri access to your tasks and lists, actionable Spotlight results, and on-screen task and list references. ## Related Pages[​](#related "Direct link to Related Pages") * [Siri and Shortcuts](/docs/macos/siri-and-shortcuts.md): the quick-start overview, conversational Siri access, and URL-scheme capture flows. * [AppleScript Automation](/docs/macos/applescript.md): the full scripting reference. * [Claude Desktop MCP Extension](/docs/macos/mcp.md): conversational automation with Claude. * [URL Schemes](/docs/macos/url-schemes.md): `twodo://` callback integration. --- # Siri and Shortcuts 2Do for Mac plugs into the macOS Shortcuts app with a full set of **native actions** for creating, finding, updating, completing, moving, and deleting tasks without scripting. Siri can run any shortcut you build by name. For callback-style integrations, there is also the `twodo://` URL scheme. ## Native Shortcuts Actions[​](#native-actions "Direct link to Native Shortcuts Actions") Open the **Shortcuts** app, search for **2Do**, and you'll find actions for the whole task model: **Create Task** with dates, tags, alarms, recurrence, and structured sub-tasks, **Find Tasks** with property filters, **Get Tasks from Collection**, **Set Task Completion**, **Move Tasks**, **Delete Tasks**, **Set Tag Paused**, and more. They run through the same automation engine as [AppleScript](/docs/macos/applescript.md) and [Claude Co-Work](/docs/macos/mcp.md), and they work **even while 2Do isn't running**. See **[Automate with Shortcuts](/docs/macos/shortcuts-actions.md)** for the full action catalogue, a step-by-step first shortcut, and ready-made recipes. tip Prefer the native actions over URL schemes wherever both can do the job: they return real task values you can chain into further actions, they validate their input, and they don't need to open the app. ## Capturing Tasks with Siri[​](#siri "Direct link to Capturing Tasks with Siri") Build a capture shortcut and give it a speakable name: 1. In Shortcuts, add **Ask for Input** ("What needs doing?"). 2. Add 2Do's **Create Task** action and pass the input into its **Title**; set the **Destination** parameter to a list or a parent task, and add a date or tags if you like. 3. Name the shortcut something short, such as *Capture It*, and say **"Hey Siri, Capture It"**. Siri runs the shortcut and the task lands in 2Do, whether or not the app is open. You can also speak to 2Do directly 2Do ships its own spoken phrases, in every language 2Do speaks, so you can ask Siri to add, find, or complete a task without building a shortcut for it. Say "Add to 2Do", "Find tasks in 2Do", or "Complete a task in 2Do". Shortcuts you have named yourself keep working alongside them. note If you ask Siri directly to "remind me" (without naming a shortcut), the item goes to Apple's Reminders app. That still reaches 2Do if you sync with the [Apple Reminders method](/docs/macos/sync-with-reminders.md); otherwise use a named capture shortcut so the task goes straight to 2Do. tip Build a Smart List for *Captured today* (Created Date is today) to spot new tasks during your daily review. ## Asking Siri to Work with Your Tasks[​](#new-siri "Direct link to Asking Siri to Work with Your Tasks") Requires macOS 27 or later On earlier versions, use the spoken phrases above and your own named [Shortcuts](/docs/macos/shortcuts-actions.md). On macOS 27, your 2Do tasks and lists are available to Siri directly, so you can talk through a change in your own words rather than building a shortcut for it first. Siri can: * **Create a task** with a title, a destination list, notes, a due date and time, a star, tags, one URL, and a repeat. * **Update a task**: change its title, notes, due date and time, star, tags, URL, or repeat, or move it to another list. Anything you do not mention stays as it is. * **Complete a task**, or mark a completed task as not done. * **Delete one or more tasks**. * **Find tasks, lists, and list groups** by name. Tasks created this way are always plain tasks. Siri does not create projects or checklists, and it does not set a priority, start date, duration, alarms, sub-tasks, or locations. Create those in the app or with 2Do's Shortcuts actions. Siri works with your normal lists and list groups, picking from the ones you already have. It does not create lists, and Smart Lists are not offered. A repeat that does not map onto 2Do's own repeat rules is refused rather than approximated. Creating, updating, and deleting through Siri follow the same security rules as the rest of 2Do's automation: they require device authentication, and while an app password is set under **Settings > Security**, 2Do keeps its data away from Siri and Shortcuts entirely. See [Password Protection](/docs/macos/password-protection.md). This is a separate surface from the **Shortcuts** app. It adds no actions there, and the shortcuts you have already built keep working as they are. See [Automate with Shortcuts](/docs/macos/shortcuts-actions.md) for the full catalogue. ## Naming Lists for Siri[​](#naming-lists "Direct link to Naming Lists for Siri") If your shortcut sends tasks to a specific 2Do list, use the list name exactly as it appears in 2Do. Avoid names that conflict with date words such as *Today* or *Tomorrow* when speaking to Siri, because Siri may treat those words as dates rather than list names. ## URL-Scheme Flows[​](#shortcuts "Direct link to URL-Scheme Flows") For callback-style integrations, or for driving 2Do from apps that only know how to open URLs, the `twodo://` scheme remains fully supported. A clipboard-capture example: 1. **Get Clipboard**. 2. **URL Encode** the result. 3. **Open URL** with `twodo://x-callback-url/add?task=&forlist=Inbox`. See [URL Schemes](/docs/macos/url-schemes.md) for the full action and parameter reference. tip Use `usequickentry=1` in your URL if you want the flow to show Quick Entry before saving. Leave it out when you want the task saved immediately. (The native **Create Task** action always saves directly.) --- # Smart Lists, Smart Filters, and Search A **Smart Filter** searches your tasks using words, tags, dates, or a combination of conditions. Save it as a **Smart List** to keep it in the Lists Panel. The results update as your tasks change. Use the searches on this page once or save them for later. For quick filtering with a few built-in conditions, see [Focus Filter](/docs/macos/focus-filter.md). ![Smart List rule builder](https://downloads.2doapp.com/resources/img/2do-mac/smartfilter.png) ## The Global Search Bar[​](#search-bar "Direct link to The Global Search Bar") Click the magnifying-glass button in the toolbar or press `⌘F` to open the Global Search Bar. Type a search, or use its menus: * **Presets** inserts a ready-made search, including common filters in the **Show only...** submenu. You can edit the inserted text. * **Search Options** opens with the filter button or `⌥⇧⌘F` (**Find Options...**). It includes **Soundex**, the **Search Presets** rule builder, [date filters](#date-filters), **This List / All Lists**, and **Include Scheduled**. The scope control decides whether the search covers only the list you're currently in or every list you have. `⌥⌘F` (**Toggle Search Scope**) flips it without opening the panel. **Include Scheduled** brings tasks with a future start date into the results, and it's remembered when you save the search as a Smart List. ## Combine Today and Overdue[​](#today-and-overdue "Direct link to Combine Today and Overdue") To show unfinished tasks due today together with overdue tasks, enter this search: ``` type: duetoday OR overdue ``` To build the same filter with the controls: 1. Select the **All** list and open search with `⌘F`, so the search is not limited to one list. 2. Open **Search Options**, then **Search Presets**. 3. Add two rules: **Due Date** **is** **Today**, and **Due Date** **is** **Overdue**. 4. Choose **Any** of the following at the top of the rule group, with no other rules in that group. 5. Click **Apply**, then save the search with the **+** button next to the search field. To change an existing Smart List, select it first, adjust and apply its rules, and use the save button to update it. **All** requires each task to meet both conditions. Tasks overdue from earlier days cannot also be due today, so they are excluded. **Any** includes a task when either condition matches. The saved search keeps following the current day automatically. note A separate date range in **Search Options** still narrows the results, even when the rules use **Any**. If the range is limited to today, older overdue tasks remain excluded. Click the active date-filter control (**Date Range**, **Dynamic Range**, or **Without Due Date**) again to turn it off, then click **Apply** before saving. To require high priority as well, edit the search field to read: ``` type: (duetoday OR overdue) AND hiprio ``` The parentheses group the two date choices, and `AND hiprio` requires high priority for both. Adding high priority as a third rule in the same **Any** group would also include high-priority tasks due on other days. ## Two Search Modes: Full Text and Soundex[​](#modes "Direct link to Two Search Modes: Full Text and Soundex") 2Do supports two distinct ways of matching text: * **Full Text Search**: literal matching with wildcards and `OR`. Use this when you want exact control over the results. * **Soundex Search**: sound-alike matching. It tolerates common spelling mistakes, missing letters, and pronunciation variants. | If you typed this | Soundex can still find | | ----------------- | ---------------------- | | `plumver` | `plumber` | | `Steven` | `Stephen` | | `alexnder` | `Alexander` | | `Jon` | `John` | **Soundex** broadens text searches so similar-sounding words can still match. To use Full Text wildcards and `OR` precisely, **toggle Soundex off** in the **Search Options** panel; otherwise Soundex intentionally widens the results. tip Use Soundex when you are unsure of the spelling. Turn it off for exact `OR`, exclusion, or wildcard searches. ## Quick Find vs. Search[​](#quickfind-vs-search "Direct link to Quick Find vs. Search") Search and Quick Find serve different purposes: * **Search** (`⌘F`, magnifying-glass button): filters the current list or all lists to matching tasks, with full Smart Filter syntax. The list collapses to just the results, and you can save what you've built as a Smart List. * **Quick Find** (`F` while focused on the Task List, or **View > Task Find Bar...**): *jumps* the selection to the first task whose title matches, without filtering anything out. Auto-expands projects and checklists when the match is in a sub-task. Best when you know the task is there and just want to navigate to it. ## Inherit Search in Project View[​](#inherit-search "Direct link to Inherit Search in Project View") When you open a Project or Checklist from a Smart List or while a search is active, 2Do can either keep that filter applied to the sub-tasks inside or show every sub-task unfiltered. This is controlled by **Inherit Search** under **2Do > Settings > Today & Lists**, in the **Focus & Smart Lists** section. It is **on by default**. * **On** (default): opening a project keeps the Smart List's rule or your current search applied to its sub-tasks, so you only see the sub-tasks that match. * **Off**: Project View shows **all** of a project's sub-tasks, ignoring the outside search. Your original search is restored the moment you leave the project. A Smart List's rule counts as a search here even though you did not type it, and that includes its date range. Sub-tasks in a project are matched on their own dates, so a project opened from a Smart List such as *Next 5 Days* shows only the sub-tasks dated within those five days. Sub-tasks with no date or a later date stay hidden, and the project can look empty. tip If a project opens empty or with sub-tasks missing, turn off **Inherit Search**, or open the project from the list it belongs to. note Inherit Search is an app-wide preference (not per-project) and syncs across your devices via iCloud. ## Full Text Search Operators[​](#full-text "Direct link to Full Text Search Operators") Free text is matched against each task's title, notes, and searchable metadata. With Soundex off, 2Do supports these operators in the search field: | Pattern | Behavior | Example | | ----------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------ | | `word` | A bare word matches **anywhere inside** a word, not just whole words | `ject` → *project*, *subject*, *rejected* | | `word1 word2` | Implicit AND: matches tasks containing **both** words | `new job` | | `word1 OR word2` | OR: matches **either** word | `Call OR new` | | `word1 AND word2` | Explicit AND (same as a plain space) | `new AND job` | | `word -word2` | Excludes a word | `new job -find` | | `!word` | Excludes a word (alternate syntax) | `!work` | | `word*` | Prefix wildcard: anchors the match to the **start** of a word | `new*` → *new*, *newer*, *newest*, but not *renew* | | `*word` | Suffix wildcard: anchors the match to the **end** of a word | `*book` → *book*, *notebook*, *handbook*, but not *bookshop* | | `*word*` | Contains wildcard: the text **anywhere** inside a word; identical to typing the bare word | `*ject*` → *project*, *subject*, *rejected* | | `"exact phrase"` | Literal phrase: matches the words together, in order | `"new job"` | | `*` | Matches every task | Pair it with structured keywords for a broad text base | note `OR`, `AND`, `or`, and `and` between two free-text words are all recognized as operators (case doesn't matter), and two words with nothing between them are joined with an implicit **AND**. Because of this, you can't free-text-search for the literal words *and* / *or* on their own; wrap them in quotes (`"and"`) to search for them as text. Worked examples (using sample tasks: *Get a haircut one day*, *Buy a new car some day*, *Find a new job*, *Call: Mum, tell about my new job*, *Call: Tim*): * `new job` → *Find a new job*, *Call: Mum, tell about my new job* * `new job -find` → *Call: Mum, tell about my new job* * `a day` → *Get a haircut one day*, *Buy a new car some day* * `Call OR new` → *Buy a new car some day*, *Find a new job*, *Call: Mum, tell about my new job*, *Call: Tim* * `"new job"` → *Find a new job*, *Call: Mum, tell about my new job* (the two words together) tip A few characters change matching mode automatically: including `#` or `@` in your text, or wrapping the whole query in `"quotes"`, turns **Soundex off** for that search so the match stays literal; handy for tags-in-text, email addresses, or exact phrases. ## The Nine Built-In Keywords[​](#keywords "Direct link to The Nine Built-In Keywords") 2Do recognizes nine reserved keywords, each ending in a colon: `type:`, `tags:`, `taggroups:`, `locations:`, `lists:`, `groups:`, `modified:`, `created:`, and `completed:`. Each keyword filters a different task detail. They can be combined freely (see [Combining Keywords](#combining)), and `type:`, `tags:`, and `locations:` each support their own inline AND / OR / commas / `!` / brackets. ### Filter by Task Property with `type:`[​](#type "Direct link to type") Use `type:` to filter by task properties. For example: ``` type: hiprio ``` …shows every high-priority task. Use AND, OR, brackets, and `!` to combine presets: ``` type: (proj OR chck) AND hiprio AND !repeat type: ((starred OR hiprio) AND due) OR today ``` #### `type:` Presets for Task Structure[​](#type-structure "Direct link to type-structure") | Preset | Matches | | ----------- | ------------------------------------------------------------------ | | `alltasks` | Any task (Project, Checklist, Sub-task, or Task) in a flat view | | `task` | Top-level plain Tasks only (no projects, checklists, or sub-tasks) | | `subtasks` | Sub-tasks only | | `proj` | Projects | | `chck` | Checklists | | `emptyproj` | Projects with no active sub-tasks | | `emptychck` | Checklists with no active sub-tasks | #### `type:` Presets for Actions[​](#type-actions "Direct link to type-actions") | Preset | Matches | | -------- | ------------------------------ | | `action` | Tasks with any Action attached | | `call` | Call action | | `sms` | Message action | | `email` | Mail action | | `browse` | Browse (URL) action | | `visit` | Visit (Address / Maps) action | | `google` | Google (web search) action | #### `type:` Presets for Attachments, Notes, and Capture[​](#type-attach "Direct link to type-attach") | Preset | Matches | | -------------- | ------------------------------------------------------------------- | | `audio` | Tasks with audio attachments | | `pict` | Tasks with picture attachments | | `note` | Tasks with notes | | `capturedmail` | Tasks captured from an email (they carry a mail-capture identifier) | #### `type:` Presets for Priority[​](#type-priority "Direct link to type-priority") | Preset | Matches | | --------- | ----------------- | | `prio` | With any priority | | `noprio` | Without priority | | `hiprio` | High priority | | `medprio` | Medium priority | | `lowprio` | Low priority | #### `type:` Presets for Status and Tracking[​](#type-status "Direct link to type-status") | Preset | Matches | | ------------ | --------------------------------------------------------------------------- | | `starred` | Starred tasks | | `alarms` | With alarms set | | `repeat` | Recurring tasks | | `duration` | With a duration assigned | | `inprogress` | Not-completed tasks whose start date or duration window is currently active | | `scheduled` | Not-completed tasks with a **future** start date | | `paused` | Tasks belonging to a paused tag | #### `type:` Presets for Tags and Locations[​](#type-tag-loc "Direct link to type-tag-loc") | Preset | Matches | | ------------- | -------------------------------- | | `anytag` | Tasks with at least one tag | | `notag` | Tasks without any tag | | `anylocation` | Tasks with at least one location | | `nolocation` | Tasks without a location | #### `type:` Presets for Has a Date[​](#type-dates-has "Direct link to type-dates-has") | Preset | Matches | | --------- | ---------------- | | `due` | Has a due date | | `nodue` | No due date | | `start` | Has a start date | | `nostart` | No start date | #### `type:` Presets for Due Date[​](#type-dates-due "Direct link to type-dates-due") | Preset | Matches | | ------------- | -------------------------------------- | | `duetoday` | Due today | | `today` | Due today (alias for `duetoday`) | | `duetomorrow` | Due tomorrow | | `tomorrow` | Due tomorrow (alias for `duetomorrow`) | | `duethisweek` | Due this week | #### `type:` Presets for Start Date[​](#type-dates-start "Direct link to type-dates-start") | Preset | Matches | | --------------- | ---------------- | | `starttoday` | Starts today | | `starttomorrow` | Starts tomorrow | | `startthisweek` | Starts this week | #### `type:` Presets for Start *or* Due Date[​](#type-dates-any "Direct link to type-dates-any") | Preset | Matches | | ------------- | ------------------------------------------------------------ | | `anytoday` | Start **or** due date is today | | `anytomorrow` | Start **or** due date is tomorrow | | `anythisweek` | Start **or** due date is this week | | `thisweek` | Start **or** due date is this week (alias for `anythisweek`) | note `today` and `tomorrow` match the **due** date only, but bare `thisweek` matches **start or due**. Use the explicit `anytoday` / `anytomorrow` / `anythisweek` presets when you want the "start or due" behavior for a single day. Tokens that check the due date also match a task whose duration counts back into that day or week, the same way the *Today* list does. See [Dates and Durations](/docs/macos/dates-and-durations.md#duration-due). #### `type:` Presets for Overdue and Completed[​](#type-dates-status "Direct link to type-dates-status") | Preset | Matches | | --------------- | ---------------------------------------------------------------------- | | `overdue` | Past-due, across every list (including lists you've hidden from *All*) | | `tasksoverdue` | Past-due, but respecting the lists you've excluded from *All* | | `donetoday` | Completed today | | `doneyesterday` | Completed yesterday | | `donethisweek` | Completed this week | "This week" always follows your configured start-of-week (**2Do > Settings**), and every date preset is evaluated live, so a saved Smart List that uses one keeps rolling forward on its own. ### Filter by Tag with `tags:`[​](#tags "Direct link to tags") Filter the list to tasks that carry specific tags. Comma-separated lists are treated as OR by default; use AND, OR, brackets, and `!` for finer control. ``` tags: home, work # implicit OR, same as: tags: home OR work tags: (home OR work) AND !play tags: (call OR mail) AND work tags: ? # any tag set tags: ~ # no tag set tags: !work # has a tag, but not work tags: ~ OR !work # not tagged work, including untagged tasks ``` `tags: !work` matches tasks that have at least one tag and are not tagged `work`, so tasks with no tags are left out. To find every task not tagged `work`, including untagged ones, use `tags: ~ OR !work`. ### Filter by Tag Group with `taggroups:`[​](#taggroups "Direct link to taggroups") Include every tag that belongs to one or more named **Tag Groups**. Each group expands to all of the tags inside it, then behaves exactly like `tags:`: positive groups are OR'd together, and `!` negates a whole group. As with a `tags:` exclusion, excluding a group that contains tags, such as `taggroups: !Someday`, only matches tasks that have at least one tag. ``` taggroups: Contexts # any tag inside the "Contexts" group taggroups: !Someday # exclude every tag in the "Someday" group ``` ### Filter by Location with `locations:`[​](#locations "Direct link to locations") Same model as `tags:`. Comma-separated = OR; supports AND / OR / `!` / brackets. ``` locations: home, drycleaners # = locations: home OR drycleaners locations: (home OR work) AND !playground locations: ? # any location set locations: ~ # no location set locations: ~ OR !home # not at home, including tasks with no location ``` `locations: !home` only matches tasks that have a location set. Use `locations: ~ OR !home` to include tasks without one. ### Filter by List Group with `groups:`[​](#groups "Direct link to groups") Restrict the search to tasks inside (or outside) one or more List Groups. ``` groups: projects # all tasks in the "Projects" list group groups: home, work # tasks in either group groups: !home # exclude the Home group ``` ### Filter by List with `lists:`[​](#lists "Direct link to lists") Filter to tasks that live in one or more named lists. Positive names are OR'd; prefix a name with `!` to exclude that list. ``` lists: Work, Home # tasks from the Work or Home lists lists: !Archive # everything except the Archive list ``` `lists:` is **scope-replacing**: a resolved `lists:` filter searches across **all** of your lists, regardless of which list is currently selected. `groups:` and `completed:` behave the same way. The remaining keywords stay inside whichever list you're searching. note Because 2Do allows [duplicate list names](/docs/macos/lists-and-list-groups.md), `lists: Work` matches **every** list named "Work"; it can't tell two identically-named lists apart. ### Filter by Recency with `modified:`, `created:`, and `completed:`[​](#modified-created "Direct link to modified-created") Filter by *how long ago* a task was last modified, first created, or completed. All three take the same relative-time value: a number plus a unit, where the units are `mins`, `h` (hours), `d` (days), `w` (weeks), `m` (months), and `y` (years). Long spellings work too (`3 days`, `2 weeks`, `1 month`), and the number can be fractional (`1.5h`, `0.5d`). A month counts as 30.5 days and a year as 365 days. A plain value (or one prefixed with `<`) means "within the last …"; prefix with `>` for "more than … ago". ``` modified: 2d # modified within the last 2 days modified: >2d # modified more than 2 days ago created: 2h # created within the last 2 hours created: <1w # created less than a week ago completed: 7d # completed within the last 7 days completed: >30d # completed more than 30 days ago ``` note `completed:` automatically widens the search to include completed tasks (and across all your lists), so you don't have to unhide them first. It's the relative-time counterpart to the fixed `type: donetoday` / `doneyesterday` / `donethisweek` presets; reach for `completed:` when you want a rolling window like "the last 3 days". ## Combining Keywords[​](#combining "Direct link to Combining Keywords") Combine keywords in any order. If you also want to search for text, **put that text first**: ``` plumber type: starred tags: builders groups: home ``` Here `plumber` is the text search and the rest narrow it down by property. When you combine multiple keyword sections, 2Do inserts an implicit **AND** between them (the `OR` inside a section stays local to that section): ``` type: overdue tags: home OR school tags: someday type: prio OR starred groups: shopping tags: !work type: (hiprio AND thisweek) OR starred groups: !work ``` The first line means *overdue* **and** (tagged `home` **or** `school`). The `OR` applies only to the tags, not to the `type:` condition. ### AND by default, `OR` to branch[​](#and-or-model "Direct link to and-or-model") The join **between** two whole keyword sections is **AND** by default. To turn a section into an **alternative** instead, put a standalone `OR` immediately in front of its keyword: ``` type: overdue OR tags: urgent ``` This returns tasks that are overdue **or** tagged `urgent`. More precisely: every *unmarked* section is AND-ed together into one group, then each `OR`-marked section is appended as its own alternative. The result is `(unmarked group) OR alt1 OR alt2`. So: ``` plumber type: hiprio OR tags: urgent OR completed: 1d ``` …returns *(text "plumber" **and** high priority)* **or** *(tagged urgent)* **or** *(completed in the last day)*. note Only a standalone `OR` sitting directly before a keyword (`OR tags:`, `OR type:`, …) branches the query. A leading `OR` at the very start of the search, or the `OR` inside a single section, is treated as ordinary text or a within-section operator. The free-text term can never be an `OR` branch. It always joins the AND group. Use `OR` between presets in one `type:` section, or choose **Any** in the rule builder, to combine alternatives in one Smart List. ## Date Filters Beyond `type:`[​](#date-filters "Direct link to date-filters") The date filters in the **Search Options** panel add an explicit date condition on top of whatever else is in the bar. Three options: * **Without Due Date**: only tasks with no due date (perfect for a *Someday* Smart List). * **Date Range**: pick a fixed *From* date and *To* date. * **Dynamic Range**: *Next N days / weeks / months / years*, which moves with the calendar. By default the date filter is appended at the end of the search and applies as one final condition on top of everything else. To place it yourself (say, as one side of an OR), use the special **`{datefilter}`** keyword in the query, for example `type: inprogress OR {datefilter}`, and the panel's date filter is substituted at that spot instead. ## The Rule Builder[​](#rule-builder "Direct link to The Rule Builder") [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-mac/videos/2dosmartsearch_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-mac/videos/2dosmartsearch_poster.png) For complex multi-condition filters, prefer the visual rule builder over the keyword syntax. Open the **Search Options** panel (the filter button in the search field, or `⌥⇧⌘F`) → **Search Presets** → click `[+]` to add a clause. The builder assembles the same preset-style clauses the `type:` keyword offers, so each clause picks a task property and the state you want it in: | Property | Matches | | ---------- | ----------------------------------------------------------------------- | | Task | is / is not a given type; is / is not in progress, paused, or scheduled | | Note | has / doesn't have a note | | Repeating | is / is not repeating | | Due Date | is / is not: Any Date, No Date, Overdue, Today, Tomorrow, This Week | | Start Date | is / is not: Any Date, No Date, Today, Tomorrow, This Week | | Any Date | Today, Tomorrow, This Week: the start **or** due date | | Duration | has / doesn't have a duration | | Completion | completed / not completed Today | | Alarm | has / doesn't have an alarm | | Starred | is / is not starred | | Priority | Any, No, Low, Medium, High | | Tag | is set / is not set | | Location | is set / is not set | | Picture | attached / not attached | | Audio | attached / not attached | | Action | is / is not: Any Action, Call, Message, URL, Email, Visit, Google | That is the complete set. Searching for specific text, a named list, a named tag or tag group, or a custom date range is not something the builder does. Type those as query keywords (plain text, `lists:`, `tags:`, `taggroups:`) or use the panel's [date filters](#date-filters). The two mix freely: build the structure visually, then add the text and named criteria in the field. Combine as many clauses as you need. Joined with **all** (AND) or **any** (OR) at the top. For finer expressions, hold the **Option** key to create a **sub-filter**, a nested rule group, so you can put an **any** group inside an **all** parent. tip For complex multi-condition rules, build the rule visually using **Search Presets** in the **Search Options** panel, then click `[+]` to save. The keyword syntax is most useful for refining a saved rule, or for typing a one-off that's faster than navigating dialogs. ## Saving a Filter as a Smart List[​](#save "Direct link to Saving a Filter as a Smart List") When the search shows the tasks you want, click **`[+]`** to the left of the search field. The Smart List appears in the Lists Panel, named after the query. You can rename it there. Its results update as your tasks change. A Smart List filters tasks within whichever list was active when you created it. To filter across everything, select the **All** Focus List first, then build the search. You can also start from scratch: * **File > New > New Smart List**, or * the **+** button at the bottom of the Lists Panel → **New Smart List**. A Smart List has a **name**, a **color**, an **icon** (Smart Lists show a different glyph than regular lists), and a **rule** built from one or more clauses. ## Updating or Editing a Smart List[​](#editing "Direct link to Updating or Editing a Smart List") Select the Smart List in the sidebar, change its search text or filters, then click the **save button next to the search field**. This updates the current Smart List immediately. If you switch to another list before saving, the button creates a new Smart List instead. tip A Smart List is just a perspective. Deleting one never deletes its tasks. Experiment freely. ### An Asterisk in the Search Field[​](#asterisk "Direct link to An Asterisk in the Search Field") If a Smart List's saved search is `*`, that asterisk appears in the search field when you select it. On its own, `*` matches all text; the list's date range and other filters still apply. A Smart List named *All Tasks* still uses its saved search, just like any other Smart List. Typing directly after the asterisk changes the search. With **Soundex** off, `*book` matches words ending in *book*, such as *notebook*, but not *bookshop*. Typing `book` matches both. See [Full Text Search Operators](#full-text). For a fresh text search within that Smart List, replace the `*` with your words. The saved rule stays unchanged unless you use the save button. To start with an empty field and no saved Smart List filters, select the built-in **All** list in the Lists Panel, then press `⌘F`. ## Completed Tasks in a Smart List[​](#hide-completed "Direct link to Completed Tasks in a Smart List") By default a Smart List leaves completed tasks out, so the view stays on what's still outstanding. **Right-click the Smart List in the sidebar → Include Completed Tasks** to bring them in; the same menu item then reads **Exclude Completed Tasks** for hiding them again. (The *Starred* Focus List offers the same toggle.) ## Recipe Library[​](#recipes "Direct link to Recipe Library") Every recipe below is a real, copy-pasteable query. Type it into the Global Search Bar (`⌘F`), confirm it returns what you expect, then click `[+]` to [save it as a Smart List](#save). Most are best built while the **All** Focus List is selected so they search everything. ### Priority[​](#recipes-priority "Direct link to Priority") | Goal | Query | | ---------------------------- | ------------------------------ | | Anything high priority | `type: hiprio` | | High **or** medium priority | `type: hiprio OR medprio` | | High priority, due this week | `type: hiprio AND duethisweek` | | Prioritized but undated | `type: prio AND nodue` | | Needs a priority (has none) | `type: noprio AND !repeat` | ### Dates and Scheduling[​](#recipes-dates "Direct link to Dates and Scheduling") | Goal | Query | | ------------------------------------------ | --------------------------- | | Due today | `type: duetoday` | | Anything happening today (start or due) | `type: anytoday` | | Due tomorrow | `type: duetomorrow` | | Due this week | `type: duethisweek` | | Everything this week (start or due) | `type: anythisweek` | | Overdue | `type: overdue` | | [Overdue or due today](#today-and-overdue) | `type: overdue OR duetoday` | | Starts in the future (scheduled) | `type: scheduled` | | In progress right now | `type: inprogress` | | No due date at all (a *Someday* list) | `type: nodue` | ### Tags and Locations[​](#recipes-tags "Direct link to Tags and Locations") | Goal | Query | | --------------------------------------------------- | ---------------------------------- | | Tagged `waiting` | `tags: waiting` | | **Not** tagged `waiting` (including untagged tasks) | `tags: ~ OR !waiting` | | Has a tag, but not `waiting` | `tags: !waiting` | | Tagged `home` **or** `errands` | `tags: home, errands` | | At work but not blocked | `tags: work AND !blocked` | | Any tag in the `Contexts` group, minus `phone` | `taggroups: Contexts tags: !phone` | | Has at least one tag | `type: anytag` | | Completely untagged | `type: notag` | | Has a location (errands) | `type: anylocation` | | Near a map location, via a *Visit* action | `type: anylocation AND visit` | ### Lists and Groups[​](#recipes-lists "Direct link to Lists and Groups") | Goal | Query | | ------------------------------------------- | ---------------------------------- | | Tasks from the *Work* or *Home* lists | `lists: Work, Home` | | *Work* and *Home*, only what's due today | `lists: Work, Home type: duetoday` | | Everything except the *Archive* list | `lists: !Archive` | | Everything inside the *Projects* list group | `groups: Projects` | | The *Projects* group, high priority only | `groups: Projects type: hiprio` | ### Status and Structure[​](#recipes-status "Direct link to Status and Structure") | Goal | Query | | ------------------------------------------------- | -------------------------------------------- | | Starred | `type: starred` | | Recurring tasks | `type: repeat` | | Projects only | `type: proj` | | Empty projects (no active sub-tasks) | `type: emptyproj` | | Projects **or** checklists that are high priority | `type: (proj OR chck) AND hiprio` | | Has an attachment (audio or picture) | `type: (audio OR pict)` | | Tasks captured from email, made this month | `type: capturedmail created: 30d` | | Stalled: started long ago, not recurring | `type: inprogress AND !repeat created: >14d` | | Waiting on someone, **or** anything urgent | `tags: waiting OR type: hiprio` | | Recently created | `created: 2d` | | Recently completed | `completed: 7d` | ### Save-from-menu recipes[​](#recipes-menu "Direct link to Save-from-menu recipes") A few perspectives are quicker to build with the Search Options panel's date filters or the rule builder than by typing: | Smart List | How | | ------------ | ---------------------------------------------------------------------- | | Someday | search → Search Options → **Without Due Date** → save (on *All*) | | Next 3 Days | search → Search Options → **Dynamic Range** → 3 days → save (on *All*) | | Quick Wins | `type: duration`: everything you've already sized | | Review Inbox | `lists: Inbox` (completed tasks are left out by default) | --- # Stars and Priorities Use **stars** and **priorities** to mark important tasks. They are separate settings, so a task can have both. ## The Short Version[​](#short "Direct link to The Short Version") * **Star**: *I want this task in front of me right now.* Personal, ephemeral, easy to flip on and off. The Starred Focus List collects every starred task in one place. * **Priority**: *This task is intrinsically important.* Stable, ordered (None / Low / Medium / High), survives across reviews. Priority drives sort order and is a first-class field in Smart Filters. You can have both on the same task. You'll usually only need one. Both can be typed straight into a new task's title: `!`, `!!`, or `!!!` for Low, Medium, or High priority and `*` for a star. Write the marker as a word of its own, as in `Send the school form !!! *`; in English, leave a space before the mark, so `Say hello!` keeps its exclamation mark. Chinese, Japanese, and Korean text can place the mark directly after a character. See [Natural Language Input](/docs/macos/natural-language-input.md). ## Stars in Detail[​](#stars "Direct link to Stars in Detail") A star is a binary flag. A task is either starred or it isn't. ### Starring a Task[​](#star-task "Direct link to Starring a Task") * **Menu**: **Task > Star**, a submenu holding **Star** and **Unstar**. The same commands sit on a task's right-click menu. * **Keyboard**: `S` (star) and `⌃S` (unstar) when a task is selected. * **Task row**: the priority button at the right of each row opens a small menu with **Star** at the bottom. * **Drag a task onto the Starred Focus List** to star it: the list shows *Drop to Star* as you hover, and dropping stars the task. ### What Starring Does[​](#star-effects "Direct link to What Starring Does") * The task appears in the **Starred Focus List** at the top of the sidebar. * It can appear in *Today* too: the *Include starred items* toggle in **Settings > Today & Lists**, when on, treats every starred task as a Today task regardless of its dates. * It can be the basis of Smart Filters via `type: starred`. ### When to Star[​](#when-star "Direct link to When to Star") Stars are best for *temporary* emphasis: * "Read these articles before tonight's meeting": star them in the morning, unstar after. * "These are the tasks I want to attempt today even though their due dates aren't today": star a handful, work through them, unstar at end of day. If you find yourself starring the same tasks every week, they probably deserve a different mechanism: a tag, a Smart List, or a different list entirely. ## Priorities in Detail[​](#priorities "Direct link to Priorities in Detail") A priority is one of four levels: **None**, **Low**, **Medium**, **High**. The priority dot is color-coded and visible on every task row. ### Setting a Priority[​](#set-priority "Direct link to Setting a Priority") * **In the task list**: bare `0` (None), `1` (Low), `2` (Medium), `3` (High) with one or more tasks selected. * **While editing**: the bare digits type into text fields, so use `⌥⌘0`–`⌥⌘3` instead (and `⌥⌘S` to toggle the star). * **`=` / `-`**: Increase / Decrease Priority when the task list has focus. * **Menu**: **Task > Priority**, which lists **None**, **Low**, **Medium**, and **High** along with **Increase Priority** and **Decrease Priority**. The same submenu appears when you right-click a task. ### Quick Priority + Star Without Editing[​](#hover-priority "Direct link to Quick Priority + Star Without Editing") You don't have to enter edit mode just to change priority or toggle a star. A **priority button sits at the right of every task row**. Click it and a small menu opens with **None**, **High**, **Medium**, **Low**, and then **Star**. Pick one and the task updates in place. It's two clicks rather than one, but nothing else has to change. For a long triage session the bare keys are quicker still: select a task, press `0`–`3` for its priority and `S` to star it. Combined with **Quick Look** (`Spacebar`) for previewing each task as you go, you can work through a brain-dump in minutes. ### Letting 2Do Work Them Out[​](#suggest "Direct link to Letting 2Do Work Them Out") Priorities are worth setting, and setting fifty of them by hand is a chore. Select the tasks, right-click, and choose **Edit Priority > Auto-Prioritize**, or choose **Task > Edit Priority > Auto-Prioritize** in the menu bar. It works out None, Low, Medium, or High for every task you selected. It reads each task's title, notes, dates, list, and tags on your Mac using Apple Intelligence, so nothing about your tasks is sent anywhere, and it changes nothing but the priority. It is worth reaching for after a brain dump, after importing a list that arrived with no priorities at all, or during a weekly review when you want a second read on this week's tasks. It fills in tasks that have no priority and can raise others; the full page covers how it treats the levels you set yourself. It needs macOS 26 or later with Apple Intelligence turned on. See [Auto-Prioritize](/docs/macos/auto-prioritize.md). ### What Priority Does[​](#priority-effects "Direct link to What Priority Does") * The priority dot is color-coded on every row. * Sorting by **Priority** (from the Sort Bar's sort menu) groups tasks by level. High sits at the top by default, then Medium, Low, and finally None; the Sort Bar's direction toggle reverses that order. Turn on **Sort starred items above hi-priority** in **Settings > Today & Lists** and starred tasks get their own section above High. * Smart Filters can match `type: hiprio`, `type: medprio`, `type: lowprio`, `type: prio` (any), `type: noprio` (none). * The Focus Filter includes **High Priority** and **Starred** among its conditions, so you can narrow any list to either in one step. ### When to Use Priority[​](#when-priority "Direct link to When to Use Priority") Priority is best for *stable* emphasis: * "This task is genuinely more important than the others in this project." * "I want my Today list sorted with the highest-stakes tasks at the top." * "I need a Smart List of *every High priority task across every list*." The High priority level is for things that genuinely belong at the top of the heap. If everything is High, nothing is. ## Stars vs. Priorities: When to Use Which[​](#vs "Direct link to Stars vs. Priorities: When to Use Which") | Situation | Use | | ------------------------------------------------------------- | --------------------------------- | | You want this task in front of you *today only* | **Star** | | The task is intrinsically more important than its neighbors | **Priority** | | You want a sortable hierarchy of importance | **Priority** (sort by Priority) | | You want to highlight a small handful for the next 30 minutes | **Star** | | You want to filter "show me only the most important" | **Priority** + `type: hiprio` | | You want a quick "what should I do next?" view | **Star** + the Starred Focus List | Many people use both: Priority as the long-running label, Star as today's spotlight. tip Use Priority to label what *is* important and Star to mark what you want to *do next*. They answer different questions. tip A Smart Filter combining both (`type: hiprio AND starred`) gives you a tight "these are the few high-priority items I'm actively pushing on right now" view. ## Stars, Priorities, and the Today List[​](#today "Direct link to Stars, Priorities, and the Today List") Tasks land in *Today* primarily through their **Due Date** (and Duration; see [Dates and Durations](/docs/macos/dates-and-durations.md)). The **Today List** section of **Settings > Today & Lists** has three switches that widen what else gets in: * **Include overdue items**: anything past its due date joins *Today* until you deal with it. * **Include starred items**: every starred task appears in *Today*, regardless of dates. * **Include 'Still Working On' tasks**: tasks whose start date has already passed stay in *Today* while you work on them. Turn it off and they only appear on the day they're due. A task whose duration spills backward into today also shows up there; that's how durations work rather than something you switch on. If you find tasks "mysteriously" showing up in Today, check those switches first. The dedicated FAQ entry [Why are tasks due tomorrow showing in the Today Focus list?](/docs/faqs/tasks-tomorrow-in-today-list.md) walks through the typical causes. --- # Sync Overview 2Do for Mac keeps your tasks in step across devices through a sync service of your choice: connect an account you already have, and 2Do reads and writes through it. If 2Do lives on a single Mac, you can simply leave Sync unconfigured. ## Sync and Shared Lists[​](#sharing "Direct link to Sync and Shared Lists") The sync service described here keeps your ordinary lists up to date between your own devices. [iCloud list sharing](/docs/macos/icloud-list-sharing.md) lets you work on a particular list with other people, using their own Apple Accounts. It runs separately, so you can share a list through iCloud while your other lists use Dropbox, Todoist, another service, or no ordinary sync service. Both owned and received iCloud shared lists stay out of your ordinary sync account. **Replace Local Data** for that account preserves shared lists and their personal settings. **Reset Database** deliberately removes the local database, including unsent sharing edits and personal settings; it is a different operation. ## Where Sync Lives[​](#where "Direct link to Where Sync Lives") Everything sync-related is under **2Do > Settings > Sync**. The pane has two tabs: * **Setup**: choose your account type, connect, and set per-account options. * **Exclusions**: pick lists to keep out of sync (see [Sync Exclusions](#exclusions)). The **Setup** tab starts with an **Account Type** pop-up (*"Sync your lists and tasks across your Macs and mobile devices."*). Pick a method there, then connect. ### One Account at a Time[​](#one-account "Direct link to One Account at a Time") 2Do syncs through **a single active account**. Once you connect, the **Account Type** pop-up is locked, so you can't add a second account or switch by accident. To move to a different method, disconnect the current one first: * **Dropbox** connects with **Link Account** and disconnects with **Unlink** (confirmed via *Remove Linked Device*). * **Every other method** connects with **Set Up Sync** and switches with **Change Account**. Choosing **Change Account** asks you to confirm that the current sync information will be reset, clears the local sync history, and returns the pane to editable so you can pick a new **Account Type**. Two switches control whether syncing actually happens: * **Enable Sync**: the master switch. Once an account is configured, this gates all syncing. * **Sync automatically**: a device-local switch. Turn it off to sync manually (with `⌘S` or the **Sync** toolbar button) on this Mac only. It doesn't affect your other devices. While 2Do is running, your Mac finds out sooner when you change something on another device on the same Wi-Fi network, and syncs right away. That is why 2Do asks for Local Network access, the same permission [Wi-Fi Sharing](/docs/macos/list-sharing.md) uses. If you decline, sync still works and changes just take a little longer to appear; you can change this later in **System Settings > Privacy & Security > Local Network**. The Setup footer shows **Last Sync** (a time, *Today at …*, or *Never*) and, when something goes wrong, a red **Last Error**. note While a sync is running, the per-account options are temporarily disabled, and the **Exclusions** tab shows *"Options not available... wait for sync to finish"*. Let the sync finish, then adjust settings. ## Sync Methods[​](#methods "Direct link to Sync Methods") Pick one from the **Account Type** pop-up. Each has its own setup page: * **[iCloud](/docs/macos/sync-with-icloud.md)**: the recommended method, marked **Recommended** in the pop-up. Everything syncs through the iCloud account already signed in on this Mac, with no separate account or password. Requires macOS 14 or later. * **[Dropbox](/docs/macos/sync-with-dropbox.md)**: syncs task fields, groups, Smart Lists, pictures, and audio notes through your Dropbox App Folder, including Android devices. Link-only attachments stay on the device. * **[iCloud CalDAV](/docs/macos/sync-with-icloud-caldav.md)**: Apple-hosted CalDAV, signed in with your Apple Account and an app-specific password. Great for standard tasks; some 2Do-only structure stays on this Mac. * **[Fastmail](/docs/macos/sync-with-fastmail.md)**: its own entry in the picker; sign in with your Fastmail address and an app password. * **[Custom CalDAV](/docs/macos/sync-with-caldav.md)**: Nextcloud, ownCloud, Synology, Kerio, SabreDAV, and other CalDAV servers. * **[Yahoo](/docs/macos/sync-with-caldav.md)**: built-in CalDAV entry for Yahoo! Calendar. * **[Fruux](/docs/macos/sync-with-caldav.md)**: built-in CalDAV entry for Fruux. * **[Toodledo](/docs/macos/sync-with-toodledo.md)**: for Toodledo users, with web access at toodledo.com. * **[Todoist](/docs/macos/sync-with-todoist.md)**: connects with OAuth in your browser; your Todoist projects appear as 2Do lists. * **[Apple Reminders](/docs/macos/sync-with-reminders.md)**: native EventKit sync so your tasks appear in the Reminders app. * **[WebDAV](/docs/macos/sync-with-webdav.md)**: *coming soon*. Will sync all of your 2Do data to your own or any WebDAV server, stored as files you control. The pop-up groups them like this: **None**; **iCloud, Reminders**; **Dropbox**; **Todoist, Toodledo**; **iCloud CalDAV, Fastmail, Yahoo, Fruux, Custom CalDAV**. (WebDAV will join the list when it ships.) Sharing lists over your local network Looking to hand a list to someone on the same Wi-Fi network? That's a separate feature, independent of the sync account above: see **[Share Lists over Wi-Fi](/docs/macos/list-sharing.md)**. ## Choose One Method, Use It Everywhere[​](#one-method "Direct link to Choose One Method, Use It Everywhere") warning Every device that runs 2Do must use the **same** sync method and the **same** account. Mixing methods (for example Dropbox on Mac and iCloud CalDAV on iPhone) leaves you with two disconnected datasets. Set up every device before you start using 2Do day-to-day. ## What Syncs and What Stays on This Mac[​](#what-syncs "Direct link to What Syncs and What Stays on This Mac") Each account expands a **"What syncs across your devices"** section. When a method can't carry something, it shows a **"Stays on this Mac"** row listing it, plus an interop note and a small help button with more detail. The short version: * **iCloud**: a complete sync method. Everything syncs, including Smart Lists, tags, tag groups, list groups, locations, and attachments. * **Dropbox**: syncs task fields, groups, Smart Lists, pictures, and audio notes. Link-only attachments and the manual order of the **Focus Lists** stay on this Mac. * **WebDAV** *(coming soon)*: also complete; everything will sync. * **CalDAV** (iCloud, Yahoo, Fruux, Custom): 2Do grouping (List Groups, Tag Groups, Smart Lists) stays on this Mac. *"Other apps and devices signed in to this account see your projects and checklists as a flat list of tasks."* * **Toodledo**: Actions and attachments stay on this Mac, along with Smart Lists, Tag/List groups, and unused tags. * **Todoist** and **Apple Reminders**: attachments and standalone locations stay on this Mac (along with Smart Lists, Tag/List groups, and unused tags). [Sections](/docs/macos/task-sections.md) sync with iCloud, Dropbox, and Todoist, though Todoist leaves out section descriptions. CalDAV, Toodledo, and Apple Reminders don't sync sections, so your other devices show those tasks without them. Supported app settings sync over iCloud between your Mac, iPhone, and iPad using the same iCloud account, separately from your chosen task sync service. See [Settings Across Devices](/docs/macos/settings.md#settings-sync). tip Not sure what a method carries? Expand **What syncs across your devices** under your account in **Settings > Sync**. The **Stays on this Mac** row is the authoritative, per-method list of what won't leave this device. ### At-a-Glance Comparison[​](#comparison "Direct link to At-a-Glance Comparison") | | iCloud | Dropbox | iCloud CalDAV | Custom CalDAV | Toodledo | Todoist | WebDAV³ | Apple Reminders | | ------------------------------------ | ------ | -------- | ------------- | ------------- | ------------ | ----------- | ----------- | --------------- | | Mirrors all 2Do data | ✅ | partial⁴ | partial | partial | partial | partial | ✅ | partial | | Picture & audio attachment | ✅ | ✅ | ✅¹ | ✅¹ | ❌ | ❌ | ✅ | ❌ | | Locations | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | | List Groups, Tag Groups, Smart Lists | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | | Manual order in Focus Lists | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | | Actions | ✅ | ✅ | ✅ | ✅ | ❌ | ✅² | ✅ | ✅² | | Automatic background sync | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | Merge Sync | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | Replace Server Data | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | | Web access | None | None | iCloud.com | varies | toodledo.com | todoist.com | your server | iCloud.com | ¹ A 2Do task can carry one picture and one audio note, and both sync over CalDAV. ² Todoist and Reminders round-trip 2Do-only fields (actions, start dates, and more) as text metadata inside each task's notes/description, so those fields survive between your own 2Do devices. Reminders additionally carries hierarchy identity in that metadata; Todoist uses its native parent/child structure instead. ³ WebDAV is coming soon to 2Do for Mac; see [Sync with WebDAV](/docs/macos/sync-with-webdav.md). ⁴ Dropbox does not sync link-only attachments. Its picture and audio attachments do sync. note iCloud is the best all-round choice when every device you use runs a version of 2Do with iCloud sync, including 2Do for Android. Dropbox is the alternative for older versions of 2Do, and WebDAV, once it ships, will be the equivalent for a server you control. Pick Todoist or Apple Reminders when you want your tasks living inside those apps too and can do without attachments and standalone locations. ## Merge vs Replace[​](#merge-vs-replace "Direct link to Merge vs Replace") When two devices already hold data, 2Do needs to know how to combine them. There are three outcomes, and **Merge Sync is available for every method**. ### Merge Sync[​](#merge "Direct link to Merge Sync") Merge reconciles the tasks and lists on this Mac with the data on the server. 2Do compares every item on both sides, matches existing items where it can, and keeps both copies when an item was created separately on each side and cannot be matched confidently. Merge is by far the slowest option. Every task and list has to be compared one at a time, so a first merge with a large number of tasks can take a very long time, and the progress bar may appear to stall for long stretches. It is still running, so let it finish. Choose Merge only when you are unsure which side is complete, or when both sides hold changes you need to keep. If the server already has a complete copy of your data, choose **Replace Local Data**. If this Mac has the complete copy and you just want to push it to the server, choose **Replace Server Data** (not offered for Todoist or Apple Reminders). Merge never deletes to make the two sides identical. At worst you get a duplicate of an item that couldn't be matched, which you can remove by hand. ### Replace Local Data[​](#replace-local "Direct link to Replace Local Data") Replace Local Data replaces the syncable tasks and lists on this device with the data currently on the server. Items that exist only on this device may be removed, and the server data is kept. Use this on a new or empty device that should mirror what's already on the server. ### Replace Server Data[​](#replace-server "Direct link to Replace Server Data") Replace Server Data replaces the syncable data on the server with the tasks and lists currently on this device. Items that exist only on the server may be removed, and other devices receive this device's data on their next sync. Use this when *this* Mac holds the data you want everywhere and the server copy is stale, for example right after restoring from a backup. warning Replace overwrites one side with the other, so confirm which side holds the tasks you want to keep before picking a direction. Choosing **Replace Server Data** from an empty Mac, for example, wipes the good copy on the server. ### Where You Choose[​](#where-choose "Direct link to Where You Choose") There are two places the Merge/Replace decision appears: 1. **The first-sync prompt.** When both this Mac and the account already hold user data, 2Do shows a **Sync Method** alert offering **Replace Local Data**, **Replace Server Data**, **Merge**, and **Cancel** (only the buttons that apply to that method appear). 2. **The Next sync action picker.** After the first sync is established, Setup shows a **Next sync action** picker with **Sync Normally**, **Replace Server Data**, **Replace Local Data**, and **Merge Sync**. The footer explains that the choice applies to the next sync only, then returns to **Sync Normally**. Either way, 2Do asks you to confirm the choice a second time before it runs. Until the first-sync decision is made, **Sync Normally** shows as *"Will ask before Sync"*. ### Next Sync Action Availability[​](#matrix "Direct link to Next Sync Action Availability") Not every method offers every action. **Todoist and Apple Reminders never offer Replace Server Data**: their server is the app you also use directly, and 2Do won't overwrite it wholesale. | Method | Sync Normally | Merge Sync | Replace Local Data | Replace Server Data | | ----------------------------- | ------------- | ---------- | ------------------ | ------------------------------------ | | iCloud | ✅ | ✅ | ✅ | ✅ *(Replace Server (iCloud) Data)* | | Dropbox | ✅ | ✅ | ✅ | ✅ *(Replace Server (Dropbox) Data)* | | iCloud CalDAV | ✅ | ✅ | ✅ | ✅ *(Replace Server (iCloud) Data)* | | Yahoo / Fruux / Custom CalDAV | ✅ | ✅ | ✅ | ✅ *(Replace Server (CalDAV) Data)* | | Toodledo | ✅ | ✅ | ✅ | ✅ *(Replace Server Data)* | | WebDAV *(coming soon)* | ✅ | ✅ | ✅ | ✅ *(Replace Server Data)* | | Todoist | ✅ | ✅ | ✅ | ❌ | | Apple Reminders | ✅ | ✅ | ✅ | ❌ | ## Sync Exclusions[​](#exclusions "Direct link to Sync Exclusions") The **Exclusions** tab shows your lists, grouped by List Group, each with a switch. Turn a switch on and that ordinary list, along with its tasks, stays out of this sync account. Handy for a scratch list or purely personal notes you don't want leaving the Mac. ## Setting Up a New Device[​](#new-device "Direct link to Setting Up a New Device") When you install 2Do on a fresh Mac and connect to an account that already holds your data: 1. Open **2Do > Settings > Sync**, choose the **same** Account Type as your other devices, and connect with the **same** account. 2. If the Mac already contains user data and 2Do shows the first-sync prompt, choose **Replace Local Data** to pull everything down, leaving the server copy untouched. An empty Mac can complete setup without this prompt. If both sides hold data you want to keep, choose **Merge** instead and allow extra time, since merging a large number of tasks is slow. When you've just **restored from a backup** and *this* Mac now has the freshest data: 1. Set up sync the same way. 2. When 2Do shows the first-sync prompt, choose **Replace Server Data** to push your restored data up, replacing the stale server copy so your other devices receive it on their next sync. If you're unsure which side is freshest, save a backup copy from **Settings > Backups** before connecting, so you have a recovery point either way. ## Switching Sync Methods[​](#switching "Direct link to Switching Sync Methods") To change methods (for example iCloud CalDAV → Dropbox): 1. Save a backup from **Settings > Backups** (**⋯ menu > Save a Copy…**) as a safety net. 2. On each device, disconnect the current method (**Unlink** for Dropbox, **Change Account** for the others). This resets that device's sync history. 3. Connect the new method on **one device first** and let it populate the server. 4. Connect the others, choosing **Replace Local Data** to pull from the freshly populated server (or **Merge** if a device already has unique data worth keeping; it is much slower with many tasks). tip Backups are independent of sync. Keep milestone copies from **Settings > Backups** somewhere safe; even if your sync service has a bad day, you have a recovery path. --- # Sync with Custom CalDAV (Fruux, Yahoo!, ownCloud, etc.) 2Do for Mac supports any CalDAV-compatible server. You can sync with a hosted service, your own server, or your company's CalDAV server. ## Supported Servers[​](#servers "Direct link to Supported Servers") 2Do works with any server that speaks CalDAV correctly, including: * **Fruux** (built-in) * **Yahoo! Calendar** (built-in) * **ownCloud** / **Nextcloud** * **Synology Calendar** (CalDAV) * **Kerio Connect** * **Oracle Calendar** * **SabreDAV**-based servers * **Apple Calendar Server (iCal Server)** * **[Fastmail](/docs/macos/sync-with-fastmail.md)** and other CalDAV providers Two providers have their own dedicated pages: **iCloud** is covered on [Sync with iCloud CalDAV](/docs/macos/sync-with-icloud-caldav.md), and **Fastmail** on [Sync with Fastmail](/docs/macos/sync-with-fastmail.md). tip For self-hosters, **Nextcloud** + 2Do is a popular combination: your tasks live entirely on your own server. ## Lists and Task Calendars[​](#task-calendars "Direct link to Lists and Task Calendars") Every 2Do list you sync over CalDAV is stored on the server as a **task calendar**, the CalDAV name for a collection that holds tasks rather than events. It is the same container as your list in 2Do; only the name differs. 2Do shows it as a **List**, and other CalDAV apps may label the identical collection a task calendar, a task list, or simply a calendar. Changes travel in both directions: * Create a list in 2Do and the matching task calendar appears on the server; rename the list and the server follows. Deleting the list deletes the task calendar too, unless the collection is shared or also holds calendar events. In that case 2Do removes only its tasks and leaves the collection in place. * A task calendar created in another CalDAV app arrives in 2Do as an ordinary list. * Only apps that speak CalDAV can see these collections. Not every 2Do feature inside a list syncs with it; see [What Stays on This Mac](#stays-local). ## What CalDAV Sync Carries[​](#what "Direct link to What CalDAV Sync Carries") * All core task fields: title, notes, dates, recurrence, priority, action, location. * **Multiple alarms per task** can sync between 2Do devices through CalDAV. * **Task attachments**: a 2Do task can carry **one picture and one audio note**, and both sync over CalDAV (embedded in the task). The **Sync pictures** and **Sync audio notes** switches in Setup control these (both on by default), alongside **Sync list ordering**, **Sync due times**, and **Sync app preferences**. * Tasks added to 2Do can appear in other CalDAV apps using the same account. ## What Stays on This Mac[​](#stays-local "Direct link to What Stays on This Mac") Some 2Do-only features stay on this Mac and are not carried by CalDAV sync: * Smart Lists * [Sections](/docs/macos/task-sections.md) * Tag groups * List groups * Unused tags note Other apps and devices signed in to this account see your projects and checklists as a flat list of tasks. RELATED-TO-aware clients such as Nextcloud Tasks are the exception; see [Projects and Sub-Tasks](#hierarchy). A few things also behave differently on the server side: * **List colors** may not sync on some CalDAV servers. * **Repeating tasks** sync as plain tasks to the server, but still repeat correctly between your 2Do devices. * Some unusual **repeating alert** setups may not look exactly the same on the server. ## Projects and Sub-Tasks (Nextcloud and other CalDAV servers)[​](#hierarchy "Direct link to Projects and Sub-Tasks (Nextcloud and other CalDAV servers)") 2Do syncs your project and sub-task hierarchy two-way over CalDAV automatically; there's no setting to turn on. The parent/child relationship travels using the standard iCalendar **RELATED-TO** link, so a parent task and its sub-tasks stay connected on the server. * Create a project (or checklist) with sub-tasks in 2Do, and the structure syncs up to the server. * A parent-with-children created directly in **Nextcloud** (or another CalDAV app) arrives in 2Do as a **project** with sub-tasks. * Between your own 2Do devices, a project stays a project and a checklist stays a checklist. How the hierarchy appears in other apps depends on the client: * **RELATED-TO-aware clients**, such as **Nextcloud Tasks**, reconstruct the hierarchy and show your sub-tasks nested under their parent. * **Clients that ignore RELATED-TO** show your projects, checklists, and their sub-tasks as a **flat list of tasks**. ## Read-Only Lists[​](#read-only "Direct link to Read-Only Lists") Some CalDAV servers share a calendar with you but don't grant permission to change it. 2Do detects this from the server and marks the list **read-only**, so you don't make edits the server would reject. A read-only list looks and behaves like this: * A crossed-out pencil icon (**pencil.slash**) appears on the list in the sidebar. * A non-interactive **Read Only** indicator shows on the sort bar. * The task editor's controls are disabled: you can't change the title, notes, tags, dates, duration, repeat, or action, and you can't complete, move, or delete its tasks. * Existing **photo and audio attachments remain viewable**, but you can't record or replace them. * You **can't add new tasks to a read-only list**: a task captured while it's selected (Quick Entry, for example) lands in your **default list (Inbox)** instead, somewhere you can actually edit it. You can still change how a read-only list is **presented on this Mac** without touching the server: rename it locally, change its color, lock it with a password, hide it, change its sort, or move it into a list group. Those choices are local only and are preserved across syncs. note Shared CalDAV calendars carry a separate **Shared Calendar** badge, which is distinct from the read-only pencil.slash icon. ## Setup[​](#setup "Direct link to Setup") 1. Open **2Do > Settings > Sync** and select the **Setup** tab. 2. From the **Account Type** pop-up menu, choose your CalDAV server: * **Fruux** or **Yahoo**: built-in entries with auto-discovery; you only enter a username and password. * **Custom CalDAV**: for **Nextcloud**, **Synology**, **ownCloud**, **Kerio**, and any other self-hosted or third-party CalDAV server. There is no named Nextcloud or Synology option; they all connect through **Custom CalDAV**. 3. Enter your credentials. **Custom CalDAV** adds fields for **Server Address**, **Path**, **Port**, and **Use SSL** alongside your **Username** and **Password**. 4. Click **Set Up Sync**. 2Do auto-discovers your task collections on the server. (Once connected, the button reads **Change Account**.) 5. Repeat on each device, using the same **Account Type** and credentials. tip If your server requires app-specific passwords (Fruux, Yahoo!, anything with 2FA), generate one for 2Do specifically so you can revoke it later without changing your main account password. ### Fruux Setup[​](#fruux "Direct link to Fruux Setup") 1. **Settings > Sync > Setup** → **Account Type** → **Fruux**. 2. Generate an **app-specific password** at [www.fruux.com](https://www.fruux.com). 3. Enter your username and the app-specific password. 2Do auto-discovers the server and account paths, so no manual URL entry is required. ### Custom CalDAV Server (Nextcloud, Synology, ownCloud, Kerio)[​](#generic "Direct link to Custom CalDAV Server (Nextcloud, Synology, ownCloud, Kerio)") For self-hosted and third-party CalDAV servers: 1. **Settings > Sync > Setup** → **Account Type** → **Custom CalDAV**. 2. Fill in the connection fields as your provider documents them: * **Server Address**: your server's host (for Nextcloud, often something like `your-server.example`). * **Path**: the CalDAV path your provider specifies (Nextcloud commonly uses `/remote.php/dav`). * **Port** and **Use SSL**: match your server's configuration (SSL is on by default). 3. Enter your **Username** and **Password**. 4. Click **Set Up Sync**. 2Do discovers your task collections. note The first time you connect to a self-hosted server with a private or self-signed certificate, 2Do shows a **"Can't Verify This Server"** prompt with the server's fingerprint. This is normal for private servers; confirm to trust and remember it. Your first sync Close Settings and press `⌘S` (or click the **Sync** toolbar button) to run the first sync. When both sides already hold data, 2Do asks how to combine them; see [Merge vs Replace](/docs/macos/sync.md#merge-vs-replace) before choosing. You can re-run any of these later from **Settings > Sync > Next sync action**; it applies once, then returns to **Sync Normally**. ## Daily Sync[​](#daily "Direct link to Daily Sync") Custom CalDAV syncs continuously while 2Do is running. Press `⌘S` to force an immediate sync. ## Troubleshooting[​](#issues "Direct link to Troubleshooting") ### Synology server compatibility[​](#synology-server-compatibility "Direct link to Synology server compatibility") Synology Calendar works with 2Do when you use the principal CalDAV URL provided by Synology Calendar. ### 301 Moved Permanently[​](#301-moved-permanently "Direct link to 301 Moved Permanently") Some servers redirect the discovery URL. Update to the latest 2Do, which follows redirects automatically. If issues persist, enter the **post-redirect** URL directly. ### Alarms shared via CalDAV shared lists don't sync[​](#alarms-shared-via-caldav-shared-lists-dont-sync "Direct link to Alarms shared via CalDAV shared lists don't sync") Alarms attached to tasks on shared CalDAV lists don't always copy across, depending on the server's sharing rules. Re-add alarms locally if needed. ### Multiple alerts on recurring tasks get removed[​](#multiple-alerts-on-recurring-tasks-get-removed "Direct link to Multiple alerts on recurring tasks get removed") Some CalDAV servers accept only a single alarm on repeating tasks. Use [Dropbox sync](/docs/macos/sync-with-dropbox.md) if you rely heavily on multiple alarms per repeating task. ### Adding another device[​](#adding-another-device "Direct link to Adding another device") Install 2Do, point CalDAV at the exact same server URL and credentials as your other devices, and let the first sync pull your data down. See [Setting up a new device](/docs/faqs/setting-up-new-device.md). ### One device showing different tasks[​](#one-device-showing-different-tasks "Direct link to One device showing different tasks") Run a clean sync on the most up-to-date device, then choose **Replace Local Data** on the lagging ones. See [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). --- # Sync with Dropbox Dropbox carries task properties, attachments, List Groups, Tag Groups, Smart Lists, and Search Presets, and it is supported on iPhone, iPad, Mac, and Android. Manual order in the Focus Lists (**Today**, **Scheduled**, **Starred**, **All**) syncs only with iCloud; manual order in your regular lists syncs as usual. If every device you use runs a version of 2Do with iCloud sync, including 2Do for Android, [iCloud](/docs/macos/sync-with-icloud.md) is the recommended method. On Mac, iPhone, and iPad it needs no account setup at all. Dropbox is the method to choose when a device runs an older version of 2Do without iCloud sync, or when you want your 2Do data sitting in a folder you can see. ## What Dropbox Sync Supports[​](#what "Direct link to What Dropbox Sync Supports") * All task fields: title, notes, dates, recurrence, priority, action, location, sub-tasks. * **Multiple alarms per task**: every alarm survives the round-trip intact. * **Attachments**: your task's picture and audio note sync across devices. * **List Groups, Tag Groups, Smart Lists, Search Presets**: saved across devices. * **[Sections](/docs/macos/task-sections.md)**: names, descriptions, order, and tasks, kept the same on your Mac, iPhone, and iPad. * **All your tags**: including tags that aren't currently assigned to any task. Other sync methods only carry tags-in-use. * **List settings**: list colors, groups, hidden-list choices, and Focus List visibility rules stay part of your 2Do data where the selected sync method supports them. * **Automatic background sync**: 2Do for Mac syncs continuously while running. ## Setup[​](#setup "Direct link to Setup") 1. Open **2Do > Settings > Sync**. 2. Select **Dropbox** as the sync method. 3. Click **Link Account** and authorise 2Do against your Dropbox account in the browser window that opens. 4. Confirm. 2Do creates its app folder and is ready to sync. 5. Repeat on each device, signing in to the same Dropbox account. Once linked, four Dropbox options let you trim what travels: **Sync list ordering**, **Sync audio notes**, **Sync pictures**, and **Sync app preferences**. To disconnect later, click **Unlink**. To run the first sync, close Settings and press `⌘S` (or click the **Sync** toolbar button). The first device seeds the folder; when the next device connects, 2Do asks how to combine the two sides (see [Merge vs. Replace](#merge) below). Use the exact same Dropbox account on every device 2Do can only sync devices that talk to the *same* Dropbox account. Connecting one device to ** and another to ** leaves the two completely isolated from each other. If a device isn't seeing the same tasks as the rest, first check that **2Do > Settings > Sync** shows the same Dropbox username everywhere; if not, disconnect the wrong account and re-link with the correct one. ## Merge vs. Replace[​](#merge "Direct link to Merge vs. Replace") On the first sync, 2Do offers three ways to bring the two sides together: * **Replace Local Data**: the server's data wins; items that exist only on this device may be removed. Choose this when Dropbox already holds the complete copy. * **Replace Server Data**: this device's data wins; items that exist only on the server may be removed, and your other devices receive this device's data on their next sync. Choose this when this device holds the complete copy. * **Merge**: 2Do matches existing tasks and lists where it can, so the same item on both devices stays a single item. If something was created independently on both sides and can't be matched confidently, both copies are kept. Merge compares every item one at a time, so it can take a very long time with many tasks. Use it only when you are unsure which side is complete, or when each device already holds tasks you want to keep. You can re-run any of these later from **Settings > Sync > Next sync action**; the choice applies once, then returns to **Sync Normally**. See [Merge vs Replace](/docs/macos/sync.md#merge-vs-replace) for the full guidance. tip For an extra safety net, use **Settings > Backups** (a backup's **⋯ menu > Save a Copy…**) to keep milestone backups in another safe location. Backups are independent of sync, so even if Dropbox has a bad day, you've got a recovery path. ## Daily Sync[​](#daily "Direct link to Daily Sync") Once set up, 2Do for Mac syncs continuously in the background while running. You can also press `⌘S` to force an immediate sync. ## Privacy[​](#privacy "Direct link to Privacy") 2Do syncs through Dropbox's app-sandboxed **App Folder**: inside `Apps/`, it can read and write only its own dedicated **2Do** folder, and every other file and folder in your Dropbox is invisible to it. All traffic is encrypted in transit (SSL). The synced files are an internal database your devices use to exchange state, not a task viewer. You can't browse your tasks in Dropbox, and 2Do doesn't add its own encryption on top of Dropbox's storage encryption (see [Does 2Do encrypt synced data?](https://www.2doapp.com/kb/article/does-2do-encrypt-synced-data.html)). Don't hand-edit, rename, move, or delete the 2Do folder The files inside `Apps/2Do` coordinate state across your devices. Editing, renaming, moving, copying, or deleting them by hand can break sync irrevocably and corrupt data beyond recovery. If you need to change your Dropbox setup, do it from inside **2Do > Settings > Sync**, never by touching the folder directly. ## Troubleshooting[​](#issues "Direct link to Troubleshooting") ### Old or missing tasks after upgrading[​](#old-or-missing-tasks "Direct link to Old or missing tasks after upgrading") Compare the Dropbox email in **2Do > Settings > Sync** with the account used by the app or device holding your latest data, including version 3 on iPhone or iPad if still installed. An old or different Dropbox account may hold an older copy. Confirm the account before replacing data, then follow [Old or missing tasks with Dropbox](/docs/faqs/dropbox-shows-old-or-missing-tasks.md) to download the current copy or move from a backup to the new iCloud sync. ### Adding another device[​](#adding-another-device "Direct link to Adding another device") Install 2Do, sign in to the exact same Dropbox account, and let the first sync pull your data down. See [Setting up a new device](/docs/faqs/setting-up-new-device.md) for the full walk-through. ### Dropbox v1\_retired error[​](#dropbox-v1_retired-error "Direct link to Dropbox v1_retired error") Dropbox has retired some API versions over time. If you see a `v1_retired` error, **update 2Do to the latest version**. Builds using deprecated Dropbox APIs can no longer connect. ### 504 timeout error[​](#504-timeout-error "Direct link to 504 timeout error") A 504 typically means Dropbox couldn't be reached in time. Check your network and retry. Persistent 504s usually indicate a temporary Dropbox outage; check [Dropbox's status page](https://status.dropbox.com/). ### 509 bandwidth error[​](#509-bandwidth-error "Direct link to 509 bandwidth error") A 509 means the Dropbox **App Folder bandwidth limit** for free Dropbox accounts has been exceeded. Rare with normal task data; can happen if you're heavy on attachments. Wait until the quota resets, or upgrade your Dropbox plan. ### Different task counts on different devices[​](#different-task-counts-on-different-devices "Direct link to Different task counts on different devices") If one device shows a different count than the rest, it likely missed a sync cycle. Force a sync (`⌘S`) on the lagging device and let it complete. If it still differs, run a clean sync on the most up-to-date device, then choose **Replace Local Data** on the lagging one. See [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). ### Disabling Dropbox desktop notifications for 2Do[​](#disabling-dropbox-desktop-notifications-for-2do "Direct link to Disabling Dropbox desktop notifications for 2Do") If you also run the Dropbox desktop app, Dropbox may notify you every time 2Do updates the file. Disable file-change notifications in Dropbox preferences, or exclude the 2Do app folder from notifications. --- # Sync with Fastmail [Fastmail](https://www.fastmail.com) is a popular privacy-focused email provider with full CalDAV support, which makes it a solid host for your 2Do tasks. 2Do connects to it through its own **Fastmail** account type, so there are no server details to fill in. Fastmail sync carries the same things as any [Custom CalDAV server](/docs/macos/sync-with-caldav.md): all core task fields, multiple alarms, one picture and one audio note per task, and two-way project and sub-task hierarchy. 2Do-only grouping (sections, Smart Lists, tag groups, list groups) stays on this Mac; see [What CalDAV Sync Carries](/docs/macos/sync-with-caldav.md#what). Each 2Do list is stored on Fastmail as a CalDAV **task calendar**, the protocol's name for the same container; see [Lists and Task Calendars](/docs/macos/sync-with-caldav.md#task-calendars). tip If you rely on Smart Lists and tag groups syncing, [Dropbox](/docs/macos/sync-with-dropbox.md) carries them along with picture and audio attachments. Link-only attachments stay on the Mac. Fastmail is the better fit when you want your tasks on a CalDAV server you already trust with your mail. ## App Password Requirement[​](#app-password "Direct link to App Password Requirement") Fastmail does not accept your regular account password from third-party apps. You need an **app password** created for CalDAV access (Fastmail explains these in its [App passwords](https://www.fastmail.help/hc/en-us/articles/360058752854) help article): 1. Sign in at [fastmail.com](https://www.fastmail.com) and open **Settings > Privacy & Security > Integrations (App passwords)**. 2. Click **New app password**. 3. Give it a name you'll recognize (*2Do*), and choose an access scope that includes **Calendars (CalDAV)**. 4. Fastmail shows the password **once**. Copy it and keep it somewhere safe; you'll paste it into 2Do next. Deleting the app password later revokes 2Do's access without changing your main account password. tip App passwords can be reused across your devices, so one *2Do* app password covers your Mac, iPhone, and iPad. Prefer separate ones per device if you want to be able to revoke them individually. ## Setup[​](#setup "Direct link to Setup") 1. Open **2Do > Settings > Sync** and select the **Setup** tab. 2. From the **Account Type** pop-up, choose **Fastmail**. The server details are built in. 3. Enter your full Fastmail email address and the **app password** you generated. 4. Click **Set Up Sync**. 2Do discovers your task collections on the server. 5. Repeat on each device with the same address and credentials. Your first sync Close Settings and press `⌘S` (or click the **Sync** toolbar button) to run the first sync. When both sides already hold data, 2Do asks how to combine them; see [Merge vs Replace](/docs/macos/sync.md#merge-vs-replace) before choosing. ## Daily Sync[​](#daily "Direct link to Daily Sync") Fastmail syncs continuously while 2Do is running. Press `⌘S` to force an immediate sync. ## Troubleshooting[​](#issues "Direct link to Troubleshooting") ### Login or password rejected[​](#login-or-password-rejected "Direct link to Login or password rejected") Almost always the password type: make sure the password you entered is an actual **app password created in your Fastmail account**, with CalDAV access, and not your regular account password. Fastmail walks you through creating one in its [App passwords](https://www.fastmail.help/hc/en-us/articles/360058752854) help article. If a previously working password stops, it may have been revoked; generate a new one at **Fastmail > Settings > Privacy & Security** and re-enter it in 2Do. ### Connection succeeds but no task lists appear[​](#connection-succeeds-but-no-task-lists-appear "Direct link to Connection succeeds but no task lists appear") Check that the app password's scope includes **Calendars (CalDAV)**. A mail-only scope authenticates but exposes no calendar collections. ### Adding another device[​](#adding-another-device "Direct link to Adding another device") Install 2Do, choose **Fastmail** with the same address and app password, and let the first sync pull your data down. See [Setting up a new device](/docs/faqs/setting-up-new-device.md). --- # Sync with iCloud Looking for the Apple Account and app-specific password method? That is a different account type, **iCloud CalDAV**, and it has its own page: [Sync with iCloud CalDAV](/docs/macos/sync-with-icloud-caldav.md). The page you are reading covers 2Do's recommended iCloud sync, which needs no password at all. **iCloud** is the recommended way to sync 2Do across your Apple devices. Everything in 2Do syncs across your devices through the iCloud account you are already signed in to, and no separate account or password is needed. There is nothing to sign up for and nothing to type. 2Do uses the iCloud account already signed in on the Mac, and your tasks stay private to that account. ## Share a List with Someone Else[​](#sharing "Direct link to Share a List with Someone Else") This page covers syncing your own tasks between devices. To invite someone with a different Apple Account to one list, use [Share Lists over iCloud](/docs/macos/icloud-list-sharing.md). Sharing has its own permissions and personal-view settings, and works separately from the ordinary sync account configured here. ## Requirements[​](#requirements "Direct link to Requirements") * **macOS 14 or later.** On earlier versions the **Account Type** pop-up shows *iCloud (requires macOS 14 or later)* and the entry cannot be selected. * The Mac is **signed in to iCloud** in **System Settings**. Requires current versions of 2Do on every device Older releases of 2Do (version 2.x and earlier on the Mac, and version 3 and earlier on iPhone and iPad) do not support this sync method and cannot see tasks synced through it. Update those devices, or use a method they support, such as [iCloud CalDAV](/docs/macos/sync-with-icloud-caldav.md). 2Do for Android can sync through iCloud too, in versions that list **iCloud** separately from **iCloud CalDAV**. See [Sync with iCloud on Android](/docs/android/sync-with-icloud-native.md). ## Setup[​](#setup "Direct link to Setup") 1. Open **2Do > Settings > Sync** and stay on the **Setup** tab. 2. Open the **Account Type** pop-up and choose **iCloud (Recommended)**. 3. Click **Set Up Sync**. 4. If both this Mac and iCloud already hold data, choose how to combine them. See [First Sync](#first-sync) below. 5. Repeat on each of your devices, signed in to the same iCloud account. After setup, **Enable Sync** is the master switch: turning it off keeps the account and its settings in place and stops syncing until you turn it back on. You need to be signed in to iCloud This method uses the system iCloud account, so the Mac has to be signed in to one. If sync does not start, open **System Settings** and check that you are signed in to iCloud. ## First Sync[​](#first-sync "Direct link to First Sync") The first time an account syncs, and only when both sides already hold data, 2Do asks how to proceed with a **Sync Method** alert offering **Replace Local Data**, **Replace Server Data**, **Merge**, and **Cancel**. * **Replace Local Data** replaces the syncable tasks and lists on this Mac with what is in iCloud. Items that exist only on this Mac may be removed. * **Replace Server Data** replaces the syncable data in iCloud with the tasks and lists on this Mac. Items that exist only in iCloud may be removed, and your other devices receive this Mac's data on their next sync. * **Merge** reconciles the tasks and lists on this Mac with the data in iCloud, matching existing items where it can. When an item was created separately on both sides and cannot be matched confidently, both copies are kept. Choose **Replace Local Data** when iCloud already has the complete copy of your data, and **Replace Server Data** when this Mac has it. Choose **Merge** only when you are unsure, or when both sides hold changes you need to keep: it compares every item and can take a very long time with a large number of tasks. Read [Merge vs Replace](/docs/macos/sync.md#merge-vs-replace) before choosing a Replace direction, as it overwrites one side with the other. You can run any of these again later from **Settings > Sync > Next sync action**. It applies once, then returns to **Sync Normally**. ## What Syncs[​](#what "Direct link to What Syncs") iCloud sync is a complete sync method. Everything in 2Do syncs across your devices, including Smart Lists, tags, tag groups, list groups, locations and attachments. That includes: * Every task field: title, notes, dates, duration, alarms, repeat, priority, starred state, actions, and locations. * Projects, checklists, and sub-tasks, with their structure intact. * Lists, list groups, tags, tag groups, and Smart Lists. * [Sections](/docs/macos/task-sections.md) in your lists, with their names, descriptions, order, and tasks, on your Mac, iPhone, and iPad. * Attachments of every kind, including pictures, audio notes, files, and links. One provider option appears under the account: **Sync list ordering**, which keeps the order of your lists the same across devices. Supported app settings also sync through your iCloud account across Mac, iPhone, and iPad, separately from task sync. See [Settings Across Devices](/docs/macos/settings.md#settings-sync). ## What Stays on This Mac[​](#stays-local "Direct link to What Stays on This Mac") Some choices remain local to each device: * **List alert exclusions**, so silencing a list on one device does not silence it on the others. * On iPhone and iPad, a task's own **Ring as Alarm** choice. * View state such as which projects and list groups are expanded. tip Keeping a list off iCloud entirely takes one switch: **Settings > Sync > Exclusions**. That list and its tasks then stay on this Mac. ## Daily Sync[​](#daily "Direct link to Daily Sync") iCloud syncs continuously while 2Do is running, with **Sync automatically** on. Press `⌘S`, or click the **Sync** toolbar button, to force an immediate sync. Turn **Sync automatically** off on this Mac to sync only when you ask. ## Recovering When iCloud Loses 2Do's Data[​](#recovery "Direct link to Recovering When iCloud Loses 2Do's Data") If 2Do's data is removed from iCloud, syncing stops and the Setup tab shows a **Recover iCloud Sync** row explaining what happened. Which explanation you see depends on what happened: * You removed 2Do's data from iCloud. * iCloud encryption was reset, in which case the copy kept in iCloud cannot be recovered. * 2Do's data in iCloud is no longer there for another reason. The two choices are: * **Upload this Mac's data to iCloud again**. Nothing on this Mac is removed. 2Do recreates your data in iCloud from this Mac. Other devices affected by the same reset may ask you to choose how to recover there too. * **Remove synced data from this Mac too**. Anything that was synced to iCloud is removed from this Mac as well. Changes you made here and have not synced yet are kept. Each choice asks you to confirm before it runs. After an encryption reset, uploading this Mac's data again is usually the right answer. Choose from the device with the best data If several devices are waiting on this choice, start with the one holding the most complete copy and upload from there. The others can then pull that copy down. tip Sync is not a backup. Keep milestone copies from **Settings > Backups** (a backup's **⋯ menu > Save a Copy…**) somewhere safe, independent of whichever sync method you use. ## Troubleshooting[​](#issues "Direct link to Troubleshooting") ### Sync does not start[​](#sync-does-not-start "Direct link to Sync does not start") Check that the Mac is signed in to iCloud in **System Settings**, that **Enable Sync** is on in **Settings > Sync**, and that the Mac is online. The Setup footer shows **Last Sync** and, when a run fails, a red **Last Error** naming the problem. ### VPNs, firewalls, and network filters[​](#network-filters "Direct link to VPNs, firewalls, and network filters") A VPN, firewall, or network-filtering app can interrupt the iCloud connections 2Do uses. Working web browsing or other iCloud services do not rule out a connection problem with 2Do's sync. If sync fails, stalls, or **Last Sync** remains **Never** after an attempted first sync: 1. Fully disable the VPN in its app and turn off automatic reconnection for the test. 2. Temporarily pause any network filtering, such as a third-party firewall, DNS filter, or security app that filters connections. 3. Try another network, such as a phone's personal hotspot, with the VPN and filters still disabled. On a work or school network, ask the administrator to check access to iCloud services. 4. Try syncing again. Keep 2Do open and the Mac awake until the first sync completes, then check **Last Sync** in **Settings > Sync**. Restore the settings you changed after testing. If sync works only with a VPN or filter disabled, contact its provider or your network administrator to adjust it. See [Apple's guidance on VPN and security software](https://support.apple.com/en-us/102281). ### Temporarily testing without iCloud Private Relay[​](#private-relay "Direct link to Temporarily testing without iCloud Private Relay") If you use **iCloud Private Relay**, you can also temporarily turn it off for the connected network to see whether sync improves: 1. Open **System Settings > Network** and select the connection you are using, such as **Wi-Fi**. 2. Click **Details** beside the connected network. 3. Turn off **Limit IP address tracking**, then try syncing again. This is an optional connection test, not a requirement for iCloud sync. Turn the setting back on afterward. While it is off, Private Relay does not protect Safari browsing on that network. The change also applies to your other devices using Private Relay on the same network. See [Apple's Private Relay instructions](https://support.apple.com/en-us/102022). ### iCloud is greyed out in the Account Type pop-up[​](#icloud-is-greyed-out-in-the-account-type-pop-up "Direct link to iCloud is greyed out in the Account Type pop-up") This method needs **macOS 14 or later**. The menu item names the requirement when the Mac cannot run it. ### One device shows different tasks[​](#one-device-shows-different-tasks "Direct link to One device shows different tasks") Sync the device with the correct data and let it finish, then choose **Replace Local Data** from **Next sync action** on the device that is behind. See [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). ### Adding another device[​](#adding-another-device "Direct link to Adding another device") Install 2Do, sign the device in to the same iCloud account, choose **iCloud** in **Settings > Sync**, and let the first sync pull your data down. See [Setting up a new device](/docs/faqs/setting-up-new-device.md). --- # Sync with iCloud CalDAV There are two iCloud methods 2Do's recommended iCloud sync needs no account details at all and carries everything: see [Sync with iCloud](/docs/macos/sync-with-icloud.md). The page you are reading covers **iCloud CalDAV**, the credential-based route that signs in with your Apple Account and an app-specific password. Choose it when non-Apple devices or other CalDAV task apps need to read the same lists. **iCloud CalDAV** lets 2Do read and write tasks through iCloud using the CalDAV protocol. Because CalDAV is an open standard, the same task lists are readable by other CalDAV apps, including clients on Android and Windows. Reminders is separate Apple's Reminders app does not sync over CalDAV. Tasks synced through this method do **not** appear in the Reminders app, and changes made in Reminders do not reach 2Do. If you want your tasks inside Reminders, use the [Apple Reminders sync method](/docs/macos/sync-with-reminders.md) instead. ## Lists and Task Calendars[​](#task-calendars "Direct link to Lists and Task Calendars") Every 2Do list you sync through iCloud CalDAV is stored in iCloud as a **task calendar**, the CalDAV name for a collection that holds tasks rather than events. It is the same container as your list in 2Do; only the name differs. 2Do shows it as a **List**, and other apps may label the identical collection a task calendar, a task list, or simply a calendar. A calendar app such as **BusyCal**, for example, shows the same iCloud collection among its task calendars. Changes travel in both directions: * Create a list in 2Do and the matching task calendar appears in iCloud; rename the list and iCloud follows. Deleting the list deletes the task calendar too, unless the collection is shared or also holds calendar events. In that case 2Do removes only its tasks and leaves the collection in place. * A task calendar created in another CalDAV app arrives in 2Do as an ordinary list. * Only apps that read iCloud over CalDAV can see these collections, which is why the same list turns up in some apps and not others. ## What iCloud CalDAV Carries[​](#what "Direct link to What iCloud CalDAV Carries") * Core task fields: title, notes, dates, recurrence, priority, action, location, and sub-tasks. * **Multiple alarms per task** sync through iCloud CalDAV as they are. * **One picture and one audio recording per task** sync when attachment sync is enabled. ## What Stays on This Mac[​](#stays-local "Direct link to What Stays on This Mac") Some 2Do-only features stay on this Mac and are not carried by iCloud CalDAV sync: * Smart Lists * [Sections](/docs/macos/task-sections.md) * Tag groups * List groups * Unused tags note Other apps and devices signed in to this account see your projects and checklists as a flat list of tasks. For a sync that carries your whole 2Do setup, including Smart Lists, tag groups, and list groups, use [iCloud](/docs/macos/sync-with-icloud.md) or [Dropbox](/docs/macos/sync-with-dropbox.md). tip If you want all 2Do features and attachments to sync, [iCloud](/docs/macos/sync-with-icloud.md) carries them in full and needs no password. ## App-Specific Password Requirement[​](#app-specific-password "Direct link to App-Specific Password Requirement") Apple requires **two-factor authentication** for any third-party app accessing iCloud. Your normal Apple Account password does not work here: generate an **app-specific password** at [appleid.apple.com](https://appleid.apple.com) under *Sign-In and Security > App-Specific Passwords*, and enter that in 2Do. App-specific passwords can be reused across apps and devices. Save yours somewhere secure, or generate a new one any time. ### Best Practices[​](#best-practices "Direct link to Best Practices") Keep these points in mind: * **Use your `@icloud.com` address, not `@mac.com`.** If your Apple Account also has an `@mac.com` address, enter the `@icloud.com` address in 2Do. * **Use your primary Apple Account, not an alias.** iCloud aliases do not work for CalDAV sign-in, only the primary email address that owns the account. * **Set your Mac's date and time to automatic.** Under **System Settings > General > Date & Time**, turn on **Set Automatically**. If your Mac's clock is wrong, the app-specific password fails without an obvious reason. * **Resetting your Apple Account password revokes every app-specific password.** Generate a new one and enter it in 2Do again. ## Setup[​](#setup "Direct link to Setup") 1. Make sure two-factor authentication is enabled on your Apple Account. 2. Generate an **app-specific password** at [appleid.apple.com](https://appleid.apple.com) under *Sign-In and Security > App-Specific Passwords*. Label it *2Do* so you can revoke it later. 3. Open **2Do > Settings > Sync**. 4. Choose **iCloud CalDAV** from the **Account Type** pop-up. 5. Enter your **Apple Account** and the **App-Specific Password** you generated, then click **Set Up Sync**. 6. 2Do connects, discovers your iCloud task calendars, and starts syncing. 7. Repeat on each device with the same Apple Account. The first device populates iCloud; the others use **Replace Local Data** to pull it down. Your first sync Close Settings and press `⌘S` (or click the **Sync** toolbar button) to run the first sync. When both sides already hold data, 2Do asks how to combine them; see [Merge vs Replace](/docs/macos/sync.md#merge-vs-replace) before choosing. You can re-run any of these later from **Settings > Sync > Next sync action**; it applies once, then returns to **Sync Normally**. ## Daily Sync[​](#daily "Direct link to Daily Sync") iCloud CalDAV syncs continuously while 2Do is running. Press `⌘S` to force an immediate sync. ## Troubleshooting[​](#issues "Direct link to Troubleshooting") ### "Password is incorrect", or a cryptic `-1012` error[​](#password-is-incorrect-or-a-cryptic--1012-error "Direct link to password-is-incorrect-or-a-cryptic--1012-error") Most often this is one of: 1. **You are using your normal Apple Account password instead of an app-specific password.** Generate one at [appleid.apple.com](https://appleid.apple.com) and use that. 2. **The app-specific password was revoked** because you reset your Apple Account password. Generate a new one. 3. **Your Mac's clock is wrong.** Make sure **System Settings > General > Date & Time > Set Automatically** is on. 4. **You used an alias or an `@mac.com` address.** Use your primary `@icloud.com` address. If none of those help, remove the account from 2Do and add it again: **2Do > Settings > Sync > Change Account**, then set it up with a freshly generated app-specific password. ### "Forbidden" error during sync[​](#forbidden-error-during-sync "Direct link to \"Forbidden\" error during sync") This usually means the credentials being sent are not accepted at all, typically for one of the reasons above. Generate a fresh app-specific password and enter it again. ### Duplicate tasks[​](#duplicate-tasks "Direct link to Duplicate tasks") If your tasks suddenly appear twice, the same iCloud tasks may be reaching 2Do through two paths. Settle on one method for every device and remove the other from **Settings > Sync**. ### Tasks that live in Reminders do not appear[​](#tasks-that-live-in-reminders-do-not-appear "Direct link to Tasks that live in Reminders do not appear") Reminders stores its lists in Apple's own Reminders system rather than on iCloud CalDAV, so a list that exists only inside Reminders cannot sync through this method. Use the [Apple Reminders sync method](/docs/macos/sync-with-reminders.md) if you want those lists in 2Do. **Recovery:** 2Do creates backups automatically every 24 to 48 hours. Open **2Do > Settings > Backups**, restore from a recent backup (a backup's **⋯ menu > Restore…**), and choose **Replace Server Data** for the next sync to push your 2Do data back up. tip If you rely on Siri to capture tasks into Reminders, remember that this method syncs iCloud CalDAV task lists, not Apple Reminders. ### 507 Insufficient Storage Error[​](#507-insufficient-storage-error "Direct link to 507 Insufficient Storage Error") Your iCloud account is out of storage. Free up space in iCloud, then sync again. ### 301 Moved Permanently when syncing using CalDAV[​](#301-moved-permanently-when-syncing-using-caldav "Direct link to 301 Moved Permanently when syncing using CalDAV") Apple occasionally moves CalDAV endpoints. Update 2Do to the latest version; current builds follow Apple's redirects automatically. ### A list you delete reappears after sync[​](#a-list-you-delete-reappears-after-sync "Direct link to A list you delete reappears after sync") This usually means another device still holds that list and pushes it back up. Delete the list on **all** devices, then sync. ### Adding another device[​](#adding-another-device "Direct link to Adding another device") Install 2Do, configure iCloud CalDAV against the exact same Apple Account (with an app-specific password), and let the first sync pull your data down. See [Setting up a new device](/docs/faqs/setting-up-new-device.md). ### One device showing different tasks[​](#one-device-showing-different-tasks "Direct link to One device showing different tasks") Run a clean sync on the most up-to-date device, then choose **Replace Local Data** on the ones that are behind. See [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). --- # Sync with Apple Reminders Apple **Reminders** is an integrated sync method in 2Do for Mac. It's built on Apple's native **EventKit**, the same framework the Reminders app itself uses, so your 2Do tasks show up right inside Apple Reminders while 2Do keeps your projects and sub-tasks intact across your own 2Do devices. Reminders sync is not iCloud CalDAV This page covers the **Reminders** sync method, which talks to Apple Reminders through EventKit on this Mac. It is a **different account type** from [iCloud CalDAV](/docs/macos/sync-with-icloud-caldav.md), which syncs iCloud's CalDAV task lists over the network and does **not** show your tasks in the Reminders app. Pick one method and use it on every device; see [Choosing a sync method](/docs/macos/sync.md). Not sure whether you want Reminders or iCloud CalDAV? Choose **Reminders** if you want your 2Do tasks to appear inside the Apple **Reminders app**. Choose [iCloud CalDAV](/docs/macos/sync-with-icloud-caldav.md) if you want Apple-hosted task lists that sync across your 2Do devices but don't show up in Reminders. They're separate account types; you can't run both at once. ## What Stays on This Mac[​](#stays-local "Direct link to What Stays on This Mac") Some 2Do-only features stay on this Mac and are not carried by Apple Reminders sync: * Smart Lists * [Sections](/docs/macos/task-sections.md) * Tag groups * List groups * Unused tags * Attachments * Locations For a comparison of what each method carries, see [Choosing a sync method](/docs/macos/sync.md). ## How Your Data Looks in the Reminders App[​](#in-reminders "Direct link to How Your Data Looks in the Reminders App") * **Across your 2Do devices**: projects and sub-tasks keep their full structure. * **In the Reminders app**: they appear as a **flat list**; Reminders doesn't reconstruct 2Do's hierarchy in its own interface. Hierarchy is also one-way: **projects and sub-tasks created directly in Reminders are not shared with other apps, including 2Do**, so structure you build in Reminders won't come across. ## Extended Properties in Notes[​](#notes "Direct link to Extended Properties in Notes") Apple Reminders can't natively store everything 2Do tracks. To preserve those extra 2Do properties, 2Do encodes them as plain-text `@tag:value` lines and **appends them to the bottom of the reminder's Notes**. This includes things like start dates, starred state, actions, project/checklist type, sub-task hierarchy identity, duration, and repeat-from-completion. The tags 2Do writes include: | Tag | Meaning | | ------------------------------------------------------- | -------------------------------------------- | | `@taskid:` | Stable identity for the task | | `@parenttaskid:` | Which project/parent the task belongs to | | `@tasktype:project` / `@tasktype:checklist` | Whether the item is a project or a checklist | | `@startdate:YYYY-MM-DD` (+ optional `@starttime:HH:MM`) | Start date/time | | `@duration:` | Task duration | | `@starred` | The task is starred | | `@tags:tag1, tag2` | Assigned tags | | `@action:` (+ `@actionvalue:`) | Task action (call, email, URL, etc.) | | `@repeatfromcompletion` | Recurrence counts from the completion date | This encoding is **always on** for Reminders sync; there's no setting to turn it off. Between 2Do installs, these lines are **parsed out and hidden**, so 2Do users see clean notes with just their actual text. You'll see `@…` lines if you open the note in Reminders Because these tags live in the reminder's Notes, they're visible at the bottom of the note in Reminders (and any app that reads the raw note text). That's expected. Inside 2Do those lines never appear; you only see your real note. Avoid hand-editing the `@…` lines in Reminders, as they carry the information 2Do needs to rebuild your task. ## Setup[​](#setup "Direct link to Setup") 1. Open **2Do > Settings > Sync** and stay on the **Setup** tab. 2. Open the **Account Type** pop-up and choose **Reminders**. 3. Click **Set Up Sync**. There are no username or password fields; Reminders sync uses your Mac's own Reminders access, not an online login. 4. macOS asks whether to let 2Do access your Reminders. Grant **Full Access**. 5. Repeat on each of your devices to keep your 2Do data in sync everywhere. Full Access is required 2Do needs **Full Access** to Reminders. If access is write-only or denied, 2Do can't sync; it shows a **Reminders Access Required** alert with an **Open System Settings** button that takes you to **System Settings > Privacy & Security > Reminders**. Turn Full Access on for 2Do there, then connect again. Once connected, the **Account Type** pop-up is locked. To move to a different method later, use **Change Account** first (this resets the current sync setup), then pick a new **Account Type**. The master **Enable Sync** switch turns syncing on and off without disconnecting. ## Sync Options[​](#options "Direct link to Sync Options") On the **Setup** tab, Reminders sync offers: * **Keep completed tasks**: how far back completed tasks are imported and kept in 2Do: **1, 2, 3, 4, 5, 6, 12, 18, or 24 months** (12 months by default). *Older completed tasks are removed from 2Do only and left in Apple Reminders.* Nothing is deleted from Reminders by this setting. If **Auto-delete completed tasks** ([Settings > Tasks](/docs/macos/settings.md#completed-tasks)) is on, 2Do also skips importing completed reminders that are already older than the auto-delete window. There is no point downloading history it would delete again moments later. The import reaches back only as far as the shorter of the two windows; skipped reminders stay untouched in Apple Reminders, and the first sync stays light and fast. * **Sync automatically**: leave this on for continuous background sync; turn it off to sync only when you trigger it manually. The Setup footer shows **Last Sync** (a time or "Never") and, if something went wrong, a red **Last Error** line. ## Next Sync Action[​](#next-sync-action "Direct link to Next Sync Action") After your first sync, a **Next sync action** picker appears under **2Do > Settings > Sync > Setup**. It applies once to the next sync, then returns to **Sync Normally**. For Reminders, the available choices are: * **Sync Normally** * **Merge Sync**: reconciles this device with the synced data, matching existing items where it can and keeping both copies when an item was created separately on each side and can't be matched confidently. * **Replace Local Data**: replaces the syncable tasks and lists on this Mac with what's currently synced. Replace Server Data isn't available for Reminders Reminders sync does **not** offer **Replace Server Data**: Reminders is an app you also use directly, so 2Do won't overwrite it wholesale. Your options are **Sync Normally**, **Replace Local Data**, and **Merge Sync**. Before choosing **Replace Local Data**, read [Merge vs Replace](/docs/macos/sync.md#merge-vs-replace); the wrong choice can overwrite good data. Keep an extra safety net Sync isn't a backup. Use **Settings > Backups** (a backup's **⋯ menu > Save a Copy…**) to keep milestone backups somewhere safe, independent of whichever sync method you use. --- # 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[​](#setup "Direct link to Connect") 1. Open **2Do > Settings > Sync** and stay on the **Setup** tab. 2. From the **Account Type** pop-up, choose **Todoist**. 3. Click **Connect**. Your default browser opens the Todoist authorisation page. 4. 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**. note 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[​](#what "Direct link to What Syncs") When you sync with Todoist, your tasks, projects, sections, tags, due dates, durations and starred status sync across your devices. Todoist deadlines, comments, attachments and standalone locations are not synced by 2Do, and Replace Server is not available for Todoist. In practice: * **Projects ↔ Lists**: each Todoist project appears as a 2Do list, and vice versa. * **Sections ↔ Sections**: the sections in a Todoist project appear as [sections](/docs/macos/task-sections.md) in the matching 2Do list, with the same names, order, and tasks, and sections you add in 2Do appear in Todoist. Section descriptions are not synced. * **Tasks**, including their **tags**, **due dates**, **durations**, and **starred** status. * **Sub-tasks and hierarchy** are preserved between your 2Do devices. ### Start Dates, Due Dates and Repeats[​](#dates-and-repeats "Direct link to Start Dates, Due Dates and Repeats") A task's **due date** in 2Do becomes its **Date** in Todoist. [Todoist does not support a separate start date](https://www.todoist.com/help/todoist/troubleshooting/does-todoist-support-start-dates-qhqlgZhk). With **Sync extra task properties in notes** on, 2Do stores start dates and times in the Todoist description. If a repeating task has a start date but no due date, 2Do also stores its repeat pattern and end settings there. Your other 2Do devices can then restore those settings, although Todoist itself does not repeat the task. Complete these tasks in 2Do to advance to the next occurrence. Assign a **due date** in 2Do if you want a supported pattern to repeat in Todoist itself. With a due date set, 2Do uses Todoist's native repeat settings and removes the full repeat pattern from the notes. Removing the due date while keeping a start date and repeat rule stores the pattern in notes again. Supported patterns include day, week, month and year intervals, selected weekdays, and ordinal weekdays such as the first Monday of each month. 2Do also recognizes Todoist wording such as **every weekday**, **every workday**, **every other week**, and **every first Monday**. When importing from Todoist, **every weekend** means Saturdays. ## What Stays on This Mac[​](#stays-local "Direct link to 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 * Section descriptions A few Todoist-only concepts don't come into 2Do: **deadlines**, **comments**, and Todoist **attachments** aren't imported. tip Todoist is best when you want your tasks living inside Todoist too, and you're comfortable trading away attachments and standalone locations. If you rely on those, [Dropbox](/docs/macos/sync-with-dropbox.md) or [WebDAV](/docs/macos/sync-with-webdav.md) carry them in full. note **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](/docs/macos/sync.md#merge-vs-replace). ## Todoist Options[​](#options "Direct link to Todoist Options") With Todoist selected, the **Setup** tab shows these controls. ### Sync extra task properties in notes[​](#extra-properties "Direct link to Sync extra task properties in notes") A switch that is **on by default**. It 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:` (+ `@actionvalue:`) | Task action (call, email, URL, etc.) | | `@tasktype:project` / `@tasktype:checklist` | Whether the item is a project or a checklist | | `@repeat:{...}` | Full repeat pattern and end settings, only when a start date is set without a due date | | `@repeatfromcompletion` | Recurrence counts from the completion date | | `@duration:` | Task duration (written only when Todoist rejects native duration writes for the account) | It's a shorter list than [Reminders uses](/docs/macos/sync-with-reminders.md#notes) 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. tip 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. ### Keep completed tasks[​](#completed "Direct link to 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](/docs/macos/settings.md#completed-tasks)). With auto-delete on, importing months of finished history would be pointless, because 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. Skipping old completions protects your Todoist quota 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[​](#auto "Direct link to 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[​](#daily "Direct link to 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[​](#issues "Direct link to Troubleshooting") ### Sync seems stuck or throttled[​](#sync-seems-stuck-or-throttled "Direct link to 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. --- # Sync with Toodledo If you already use [Toodledo](https://www.toodledo.com), 2Do for Mac can sync with your account. You'll keep web access via toodledo.com and Toodledo's email-to-task feature. ## What Toodledo Sync Carries[​](#what "Direct link to What Toodledo Sync Carries") * Core task fields: title, notes, dates, recurrence, priority, location. * **Tags**, including tag assignment and (mostly) tag names. * **Repeating tasks**: Toodledo's recurrence model is rich. * **Web access**: your tasks are visible at toodledo.com and in any Toodledo client. ## What Stays on This Mac[​](#stays-local "Direct link to What Stays on This Mac") Some 2Do-only features stay on this Mac and are not carried by Toodledo sync: * Smart Lists * [Sections](/docs/macos/task-sections.md) * Tag groups * List groups * Unused tags * Attachments * Actions note Projects map to native Toodledo folders. Other apps may show nested checklists as a flat list. A few Toodledo-specific behaviors to know about: * **Alarms** stay on each local 2Do device; Toodledo itself doesn't carry them. * **Multiple locations** assigned to a single task collapse to a single location. * **Emoji characters** in task content can be replaced with question marks (tasks with emoji can also end up duplicated, one with the emoji, one without). * **Free Toodledo accounts** flatten projects and checklists with sub-tasks into a single-level list; **Toodledo Pro / Plus** accounts preserve the project / checklist hierarchy. tip If you rely heavily on hierarchical projects, multiple alarms per task, or attachments, [Dropbox sync](/docs/macos/sync-with-dropbox.md) is a better fit. ## Setup[​](#setup "Direct link to Setup") 1. Open **2Do > Settings > Sync**. 2. Select **Toodledo** as the sync method. 3. Enter your Toodledo username and password. 4. Click **Connect**. 5. Close Settings and press `⌘S` (or click the **Sync** toolbar button) to run the first sync. 2Do asks whether to **Replace Local Data**, **Replace Server Data**, or **Merge**; see [Merge vs Replace](/docs/macos/sync.md#merge-vs-replace) before choosing. You can re-run any of these later from **Settings > Sync > Next sync action**. Two Toodledo-specific options appear once connected: **Sync 2Do lists as Toodledo Folders** (turn it off to map 2Do Lists to Toodledo *Contexts* instead), and **Sync app preferences**. ## Daily Sync[​](#daily "Direct link to Daily Sync") Once configured, 2Do for Mac syncs in the background while running. You can also press `⌘S` to force an immediate sync. ## Switching Away from Toodledo[​](#switching "Direct link to Switching Away from Toodledo") If you decide to leave Toodledo: 1. Save a backup from **Settings > Backups** (a backup's **⋯ menu > Save a Copy…**) as a safety net. 2. Switch to [Dropbox sync](/docs/macos/sync-with-dropbox.md), which carries the features Toodledo skips. 3. On the device with the most up-to-date data, populate Dropbox from that device. On the other devices, choose **Replace Local Data** to pull down. ## Troubleshooting[​](#issues "Direct link to Troubleshooting") ### "Could not retrieve info from the server, please try again later"[​](#could-not-retrieve-info-from-the-server-please-try-again-later "Direct link to \"Could not retrieve info from the server, please try again later\"") Usually transient. Wait a few minutes and retry. Persistent failures often point at network or Toodledo-side issues; check [Toodledo's status page](https://www.toodledo.com). ### Adding another device[​](#adding-another-device "Direct link to Adding another device") Install 2Do, sign in to the exact same Toodledo account, and let the first sync pull your data down. See [Setting up a new device](/docs/faqs/setting-up-new-device.md). ### "Login is not working" / "check login or password"[​](#login-is-not-working--check-login-or-password "Direct link to \"Login is not working\" / \"check login or password\"") Confirm your credentials at toodledo.com first. If they work there but fail in 2Do, regenerate your password (some special characters can confuse the API). ### "Too many logins" failure[​](#too-many-logins-failure "Direct link to \"Too many logins\" failure") Toodledo rate-limits frequent connection attempts. Wait 15–30 minutes before trying again. Don't repeatedly tap Sync if you see this; that just resets the timer. ### Lost lists or different counts across devices[​](#lost-lists-or-different-counts-across-devices "Direct link to Lost lists or different counts across devices") After a misfire, run **Sync** on the most up-to-date device and let it finish. On lagging devices, choose **Replace Local Data** to pull a clean copy from Toodledo. See [One of my devices isn't syncing correctly](/docs/faqs/data-only-partially-syncing.md). ### Toodledo Contexts and Goals don't appear[​](#toodledo-contexts-and-goals-dont-appear "Direct link to Toodledo Contexts and Goals don't appear") 2Do does not import Toodledo *Contexts* or *Goals*. If you previously used those, consider mapping them to 2Do **Tags** (which Toodledo *does* sync) before switching. ### Can't delete the Toodledo list tab[​](#cant-delete-the-toodledo-list-tab "Direct link to Can't delete the Toodledo list tab") If a stuck "Toodledo" list tab appears that you can't remove, contact support so we can help you clean up the stale tab safely. --- # Sync with WebDAV Coming soon WebDAV sync isn't available in 2Do for Mac just yet. This page is a preview of how it will work once it ships. **WebDAV** sync stores your 2Do data as files on a WebDAV server you point it at: your own box, a self-hosted Nextcloud or ownCloud, or any host that speaks WebDAV. It works like [Dropbox sync](/docs/macos/sync-with-dropbox.md), but the storage lives on a server **you** control. This is a full read-write file backend, **not** a read-only calendar subscription. tip **Pick WebDAV when ownership matters most.** It syncs everything Dropbox does, on hardware you run yourself, at the cost of setting the server up. ## What WebDAV Sync Supports[​](#what "Direct link to What WebDAV Sync Supports") WebDAV is a **complete** sync method, so nothing stays on this Mac. When you sync to your own WebDAV server, all of your 2Do data syncs across your devices, stored as files you control. That includes the things other methods leave behind: * Every task field: title, notes, dates, recurrence, priority, action, location, sub-tasks. * Your task's **picture and audio note**. * **List Groups, Tag Groups, Smart Lists**, and your saved presets. * **All your tags**, including tags not currently assigned to any task. * List colors, groups, and visibility settings. ## What Stays on This Mac[​](#stays-local "Direct link to What Stays on This Mac") Nothing. WebDAV syncs all of your 2Do data across your devices, so no 2Do-only feature is left behind on this Mac. ## Setup[​](#setup "Direct link to Setup") 1. Open **2Do > Settings > Sync** and stay on the **Setup** tab. 2. From the **Account Type** pop-up, choose **WebDAV**. 3. Fill in the fields (in order): * **Username**: your account on the server. * **Password**: with an eye button to reveal what you typed. * **Server Address**: the host, e.g. `cloud.example.com`. * **Path**: the WebDAV path on that host (varies by server; see [Self-Hosted Servers](#self-hosted)). * **Port**: numeric; leave at your server's default unless it uses a custom port. * **Use SSL**: a toggle, **on by default**. Keep it on so traffic is encrypted. 4. Click **Connect**. 2Do composes the fields into a single URL of the form `https://host:port/path`. If you type `https://` into the Server Address yourself, **Use SSL** is forced on automatically. **Connect** stays disabled until you've supplied at least a **username**, **password**, and **server address**. Use the **same server and account on every device**. 2Do only syncs devices that talk to the same WebDAV server, path, and account, so a device pointing at a slightly different path or a different login won't see the same tasks. When a device looks out of step, confirm its Server Address, Path, Port, and Username match your other devices exactly. ### "Can't Verify This Server"[​](#trust "Direct link to \"Can't Verify This Server\"") If your server uses a self-signed or private certificate, 2Do can't confirm its identity automatically and shows a **Can't Verify This Server** prompt. It names the server, explains why the connection needs confirmation, and shows the certificate's SHA-256 fingerprint. This is expected for self-hosted setups. **Check the fingerprint against your server's certificate**, then click **Continue** to trust and remember it. 2Do stores that trust decision for this exact account, host, port, and fingerprint combination, so you won't be asked again unless the certificate changes. If it does change and you weren't expecting it, 2Do asks again, and a fingerprint that suddenly differs on a server you didn't touch is worth investigating before you trust it. ## WebDAV Options[​](#options "Direct link to WebDAV Options") With WebDAV selected, the **Setup** tab shows these controls: * **Sync list ordering**: keep your list order in step across devices. * **Sync audio notes**: include audio attachments. * **Sync pictures**: include picture attachments. * **Sync app preferences**: carry 2Do's app preferences across devices. * **Sync automatically**: device-local; *"Turn this off to sync manually."* ## Merge and Replace[​](#merge-replace "Direct link to Merge and Replace") WebDAV supports the full set of sync actions. On the first sync (or from the **Next sync action** picker later) you can choose **Replace Local Data**, **Replace Server Data**, or **Merge** (**Merge Sync** in the picker). See [Merge vs Replace](/docs/macos/sync.md#merge-vs-replace) for what each does and when to use it. warning Replace overwrites one side with the other. If this Mac is empty and you choose **Replace Server Data**, it can wipe the good copy on your server. Pause and confirm the direction before you commit. tip **Save a backup before your first cross-device sync**, from **Settings > Backups** (a backup's **⋯ menu > Save a Copy…**). If the server path or the first-sync direction turns out differently than you expected, you'll have a clean recovery point. ## Daily Sync[​](#daily "Direct link to Daily Sync") Once connected, 2Do for Mac syncs continuously in the background while running (unless you turn **Sync automatically** off on this Mac). Press `⌘S` any time to force an immediate sync. ## Self-Hosted Servers[​](#self-hosted "Direct link to Self-Hosted Servers") WebDAV is built for self-hosting: Nextcloud, ownCloud, and similar. The one field that differs between servers is the **Path**, since each product exposes WebDAV at its own location; check your provider's documentation for the exact path to enter. Everything else (Server Address, Port, SSL, credentials) works the same way. 2Do stores its data as its own files inside the path you give it. Those files are an internal sync database, not a task viewer, so don't hand-edit, rename, or move them on the server. If you need to change your setup, do it from inside **2Do > Settings > Sync**. --- # macOS Focus Filters (Do Not Disturb) When you turn on a macOS **Focus** (Do Not Disturb, Work, Sleep, and so on), you can have 2Do automatically hide and mute its own alarm cards, then bring them back the moment the Focus ends. This keeps 2Do's attention-grabbing alarm window quiet during meetings, deep work, or sleep, without changing anything about your alarms themselves. This is not the in-app "Focus Filter" 2Do has an unrelated feature also called **Focus Filter**, a Sort Bar toggle that narrows the task list to just what matters right now. That has nothing to do with alarms or with macOS Focus modes. This page is about silencing 2Do's *alarm cards* during a system Focus. For the task-list view toggle, see [Focus Filter](/docs/macos/focus-filter.md). ## Add 2Do to a Focus[​](#setup "Direct link to Add 2Do to a Focus") This uses Apple's system Focus Filters and requires **macOS 13 or later**. 1. Open **System Settings > Focus**. 2. Select the Focus you want to affect (for example **Do Not Disturb** or **Work**). 3. Scroll to **Focus Filters** and click **Add Filter**. 4. Choose **2Do** from the list of app filters. macOS also offers a suggested 2Do filter automatically. 5. Turn on **Silence 2Do Alarms** ("Hide and silence custom 2Do alarm windows while this Focus is active."). That's all that's needed. The per-Focus filter works on its own, and there is no preference to set inside 2Do, and it does **not** require Focus-status permission, because 2Do simply reacts to the filter that macOS runs. tip Add **Silence 2Do Alarms** to your **Sleep** Focus so overnight alarms don't wake you, but still surface with a single sound the moment your day's Focus turns off. ## What Happens While the Focus Is Active[​](#how "Direct link to What Happens While the Focus Is Active") When a Focus with this filter turns on, 2Do's custom alarm cards are **hidden and silenced**: * The floating alarm stack is hidden. * The repeating-sound timer stops. * Any alarms that fire while the Focus is active are still recorded. They are simply **withheld**, not lost. When the Focus ends, 2Do **reveals** the alarm stack again, and **one** deferred sound plays so you know something came in while you were heads-down. ## Silence During Any Focus[​](#any-focus "Direct link to Silence During Any Focus") If you'd rather not add the filter to every Focus one by one, 2Do can silence its alarms whenever **any** Focus is active. In **2Do > Settings > Alerts**, under **2Do Notifications**, turn on **Silence custom alarms during any Focus**. With this setting on, 2Do silences its alarms whenever your Mac is in a Focus Mode. This broad switch is **off by default**. Leave it off if you only want alarms silenced in Focus modes where you've added the 2Do Focus Filter. When you turn it on, 2Do needs **Focus-status permission** (macOS asks the first time it's used); if that permission is denied, the setting has no effect. The result is the same as the per-Focus filter: alarm cards are hidden and silenced during a Focus, then revealed with one deferred sound when the Focus ends. note The per-Focus filter and this "any Focus" switch are two routes to the same behavior: * **Silence 2Do Alarms** filter: the *narrow* route. Affects only the Focus modes you add it to. No extra permission needed. * **Silence custom alarms during any Focus**: the *broad* route. Affects every Focus. Needs Focus-status permission. Use one or the other depending on how selective you want to be. ## What It Does Not Change[​](#scope "Direct link to What It Does Not Change") Both of these controls affect **only 2Do's own custom alarm method**, the floating alarm cards. They have **no effect** on alerts delivered through **macOS Notification Center**. If you've chosen Notification Center as your notification method in **2Do > Settings > Alerts**, macOS's own Focus rules govern whether those notifications are shown, not 2Do. note Because this only touches the 2Do alarm cards, it requires the **2Do** notification method (Settings > Alerts > **Notifications method**). Under the Notification Center method there are no 2Do alarm cards to silence, and the **Silence custom alarms during any Focus** switch appears grayed out. ## Related Pages[​](#related "Direct link to Related Pages") * [Alarms and Nagging](/docs/macos/alarms-and-nagging.md): the 2Do alarm window, snoozing, and repeating sound alerts. * [Focus Filter](/docs/macos/focus-filter.md): the unrelated in-app task-list view toggle. --- # Tags Use tags to find related tasks across your lists. For example, tag tasks `@phone` for calls you need to make or `@waiting` for things you need from someone else. ## Tagging a Task[​](#tagging "Direct link to Tagging a Task") * **In the editor**: start typing in the **Tags** field. It suggests matching tags as you type and turns each one you accept into a chip (see [The Tag Entry Field](#tag-field) below). * **In the Tags panel** (right utility panel): drag a tag from the panel onto a task in the list, or drag a **selection of tasks onto a tag** to tag them all at once. Drop tasks onto a **tag group** and the tags the group is **currently showing** are applied, so the panel's eye filter changes what a drop does. The default container that holds tags without a group doesn't accept drops. * **Right-click a task**: choose **Edit Tags** or **Tag...**. * **Multi-select**: select many tasks and right-click → **Tag...** to apply the same tag to all of them (see [Batch Tagging](#batch-tag) below). * **While typing a new task**: write the tag in the title as `#errands` and [Natural Language Input](/docs/macos/natural-language-input.md) adds it for you. A word starting with `#`, with spaces around it, becomes a tag. You can use a new tag name without creating it first. Add as many as you like, as in `Buy milk #errands #shopping`. Tags run together, such as `#sales#urgent`, stay in the title as plain text. To remove a tag, edit the field and delete it, or right-click → **Untag...**. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-mac/videos/dragdropontagpanel_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-mac/videos/dragdropontagpanel_poster.png) ### The Tag Entry Field[​](#tag-field "Direct link to The Tag Entry Field") The editor's **Tags** field is a tokenized field with live auto-completion. As you type, 2Do suggests matching tags from the ones you already use. Press Return (or click a suggestion) to accept one, or Tab to lock in what you've typed. Each accepted tag becomes a chip, and the chips stay in the order you entered them. The suggestions are accent-tolerant: typing plain letters like `cafe` still finds an accented tag such as `café`. Tags already on the task are left out of the suggestion list so you don't add duplicates. ### Batch Tagging Multiple Tasks[​](#batch-tag "Direct link to Batch Tagging Multiple Tasks") Select several tasks and right-click → **Tag...** (also **Task > Tag...**, or press `L`) to change all of their tags at once. The dialog gives you two ways to apply what you type: * **Append**: adds the entered tags to each selected task (creating any that don't exist yet) while leaving their current tags in place. * **Replace**: swaps **every** existing tag on the selected tasks for the ones you enter. Leave the field empty and choose **Replace** to clear all of their tags. To take tags away instead, right-click → **Untag...** (also **Task > Untag...**, or press `⌥L`) and enter the tags to **Remove** from the selection. ## The Tags Panel[​](#tags-panel "Direct link to The Tags Panel") ![The tags panel](https://downloads.2doapp.com/resources/img/2do-mac/tagfilter.png) Open the right utility panel and switch to **Tags** to see your tags, each with a count of tasks. By default the panel lists **all** of them. Clicking a tag row selects it; clicking the name of an already selected row starts a rename. To filter the Task List by a tag, click the **tag's icon** at the left of its row, or select the row and press **Space**. Filter by another tag to add it to the filter; combine as many as you like, and repeat on a filtering tag to take it back out. The panel's footer holds a small **eye** chip that limits the panel to the tags used by the tasks currently on screen, so if tags seem to have gone missing, check this first. Alongside it, a sort chip flips **Tag Sorting** between **Alphabetically** and **Manually**. In manual mode, drag tags into whatever order suits you. ## Showing or Hiding Tag Names[​](#tag-names-display "Direct link to Showing or Hiding Tag Names") By default, tasks in the main list show their tag names as small colored bubbles. If you'd rather keep the list clean, turn off **2Do > Settings > Appearance > Task List > Always show tag names**. Rows then hide their tag names (a small indicator still shows that a task carries tags), and you can **hold the Option (`⌥`) key** at any time to reveal every task's tags for as long as you hold it. This preference syncs across your devices via iCloud. ## Tag Groups[​](#tag-groups "Direct link to Tag Groups") Tags grow over time. **Tag Groups** keep them tidy. * Create a group with **File > New > New Tag Group**. * Drag tags into the group; collapse the group with its disclosure triangle when you don't need to see what's inside. Common grouping patterns: * **Contexts**: `home`, `work`, `phone`, `errands`, `waiting`. * **People**: `boss`, `spouse`, `kids`. * **Energy**: `low-energy`, `deep-work`, `quick-win`. * **Status**: `blocked`, `in-review`, `on-hold`. ## Pausing a Tag[​](#pause "Direct link to Pausing a Tag") Any tag in 2Do can be **paused**. When a tag is paused, every task that carries that tag is hidden from view automatically: *All*, *Today*, the list it lives in, search, everything. The tasks are still in your database; they're just temporarily out of sight. This is the cleanest way to put a whole context on hold without editing individual tasks one at a time. ### Pausing and Resuming a Tag[​](#pause-resume "Direct link to Pausing and Resuming a Tag") Open the panel with **View > Show Tags**, then click **Tags** at the top of the utility panel. Right-click the tag and choose **Pause...**; the same item reads **Resume...** once the tag is paused. Paused tags hide their tasks; resumed tags reveal them again. The tag remains in your library either way; only its associated tasks change visibility. ### Showing Paused Tasks Without Resuming[​](#show-paused "Direct link to Showing Paused Tasks Without Resuming") To peek at paused tasks without resuming the tag: * **Task > Show Paused**: temporarily reveals paused tasks alongside the normal view. * **Task > Show Scheduled & Paused**: reveals both paused tasks and tasks hidden by [Smart Scheduling](/docs/macos/focus-lists.md#smart-scheduling). You can also use the search keyword **`type: paused`** to bring paused tasks into search results. ### Common Pause Patterns[​](#patterns "Direct link to Common Pause Patterns") * Pause `waiting` while you're on a long flight, and anything blocked on someone else's reply steps out of view. * Pause `home` during work travel, and chores you can't possibly do yet stop showing up. * Pause a project context (`kitchen-reno`) while you wait for materials, then resume when the parts arrive. tip Pausing a tag is a snapshot, not a deletion. Resume the tag any time and every paused task reappears exactly where it was. ## Sorting and Grouping by Tag[​](#sort-by-tag "Direct link to Sorting and Grouping by Tag") Switch the Task List sort order to **Tag** from the Sort Bar's sort menu and tasks group under their tags. Useful for an at-a-glance review of where the work sits across contexts. Each section is labeled with the actual tag names it represents: the task's full set of tags as a comma-separated, alphabetical list. Tasks that carry the **same** set of tags group together under one section, and any tasks without tags collect under **No Tags** at the bottom. ## Renaming Tags[​](#rename-merge "Direct link to Renaming Tags") To rename a tag on Mac, select it in the Tags panel and click its name again, press **Return**, or right-click → **Rename...**. Type the new name and the change applies to every task using that tag. Useful when typos sneak in (`phone` and `phpne`). A rename to a name that's already taken by another tag is rejected, so tags always stay unique. (Double-clicking an empty area of the panel creates a new tag rather than renaming one.) ## Tags in Smart Lists and Filters[​](#in-rules "Direct link to Tags in Smart Lists and Filters") Tags are first-class in Smart Lists and temporary tag filtering. You can build Smart Lists such as: * "All tasks tagged `phone` due in the next 7 days." * "All tasks tagged `waiting` whose tag isn't paused." * "All tasks with at least one tag in the *Contexts* tag group." For quick one-off filtering, click a tag's icon in the Tags panel. For saved tag-based views, see [Smart Lists](/docs/macos/smart-lists.md). The [Focus Filter](/docs/macos/focus-filter.md) is a simpler built-in condition menu for quick date, priority, and starred views. --- # The Task Editor Use the task editor to change a task's title, notes, dates, and other details. This page explains each field. ![The inline task editor in the main 2Do window](https://downloads.2doapp.com/resources/img/2do-mac/editor.png) ## Opening the Editor[​](#opening "Direct link to Opening the Editor") * **Double-click** a task in the Task List. * Select a task and press **Return**. The editor is always available inline, not a modal window, so you can keep navigating the list while editing. ## Title[​](#title "Direct link to Title") The headline of the task. Keep it short and clear, then use the editor fields below it for dates, tags, priority, Alerts, and the rest of the task details. The title appears wherever the task is shown: list rows, alarms, alerts, and the menu bar Helper. While you type the title of a **new** task, [Natural Language Input](/docs/macos/natural-language-input.md) reads details such as `tomorrow at 3pm`, `every Monday`, or `#errands` out of what you wrote, fills in the matching fields, and removes those words from the title when you save. A date on its own is the due date, while a start word in front of it sets the start date, so `Work on the report starting tomorrow` sets the Start Date and leaves the Due Date unchanged. Titles hold up to **1,000 characters**. Paste or drag in something longer and 2Do keeps the first 1,000 characters as the title and moves the rest into the notes. Nothing is lost. Typing past the limit is simply refused, with no overflow into the notes. Sync services with tighter title limits are handled automatically during sync. tip Whether you pick a date in its field or type it into the title, it ends up in the Start Date or Due Date field. The title stays as the task title. ## Notes[​](#notes "Direct link to Notes") A free-form text field for context, links, snippets, or whatever helps. Notes support: * **Live Markdown styling**: emphasis, strong, code, headings, lists, links, and more, styled as you type, with a read-only **Markdown Preview** chip. * **Insert Date & Time**: stamp in a formatted date or time from the notes toolbar chip or **Edit > Insert Time Stamp**, perfect for journaling progress. * **Links to other tasks**: type `@{` to drop a live `@{Task Title}` link that jumps to another task. * **[Link Discovery](/docs/macos/notes-and-markdown.md#link-discovery)**: URLs, email addresses, local file paths, and task links become clickable as you type or paste. When a long note buries them between paragraphs, the **Open Links in Notes** chip gathers every detected link into one menu, so nothing needs hunting down. Notes hold up to **500 KB** of text, about 100 pages. Most sync services won't store longer notes, so pasting more than that shortens the note to fit, and 2Do lets you know when it does. Full details are on [Notes, Markdown, and Links](/docs/macos/notes-and-markdown.md). ## Start Date and Due Date[​](#dates "Direct link to Start Date and Due Date") Two distinct concepts: * **Start Date**: when the task should *begin*. Tasks with a future start date are scheduled and hidden from regular views by [Smart Scheduling](/docs/macos/focus-lists.md#smart-scheduling) until that date arrives. * **Due Date**: when the task must be *finished*. A task with a due date appears in *Today* for the whole day, then becomes overdue until you complete it. Either or both can be empty. A task with neither is undated and lives in its list with no time pressure. Learn more about how Start Date, Due Date, and Duration interact in [Dates and Durations](/docs/macos/dates-and-durations.md). ### Entering a Date[​](#entering-dates "Direct link to Entering a Date") The Start and Due fields are typeable. Each field is split into a **date segment** and a **time segment**, and as you type, a short list of autocomplete suggestions drops down. You can type a natural date or time, or pick a suggestion. You can even type the time right along with the date in the **same field**: enter something like *tomorrow 3pm* or *in 3w 3pm* and 2Do automatically assigns the time to the **time segment** for you. Relative entries such as *in 3 days* or *in 4 hours* work too, so you can defer a task quickly even when you don't know the exact date. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-mac/videos/datepick_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-mac/videos/datepick_poster.png) There are three ways to confirm a suggestion: * **Click** it to apply it immediately. * **Arrow keys and Return**: highlight a suggestion with Up/Down, then press **Return**. * **Tab out**: if your input matches exactly one suggestion, it's applied as focus moves on. With several matches, a structured numeric entry such as `14` or `22 2p` applies the top suggestion, while an ambiguous word prefix such as `t` leaves the field unchanged so you can go back and pick the one you meant. Prefer picking visually? Clicking the date field also reveals a **mini calendar**, with quick picks above it: **Today** (`⌥1`), **Tomorrow** (`⌥2`), the day after tomorrow under its short weekday name such as **Sat** (`⌥3`), and **Week** (`⌥4`). `⌥0` clears the date. Press the **Down Arrow** to open the picker; in the calendar, **Up** and **Down** move a week at a time, and **Left** and **Right** step a day once you've started navigating. #### What You Can Type[​](#date-formats "Direct link to What You Can Type") The picker understands far more than plain dates. Some examples from each family: * **Relative days**: `today`, `tomorrow`, `day after tomorrow`, `in 3 days`, `in 2w`, `next month`. * **Times of day**: `morning` (9:00 AM), `afternoon` (2:00 PM), `evening` (7:00 PM), `night` (9:00 PM), `noon`, `midnight`. Combine with a day: `tom mor` suggests tomorrow at 9:00 AM. * **Day names**: `sun` lists the next few Sundays; `this thur` and `next fri` do what they say. * **Month and day**: `april 19` (this year and beyond), `jan19`, or compact shortcuts like `18d` (December 18) and `d25` (December 25), optionally with a year: `18d 2028`. * **Weekday in a month**: `dec fri` lists every Friday in December; `sun jun` every Sunday in June. * **Plain numbers**: `18` offers 6:00 PM, the 18th of the month, and "in 18 days"; pick the one you meant. * **Week numbers**: `w19` jumps to the Monday of week 19 (localized prefixes such as `KW` work too). * **Exact dates**: `12/25/2026`, `2026/12/25`, following your system's date format. * **Times**: `742` (7:42 AM or PM), `2pm`, `9p45` (9:45 PM), `14:30`, `1630`. * **Date and time together**: `wed 8:30a`, `next fri 14:30`, `april 19 2pm`, `tomorrow 1630`, `in 3 days 9am`. * **Period intents**: `weekend`, `eod` (end of day), `eow` (end of week), `eom` (end of month), and `now`. Ambiguous hours On today's date, a plain hour with no **am** or **pm** (`6`) is read as **6:00 PM** once 6:00 AM has passed. Add `am` or `pm`, or type 24-hour time such as `18`, to set the hour you mean. tip You don't need to type full words. Partial input matches as you go: `t` shows **Today**, **Tomorrow**, **Tuesday**, and **Thursday**, and `tom` narrows it to **Tomorrow**. #### Clearing and Presets[​](#date-presets "Direct link to Clearing and Presets") Two surfaces offer presets, and they don't carry the same set. The **inline date field's dropdown** holds the quick picks described above (Today, Tomorrow, the day after tomorrow, and Week) plus two clearing items: * Choose **None** to clear the date. * Choose **No Time** to clear just the time, keeping the date. The **standalone date popup**, opened with `⌘/` (Edit Dates), or `D` (Defer…) / `K` (Schedule…) on a selection, has its own preset chips: `⌥1` **Today**, `⌥2` **Tomorrow**, `⌥3` **2 Days**, `⌥4` **Week**. Every change is a single undoable step, "Change Start Date" or "Change Due Date". ### Due Time[​](#due-time "Direct link to Due Time") Add a specific time to a due date when a deadline matters down to the hour. Tasks without a due time remain date-only tasks. ### Duration[​](#duration "Direct link to Duration") Tells 2Do how long a task will take. It never sets or changes the task's start date, due date, or due time. When set together with a due date and due time, a duration also creates an effective start time before the deadline, so a task due at **3:00 PM** with a **30-minute duration** becomes active around **2:30 PM**. The duration picker (`X` on a selection) offers `⌥1` **30 mins**, `⌥2` **1 hour**, `⌥3` **2 hours**, `⌥4` **None**. Learn more in [Dates and Durations](/docs/macos/dates-and-durations.md#duration-due). ## Priority[​](#priority "Direct link to Priority") Four levels: * **None**: default. * **Low** / **Medium** / **High**: color-coded badges. Adjust priority via the editor, the right-click menu, **Task > Priority > Increase Priority / Decrease Priority**, or by hovering over a task and clicking the priority dot directly in the Task List. While you're editing a task, set priority without leaving the keyboard: `⌥⌘0` None, `⌥⌘1` Low, `⌥⌘2` Medium, `⌥⌘3` High, and `⌥⌘S` to toggle the star. These use Option-Command so they don't collide with typing in the editor. See [Stars and Priorities](/docs/macos/stars-and-priorities.md) for when to use priority instead of a star. ## Tags[​](#tags "Direct link to Tags") Tags are used everywhere in 2Do: Smart Lists, the Focus Filter, the Tag panel. The Tags row is a tokenized entry field with auto-completion. As you type, 2Do suggests matching existing tags; press Return or click to accept a suggestion, or Tab to tokenize what you've typed. Accepted tags become chips shown in the order you added them. See [Tags](/docs/macos/tags.md) for the full reference, including [Tag Groups](/docs/macos/tags.md#tag-groups). ## Location[​](#location "Direct link to Location") Attach a location to the task. 2Do uses Apple Maps for search and geocoding. Tasks with locations can appear in the [Nearby panel](/docs/macos/nearby-locations.md), show a location indicator in the task list, and sync their location to your other 2Do devices. ## Action[​](#action "Direct link to Action") Turn the task itself into something you can *do*. Pick an action type and 2Do does the heavy lifting: * **Call**: opens your chosen calling app for the saved number or contact. * **Message**: opens Messages with the contact pre-filled. * **Mail**: opens a new email pre-addressed. * **Visit**: opens an address or saved map location in your chosen map app. * **URL**: opens a link in your default browser. * **Google**: runs a web search using the saved search text. Choose the apps for **Call** and **Visit** in [Advanced settings](/docs/macos/settings.md#general-advanced). With the action picker open and no action assigned yet, pick a type with Option and a number: `⌥1` Call, `⌥2` Message, `⌥3` Mail, `⌥4` Visit, `⌥5` URL, `⌥6` Google. The chips are icon-only, a colored icon with its `⌥N` hint, no text label. Once an action is set the preset chips collapse. See [Actions](/docs/macos/actions.md) for the full reference. ## Alerts[​](#alerts "Direct link to Alerts") Add as many alerts as you need. Each alert row is set from two popups: * **Alert style**: the popup lists **None** (removes the row), **Message**, and **Message with Sound**, followed by a **Presets** section of ready-made offsets: 0, 5, 15, and 30 minutes before, 1, 2, 6, and 12 hours before, and 1 and 2 days before. * **When it fires**: relative to the task's date (**the same day**, **the day before**, **the day after**, a number of **days before** / **days after**, or at an **exact time**), or pinned to an absolute date and time of your choosing. New rows take effect as soon as you set them. There is no separate confirm step. With the alarm picker open, add a preset reminder with Option and a number, each a Message-with-Sound alarm at an offset relative to the due date: `⌥1` 0 minutes (at due), `⌥2` 5 minutes, `⌥3` 15 minutes, `⌥4` 30 minutes, `⌥5` 1 hour, `⌥6` 1 day. The chips stay visible so you can add several; re-pressing a preset that already exists does nothing. See [Alarms and Nagging](/docs/macos/alarms-and-nagging.md). ## Recurrence[​](#recurrence "Direct link to Recurrence") Make the task repeat. Choose from preset rules or build a custom rule with intervals, days-of-week, and end conditions. While the rule is still "Never," pick a preset with Option and a number: `⌥1` Daily, `⌥2` Weekly, `⌥3` Every 2 weeks, `⌥4` Monthly, `⌥5` Quarterly, `⌥6` Yearly. The preset chips hide once a rule is set. See [Repeating Tasks](/docs/macos/repeating-tasks.md). If the repeating task also has start dates, due dates, or a duration, see [Repeating Tasks and Dates](/docs/macos/dates-and-durations.md#recurrence). ## Attachment[​](#attachment "Direct link to Attachment") Each task can carry a picture and an audio note. Click the picture or audio icon on the right of the task editor to open that attachment's controls in a popup. note Your task's picture and audio note sync on Dropbox, WebDAV, and CalDAV (including iCloud CalDAV). Toodledo, Todoist, and Apple Reminders don't sync attachments. ### Transcribing an Audio Note[​](#transcription "Direct link to Transcribing an Audio Note") 2Do can turn an audio note into text you can read and copy. It works on any saved note, including one you have just recorded. Stop a recording before you transcribe it. Transcription needs macOS 26 or later, on a supported Mac and in a supported language. It uses your Mac's current language. On earlier versions of macOS, **Transcribe** does not appear. 1. In the task editor, click the audio icon on the right to open the audio note's controls. 2. Click **Transcribe**. The text appears below the playback controls and fills in as 2Do works through the recording. 3. Click the **Copy Transcript** button (the doc-on-doc icon), then paste the text into the task's notes or anywhere else. Playing or pausing the recording does not stop transcription. The transcript is not saved. Closing the audio controls clears it, so copy anything you want to keep first. Transcribing does not change the recording, the task, or what syncs. Transcription uses the offline speech recognition built into macOS. The recording and its text are processed on your Mac, and transcribing does not upload them to 2Do's servers or to an online transcription service. The first time you transcribe in a language, your Mac may need to download support for that language, which needs an internet connection. After that, transcription works offline. While transcription runs, the controls show its progress: getting ready, downloading, or transcribing. If a recording cannot be transcribed, a short message explains why: the Mac or language is not supported, the recording cannot be read, or no speech was found. If transcription stops because of an error, you can try again from the same place. ## The Copy Menu[​](#copy-menu "Direct link to The Copy Menu") The editor's top bar has a **Copy** button (the doc-on-doc icon). Click it for a menu of copy options: * **Copy**: the full task, the same as `⌘C`. * **Copy Title**: just the task's title text. * **Copy Notes**: just the notes text (disabled when the task has no note). * **Copy Embeddable Link**: an `@{Title}` token you can paste into another task's notes for a live inline link. See [Linking to Another Task](/docs/macos/notes-and-markdown.md#task-links). * **Copy Shareable Link**: a `twodo://x-callback-url/showTask?uid=…` deep link that opens this task in 2Do. * **Copy Links from Notes**: every link found in the notes, one per line (disabled when the notes contain no links). note Copy and share options stay available even on read-only lists. ## Sub-Tasks[​](#sub-tasks "Direct link to Sub-Tasks") Sub-tasks belong to projects and checklists. A regular task cannot hold sub-tasks of its own: adding one converts the task into a project. Project sub-tasks keep their own dates and properties and can appear in Focus Lists on their own. Checklist items take their scheduling from the checklist. See [Projects and Checklists](/docs/macos/projects-and-checklists.md). ## Hiding via Paused Tags[​](#paused-tags "Direct link to Hiding via Paused Tags") Tasks aren't paused individually. Instead, **any tag can be paused**, and when a tag is paused, every task carrying that tag is hidden from view. Add a tag like `on-hold` or `waiting`, pause that tag from the Tags panel, and a whole context steps out of your way without you editing each task. To pause a tag, Control-click it in the Tags panel and choose **Pause...**. For a tag that's already paused the same item reads **Resume...**, which brings its tasks back. To peek at paused tasks without resuming, use **Task > Show Paused**. For more, see [Tags](/docs/macos/tags.md#pause). ## Quick Look: Preview Without Opening[​](#quick-look "Direct link to Quick Look: Preview Without Opening") A task row only shows a single line of title and notes. To get a full preview of everything a task carries, press the **`Spacebar`** with the task selected (or use **Task > Quick Look**). Quick Look opens a floating preview panel over the window. The panel shows, top to bottom: * The **list name** in its list color, with a parent breadcrumb for sub-tasks and a matching accent rail. * The **title row**: task type glyph, sub-task count, repeating or scheduled state, and priority or star. * A **cover photo** banner if the task has a picture attachment. * A **completion bar** for projects and checklists (done in green, overdue in red). * **Notes**, rendered as Markdown. Links are detected and the text is selectable. * A prominent **action card** when the task has an action (Call, Message, Email, Visit, Browse, or Web Search). Click it to perform the action without leaving the preview. (The editor's action picker labels the Browse action **URL**.) * An **audio note**, with auto-play. * **Metadata rows**: start date, due date (with an overdue note), repeat summary, next alarm, and tags shown as read-only tokens. Rows are hidden when their value is unset. The panel also has a **Copy** button with the same menu as the [editor's Copy menu](#copy-menu), minus Copy Links from Notes. While Quick Look is showing: * **Up / Down arrow keys**: keep navigating the task list, with the panel updating live for each new selection. * **`Spacebar`** again, or **`⌘W`**: close. ## Keeping the Editor Manageable[​](#field-visibility "Direct link to Keeping the Editor Manageable") You do not need to fill every field. Start with the title, then add only the details that matter: dates, tags, alerts, location, recurrence, attachments, or an action. The editor stays inline with the selected task, so you can move through your list without losing context. ## Keyboard Shortcuts[​](#shortcuts "Direct link to Keyboard Shortcuts") ### In the Task List[​](#shortcuts-list "Direct link to In the Task List") | Shortcut | Action | | ---------- | ---------------------------------------------------------- | | `Return` | Edit selected task | | `⌘.` | Mark as Completed (**Task > Mark > As Completed**) | | `⌥⌘.` | Mark as Not Completed (**Task > Mark > As Not Completed**) | | `S` / `⌃S` | Star / Unstar | | `Esc` | End editing | | `0`–`3` | Set priority None / Low / Medium / High | | `D` | Open Defer menu | | `K` | Open Schedule menu | | `Spacebar` | Quick Look the selected task | ### While Editing a Task[​](#shortcuts-editing "Direct link to While Editing a Task") Set priority or the star without reaching for the mouse. These use Option-Command so they don't get in the way of typing: | Shortcut | Action | | -------- | --------------- | | `⌥⌘0` | Priority None | | `⌥⌘1` | Priority Low | | `⌥⌘2` | Priority Medium | | `⌥⌘3` | Priority High | | `⌥⌘S` | Toggle Starred | ### Jump to a Field[​](#shortcuts-fields "Direct link to Jump to a Field") While editing, jump straight to a field or open its picker. These are also listed under the editor top bar's **Shortcuts** button (the `⌘`-glyph menu), which leads with an **Edit Priority** submenu (None, Low, Medium, High, and Toggle Starred) before the jump-to-field items: | Shortcut | Field | | -------- | --------------- | | `⌘/` | Edit Dates | | `⌘E` | Edit Note | | `⌘R` | Edit Tags | | `⌘G` | Edit Location | | `⌘;` | Edit Recurrence | | `⌘'` | Edit Alerts | | `⌘B` | Edit Action | | `⌘L` | Edit List | tip Open a picker with its jump shortcut, then use `⌥1`–`⌥6` to drop in a preset (an alert offset, a recurrence rule, or an action type), all without leaving the keyboard. --- # Linking to Other Tasks Link related tasks from their notes, such as a meeting and its follow-ups. A link uses the format `@{Task Title}`. Click it to open that task in its list. ![The @{…} task-link picker open in a task's notes](https://downloads.2doapp.com/resources/img/2do-mac/linkothertask.png) ## Creating a Link[​](#creating "Direct link to Creating a Link") On the Mac, 2Do gives you a picker as you type: 1. In a task's notes, type **`@{`**. 2. A dropdown appears at the cursor. Leave it empty to see your **recent tasks**, or keep typing to filter by title. 3. Move the highlight with the **Up / Down arrows** and press **Return**, or **click** a result, to insert the link. Press **Escape** to dismiss without inserting. 2Do inserts the task's title wrapped in the link form `@{Task Title}`, as plain text in your note. ## Composing a Link by Hand, on Any Device[​](#by-hand "Direct link to Composing a Link by Hand, on Any Device") A task link isn't a hidden identifier. It is simply the task's **title** wrapped in `@{…}`, stored as ordinary text in the note. That has a useful consequence: you can **type a link by hand**, and you can do it on **any device**. Write `@{Weekly review}` into a note on your iPhone, and once that note syncs, 2Do on your Mac and iPad resolves it to your **Weekly review** task there too. There are no fragile IDs to copy around and nothing that only works on the device where you created the link. The link is portable, human-readable, and composable freehand anywhere 2Do runs. tip This makes task links great for planning on the go. Jot `Blocked by @{Order parts}` into a task's notes from your phone, and the link is already live by the time you sit down at your Mac. ## How Links Resolve[​](#resolving "Direct link to How Links Resolve") Clicking a task link focuses that task in its list. Because a link's identity is its **title**, 2Do resolves it on a best-effort basis: * It prefers an **exact title match**, then a **prefix match**, among the tasks currently visible. * If nothing matches there, it falls back to a **global title lookup** across your database, including **completed** tasks. * It never links a task to **itself**. note Since links match by title, **renaming** a task or having **two tasks with the same title** can send a link somewhere you didn't intend, or leave it unresolved, and 2Do gives a short beep when it can't find a match. Link detection is also suppressed inside URLs and file paths, so a web address or file path that happens to contain `@{` keeps its own meaning. tip Give tasks you link to **distinctive titles**. Since links resolve by title, a unique name like `@{Q3 launch retro}` always lands on the right task, while a generic one like `@{Follow up}` might not. ## Copy Embeddable Link[​](#copy-embeddable "Direct link to Copy Embeddable Link") You don't have to retype a title to link to a task. Open the task, and from the editor's [Copy menu](/docs/macos/task-editor.md#copy-menu) choose **Copy Embeddable Link**, which puts the task's `@{Title}` token on the clipboard, ready to paste into another task's notes. note **Copy Embeddable Link** is different from **Copy Shareable Link**, which copies a `twodo://` URL that opens the task from outside 2Do (from Shortcuts, another app, or a browser). Use the embeddable link *inside* 2Do notes; use the shareable link *elsewhere*. See [The Task Editor](/docs/macos/task-editor.md#copy-menu). ## Finding the Links in a Note[​](#finding "Direct link to Finding the Links in a Note") Task links are picked up by 2Do's [Link Discovery](/docs/macos/notes-and-markdown.md#link-discovery). Once a note contains at least one link, the **Open Links in Notes** chip appears in the editor; its menu groups your task links alongside any web and file links so you can jump to any of them in one place. ## Examples[​](#examples "Direct link to Examples") * Point a task at what's blocking it: `Blocked by @{Order parts} and @{Sign lease}`. * Connect a meeting to its follow-ups: `Discussed in @{Q3 planning meeting}`. * Leave a trail through a project: a parent task's notes can list `@{Draft copy}`, `@{Final screenshots}`, `@{Submit build}`. * Reference a recurring checklist: `Same steps as @{Weekly review}`. --- # Task Sections Use **Sections** to keep related tasks together in a list. A trip might have *Bookings*, *Packing*, and *At Home*; a grocery list might have *Fruit*, *Vegetables*, and *Pantry*. Sections are available in regular lists and the Inbox. ![Task Sections](https://downloads.2doapp.com/resources/img/2do-mac/sections-demo.png) Move sections up or down to arrange your list. The tasks within each section follow the list's sort, such as **Due Date** or **Priority**. ## How Sections Work[​](#how-sections-work "Direct link to How Sections Work") * Each section has a name and an optional description. Descriptions appear below the name on one line, with line breaks shown as spaces and long text cut off to fit. * A section can hold tasks, projects, and checklists. Sub-tasks stay with their project or checklist, and each task belongs to one section at a time. * Tasks that are not in a section stay at the top of the list, above the first section. * A list sorted by **Due Date** shows date groups such as *Today* and *Overdue* in every section. Sort the list **Manually** and you arrange the tasks in each section yourself. See [Sort Bar](/docs/macos/the-2do-window.md#sort-bar). * When completed tasks are visible, the *Done* group appears below the last section. Completed tasks, projects, and checklists go there; completed sub-tasks stay with their project or checklist. Items in *Done* still belong to their sections and return there when marked as not completed. Focus Lists such as *Today*, Smart Lists, and search results show tasks without sections. ## Adding a Section[​](#adding "Direct link to Adding a Section") Add a section to the list you are viewing in any of these ways: * Choose **File > New > New Section** (`⌃⌥⇧⌘N`). * Open the dropdown on the `+` button in the toolbar and choose **Add Section**. * Right-click any task and choose **Add Section**. * Click the **More** button (**⋯**) on a section title, or right-click the title, and choose **Add Section**. The new section follows the selected section or the section containing the selected task. Otherwise, it goes at the end of the list. Right-clicking a task selects it. The section starts empty, with *New Section* selected so you can type a name. To group existing tasks, see [Making a Section from Selected Tasks](#from-selection). ### Making a Section from Selected Tasks[​](#from-selection "Direct link to Making a Section from Selected Tasks") Select the tasks, right-click one of them, and choose **New > Section from Selected Tasks**. With one task selected, the command reads **Section from Selected Task**. 2Do creates the section, moves the tasks into it, and selects the name so you can type a new one. The command is available when only tasks from the current list are selected. See [Selecting Tasks](/docs/macos/multi-task-actions.md#selecting). ## Naming and Describing a Section[​](#naming "Direct link to Naming and Describing a Section") To rename a section, double-click its title, select the title and press `Return`, or choose **Rename Section** from the section's menu. The editor has two fields: * **Name**: a single line. * **Description**: as many lines as you need. Press `⇧Return` to start a new line. In the list, the description appears below the section title on one line. Press `Tab` to move between the fields. To save, press `Return` or `⌘Return`, or click elsewhere in the task list. Press `Esc` to close the editor without saving your changes. A new section exists as soon as you add it, so pressing `Esc` while naming one leaves it called *New Section*. ## Selecting and Collapsing Sections[​](#selecting "Direct link to Selecting and Collapsing Sections") Click a section title to select it. Use `⌘`-click or `⇧`-click to select several. To hide a section's tasks, click the arrow beside the section's name, or select the section title and press `←`. Click the arrow again, or press `→`, to show them. The arrow appears when you point at the title of a section that has tasks, and it stays visible while the section is collapsed. While you scroll through a section, its title stays pinned at the top of the list. When you move from one task's editor straight to the next, 2Do skips over the section titles in between. ## Moving Tasks In and Out of Sections[​](#moving-tasks "Direct link to Moving Tasks In and Out of Sections") * **Drag**: drop tasks on a section title, or among a section's tasks, to move them into that section. Hold `⌥` while you drop to put copies there instead. * **New tasks**: select a section title, or a task in a section, and press `⌘N`. The new task goes into that section. * **Paste**: select a section title and choose **Edit > Paste** (`⌘V`) to paste copied tasks into that section. With several section titles selected, the tasks go into the section that comes first in the list. * **Remove from Section**: select top-level tasks in a section, right-click one of them, and choose **Remove from Section**. They leave their section, and the unfinished ones move to the top of the list, above the first section. Moving a task into or out of a section keeps its dates, priority, and other details. If you move a sub-task into a section, it leaves its project and becomes a task in that section. ## Arranging Sections[​](#arranging "Direct link to Arranging Sections") Drag a section title up or down to change the order of sections. You can also select one or more section titles and press `⌃⌘↑` or `⌃⌘↓`, the same keys that move tasks in a list sorted **Manually**. Tasks without a section always stay above the first section. ## The Section Menu[​](#section-menu "Direct link to The Section Menu") Point at a section title and click the **More** button (**⋯**), or right-click the title, to see what you can do with the section: * **Rename Section** opens the name and description for editing. * **Duplicate Section** adds a copy right below the original, with a new copy of every task in it, including projects and checklists with their sub-tasks. Completed tasks and sub-tasks are copied too, and the copies start out unfinished. 2Do then selects the copy's name so you can change it. With a section title selected, `⌘D` does the same. * **Move Section…** lists your other lists, grouped by List Group. Choose one to move the section and all of its tasks to that list. You can also drag a section title onto a list in the sidebar. To change the section's place among that list's sections, open the list and [drag its title](#arranging) up or down. * **Convert to List** creates a new list from the section in the same List Group (or under **Lists** when the section is in the Inbox), moves all of its tasks, projects, and checklists into the new list, and removes the section. Any section description becomes the new list's notes. * **Delete Section** removes the section and keeps its tasks; the unfinished ones join the tasks at the top of the list. You can also select one or more section titles and press `⌫` or `⌘⌫`. * **Add Section** adds a new section right after this one. * **Auto-Name Section**, below a divider, names the section after its tasks. See [Auto-Name Section](#auto-name). Use **Edit > Undo** (`⌘Z`) to undo section changes, including deletion. ### Copying Sections to Another List[​](#copy-paste "Direct link to Copying Sections to Another List") Select one or more section titles and choose **Edit > Copy** (`⌘C`). Open another list, select a section title there if you want the copies to follow that section, and choose **Edit > Paste** (`⌘V`). Pasting a section also copies its tasks. You can copy sections out of a read-only list, but not change them there. ## Organizing a List with Apple Intelligence[​](#apple-intelligence "Direct link to Organizing a List with Apple Intelligence") Use Apple Intelligence to organize tasks into sections or name a section you've already created. ### Auto-Create Sections[​](#auto-create "Direct link to Auto-Create Sections") [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-mac/videos/autosection-tasks_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-mac/videos/autosection-tasks_poster.png) **Auto-Create Sections** organizes unfinished tasks by their titles. It prefers an existing section when the name fits the tasks, and creates a new section when none fits. For example, new grocery tasks can join your *Fruit* and *Vegetables* sections, with a new *Pantry* section added if needed. Choose which tasks to organize: * **Selected tasks**: open a regular list or the Inbox, [select the tasks](/docs/macos/multi-task-actions.md#selecting), right-click one of them, and choose **Auto-Create Sections**. You can also choose **Task > Auto-Create Sections**. * **All unsectioned tasks in a list**: right-click the list name in the sidebar and choose **Auto-Create Sections**. The first time, 2Do explains what the command does. Click **OK** to continue. A progress sheet appears; click **Cancel** to stop without making changes. Select **Do not show this message again** to skip this prompt next time. To restore it, click **Clear** next to **Confirmation warnings** in [Settings > General](/docs/macos/settings.md#counts-warnings). What changes: * With selected tasks, only the unfinished tasks in that selection are organized. They can already belong to sections. Other tasks stay where they are. * With the List command, all unfinished top-level tasks, projects, and checklists without a section are included, even those hidden from view. Tasks already in sections stay where they are. * Existing section names, descriptions, and order stay unchanged. New sections appear after the existing ones, with names in the language of your task titles. * A selected project or checklist keeps its sub-tasks. If you select a sub-task without its parent, it leaves the parent and becomes a top-level task in its assigned section. Completed tasks are skipped, though completed sub-tasks still move with a selected parent. Tasks are organized only when you run the command. You can run it again to place new tasks in suitable sections. To reverse the result, choose **Edit > Undo** (`⌘Z`). One undo puts the tasks back where they were and removes any sections the command added. ### Auto-Name Section[​](#auto-name "Direct link to Auto-Name Section") **Auto-Name Section** gives a section a short name based on the titles of its tasks. Click the **More** button (**⋯**) on the section title, or right-click it, and choose **Auto-Name Section**. The section is renamed immediately; its description and tasks are unchanged. 2Do uses the titles of its top-level tasks, projects, and checklists, including completed or hidden items. To go back to the old name, choose **Edit > Undo** (`⌘Z`), or rename the section yourself. An empty section can't be named this way. ### What Apple Intelligence Reads[​](#on-device "Direct link to What Apple Intelligence Reads") **Auto-Create Sections** reads the titles of the tasks it organizes and the names of existing sections. A selected project or checklist contributes its own title; a sub-task contributes its title only when selected without its parent. **Auto-Name Section** reads the titles of the section's top-level tasks, projects, and checklists. Neither command reads notes, dates, tags, or attachments. Apple Intelligence does the work on your Mac, and there is no account to create. If the tasks being organized or the available sections change while 2Do is working, it stops without applying the result and asks you to try again. When organizing a selection, changes to unrelated tasks do not stop the command. ### What You Need[​](#requirements "Direct link to What You Need") The list must allow editing. These commands cannot change a read-only shared list or a read-only list from a sync service. The two commands need a Mac that supports Apple Intelligence, running macOS 26 or later, with Apple Intelligence turned on in **System Settings > Apple Intelligence & Siri**. * On a Mac that cannot run Apple Intelligence, the commands are not shown. * If Apple Intelligence is turned off or still downloading, 2Do explains what to do when you choose a command. * If Apple Intelligence doesn't support your language yet, 2Do says so and changes nothing. ## Printing Sections[​](#printing "Direct link to Printing Sections") Choose **File > Print...** (`⌘P`) to open the print preview. **Include Sections** is on by default. Each section prints with its title, description, and sort groups, in the order shown in your list. Turn it off to print one sorted list without section titles or descriptions. See [Printing](/docs/macos/getting-started.md#printing). ## Sections and Sync[​](#sync "Direct link to Sections and Sync") In an [iCloud shared list](/docs/macos/icloud-list-sharing.md#shared-content), section names, order, and task membership are shared with everyone. Moving a task to another section changes the shared organization. Each person can still choose a different personal list sort or Focus filter. View-only members cannot rearrange the shared work. * [iCloud](/docs/macos/sync-with-icloud.md) and [Dropbox](/docs/macos/sync-with-dropbox.md) sync sections between your Mac, iPhone, and iPad, with their names, descriptions, order, and tasks. * [Todoist](/docs/macos/sync-with-todoist.md) syncs them as Todoist sections: the name, the order, and which tasks belong to each. Descriptions are not synced with Todoist. * With other sync methods, sections are not synced. Your tasks still sync, and your other devices show them without sections. ## Sections from Things[​](#things "Direct link to Sections from Things") When you [import from Things](/docs/macos/import-and-export.md#things), Things headings become sections in 2Do, in the same order. The to-dos under a heading go into its section, and empty headings come across too. ## On iPhone and iPad[​](#ios "Direct link to On iPhone and iPad") For touch controls and other iPhone and iPad features, see [Task Sections for iPhone and iPad](/docs/ios/task-sections.md). --- # The 2Do Window The main window has panels for your lists, tasks, and tags or locations. The toolbar and Sort Bar provide controls for adding, finding, and organizing tasks. ![Anatomy of the 2Do window](https://downloads.2doapp.com/resources/img/2do-mac/mainhero.png) ## Lists Panel (Left)[​](#lists-panel "Direct link to Lists Panel (Left)") The left sidebar contains your **Focus Lists** near the top (*All*, *Today*, *Starred*, *Scheduled*, and *Done*) and your real **Lists** and **List Groups** below them. If you've turned on the optional **Inbox**, it sits in its own group above the Focus Lists, and unlike them it is a real list. Lists that contain projects or checklists can expand to reveal them right in the panel, including ones the task list is currently hiding as [paused](/docs/macos/tags.md#pause) or scheduled; paused ones appear slightly dimmed (see [Lists and List Groups](/docs/macos/lists-and-list-groups.md#disclosure)). The bottom of the panel has a `[+]` button for creating new lists and list groups. To create a task directly in a list, use the small `[+]` on that list row or the main new-task button in the toolbar. ### Collapsing the Panel[​](#collapse-lists "Direct link to Collapsing the Panel") The Lists Panel is **collapsible**. Toggle it with **View > Show Lists / Hide Lists** (the menu title flips to match the current state), or click the **Toggle List Panel** button, the sidebar icon in the window header. The panel also **auto-collapses when the window gets narrow** and slides back into view when there's room again. A manual hide is sticky: once you hide it yourself, it stays hidden until you show it. Panel visibility is tracked per window, so each of your [Multiple Windows](/docs/macos/multiple-windows.md) can show or hide it independently. ### Live Counters on List Rows[​](#list-counters "Direct link to Live Counters on List Rows") Each list row can show a **live counter** on its trailing edge: an animated number wheel whose digits roll as the count changes. Choose what it counts in **2Do > Settings > Today & Lists**, under **Counts on lists**: * **None**: no counters. * **Overdue items**: counts only overdue tasks. * **Overdue + Undone**: counts overdue plus remaining not-done tasks (the default). Counts above 999 display as **999+**. ### Due-Today and Overdue Dots[​](#list-dots "Direct link to Due-Today and Overdue Dots") A single small **glowing dot** can appear on the **leading edge** of a list's name, flagging tasks tucked inside it: * A **white dot** means the list has a task **due today** hiding inside. * A **red dot** means the list has an **overdue** task hiding inside. Overdue wins when both are true. The dot never appears on the *All*, *Done*, or *Scheduled* rows. It's an at-a-glance way to spot which lists need attention without opening each one; handy when a list is collapsed inside a List Group or its tasks are filtered out of your current view. (A **lock icon** on a list instead marks a [password-protected](/docs/macos/password-protection.md) list.) For details on lists, see [Lists and List Groups](/docs/macos/lists-and-list-groups.md). ## Task List (Centre)[​](#task-list "Direct link to Task List (Centre)") The middle of the window shows the tasks belonging to whichever list (or Focus List, Smart List, or project) is selected on the left. Tasks can be sorted by a wide range of fields: **Status, Priority, To-do List, Start Date, Due Date, Creation, Modified, Note, Title, Tag, Location, Duration**, and **Manually** (drag tasks into your own order). Manual order in the Focus Lists syncs only with [iCloud](/docs/macos/sync-with-icloud.md). **Due Date** orders by due date and then due time; a task with no due time sorts at the end of its day, and alert times play no part. See [Just a Due Date](/docs/macos/dates-and-durations.md#just-due). Sort orders are set from the [Sort Bar's](#sort-bar) sort menu, and each list remembers its own. Two lists offer a different set: * The **Done** list sorts by **Priority, To-do List, Modified, Completion, Note**, or **Title**. *Completion* orders tasks by when you finished them, and it's the one place that sort is available. * **Smart Lists** offer everything except **Manually**. A Smart List is a live search rather than a container, so there's no fixed order to drag tasks into. Sorting by **To-do List** groups tasks under one section per list, in the order your lists and List Groups appear in the Lists Panel. To sort those sections alphabetically instead, turn off **Sorting by list uses your list order** in [Settings](/docs/macos/settings.md#sorting). ### One Section, or Many[​](#separated "Direct link to One Section, or Many") By default a sorted list breaks into **section headers**: by due date, priority, tag, and so on. The bottom of the sort menu has a **Separated** switch that turns this off: uncheck it and the headers disappear, leaving every task under a single *All Tasks in \* heading. It's a per-list choice, so you can keep a busy project grouped by date while a short errands list stays ungrouped. The first column of every task row is a checkbox. Click it to mark complete. The right edge of the row shows badges (alarm, priority, tags, action) plus expand/collapse arrows for projects and checklists. ### Collapsing Sort Groups[​](#collapse-sections "Direct link to Collapsing Sort Groups") When a list is sorted, its tasks group under **section headers**: by due date, priority, tag, and so on. Sections can be collapsed and expanded, and 2Do **remembers each section's state**. To fold or unfold everything in one move, **`⌘`-click (Command-click) a section header to collapse or expand *all* sections at once**. ### Named Sections[​](#task-sections "Direct link to Named Sections") Besides the headers a sort creates, you can divide a list into sections you name yourself, such as *Bookings*, *Packing*, and *At Home*. The sort still applies inside each of these sections, so each one has its own date or priority groups beneath its title. See [Task Sections](/docs/macos/task-sections.md). ### Duration Totals[​](#section-durations "Direct link to Duration Totals") When tasks in a section have durations, the section header shows their total next to its title, such as *2h 45m*. When a list is sorted by **Duration**, headers that already name a duration show no total. See [Duration Totals](/docs/macos/dates-and-durations.md#duration-totals). ### Section Heat Bars[​](#heat-bars "Direct link to Section Heat Bars") Whenever the view has **more than one section**, a slim column of **heat bars** appears along the task list's right edge: one small horizontal bar per section. **Click a bar (or drag along the rail) to jump straight to that section**, without scrolling, and rest the pointer on a bar to see the **section's title** in a tooltip. With a single section, the rail is hidden. For the sections a sort creates, such as *Today* or *Overdue*, each bar's **length reflects how many tasks the section holds**, and the tooltip shows that number beside the title, so you can see which sections hold the most tasks. A bar for one of your [named sections](#task-sections) works the same way for jumping, but its length and the number in its tooltip don't show how many tasks the section holds. ### Action Button[​](#action-button "Direct link to Action Button") If a task has an attached [Action](/docs/macos/actions.md), an action icon appears at the far right of the row. It's an indicator rather than a button: to run the action (call, message, navigate, search, or open a URL) choose **Task > Perform Action** (bare `P`), right-click the task → **Perform Action**, or click the action icon in the task editor's hint bar. ### Opening a Task in Its List or Project[​](#reveal-commands "Direct link to Opening a Task in Its List or Project") Use these commands in a task’s right-click menu to open its list or parent project: * **Open in List...**: you're in *Today*, a Smart List, or a search result and want the task in context. This switches to the list the task actually belongs to and selects it there, with everything around it. * **Goto Project...**: the selected item is a sub-task, and this takes you to its parent project or checklist. ### Attaching a File from the Menu[​](#link-file "Direct link to Attaching a File from the Menu") Alongside dragging files onto a task, the right-click menu has **Link file...**, which opens a file picker and adds the chosen file to the task's notes as a clickable link. Same result as a drag, useful when the file is easier to find in a dialog than in the Finder. ### Drop Files, Photos, and Mail onto Tasks[​](#task-list-drops "Direct link to Drop Files, Photos, and Mail onto Tasks") The Task List accepts drops from other apps, and where you drop decides what happens: * **Drop files onto a task row** to link them into that task's notes. Each file appears as a clickable link. Drop a **photo** and it becomes the task's picture [attachment](/docs/macos/task-editor.md#attachment) instead (a task carries one picture, so the first image wins). * **Drop files on the empty space below the tasks** to create a **new task**, named after the first file, with the same treatment: an image becomes the attachment, everything else becomes note links. Inside [Project View](#project-view), the new task is created as a sub-task of that project. * **Drop a Mail message onto a task** and it becomes the task's **action**: one click reopens the email in Mail. If the task already has an action, the message's subject and link are added to the notes instead. Drop the message on empty space and 2Do creates a new task titled with the subject, with the message as its action. This is what travels between your devices: * **File links stay on this Mac.** They point at files on your disk, so they aren't reachable from your other devices. * **Picture and audio attachments sync** on services that support attachments (see [what each sync method carries](/docs/macos/sync.md#what-syncs)); on other services they stay on this Mac. * Because 2Do is sandboxed, access to linked files is stored as macOS security-scoped permissions. After moving to a new Mac, reinstalling 2Do, or restoring a database, 2Do may ask you to grant access to a linked file again. ## Utility Panel (Right)[​](#utility-panel "Direct link to Utility Panel (Right)") The right panel is contextual. Two buttons at the top switch between: * **Tags**: all your tags and tag groups, with counts. Click a tag's icon to filter the Task List. See [Tags](/docs/macos/tags.md#tags-panel). * **Locations**: a map and a list of tasks with locations. See [Nearby and Locations](/docs/macos/nearby-locations.md). Drag and drop works in both directions here. Drag a **tag onto a task** to apply it, or drag a **selection of tasks onto a tag** to tag them all at once (drop them onto a **tag group** and every tag inside is applied). The Locations panel works the same way: drag a location onto a task, or tasks onto a location. note Calendar events aren't a tab in the Utility Panel on Mac. Instead, 2Do shows your upcoming **Calendar events above the task list**: above Today by default, or across your lists if you prefer. See [Calendar Events in Lists](/docs/macos/calendar-integration.md). [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-mac/videos/utilitypanel_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-mac/videos/utilitypanel_poster.png) ## Toolbar[​](#toolbar "Direct link to Toolbar") The strip along the top of the window is the window header. The controls you'll reach for most: * **Toggle List Panel**: a **sidebar button** at the leading (left) edge shows or hides the [Lists Panel](#collapse-lists) for a focused, single-pane view. * **New (`+`)**: click the `+` button for a **New Task**, or use its dropdown for a **New Project**, **New Checklist**, or **New Sub-Task** (shortcuts `⌘N`, `⌥⌘N`, `⌃⌘N`, `⌃⌥N`). The small `[+]` on a list row does the same, aimed at that specific list. The toolbar dropdown also has **Add Section** (`⌃⌥⇧⌘N`), which adds a [section](/docs/macos/task-sections.md) to the list you are viewing. * **Search**: a **search field** sits in the header at all times. `⌘F` (**Edit > Find > Find…**) moves focus into it; see the [Global Search Bar](/docs/macos/search-and-jump-bars.md#global-search). * **Toggle Tags Panel**: a button at the trailing (right) edge shows or hides the [Utility Panel](#utility-panel) (Tags / Locations). The same toggle is in the menu bar as **View > Show Tags / Hide Tags**. * **Sync**: triggers a manual [sync](/docs/macos/sync.md) and shows the last-sync status. Just below the toolbar sits the [Sort Bar](#sort-bar), which handles sorting, revealing hidden tasks, and the [Focus Filter](/docs/macos/focus-filter.md). ### Task, Project, Checklist, or Sub-Task?[​](#new-item-types "Direct link to Task, Project, Checklist, or Sub-Task?") The **New** button creates four kinds of item, and choosing the right one matters: * **Task**: a single standalone item. It can carry its own dates, alerts, tags, notes, and an action. Adding a sub-task turns it into a project. * **Project**: a container for related work where **each sub-task keeps its own** due date, start date, alerts, and tags, and appears individually in your Focus Lists. Reach for a project when every step needs its own schedule. * **Checklist**: a lighter container for items that only matter together (a packing list, a recipe). A checklist's items are deliberately simple: **they do *not* have their own due or start dates** (they inherit scheduling from the checklist), though they can still carry tags; the whole checklist behaves as a single item in your Focus Lists. Reach for a checklist when the steps just need ticking off together. * **Sub-Task**: an item nested inside a project or checklist. For the full breakdown, see [Projects and Checklists](/docs/macos/projects-and-checklists.md). ## Mini Calendar (below the Lists Panel)[​](#mini-calendar "Direct link to Mini Calendar (below the Lists Panel)") A compact month calendar lives **just below the Lists Panel** on the left side of the window, and scrolls from one month to the next. It does more than display the date: * **Busy days**: every date with a task starting or due is marked. **Heat Map** (the default) tints the date, deepening through ten steps as the number of tasks rises; **Dots** puts small dots under it instead; **None** turns the markers off. Set the style under **Settings > Appearance > Mini Calendar**. Future occurrences of **repeating tasks** are marked too, so a glance at the calendar shows you what's coming. * **Click** any day to filter the Task List to tasks due on that day. Click the day again to clear the filter. * **Click and drag** across a range of days to filter to a date range, perfect for "what's due this week?" * **Drag a task onto a date** in the mini calendar to **defer** it to that date. The task's due date updates automatically. A hidden calendar appears while you drag, and holding the task over the top or bottom row of weeks moves to the previous or next month, one month per pause. * **Hold `⌥` (Option) and click** any date to create a **new task** with that day as its due date. So the mini calendar handles browsing dates, filtering, deferring, and creating tasks, all without leaving the main window. [Learn more](/docs/macos/mini-calendar.md). ## The Sort Bar[​](#sort-bar "Direct link to The Sort Bar") Just below the toolbar sits the **Sort Bar**, a single strip holding several controls: * **Left**: the **name of the currently selected list**. **Click the list name to open the [List Jump Bar](/docs/macos/search-and-jump-bars.md#list-jump-bar)** and type part of any list, project, or checklist name to jump straight to it (the same bar you get from **View > List Jump Bar...** or the bare `J` key). When you click into a project or its sub-task, a small **briefcase button** appears here too, toggling [Project View](#project-view). * **Right: Selection summary.** When two or more tasks are selected, the Sort Bar shows how many, followed by their total duration when they have one, such as *3 tasks selected · 1h 45m*. In a narrow window it is hidden so the other controls stay visible. * **Right: Reveal hidden tasks.** Some tasks are hidden from the list on purpose: those with a **future start date** (held back by [Smart Scheduling](/docs/macos/focus-lists.md#smart-scheduling)), and those carrying a **[paused tag](/docs/macos/tags.md)**. When a list is hiding tasks like these, a small **visibility toggle appears here**; flip it to show them alongside everything else, then flip it back. (The same reveal is on the **Task** menu: **Show Scheduled** `⌘K`, **Show Paused** `⌘U`, and **Show Scheduled & Paused** `⇧⌘K` for both at once.) * **Hide Completed** (`⌘O`), on the **Task** menu, temporarily suppresses completed tasks everywhere, ignoring whatever **Show completed tasks for** is set to under [Settings > Tasks](/docs/macos/settings.md#completed-tasks). The menu title flips to **Show Completed** while it's on; choose it again to go back to your normal setting. It's a quick way to hide completed tasks mid-session without changing a preference. * **Right: Sort method and direction.** A dropdown picks the sort method (the full range listed under [Task List](#task-list) above), and a small arrow next to it flips between ascending and descending order. * **Right: Focus Filter.** A two-part control: a single button toggles the focus filter on or off, and the dropdown alongside it picks which conditions to combine. Each list remembers its own focus settings. The Focus Filter dropdown lets you tick more than one built-in condition at a time. Conditions are **combined with "or"**, so ticking *High Priority* and *This Week* shows everything that is high priority **plus** everything due this week, not only the tasks that are both. From then on, a single click on the Focus button switches between your full task list and the focused subset. [Your browser does not support playing the embedded video](https://downloads.2doapp.com/resources/img/2do-mac/videos/2dofocushighpro_web.webm) ![](https://downloads.2doapp.com/resources/img/2do-mac/videos/2dofocushighpro_poster.png) ## Project View[​](#project-view "Direct link to Project View") When you select a **project** or one of its sub-tasks, a small **briefcase button** appears next to the list name in the Sort Bar. Click it (or press `⌥⌘J`, **Task > Toggle Project View**) to enter **Project View**: the rest of the list collapses away and you see **only that project and its sub-tasks**, so you can work on one plan without the rest of the list in view. Click the list name again (or press `⌥⌘J`) to step back out to the full list. By default your active search, or the rule of the Smart List you opened the project from, still applies inside Project View. If you'd rather always see every sub-task, turn off **Inherit Search** in **2Do > Settings > Today & Lists**. See [Inherit Search in Project View](/docs/macos/smart-lists.md#inherit-search). ![A single project shown on its own in Project View](https://downloads.2doapp.com/resources/img/2do-mac/projectview.png) ## Search and Jump Bars[​](#search-bars "Direct link to Search and Jump Bars") 2Do has four search and navigation bars: one in the toolbar and three that open with single-key shortcuts. * **Global Search Bar** (`⌘F`): filter the task list with Smart Filter syntax and save the filter as a Smart List. * **Task Find Bar** (bare `F`): jump the selection to a task by title within the current list, without filtering. * **List Jump Bar** (bare `J`): jump to a list in the Lists Panel by name. * **Tag Search Bar** (bare `/`): find a tag in the Tags panel by name. See [Search and Jump Bars](/docs/macos/search-and-jump-bars.md) for how to use each one. There's also **[Quick Open](/docs/macos/quick-open.md)** (`⇧⌘O`), a Spotlight-style overlay that jumps to any task *or* list across the whole app, rather than searching within one area. ## Jump Back to a Recent Task[​](#last-selected "Direct link to Jump Back to a Recent Task") **View > Show Last Selected Task** (`⇧F5`) walks you **backward through the tasks you've recently selected**. Press it once to return to the previously selected task; press it again to step further back through your history. 2Do **switches lists automatically** as it goes: if an earlier task lives in another list or inside a focused project, it takes you there and reveals it, even past an active focus filter or search. Keep pressing to keep going back; it wraps around once it reaches the oldest remembered task. ## Window States[​](#window-states "Direct link to Window States") * **Full Screen**: `⌃⌘F` toggles full screen. * **Multiple Windows**: open additional windows of 2Do via **File > New Window** (`⌃⌥⌘N`), useful for keeping a reference list visible while you work in another. Each window keeps its own list selection, task selection, search, and layout. See [Multiple Windows](/docs/macos/multiple-windows.md). ## Text Size[​](#text-size "Direct link to Text Size") Task text scales through nine named steps, from **Tiny** up through Small, Normal, Big, Large, Larger, Huge, Massive, and **Giant**. Pick one directly from **View > Font Size**, or step through them with `⌘=` and `⌘-`. The same scale is on the **Text Size** slider under **Settings > Appearance**, so use whichever you reach for first. ## Customizing the Window[​](#customizing "Direct link to Customizing the Window") Most layout details live in [Settings](/docs/macos/settings.md): * Content width, under **Settings > Appearance** (text size is covered [above](#text-size)). * Separate Light and Dark themes that follow your Mac's system appearance (assign the same theme to both slots for one constant look), under **Settings > Appearance**. * Whether completed tasks stay visible, and for how long, under **Settings > Tasks**. * Whether Today includes overdue, starred, or "Still Working On" tasks, under **Settings > Today & Lists**. * Whether Focus Lists show matching sub-tasks separately, under **Settings > Today & Lists**. --- # URL Schemes 2Do for Mac registers the `twodo://` URL scheme. Any app that can open a URL (Shortcuts, scripts, browsers, launchers, text expanders, and other automation tools) can use it to send commands to 2Do. The public URL scheme is for user automation. It does not include sign-in, sync authorization, or other account callback URLs. ## Base Format[​](#base "Direct link to Base Format") Most actions use the x-callback-url format: ``` twodo://x-callback-url/?=&= ``` Action names are case-insensitive, so `showtoday`, `showToday`, and `ShowToday` all reach the same action. ## URL Encode Your Values[​](#url-encoding "Direct link to URL Encode Your Values") URL parameters must be encoded before you put them into a URL. This matters for spaces, commas, ampersands, line breaks, and symbols. | Text | Encoded | | ------------------------------------ | ------------------------- | | `Buy milk` | `Buy%20milk` | | `Work & Home` | `Work%20%26%20Home` | | `finance,admin` | `finance%2Cadmin` | | `Line one` + line break + `Line two` | `Line%20one%0ALine%20two` | In Shortcuts, use the **URL Encode** action before **Open URL**. In JavaScript: ``` encodeURIComponent('Call Sam & book flights'); // Call%20Sam%20%26%20book%20flights ``` From Terminal: ``` python3 -c 'import urllib.parse,sys; print(urllib.parse.quote(sys.argv[1]))' 'Call Sam & book flights' ``` tip Encode only the parameter value, not the whole URL. For example, encode `Call Sam & book flights`, then place the result after `task=`. ## Quick Examples[​](#examples "Direct link to Quick Examples") Create a task in the Inbox: ``` twodo://x-callback-url/add?task=Buy%20milk&forlist=Inbox ``` Create a task with a note, due date, due time, tags, and a priority: ``` twodo://x-callback-url/add?task=Submit%20expenses¬e=Attach%20receipts&forlist=Work&due=2026-05-08&duetime=17:00&tags=finance%2Cadmin&priority=2 ``` Create a checklist from multiple lines: ``` twodo://x-callback-url/add?task=Trip%20prep&type=2&subtasks=Book%20flights%0AReserve%20hotel%0APack%20passport ``` Open the Today Focus List: ``` twodo://x-callback-url/showtoday ``` Search for tasks containing `invoice`: ``` twodo://x-callback-url/search?text=invoice ``` ## Public Actions[​](#actions "Direct link to Public Actions") These are the public x-callback-url actions that are useful for user automation in 2Do for Mac. | Action | Purpose | | --------------- | --------------------------------------- | | `add` | Create a task, project, or checklist. | | `addnewtask` | Open the new-task interface. | | `paste` | Create tasks from plain text. | | `search` | Search tasks. | | `showall` | Open the All Focus List. | | `showtoday` | Open the Today Focus List. | | `showstarred` | Open the Starred Focus List. | | `showscheduled` | Open the Scheduled Focus List. | | `showlist` | Open a list by name. | | `showtask` | Open a task by UID. | | `completetasks` | Mark one or more tasks complete by UID. | | `gettaskid` | Find a project UID by title and list. | | `launch` | Bring 2Do to the front. | ## Creating Tasks with `add`[​](#add "Direct link to add") Use `add` when you want a URL to create a task directly. ``` twodo://x-callback-url/add?task=Call%20Sam&forlist=Work ``` ### Basic Parameters[​](#add-basic "Direct link to Basic Parameters") | Parameter | Description | | ----------------- | -------------------------------------------------------------------------------------------- | | `task` | Task title. If omitted, 2Do uses `New Task`. | | `note` | Notes for the task. | | `forlist` | Destination list name. If omitted, 2Do uses the default or last-used list. | | `forparentname` | Parent project or checklist title. Use this with `forlist` so 2Do can find the right parent. | | `forparenttask` | Parent project or checklist UID. Use this when your automation already knows the parent UID. | | `type` | `0` for a regular task, `1` for a project, `2` for a checklist. | | `ignoredefaults` | `1` tells 2Do not to apply default list/date/alert settings while creating the task. | | `edit` | `1` creates the task, then opens it for editing. | | `usequickentry` | `1` opens Quick Entry with the provided details instead of saving the task immediately. | | `saveinclipboard` | `1` copies the new task UID to the clipboard after the task is created. | note Use `addnewtask` when you only want to open the new-task interface. Use `add?usequickentry=1` when you want Quick Entry pre-filled with URL parameters. ### Dates, Times, and Repeat[​](#add-dates "Direct link to Dates, Times, and Repeat") | Parameter | Description | | --------- | ------------------------------------------------------------------------------------------------------------------------------------- | | `due` | Due date. Use `yyyy-MM-dd`, a supported date phrase such as `tomorrow`, or a number of days from today (`0` = today, `1` = tomorrow). | | `duetime` | Due time, such as `17:00` or `5pm`. This is applied when a due date is supplied. | | `start` | Start date/time. Use `yyyy-MM-dd HH:mm` or a number of days from today. | | `repeat` | Repeat preset: `1` daily, `2` weekly, `3` every two weeks, `4` monthly. A due date or start date is required. | Examples: ``` twodo://x-callback-url/add?task=Pay%20rent&due=2026-06-01&duetime=09:00&repeat=4 ``` ``` twodo://x-callback-url/add?task=Review%20agenda&start=2026-05-08%2009:00 ``` ### Organization and Details[​](#add-details "Direct link to Organization and Details") | Parameter | Description | | ----------- | ------------------------------------------------------------------------------------------------------------------ | | `tags` | Comma-separated tag names. Existing tags are reused, and new tags can be created. | | `locations` | Comma-separated location names. 2Do matches existing locations. | | `subtasks` | Newline-separated sub-task titles. If the parent is a regular task, it becomes a checklist. | | `priority` | `0` none, `1` low, `2` medium, `3` high. | | `starred` | `1`, `true`, or `yes` stars the task. | | `action` | Adds an Action. Use `call:`, `message:` (or `mail:`), `url:`, `visit:`, or `google:` followed by the target value. | | `picture` | Base64-encoded image data. | | `audio` | Base64-encoded audio data. | Action examples: ``` twodo://x-callback-url/add?task=Call%20Alex&action=call%3A%2B15551234567 ``` ``` twodo://x-callback-url/add?task=Open%20project%20brief&action=url%3Ahttps%3A%2F%2Fexample.com%2Fbrief ``` ### Shortcut and App Links[​](#shortcut-actions "Direct link to Shortcut and App Links") The `url:` task action accepts app links as well as web addresses. The receiving app must be installed and support the link you supply. For an Apple shortcut named **Open Project**, the action value before encoding is: ``` url:shortcuts://run-shortcut?name=Open%20Project ``` Encode that entire value as the `action` parameter of the outer 2Do URL: ``` twodo://x-callback-url/add?task=Open%20Project&action=url%3Ashortcuts%3A%2F%2Frun-shortcut%3Fname%3DOpen%2520Project ``` The `%2520` is intentional: the inner `%20` must survive decoding the outer URL. Encode the shortcut name first, then encode the complete action value. This also preserves names containing `&`, `+`, or `%`. Opening this 2Do URL creates a task; it does not run the shortcut. Perform the task's action to run it. The shortcut must already exist with that name on the Mac. This example supplies no input. For setup in the task editor, see [Opening Apps and Running Shortcuts](/docs/macos/actions.md#shortcuts). ### Clipboard Values[​](#clipboard "Direct link to Clipboard Values") For automation shortcuts, these parameters can use `(clipboard)` as their value: | Parameter | Clipboard behavior | | ----------- | ---------------------------------------------------------- | | `task` | Uses the clipboard as the task title. | | `note` | Uses the clipboard as the notes body. | | `tags` | Uses the clipboard as the comma-separated tag list. | | `locations` | Uses the clipboard as the comma-separated location list. | | `subtasks` | Uses the clipboard as the newline-separated sub-task list. | Example: ``` twodo://x-callback-url/add?task=(clipboard)&forlist=Inbox ``` ## Opening Lists and Focus Lists[​](#opening-lists "Direct link to Opening Lists and Focus Lists") Open a normal list by name: ``` twodo://x-callback-url/showlist?name=Work ``` Open built-in Focus Lists: ``` twodo://x-callback-url/showall twodo://x-callback-url/showtoday twodo://x-callback-url/showstarred twodo://x-callback-url/showscheduled ``` tip There is no separate `showinbox` action. Use `showlist?name=Inbox` if your Inbox list is named Inbox. Note that `showlist?name=` matches the list name **case-sensitively**, unlike `add?forlist=`. ## Searching[​](#search "Direct link to Searching") Use `search` with the `text` parameter: ``` twodo://x-callback-url/search?text=invoice ``` (`(clipboard)` substitution works only on the `add` parameters listed above, because `search?text=` takes the literal text you pass it.) ## Pasting Multiple Tasks[​](#paste "Direct link to Pasting Multiple Tasks") Use `paste` when you already have a block of plain text and want 2Do to create tasks from it. 2Do treats non-empty lines as separate tasks. | Parameter | Description | | ----------- | -------------------------------------------------- | | `text` | Plain text to paste. Use `%0A` for line breaks. | | `forlist` | Optional destination list name. | | `inproject` | Optional project/checklist title inside `forlist`. | Create three Inbox tasks: ``` twodo://x-callback-url/paste?forlist=Inbox&text=Buy%20milk%0ACall%20Sam%0ABook%20flights ``` Paste into a project: ``` twodo://x-callback-url/paste?forlist=Work&inproject=Website%20Launch&text=Write%20copy%0AReview%20screenshots ``` ## Opening a Task by UID[​](#showtask "Direct link to Opening a Task by UID") Use `showtask` when your automation already knows the task UID: ``` twodo://x-callback-url/showtask?uid= ``` The easiest way to get a newly created task UID is to call `add` with `saveinclipboard=1` or with an `x-success` callback. ## Completing Tasks by UID[​](#completetasks "Direct link to Completing Tasks by UID") 2Do for Mac supports marking one or more tasks complete by UID: ``` twodo://x-callback-url/completetasks?uids=, ``` Use commas between multiple UIDs. note 2Do iOS does not include the `completetasks` URL action. Use this action only in Mac-specific workflows. ## Looking Up a Project UID[​](#gettaskid "Direct link to Looking Up a Project UID") Use `gettaskid` to find a project or checklist by title inside a list. ``` twodo://x-callback-url/gettaskid?task=Website%20Launch&forlist=Work ``` | Parameter | Description | | ----------------- | ----------------------------------------------- | | `task` | Project or checklist title. | | `forlist` | List name containing that project or checklist. | | `saveinclipboard` | `1` copies the found UID to the clipboard. | On success, the callback receives a `uid` parameter. ## x-callback-url Callbacks[​](#callbacks "Direct link to x-callback-url Callbacks") Every action can use the standard x-callback-url parameters: | Parameter | Description | | ----------- | --------------------------------------- | | `x-success` | URL to open after success. | | `x-error` | URL to open after an error. | | `x-cancel` | URL to open if the action is cancelled. | | `x-source` | Optional calling app name. | The `add` action returns the new task UID in an `add` parameter: ``` twodo://x-callback-url/add?task=Draft%20proposal&x-success=shortcuts%3A%2F%2Fx-callback-url%2Frun-shortcut%3Fname%3DTask%2520Created ``` The `gettaskid` action returns the found project/checklist UID in a `uid` parameter. ## Not Available as Public Actions[​](#not-available "Direct link to Not Available as Public Actions") For clarity, these are not public automation endpoints: | Endpoint | Use this instead | | -------------------------- | ---------------------------------------------------------------------------------------------------- | | `quickEntry` | Use `addnewtask`, or `add?usequickentry=1` on Mac. | | `showinbox` | Use `showlist?name=Inbox`. | | Sync sign-in callback URLs | These are handled internally during account authorization and are not part of the public URL scheme. | | Widget picker callbacks | These are used by 2Do's widgets and are not needed for normal automation. | If you need a public action that is not listed here, [contact us](/docs.md). --- # Widgets Keep your tasks in view on the **desktop** (macOS 14 and later) or in **Notification Center**. Choose a list, see what's due today, or check the task coming up next without opening 2Do. ## Adding a Widget[​](#adding "Direct link to Adding a Widget") 1. **Right-click the desktop** and choose **Edit Widgets…** (or open Notification Center by clicking the clock, scroll to the bottom, and click **Edit Widgets**). 2. Find **2Do** in the widget gallery. 3. Pick a widget and size, then drag it onto the desktop or into Notification Center. To change what a widget shows, **right-click the widget** and choose **Edit "2Do"…**. Its options appear in place. ## The Widgets[​](#the-widgets "Direct link to The Widgets") ### List (Small, Medium, and Large)[​](#list-widget "Direct link to List (Small, Medium, and Large)") The List widget shows the tasks of **one list of your choice**. The header shows the list's name and counts (overdue in red, then remaining undone), and below it the widget fits as many upcoming tasks as its size allows. The list picker shows your regular lists and Smart Lists, plus **All**, **Today**, **Starred**, and **Scheduled**. If no list is chosen, the widget shows *Today*. ![Small Mac List widget showing fictional Work plan tasks](https://downloads.2doapp.com/resources/img/2do-mac/widget-list-small-light-2026-10-21.png) ![Small Mac List widget showing fictional Work plan tasks](https://downloads.2doapp.com/resources/img/2do-mac/widget-list-small-dark-2026-10-21.png) ![Medium Mac List widget showing Work plan tasks and the Add button](https://downloads.2doapp.com/resources/img/2do-mac/widget-list-medium-light-2026-10-21.png) ![Medium Mac List widget showing Work plan tasks and the Add button](https://downloads.2doapp.com/resources/img/2do-mac/widget-list-medium-dark-2026-10-21.png) ![Large Mac List widget showing Work plan tasks with dates and list names](https://downloads.2doapp.com/resources/img/2do-mac/widget-list-large-light-2026-10-21.png) ![Large Mac List widget showing Work plan tasks with dates and list names](https://downloads.2doapp.com/resources/img/2do-mac/widget-list-large-dark-2026-10-21.png) Each size adds a little more: * **Small**: the essentials: header and tasks. Options include **List**, **Open**, and **Multi-line Titles**. * **Medium**: adds a floating **`+` button** for capturing a new task straight from the widget (turn it off with the **Add** option if you prefer a cleaner look). * **Large**: adds two extra display toggles: **Show Dates** (due dates on each row) and **Show List Names** (the task's home list above its title, handy when a Focus List or Smart List mixes tasks from several lists). ### Today[​](#today-widget "Direct link to Today") The Today widget is a medium widget dedicated to your **Today** Focus List. The left side shows a **calendar day tile** (weekday, the day's number, month, and today's overdue and remaining counts) and the right side lists what's on for today. There's no list picker; it's always Today. ![Mac Today widget with the date beside four fictional tasks](https://downloads.2doapp.com/resources/img/2do-mac/widget-today-light-2026-10-21.png) ![Mac Today widget with the date beside four fictional tasks](https://downloads.2doapp.com/resources/img/2do-mac/widget-today-dark-2026-10-21.png) tip Pair a **Today** widget with a large **List** widget pointed at a Smart List (say, *High Priority* or *This Week*) on the desktop. One glance covers both what's due now and what's coming. ### Current & Up Next[​](#current-up-next "Direct link to Current & Up Next") A small widget that shows the task coming up next, with the current task below it. ![Mac Current & Up Next widget showing Lunch with Maya next and Review outline as the current task](https://downloads.2doapp.com/resources/img/2do-mac/widget-current-up-next-light-2026-10-21.png) ![Mac Current & Up Next widget showing Lunch with Maya next and Review outline as the current task](https://downloads.2doapp.com/resources/img/2do-mac/widget-current-up-next-dark-2026-10-21.png) ### Date & Up Next[​](#date-up-next "Direct link to Date & Up Next") A medium widget with today's date beside the next task. The lower section shows the current task, an overdue task, or that the day is clear. ![Mac Date & Up Next widget with the date beside an upcoming task and the current task](https://downloads.2doapp.com/resources/img/2do-mac/widget-date-up-next-light-2026-10-21.png) ![Mac Date & Up Next widget with the date beside an upcoming task and the current task](https://downloads.2doapp.com/resources/img/2do-mac/widget-date-up-next-dark-2026-10-21.png) ### Today & Tomorrow[​](#today-tomorrow "Direct link to Today & Tomorrow") A large widget with today's and tomorrow's tasks in two columns. Each column shows up to seven tasks and counts any remaining tasks below them. ![Mac Today & Tomorrow widget showing fictional tasks in two day columns](https://downloads.2doapp.com/resources/img/2do-mac/widget-today-tomorrow-light-2026-10-21.png) ![Mac Today & Tomorrow widget showing fictional tasks in two day columns](https://downloads.2doapp.com/resources/img/2do-mac/widget-today-tomorrow-dark-2026-10-21.png) ## Customization Options[​](#options "Direct link to Customization Options") The **List** and **Today** widgets have these options. Right-click the widget and choose **Edit "2Do"…** to change them: | Option | Available on | What it does | | --------------------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | | **List** | List (all sizes) | The list the widget shows: any list, Focus List, or Smart List. | | **Open** | List (Small); List (Medium, Large) and Today while **Add** is **None** | What clicking the widget's background does: **List** (open the list in 2Do) or **Create Task** (start a new task). | | **Add** | List (Medium, Large), Today | Shows a floating `+` button that opens a new task in 2Do. Choose **None** to hide it. Small widgets never show it. | | **Multi-line Titles** | List (all sizes), Today | Lets long task titles wrap onto more than one line instead of truncating. | | **Show Dates** | List (Large) | Shows each task's due date on its row. | | **Show List Names** | List (Large) | Shows each task's home list above its title. | ## Interacting with a Widget[​](#interacting "Direct link to Interacting with a Widget") In the **List** and **Today** widgets: * **Click a task** to jump straight to it in 2Do. * **Click the checkbox** to complete the task right on the widget, without opening 2Do (medium and large widgets, macOS 14 and later). * **Click the `+` button** (or set **Open** to **Create Task**) to start a new task. * **Click anywhere else** to perform the **Open** action: open the list, or start a new task. New tasks created from a widget are filed into the list chosen under **2Do > Settings > Today & Lists > Widget > Widget List**. Leave it on **None** and your usual [default list rules](/docs/macos/settings.md#new-tasks) apply. ## Good to Know[​](#notes "Direct link to Good to Know") * **Completed tasks never appear** in a widget; it's always what's left to do. * When a list is empty, the widget shows **No Tasks**. If the list's [Focus Filter](/docs/macos/focus-filter.md) is hiding everything, a small **Focus Filter Active** note explains why. * Widgets scale with your Mac's text size settings, fitting fewer, larger rows as text grows. * If the chosen list is deleted or no longer available, the widget shows **Today**. --- # Subscribe to Updates A 2Do-specific subscription form will be added here when the mailing-list workflow is finalized. ---