Things provides a variety of actions for Apple’s Shortcuts app so that you can build your own workflows. This page is the technical documentation for this feature.
If you’re new to Shortcuts, the best way to get started is by downloading and exploring the example shortcuts we provide in our introductory article: Using Apple Shortcuts. You can also review Apple’s documentation for Mac, iPad, and iPhone. Come back to this page once you’re ready to build your own shortcuts.
Below are all the actions that Things provides. You can customize an action by setting different values for its parameters. Some actions also return a value upon completion.
Minimum requirements: Things 3.17 and macOS 14, iPadOS 17, iOS 17, visionOS 26.
Things Actions
In addition to Shortcuts’ built-in types, Things uses two custom types:
See the bottom of this page for tips, known issues, and frequently asked questions.
Item Type
Most of Things’ actions operate on Items (single or multiple). An item can be a to-do, a heading, a project, or an area. For example, if you use the Find Items action to find all items that have a particular tag, the resulting items could contain areas, projects, and to-dos. You can then show them inside of Things by passing them to the Show Items action, edit them all at once by passing them to the Edit Items action, and so forth.
Not all properties are available for each type of item. For example, an item of type To-Do does have a Checklist, but items of type Heading, Project, or Area do not. If you access these properties anyway, they are simply empty. You can determine the type of an item by inspecting its Type property.
Properties
Type- The item’s type:
To-Do,Heading,Project, orArea. Title- The item’s title. Available for all item types.
Parent- The parent the item is contained in, if any. For a to-do, this can be a project or an area. For a heading, this is its project. For a project, it is its area, if any. Not available for areas.
Heading- The heading the item is under, if any. Only available for to-dos.
Is Inbox- Whether of not the item is in the Inbox. Only available for to-dos.
Start- The item’s start:
On Date,Anytime, orSomeday. If set toOn Date, further information is available viaStart Date,Evening, andReminder Date. Only available for to-dos and projects. Start Date- The item’s start date, if any. The time component is always set to midnight. Only has a value if
Startis set toOn Date. Only available for to-dos and projects. Evening- Whether or not the item is planned for the evening. Only applicable if
Startis set toOn DateandStart Dateis today’s date. Only available for to-dos and projects. Reminder Date- The item’s reminder date, if any. Includes both a date and time component. The date component is equal to the item’s start date, and the time component is set to when the reminder will fire. Only applicable if
Startis set toOn Date. Only available for to-dos and projects. Deadline- The item’s deadline date, if any. The time component is always set to midnight. Only available for to-dos and projects.
Tags- A list of the titles of every tag that has been directly applied to the item, if any. Only available for to-dos, projects, and areas.
All Matching Tags- A list of all
Tags, plus the titles of all inherited tags. Useful mostly when using theFind Itemsaction. Only available for to-dos, projects, and areas. Status- The item’s status:
Open,Completed, orCanceled. If set toCompletedorCanceled, the completion date is available viaCompletion Date. Only available for to-dos, headings, and projects. Completion Date- The item’s completion date, if any. Only applicable if
Statusis set toCompletedorCanceled. Only available for to-dos, headings, and projects. Is Logged- Whether of not the item is logged. Only available for to-dos, headings, and projects.
Notes- The item’s notes, if any. Only available for to-dos and projects.
Checklist- The item’s checklist, if any. Each checklist item is separated with a newline. Only available for to-dos.
Creation Date- The item’s creation date. Only available for to-dos, headings, and projects.
Modification Date- The item’s modification date. Only available for to-dos, headings, and projects.
ID- The item’s unique identifier. Available for all item types.
Parent ID- The unique identifier of the parent the item is contained in, if any. For a to-do, this can be a project or an area. For a heading, this is its project. For a project, it is its area, if any. Not available for areas.
List Type
A List represents any list that can be displayed inside of Things. These are:
- Built-in lists that are always shown in the sidebar or source list.
- Inbox
- Today
- Upcoming
- Anytime
- Someday
- Logbook
- Built-in lists that are hidden, but can be navigated to via Quick Find.
- Tomorrow
- Deadlines
- Repeating
- All Projects
- Logged Projects
- User-created lists.
- One for each of the user’s Areas
- One for each of the user’s Projects
- One for each of the user’s Tags (hidden, but can be navigated to via Quick Find)
Properties
Currently, this List type can only be used in the Open List action. It has no properties that you can access.
Create To-Do Action
Creates a new to-do. All parameters are optional. If Parent or Start are not specified, the to-do will be created in the Inbox. If you want to show the to-do in Things after it’s created, connect a Show Items action.
Parameters
Title- The desired title of the to-do.
Parent- The project or area the to-do should be added to.
Heading- The heading the to-do should be under. If specified, the
Parentparameter must be set to the same project the heading is in. Start- The desired start of the to-do:
On Date,Anytime, orSomeday. If the value is set toOn Date, three additional parameters can be specified:Start DateThe desired start date of the to-do. Accepts natural language like “tomorrow” or “in 7 days”. Does not support a time value.EveningWhether or not the to-do should be planned for the evening. Ignored ifStart Dateis not set to today’s date.Reminder TimeThe time when the reminder should fire (on the start date). Supports 12 or 24-hour formats, e.g.8:15pmor20:15.
Deadline- The desired deadline of the to-do. Accepts natural language like “tomorrow” or “in 7 days”. Does not support a time value.
Tags- The desired tags of the to-do.
Status- The desired status of the to-do:
Open,Completed, orCanceled. If not specified, the status will beOpen. Notes- The notes that should be added to the to-do.
Checklist- The checklist items that should be added to the to-do. To add multiple items, use newlines. To set their status use Markdown.
Show When Run- Whether or not the action’s result should be shown in Siri’s UI at runtime.
Return Value
The newly created Item (a to-do).
Create To-Do with Quick Entry Action
Identical to the Create To-Do action, except that its output will be sent to the Quick Entry dialog so that you can further edit the to-do before saving it. On iPhone, iPad, and Vision, this will force Things to foreground; on Mac only the Quick Entry dialog will appear.
If all you want to do is invoke Quick Entry, simply leave its parameters empty.
Return Value
Nothing. The to-do you create does not exist as an Item in Things until you manually save it. This means there’s no Item to pass as output to other actions (e.g. you can’t reveal it with a Show Items action).
Create Heading Action
Creates a new heading inside of a project. Projects are the only lists that support headings.
Parameters
Title- The desired title of the heading.
Project- The project the heading should be added to.
Show When Run- Whether or not the action’s result should be shown in Siri’s UI at runtime.
Return Value
The newly created Item (a heading).
Create Project Action
Creates a new project. All parameters are optional. If you want to show the project in Things after it’s created, connect a Show Items action. If you want to populate your new project with to-dos, append some Create To-Do actions and pass your new project as their parent list.
Parameters
Title- The desired title of the project.
Area- The area the project should be added to.
Start- The desired start of the project:
On Date,Anytime, orSomeday. If the value is set toOn Date, three additional parameters can be specified:Start DateThe desired start date of the project. Accepts natural language like “tomorrow” or “in 7 days”. Does not support a time value.EveningWhether or not the project should be planned for the evening. Ignored ifStart Dateis not set to today’s date.Reminder TimeThe time when the reminder should fire (on the start date). Supports 12 or 24-hour formats, e.g.8:15pmor20:15.
Deadline- The desired deadline of the project. Accepts natural language like “tomorrow” or “in 7 days”. Does not support a time value.
Tags- The desired tags of the project.
Status- The desired status of the project:
Open,Completed, orCanceled. If not specified, the status will beOpen. Notes- The notes that should be added to the project.
Show When Run- Whether or not the action’s result should be shown in Siri’s UI at runtime.
Return Value
The newly created Item (a project).
Find Items Action
Queries Things for items that match one or more filters. If you want to show the results in Things, connect a Show Items action.
Parameters
- Filters:
-
TypeReturn items that are (or not) to-dos, headings, projects, or areas.TitleReturn items with the specified string in the title.ParentReturn items that are (or not) inside the specified project or area.Is InboxReturn items that are in the Inbox.Not Is InboxReturn items that are not in the Inbox.StartReturn items whose “When” property is (or not) set to: On Date, Anytime, or Someday.Start DateReturn items with a start date that matches the specified date, or range of dates. Shortcuts requires you to specify a time here, but it will be ignored; it is not interpreted as a reminder time.EveningReturn items that are in This Evening.Not EveningReturn items that are not in This Evening. This includes all items that are not even in Today.Reminder DateReturn items with a reminder date that matches the specified date-time, or a range of date-times. The reminder date is equal to the item’s start date, with the time component set to when the reminder will fire.DeadlineReturn items with a deadline date that matches the specified date, or range of dates.TagsReturn items that have the specified tag applied.All Matching TagsReturn items that have the specified tag, either applied directly, or via inheritance.StatusReturn items that are (or not) Open, Completed, or Canceled.Completion DateReturn items with a completion date that matches the specified date-time, or range of date-times. The time component of the specified date does make a difference.Is LoggedReturn items that have moved to the Logbook. This is not necessarily all items that have been completed.Not Is LoggedReturn items that have not moved to the Logbook.NotesReturn items with the specified string in the notes.Creation DateReturn items with a creation date that matches the specified date-time, or range of date-times. The time component of the specified dates does make a difference.Modification DateReturn items with a modification date that matches the specified date-time, or range of date-times. The time component of the specified dates does make a difference.IDReturn an item with the specified ID.Parent IDReturn items that are (or not) inside the project or area with the specified ID.
Sort by- Sort the results by a chosen method:
- By
Title - By
Start Date - By
Reminder Date(including time) - By
Deadlinedate - By
Completion Date(including time) - By
Creation Date(including time) - By
Modification Date(including time) - By
Random✨
- By
Limit- Return only a limited number of items.
Return Value
All Items that match the specified filters, sorted in the specified order. Results are limited to a maximum of 500 items.
Get Items Action
Lets you specify multiple items of a given type, which are then returned by this action.
Parameters
Type- The type of the items:
To-Do,Heading,Project, orArea. Items- The items that should be returned by the action.
Return Value
The specified Items.
Get Selected Items Action
Gets the items that are currently selected in Things. If multiple Things windows are open, the last active window is used.
Return Value
The selected Items.
Edit Items Action
Modifies a property of one or more Things items. Use with caution: changes made by this action cannot be undone.
You will receive a warning each time this action attempts to edit more than 99 items at once. This warning can be turned off in Things’ Settings.
Parameters
Edit- This first field adapts to perform different functions depending on the detail parameter that’s targeted in the second field.
SetReplace the detail parameter’s value with a new value.Append/PrependAvailable when editing e.g. the title, notes, or checklist. Lets you keep the existing value, and append or prepend a new string.Add/Remove/Remove AllAvailable when editing e.g. the tags. Lets you keep the existing tags, and add or remove specific ones.
Detail- The property of the items you want to modify:
TitleThe title of the item.ParentThe project or area the item should be in.StartThe start date of the item. ChooseOn Dateto set a particular day. Supports natural language.Reminder TimeThe reminder time of the item. The date component is ignored, if specified. Instead, each item keeps its start date.DeadlineThe deadline of the item.TagsThe tags of the item.StatusThe status of the item.Completion DateThe completion date of the item.NotesThe notes of the item.ChecklistThe checklist items of the item. To append or prepend multiple rows, use newlines. To set their status, use this syntax.Creation DateThe creation date of the item.
Return Value
The edited Items.
Duplicate Items Action
Duplicates one or more Things items. If you want to show the duplicated items in Things, append a Show Items action. Duplicating areas is not supported.
Parameters
Items- The to-dos, headings, or projects to be duplicated.
Return Value
The duplicated Items.
Delete Items Action
Deletes one or more Things items. Use with caution: changes made by this action cannot be undone.
You will receive a warning each time this action attempts to delete more than 99 items at once. This warning can be turned off in Things’ Settings.
Parameters
Items- The items that should be deleted. Only supports to-dos, headings, and projects. Areas are ignored. When deleting a project, all items contained within it are also deleted; when deleting a heading, all items under it are also deleted.
Delete Immediately- If set to
OFF, items are moved to the Trash. If set toON, items are deleted immediately. iPhone, iPad, and Vision don’t have a Trash at this time, so the action will fail with an error on those devices unless you turn this setting toON.
Open List Action
Opens Things and shows the specified list.
Parameters
List- The list to show in Things. See List Type for more info.
Filter by Tags- The tags the list should be filtered by.
Show Items Action
Opens Things and shows the items passed into the action. If you pass a single item, it will be shown inside its parent list. If you pass multiple items, they will be shown together in a special list.
Parameters
Items- The items to show in Things. See Item Type for more info.
Run Things URL Action
For backwards compatibility, you can use Run Things URL to utilize Things’ URL scheme. The benefit of using this action (rather than Safari’s Open URLs action) is that it can run the URL in the background without forcing Things to open.
Parameters
Things URL- The URL. Looks like
things:///add?title=Milk. Can contain variables. Some commands require your auth-token.
Tips, Known Issues & FAQs
Working with dates
- The
Adjust Dateaction is your friend. When using Things’Findaction, you may want to filter for items before or after the current date. Shortcuts’Current Datevariable also includes the current time. What you really want, in many cases, is the beginning of the current day (12:00 AM). For this, add anAdjust Dateaction, and set it toGet Start of Day. - Avoid using the
Format Dateaction. Things’ actions accept the default date format provided by Shortcuts’ own date-related actions, so there is no need to reformat dates; doing so may cause a shortcut to fail. - Avoid using
Ask Each Timefor dates. See Using Ask Each Time. - In the
Findaction, avoid comparing dates viais in the last X days/months/yearsas it will yield incorrect results. For example, if you selectDeadline is in the last 10 days, it will correctly filter out items that have a deadline older than 10 days, but it will include all items with deadlines in the future. This is a Shortcuts bug. As a workaround, target the date range usingis between. FB11841259 - In the
Findaction, avoid querying for a date range usingis in the lastas it will fail. This is a Shortcuts bug which appeared in either iOS 16.3 or 16.4. As a workaround, get the start of the range and useis after, oris betweenthe start of the range and the current date. FB12392280 - In the
Findaction, check if a date is today viais Today. Do not useis betweenin this case as it will yield incorrect results. This is a workaround for a Shorcuts bug. FB11799692
Using Ask Each Time
Ask Each Time when using the Find action is broken on macOS 15. The bug also affects actions for some of Apple’s own apps.
Almost all parameters of our actions support selecting Ask Each Time instead of a value. This way, you’ll be prompted to specify the value when you run your shortcut. But there are a few caveats:
- Avoid using
Ask Each Timefor dates. We’ve found that Shortcuts sometimes produces strange output, especially if you live in a timezone east of GMT. Use theAsk for Inputaction instead, and pass its output. FB11969030 - In the
Findaction, when you want toAsk Each Timefor theParent, the picker you see at runtime is not great. We recommend that you instead use Things’Get Itemsaction and pass its output to the filter. Check out this demo shortcut. FB11658481
Building complex projects
To create projects that contain both headings and to-dos, follow the steps below. You can also check out this demo shortcut.
- Create a new project with
Create Project. - Create a new heading with
Create Heading, and pass the project from step 1 as theProject. - Create a new to-do with
Create To-Do, pass the project from step 1 as theParentand the heading from step 2 as theHeading.
Using the Find action
Ask Each Time when using the Find action is broken on macOS 15. The bug also affects actions for some of Apple’s own apps.
Things’ Find action is built on top of an API provided by Apple that has many bugs and quirks that are beyond our control. Note the following caveats:
- If you want to use filters that work with dates, please take a look at the Working with dates section.
- Issues with the
Parentparameter:- Apple broke the Find action’s
Parentparameter on macOS 14 & iOS 17; it would no longer remember which parent you had set. This meant that when you closed and reopened your shortcut, the parameter would be un-set (the parent would be gone). As a ramification, it meant that when your shortcut ran, it would choose a different parent than expected, which led to actions being performed on the wrong items. To prevent data loss we prevented the action from running and you would see an error. This was fixed in macOS 15 and iOS 18. If you can’t upgrade your OS, the workaround is to use theGet Itemsaction to get the parent, then pass its ID into the Find action’sParent IDparameter. - We don’t recommend using
Ask Each Timeto select aParent. See theAsk Each Timesection in this document.
- Apple broke the Find action’s
- It is not possible to configure a filter that returns items with no
Deadline, or noParent. This is a Shortcuts limitation. FB11797131 - It is not possible to configure a filter that return items with no
Tags. - When passing an input to the
Findaction so it turns into aFilter, it is not possible to filter the passed items based on theirType,Status, orStartproperties. This is a Shorcuts bug. As a workaround, you can iterate the items manually and filter them with anIfinside the loop. FB11939711 - If you’re on an OS older than iOS 17/macOS 14, avoid modifying a filter after you’ve configured it. For example, don’t change it from filtering based on the
Titleto checkingIs Logged. This can crash the Shortcuts app and render your entire shortcut broken. Instead, always remove the previous filter, and add a new one. This is a Shortcuts bug that was fixed only in iOS 17/macOS 14 and later. FB11939732
Using the Edit action
- If you use the
Editaction toSetStatusof a completed to-do toOpen(incomplete)—but that to-do is also under a heading which has been archived—the to-do will be marked incomplete but will stay in the Logbook. This is the intended behavior.
Using the If action
- Broken in macOS 14 & iOS 17: If you use Apple’s
Ifaction to check if a Things item’sParentisoris notyou will not be able to set a value. This is a Shortcuts bug. You may be able to work around it by instead queryingIfParent IDisID.
Limitations
- Specifying a heading in the
Create To-Do with Quick Entryaction is not supported. This is a Shortcuts bug. FB11859240 - A Share Sheet cannot get an item from Things as an
Item, it can only get an item’s title (as text), so items cannot be passed into a shortcut this way. Instead, use theGet Selected Itemsaction. - To run a
Delete Itemsaction on iPhone, iPad, or Vision, it must be set toDelete Immediately. This is because Things on these devices doesn’t have a trash at this time. - The
Run Things URLaction can only be used for URLs that don’t require Things to be foregrounded. For example, it will not work forthings:///show?id=today. Use Shortcuts’ built inOpen URLsaction as a workaround. This is a Shortcuts limitation. FB11520039 - You can’t use an
Ifto check if an item’sParentis equal to another item, as the UI won’t let you specify it. The workaround is to use the item’sParent IDinstead. This is a Shortcuts bug. FB11892632
Other known issues
- Sometimes the Shortcuts app shows strange or ugly names for the actions and their parameters. This is a Shortcuts bug. Restarting the app usually fixes this. FB11969021, FB11513036
- If you’re an Apple engineer working on Shortcuts or App Intents… 👋 Please check the feedback numbers sprinkled above, and also these.