<!--
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