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.
Importing creates To-dos from one JSON document, with their dates, deadlines, tags and checklists, instead of adding them one at a time. There are two ways in:
- Import a List from JSON on Lists creates a new List from the document.
- Import To-dos… in a List's More menu adds the document's To-dos to
that List. Nothing already in it is changed or removed, and the List keeps
its own name and description, so
nameanddescriptionare ignored.
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.
Importing never merges: To-dos in the document are always added as new To-dos, even when one has the same title as a To-do already in the List.
The whole document is checked before anything is saved. If any part of it does not fit the format below, nothing 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 Personal or the team you are in when you import. The import box 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 Personal or the team, so an existing tag is reused rather than duplicated. |
checklist |
array of strings, optional | Up to 50 steps, each up to 500 characters. |
whenDate is when you plan to work on the To-do; deadlineDate is when it is
due. A To-do can have either, both, or neither.
A checklist is part of its To-do, not a set of separate To-dos. If a step needs its own date or its own assignee, make it a To-do of its own instead.
To-dos are created unassigned. Assign them afterwards on each To-do's page; a To-do can be assigned only to someone who has access to it.
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.
Preguntar al soporte de Magpie
Envía al equipo de Magpie una pregunta sobre cualquier cosa que este artículo no responda.