<!--
Full-page Markdown export (rendered HTML → GFM).
Source: https://neotoma.io/ca/types/tasks
Generated: 2026-04-01T11:48:42.118Z
-->
# 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
store\_structured({ entities: \[ { entity\_type: "task", title: "Review API rollout plan", status: "open", priority: "high", due\_date: "2026-04-15", assigned\_to: "Sarah Chen" } \], idempotency\_key: "task-review-api-rollout-1710268800" })
CLI
neotoma store --json='\[{ "entity\_type": "task", "title": "Review API rollout plan", "status": "open", "priority": "high", "due\_date": "2026-04-15", "assigned\_to": "Sarah Chen" }\]'
REST API
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", "due\_date": "2026-04-15", "assigned\_to": "Sarah Chen" }\] }'
Common fields for `task`:
| Field | Example |
| --- | --- |
| title | "Review API rollout plan" |
| status | "open" |
| priority | "high" |
| due\_date | "2026-04-15" |
| assigned\_to | "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
\# List open tasks neotoma entities list --type task # Search by keyword neotoma entities search --query "API rollout" --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
// 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](/developer-walkthrough) \- full multi-session example
- [Personal data use case](/personal-data) \- see how tasks fit into a broader workflow