Skip to main content

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

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.

TextEncoded
Buy milkBuy%20milk
Work & HomeWork%20%26%20Home
finance,adminfinance%2Cadmin
Line one + line break + Line twoLine%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

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&note=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 Mac.

ActionPurpose
addCreate a task, project, or checklist.
addnewtaskOpen the new-task interface.
pasteCreate tasks from plain text.
searchSearch tasks.
showallOpen the All Focus List.
showtodayOpen the Today Focus List.
showstarredOpen the Starred Focus List.
showscheduledOpen the Scheduled Focus List.
showlistOpen a list by name.
showtaskOpen a task by UID.
completetasksMark one or more tasks complete by UID.
gettaskidFind a project UID by title and list.
launchBring 2Do to the front.

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

ParameterDescription
taskTask title. If omitted, 2Do uses New Task.
noteNotes for the task.
forlistDestination list name. If omitted, 2Do uses the default or last-used list.
forparentnameParent project or checklist title. Use this with forlist so 2Do can find the right parent.
forparenttaskParent project or checklist UID. Use this when your automation already knows the parent UID.
type0 for a regular task, 1 for a project, 2 for a checklist.
ignoredefaults1 tells 2Do not to apply default list/date/alert settings while creating the task.
edit1 creates the task, then opens it for editing.
usequickentry1 opens Quick Entry with the provided details instead of saving the task immediately.
saveinclipboard1 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

ParameterDescription
dueDue date. Use yyyy-MM-dd, a supported date phrase such as tomorrow, or a number of days from today (0 = today, 1 = tomorrow).
duetimeDue time, such as 17:00 or 5pm. This is applied when a due date is supplied.
startStart date/time. Use yyyy-MM-dd HH:mm or a number of days from today.
repeatRepeat 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

ParameterDescription
tagsComma-separated tag names. Existing tags are reused, and new tags can be created.
locationsComma-separated location names. 2Do matches existing locations.
subtasksNewline-separated sub-task titles. If the parent is a regular task, it becomes a checklist.
priority0 none, 1 low, 2 medium, 3 high.
starred1, true, or yes stars the task.
actionAdds an Action. Use call:, message:, url:, visit:, or google: followed by the target value.
pictureBase64-encoded image data.
audioBase64-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 automation shortcuts, these parameters can use (clipboard) as their value:

ParameterClipboard behavior
taskUses the clipboard as the task title.
noteUses the clipboard as the notes body.
tagsUses the clipboard as the comma-separated tag list.
locationsUses the clipboard as the comma-separated location list.
subtasksUses the clipboard as the newline-separated sub-task list.

Example:

twodo://x-callback-url/add?task=(clipboard)&forlist=Inbox

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.

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.

ParameterDescription
textPlain text to paste. Use %0A for line breaks.
forlistOptional destination list name.
inprojectOptional 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.

Completing Tasks by UID

2Do for Mac supports marking one or more tasks complete by UID:

twodo://x-callback-url/completetasks?uids=<uid1>,<uid2>

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

Use gettaskid to find a project or checklist by title inside a list.

twodo://x-callback-url/gettaskid?task=Website%20Launch&forlist=Work
ParameterDescription
taskProject or checklist title.
forlistList name containing that project or checklist.
saveinclipboard1 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:

ParameterDescription
x-successURL to open after success.
x-errorURL to open after an error.
x-cancelURL to open if the action is cancelled.
x-sourceOptional 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 automation endpoints:

EndpointUse this instead
quickEntryUse addnewtask, or add?usequickentry=1 on Mac.
showinboxUse showlist?name=Inbox.
Sync sign-in callback URLsThese are handled internally during account authorization and are not part of the public URL scheme.
Widget picker callbacksThese 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.