Skip to main content
Some memories matter because of when they happened, not just because they sound similar. Temporal Reasoning lets Mem0 Platform v3 understand time-aware queries and return the most contextually appropriate results.
Use Temporal Reasoning when…
  • Users ask questions like “what happened last week?” or “what do I have coming up?”
  • Your app stores both past events and future plans for the same person
  • You want time-aware retrieval without building your own date-parsing layer
Temporal Reasoning is a Mem0 Platform v3 feature. It is not available on OSS memory stores or older Platform endpoints.

Configure access

Confirm your MEM0_API_KEY is set and that you are using the v3 Platform client:

How it works

When a memory describes an event, a future plan, or an ongoing state, Temporal Reasoning recognizes the time context so the right results surface at search time. A query like what did I do last week? should return a completed past event: not an upcoming appointment and not a stable fact that hasn’t changed. Temporal Reasoning handles that distinction automatically.

Memory types Temporal Reasoning handles

Results come back in the normal search response shape: Temporal Reasoning affects ranking, not the response format.

Configure it

Temporal Reasoning is enabled by default for all v3 searches and writes. There is no per-request toggle. Two parameters give you precise control when you need it:
  • observation_date (or observation_datetime, which takes priority when both are set) on add(): anchors an imported memory to the time it actually happened. Pair with timezone when resolving a date-only value.
  • timestamp on add(): a Unix epoch that sets the memory’s creation time. When present it takes priority over observation_datetime and observation_date as the anchor Temporal Reasoning ranks against, so pass only the one you want to win.
  • reference_date on search(): resolves relative phrases like last week against a fixed point in time
reference_date is especially useful in automated tests and demos because it makes relative phrases like last week resolve consistently every time.

Supported query patterns

Examples: last week, last month, in March 2025, on 2025-03-10
Examples: upcoming, next week, tomorrow, what do I have coming up?
Examples: right now, currently, where do I work now?
Examples: as of March 2025, where was I living as of 2024?
Examples: how long have I lived here?, since when have I worked there?

Verify the feature is working

  • Run a temporal search with a time-aware query (e.g., “what did I do last week?”) and confirm the memory that fits the time window ranks first.
  • Use reference_date in test queries so relative phrases resolve consistently across runs.
  • For backfilled data, pass timestamp on add() to confirm the memory reflects the right point in time.

Best practices

  • Use explicit dates in source conversations when events or plans matter temporally.
  • Pass observation_date (or observation_datetime) during historical imports so the ingestion time does not become the only time anchor. Do not also pass timestamp on those calls, since it overrides both as the ranking anchor.
  • Scope searches with filters so time-aware ranking operates inside the right user boundary.
  • Use reference_date in automated tests and reproducible demos.

Memory Timestamps

Anchor imported memories to when they actually happened.

Discord

Join our community

GitHub

Ask questions on GitHub

Support

Talk to founders