Events

Meetings, milestones, and the outcomes attached to them. Events in Neotoma tie together participants, decisions, and follow-up actions - so the context from a meeting persists beyond the session where it happened.

Store#

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

MCP

store_structured({ entities: [ { entity_type: "event", title: "Q4 Planning - Engineering", event_type: "meeting", date: "2026-03-28T10:00:00Z", participants: ["Sarah Chen", "Alex Rivera"], outcome: "Agreed on PostgreSQL migration timeline", follow_ups: ["Draft migration RFC", "Set up staging env"] } ], idempotency_key: "event-q4-planning-eng-20260328" })

CLI

neotoma store --json='[{ "entity_type": "event", "title": "Q4 Planning - Engineering", "event_type": "meeting", "date": "2026-03-28T10:00:00Z", "participants": ["Sarah Chen", "Alex Rivera"], "outcome": "Agreed on PostgreSQL migration timeline", "follow_ups": ["Draft migration RFC", "Set up staging env"] }]'

REST API

curl -X POST http://localhost:3080/api/store \ -H "Content-Type: application/json" \ -d '{ "entities": [{ "entity_type": "event", "title": "Q4 Planning - Engineering", "event_type": "meeting", "date": "2026-03-28T10:00:00Z", "participants": ["Sarah Chen", "Alex Rivera"], "outcome": "Agreed on PostgreSQL migration timeline", "follow_ups": ["Draft migration RFC", "Set up staging env"] }] }'

Common fields for event:

FieldExample
title"Q4 Planning - Engineering"
event_type"meeting"
date"2026-03-28T10:00:00Z"
participants["Sarah Chen", "Alex Rivera"]
outcome"Agreed on PostgreSQL migration timeline"

Fields are flexible - add any property your workflow needs. The schema evolves automatically via progressive schema enforcement.

Retrieve#

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

CLI

# List recent events neotoma entities list --type event # Search by title neotoma entities search --query "Q4 Planning" --type event # See how meeting notes evolved neotoma observations list --entity-id <entity_id> # Find linked participants and follow-up tasks neotoma relationships list --entity-id <entity_id>

MCP

// Find by title retrieve_entity_by_identifier({ identifier: "Q4 Planning - Engineering", entity_type: "event" }) // List events in a date range list_timeline_events({ entity_type: "event", start_date: "2026-03-01", end_date: "2026-03-31" }) // Expand related entities retrieve_related_entities({ entity_id: "<entity_id>", relationship_types: ["REFERS_TO"] })

What your agent can answer#

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

  • “What was decided in the Q4 planning meeting?”
  • “Show all meetings with Sarah this month”
  • “Which follow-ups came out of the engineering sync?”

What Neotoma guarantees#

Every event 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 compared across memory models.

Next steps#