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.
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. 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
Most actions use the x-callback-url format:
twodo://x-callback-url/<action>?<parameter>=<value>&<parameter>=<value>
Action names are case-insensitive, so showtoday, showToday, and ShowToday all reach the same action.
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
Encode only the parameter value, not the whole URL. For example, encode Call Sam & book flights, then place the result after task=.
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
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. |
2Do for Mac also supports completetasks for marking tasks complete by UID. 2Do iOS does not include that URL action.
Creating Tasks with 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
| 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. |
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
| 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
| 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
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
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
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
There is no separate showinbox action. Use showlist?name=Inbox if your Inbox list is named Inbox.
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
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
Use showtask when your automation already knows the task UID:
twodo://x-callback-url/showtask?uid=<task-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
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
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
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.