Build a List by pasting JSON
Create a To-do List and every To-do in it in one step by pasting a JSON document.
A plan that already exists — a project brief, a checklist in a document, the steps someone sent you — becomes To-dos one typing session at a time. Importing skips that: paste a JSON document describing the List and everything in it, and all of it is created at once, with dates, deadlines, tags and checklists already set.
There are two ways in, both on Lists:
- Import a List from JSON creates a new List from the document.
- Import on a List you already have adds the document's To-dos to it.
Use Copy the prompt in either import box to get this format plus the instructions an assistant needs, then describe what you want done and paste back what it gives you.
Neither way merges. Deciding which To-dos in a document are the ones already in a List means matching them by title, and a wrong match either duplicates work or overwrites a note someone made. Adding can only ever leave To-dos to delete, which you can undo yourself.
When adding to a List, name and description are ignored — the List already
has both.
The whole document is checked before anything is saved. If any part of it does not fit the format below, no List is created and the problem is reported with the exact field that caused it.
The document
{
"name": "Website relaunch",
"description": "Everything to do before the new site goes live.",
"todos": []
}
| Field | Type | Notes |
|---|---|---|
name |
string, required | The List's name, up to 100 characters. |
description |
string, optional | Up to 500 characters. |
todos |
array, optional | Up to 200 To-dos. An empty List is allowed. |
The List belongs to whichever Personal or team space you are in when you import — the page says which.
To-dos
{
"title": "Rewrite the home page",
"notes": "Lead with what the product does.",
"whenDate": "2026-10-05",
"whenTime": "09:30",
"deadlineDate": "2026-10-09",
"priority": "important",
"tags": ["copy"],
"checklist": ["Draft it", "Read it aloud", "Cut a third"]
}
| Field | Type | Notes |
|---|---|---|
title |
string, required | 1 to 500 characters. |
notes |
string, optional | Markdown, up to 20,000 characters. Newlines are kept. |
whenDate |
string, optional | The day you plan to work on it, as YYYY-MM-DD. |
whenTime |
string, optional | A 24-hour time as HH:MM. Needs whenDate as well. |
deadlineDate |
string, optional | The day it is due, as YYYY-MM-DD. |
priority |
string, optional | normal (default) or important. |
someday |
boolean, optional | true for something with no date yet. Cannot be combined with whenDate or whenTime. |
tags |
array of strings, optional | Up to 10, each up to 50 characters. Tags are lowercased, and shared across the whole space, so an existing tag is reused rather than duplicated. |
checklist |
array of strings, optional | Up to 50 steps, each up to 500 characters. |
whenDate and deadlineDate are different on purpose: the first is when you
intend to do the work, the second is when it has to be finished. A To-do can
have either, both, or neither.
A checklist is part of its To-do, not a set of separate To-dos. Use it for steps that are only meaningful together; if a step needs its own date or its own owner, make it a To-do of its own instead.
To-dos are created unassigned. Assign them afterwards — a person has to have access to the List before a To-do can be theirs, which an imported document has no way to check.
A complete example
{
"name": "Website relaunch",
"description": "Cut-off for copy is the end of September.",
"todos": [
{
"title": "Audit the old pages",
"notes": "List every page and mark keep, merge or drop.",
"whenDate": "2026-09-22",
"deadlineDate": "2026-09-26",
"priority": "important",
"tags": ["research"],
"checklist": ["Export the sitemap", "Mark each page", "Share the list"]
},
{
"title": "Rewrite the home page",
"whenDate": "2026-10-05",
"whenTime": "09:30",
"deadlineDate": "2026-10-09",
"tags": ["copy"]
},
{ "title": "Look at moving the blog across", "someday": true }
]
}
If an import is rejected for a reason you can't work out, Contact support.