<!--
  Full-page Markdown export (rendered HTML → GFM).
  Source: https://neotoma.io/types/tasks
  Generated: 2026-05-04T09:51:55.530Z
-->
# Tasks

Obligations, deadlines, habits, and goals - tracked across sessions. Tasks in Neotoma are versioned: status changes, reassignments, and deadline shifts are recorded as observations, not overwrites.

## Store[#](#store)

Store a task with any fields that describe it. Neotoma auto-discovers the schema from the first observation - no migration required.

MCP

Equivalent MCP example for this entity type.

store\_structured({ entities: \[ { entity\_type: "task", title: "Review API rollout plan", status: "open", priority: "high", date\_due: "2026-04-15", assignee: "Sarah Chen" } \], idempotency\_key: "task-review-api-rollout-1710268800" })

CLI

Equivalent CLI example for this entity type.

neotoma store --json='\[{ "entity\_type": "task", "title": "Review API rollout plan", "status": "open", "priority": "high", "date\_due": "2026-04-15", "assignee": "Sarah Chen" }\]'

REST API

Equivalent REST API example for this entity type.

curl -X POST http://localhost:3080/api/store \\ -H "Content-Type: application/json" \\ -d '{ "entities": \[{ "entity\_type": "task", "title": "Review API rollout plan", "status": "open", "priority": "high", "date\_due": "2026-04-15", "assignee": "Sarah Chen" }\] }'

Common fields for `task`:

| Field | Example |
| --- | --- |
| title | "Review API rollout plan" |
| status | "open" |
| priority | "high" |
| date\_due | "2026-04-15" |
| assignee | "Sarah Chen" |

Fields are flexible - add any property your workflow needs. The schema evolves automatically via [progressive schema enforcement](/schema-management).

## Retrieve[#](#retrieve)

Query tasks by type, search by keyword, inspect version history, and traverse relationships.

CLI

Equivalent CLI example for this entity type.

\# List open tasks neotoma entities list --type task # Search by keyword neotoma entities search --query "API rollout" --entity-type task # See how a task changed over time neotoma observations list --entity-id <entity\_id> # Find who a task is linked to neotoma relationships list --entity-id <entity\_id>

MCP

Equivalent MCP example for this entity type.

// Find by title retrieve\_entity\_by\_identifier({ identifier: "Review API rollout plan", entity\_type: "task" }) // List recent tasks retrieve\_entities({ entity\_type: "task", limit: 20 }) // Check observation history list\_observations({ entity\_id: "<entity\_id>" })

## What your agent can answer[#](#example-queries)

With tasks stored in Neotoma, your agent can answer questions like:

-   “What tasks are due this week?”
-   “Show the history of status changes for the API rollout task”
-   “Which tasks are assigned to Sarah?”

## What Neotoma guarantees[#](#guarantees)

Every task stored in Neotoma gets the same set of integrity guarantees:

-   Versioned history - Every change creates a new version. Previous states are always accessible.
-   Deterministic state - Same observations always produce the same entity snapshot.
-   Auditable provenance - Every field traces back to the observation that set it.
-   Schema validation - Fields conform to the discovered or defined schema.

See all [memory guarantees](/memory-guarantees) compared across memory models.

## Next steps[#](#next-steps)

-   [Install Neotoma](/install) \- get started in 5 minutes
-   [Walkthrough](/walkthrough) \- full multi-session example
-   [Personal data use case](/personal-data) \- see how tasks fit into a broader workflow