# Temporal Cognify > Step-by-step guide to using temporal mode for time-aware queries A minimal guide to Cognee's temporal mode. If you already know the regular add → cognify → search flow, this adds one switch at cognify time and one search type for time-aware questions. **Before you start:** * Complete [Quickstart](getting-started/quickstart) to understand basic operations * Ensure you have [LLM Providers](setup-configuration/llm-providers) configured * Have data that contains dates/times (years or full dates) ## What Temporal Mode Does * Builds events and timestamps from your text during cognify * Lets you ask time-based questions like "before 1980", "after 2010", or "between 2000 and 2006" * Uses `SearchType.TEMPORAL` to retrieve the most relevant events and answer with temporal context ## Step 1: Add Data Add data with temporal information using the standard `add` function. ```python theme={null} import cognee text = """ In 1998 the project launched. In 2001 version 1.0 shipped. In 2004 the team merged with another group. In 2010 support for v1 ended. """ await cognee.add(text, dataset_name="timeline_demo") ``` This simple example uses one string that gets treated as a single document. In practice, you can add multiple documents, files, or entire datasets - the temporal processing works the same way across all your data. ## Step 2: Cognify with Temporal Mode Set `temporal_cognify=True` to extract events/timestamps instead of the default entity-graph pipeline. ```python theme={null} await cognee.cognify(datasets=["timeline_demo"], temporal_cognify=True) ``` Only datasets you pass (or all by default) are processed. Temporal mode runs an event/timestamp pipeline and stores temporal nodes in the graph. This example uses a single dataset for simplicity. In practice, you can process multiple datasets simultaneously by passing a list of dataset names, or omit the `datasets` parameter to process all available datasets. ## Step 3: Ask Time-aware Questions Use `SearchType.TEMPORAL` and phrase your query with time hints. ```python theme={null} from cognee.api.v1.search import SearchType # Before / after queries await cognee.search( query_type=SearchType.TEMPORAL, query_text="What happened before 2000?", top_k=10 ) await cognee.search( query_type=SearchType.TEMPORAL, query_text="What happened after 2010?", top_k=10 ) # Between queries await cognee.search( query_type=SearchType.TEMPORAL, query_text="Events between 2001 and 2004", top_k=10 ) # Scoped descriptions await cognee.search( query_type=SearchType.TEMPORAL, query_text="Key project milestones between 1998 and 2010", top_k=10 ) ``` * If the query has clear dates, the retriever filters events by time and ranks them * If no dates are detected, it falls back to event/entity graph retrieval and still answers * Increase `top_k` to inspect more candidate events ## Optional: Limit to Specific Datasets ```python theme={null} await cognee.search( query_type=SearchType.TEMPORAL, query_text="What happened after 2004?", datasets=["timeline_demo"], top_k=10, ) ``` ## Using the HTTP API If your server is running, you can run temporal search via the API by setting `search_type` to `"TEMPORAL"`: ```bash theme={null} curl -X POST "http://localhost:8000/api/v1/search" \ -H "Content-Type: application/json" \ ${TOKEN:+-H "Authorization: Bearer $TOKEN"} \ -d '{ "search_type": "TEMPORAL", "query": "What happened between 2001 and 2004?", "top_k": 10 }' ``` For now, enabling temporal processing at cognify time is easiest in Python with `temporal_cognify=True`. ## Code in Action Check `examples/python/temporal_example.py` for a complete script that: * Adds two biographies (with dates) * Runs `cognee.cognify(temporal_cognify=True)` * Queries with `SearchType.TEMPORAL` for time-aware answers Understand knowledge graph fundamentals Explore temporal API endpoints --- > To find navigation and other pages in this documentation, fetch the llms.txt file at: https://docs.cognee.ai/llms.txt