ChronicleSchema

A CompleteAction for a finished Task. The task is part of a Project and an area (isPartOf), and has a Tag (about).

Records are keyed by the app's own IDs. The app has one user, so the agent is keyed by source only and marked as you with sameAs.

{
  "@type": "CompleteAction",
  "@key": ["@type", "source", "sourceId"],
  "source": "things-todo",
  "sourceId": "5nT2kQv8Lw3xRb1YcHd9pA",
  "timestamp": "2026-04-02T17:45:10.000Z",
  "agent": {
    "@type": "Agent",
    "@key": ["@type", "source"],
    "source": "things-todo",
    "name": "Sam Rivera",
    "sameAs": ["@me"]
  },
  "object": {
    "@type": "Task",
    "@key": ["@type", "source", "sourceId"],
    "source": "things-todo",
    "sourceId": "5nT2kQv8Lw3xRb1YcHd9pA",
    "name": "Renew passport",
    "description": "Two photos are in the top desk drawer.",
    "isPartOf": [
      {
        "@type": "Project",
        "@key": ["@type", "source", "sourceId"],
        "source": "things-todo",
        "sourceId": "Hq4mVz7Ns2Ck8Ew5Ty1Lp",
        "name": "Trip to Lisbon"
      },
      {
        "@type": "Collection",
        "@key": ["@type", "source", "sourceId"],
        "source": "things-todo",
        "sourceId": "Ua6Rj3Mf9Xs2Gb7Kd4Wn8e",
        "name": "Personal"
      }
    ],
    "about": [
      {
        "@type": "Tag",
        "@key": ["@type", "source", "sourceId"],
        "source": "things-todo",
        "sourceId": "Zc1Fy8Pq5Hv3Ln6Jt2Bs9o",
        "handle": "errands",
        "name": "errands"
      }
    ]
  }
}

Terms in this example

ActionAgentCollectionCompleteActionProjectTagTaskaboutisPartOfsource

Esc

to move to open/ or ⌘K to search