This prompt is designed for research assistant and intelligence analysis systems that must reconstruct a chronological sequence of events from multiple, temporally-diverse source documents. The core job-to-be-done is converting a messy corpus of reports, articles, and filings into a single, ordered, and verifiable timeline. The ideal user is an engineering lead or AI builder integrating this capability into a product where analysts need to understand what happened and when, without manually cross-referencing dates across dozens of documents. Required context includes a set of source documents with explicit or implicit temporal markers, a target topic or entity to track, and a defined time window of interest.
Prompt
Event Timeline Reconstruction Prompt

When to Use This Prompt
Defines the job-to-be-done, ideal user, required context, and clear boundaries for the Event Timeline Reconstruction Prompt.
Use this prompt when you have a static or slowly-updating corpus covering a topic over time and you need a structured output that resolves date conflicts, identifies information gaps, and attaches source citations and confidence indicators to each event. This is a batch processing pattern, not a real-time detection system. It excels in post-hoc analysis, such as building a litigation timeline from discovery documents, reconstructing a product's development history from internal memos, or synthesizing a competitive landscape's evolution from news archives. The prompt's value lies in its ability to handle implicit dates (e.g., 'last quarter'), normalize them to a standard format, and flag when sources disagree on the sequence or details of events.
Do not use this prompt for real-time streaming event detection, where latency and incremental updates are the primary concern. It is also the wrong tool when the temporal order is already known and trivial, or when you are summarizing a single, chronologically-structured document. Avoid this prompt if your source documents lack any temporal signals, as the model will be forced to hallucinate a sequence. For high-stakes intelligence or legal use cases, always pair this prompt's output with a human review stage and an eval harness that checks for temporal ordering accuracy, citation grounding, and conflict resolution quality before the timeline is accepted as a work product.
Use Case Fit
Where the Event Timeline Reconstruction Prompt works and where it does not. This prompt is designed for multi-source chronological synthesis, not for single-document summarization or real-time streaming event detection.
Good Fit: Multi-Source Intelligence Briefs
Use when: You have 5–50 temporally-diverse documents (reports, articles, filings) covering the same event sequence and need a single ordered timeline with source citations. Guardrail: Pre-filter sources for minimum authority before timeline generation to prevent low-quality sources from introducing false events.
Bad Fit: Real-Time Breaking News
Avoid when: Events are unfolding in real time and source documents are incomplete or unverified streams. The prompt assumes a stable evidence set and will produce timelines that look authoritative but miss critical gaps. Guardrail: Use a streaming event detection pipeline with human-in-the-loop verification instead; reserve this prompt for post-hoc reconstruction.
Required Inputs
What you must provide: A set of source documents with explicit or extractable dates, a target event domain or topic, and a desired output granularity (daily, hourly, milestone-level). Guardrail: Run a publication date extraction step before timeline generation; missing or ambiguous dates will cause ordering errors and misplaced confidence.
Operational Risk: Date Conflict Cascades
What to watch: When two sources disagree on an event date, the model may silently pick one or produce an averaged timestamp that matches neither source. Guardrail: Require the prompt to output explicit conflict annotations with both source claims and a confidence flag rather than resolving conflicts automatically. Human review required for high-stakes timelines.
Operational Risk: Information Gaps Become Fabrication
What to watch: When the evidence set has temporal gaps (missing weeks or months), the model may invent plausible bridging events to create a continuous narrative. Guardrail: Instruct the prompt to mark gap periods explicitly with '[NO EVIDENCE: date range]' markers and forbid interpolation without source support. Test with deliberately gapped datasets.
Scale Limit: Document Count and Context Window
What to watch: Timeline quality degrades when the evidence set exceeds the model's effective context window or when too many events compete for attention. Guardrail: Chunk large document sets by time period, generate sub-timelines, then run a merge pass with conflict resolution. Monitor for dropped events in the merge step.
Copy-Ready Prompt Template
A reusable prompt template for reconstructing chronological event timelines from multiple temporally-diverse sources, with placeholders for inputs, constraints, and output schema.
This prompt template is designed to be pasted directly into your model call. It instructs the model to act as an intelligence analyst, reconstructing an event timeline from the provided sources. The template uses square-bracket placeholders for all dynamic inputs—replace these with your specific query, source documents, output format requirements, and operational constraints before execution. The prompt is self-contained and includes instructions for handling date conflicts, identifying information gaps, and assigning confidence levels to each timeline entry.
textYou are an intelligence analyst reconstructing a chronological event timeline. ## TASK Reconstruct a detailed, chronologically ordered timeline of events related to the query below, using only the provided source documents. Resolve date conflicts where possible, identify information gaps, and assign a confidence level to each event. ## QUERY [QUERY] ## SOURCE DOCUMENTS [DOCUMENTS] ## OUTPUT SCHEMA Produce a JSON object with the following structure: { "timeline_title": "string", "query_temporal_scope": { "earliest_event_date": "ISO 8601 or null", "latest_event_date": "ISO 8601 or null", "scope_confidence": "high | medium | low" }, "events": [ { "event_id": "string", "date": "ISO 8601 date or date-time", "date_precision": "exact | day | month | year | range | approximate", "headline": "string (one-line summary)", "description": "string (detailed factual description)", "confidence": "high | medium | low", "source_ids": ["string"], "conflicting_sources": [ { "source_id": "string", "conflicting_date": "ISO 8601", "conflict_note": "string" } ], "information_gaps": ["string"] } ], "unresolved_conflicts": [ { "event_description": "string", "conflicting_dates": ["ISO 8601"], "source_ids": ["string"], "resolution_attempt": "string" } ], "information_gaps_summary": ["string"], "methodology_notes": "string" } ## CONSTRAINTS [CONSTRAINTS] ## INSTRUCTIONS 1. Extract all events from the source documents that are relevant to the query. 2. Order events chronologically from earliest to latest. 3. For each event, assign a confidence level: - **high**: Multiple sources agree on the date and details, or a single highly authoritative source provides precise information. - **medium**: A single source provides the information, or sources agree on the event but differ slightly on details. - **low**: The date or details are inferred, approximate, or come from a source with questionable authority. 4. When sources disagree on a date: - Prefer the source with higher authority or closer temporal proximity to the event. - Document the conflict in the `conflicting_sources` array. - If unresolvable, add the conflict to `unresolved_conflicts` and use the most likely date with `confidence: "low"`. 5. For each event, explicitly list any missing information (e.g., "exact time unknown," "location not reported"). 6. If a date is approximate, set `date_precision` accordingly and note the uncertainty. 7. Do not fabricate events, dates, or details not present in the source documents. 8. If the provided sources are insufficient to reconstruct a meaningful timeline, return an empty `events` array and explain the insufficiency in `methodology_notes`.
To adapt this template for your application, replace the [QUERY] placeholder with the user's question or the topic of the timeline. Populate [DOCUMENTS] with your retrieved passages, ensuring each has a unique source_id for citation. The [CONSTRAINTS] placeholder is where you inject domain-specific rules, such as "Only include events from the last 30 days" or "Prioritize sources from regulatory filings over news articles." For high-stakes domains like legal or financial intelligence, always route the final output through a human review step before it is considered authoritative.
Prompt Variables
Required inputs for the Event Timeline Reconstruction Prompt. Each placeholder must be populated before the prompt is assembled and sent to the model. Validation notes describe how to programmatically check that the input is well-formed before incurring inference cost.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[QUERY_TOPIC] | The event, entity, or subject for which a timeline is requested | Acquisition of SolarFlare by NextGen Energy, 2024 | Non-empty string; length between 3 and 500 characters; reject if only whitespace or punctuation |
[SOURCE_DOCUMENTS] | Array of source objects, each containing text content, publication date, source identifier, and optional authority score | [{"id":"src-01","text":"...","published":"2024-11-15T09:00:00Z","source":"Reuters","authority":0.85}] | Must be a valid JSON array with at least 2 objects; each object requires id, text, and published fields; published must parse to a valid ISO 8601 timestamp; reject if array is empty or any required field is missing |
[TEMPORAL_SCOPE] | The date range bounding the timeline reconstruction, specified as start and end ISO 8601 timestamps | {"start":"2024-01-01T00:00:00Z","end":"2024-12-31T23:59:59Z"} | Must be a valid JSON object with start and end keys; both must parse to valid ISO 8601 timestamps; start must be before end; reject if scope exceeds 100 years or is null |
[CONFIDENCE_THRESHOLD] | Minimum confidence score (0.0 to 1.0) required to include an event in the output timeline | 0.7 | Must be a float between 0.0 and 1.0 inclusive; reject if non-numeric, negative, or greater than 1.0; default to 0.5 if not provided |
[OUTPUT_SCHEMA] | JSON Schema definition that the output timeline must conform to, specifying event fields, required properties, and types | {"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"description":{"type":"string"},"confidence":{"type":"number"},"sources":{"type":"array","items":{"type":"string"}}}}}},"required":["events"]} | Must be a valid JSON Schema object; parse with a JSON Schema validator library; reject if schema is malformed, empty, or does not define an events array; warn if schema lacks confidence or sources fields |
[DATE_CONFLICT_RESOLUTION] | Instruction specifying how to resolve conflicting dates for the same event across sources: prefer_earliest, prefer_latest, prefer_highest_authority, flag_all, or majority_vote | prefer_highest_authority | Must be one of the enumerated string values; reject if not in allowed set; null allowed only if no conflict resolution is desired and all conflicts should be flagged |
[MAX_EVENTS] | Upper bound on the number of events to include in the output timeline to control response length and token cost | 50 | Must be a positive integer between 1 and 500; reject if non-integer, zero, negative, or exceeds 500; default to 100 if not provided |
Implementation Harness Notes
How to wire the Event Timeline Reconstruction Prompt into a production application with validation, retries, and confidence scoring.
The Event Timeline Reconstruction Prompt is designed to be embedded in a multi-step pipeline, not called once in isolation. A typical harness ingests a set of temporally-diverse source documents, calls the prompt to produce a structured timeline, validates the output against temporal ordering constraints, and either returns the result or triggers a repair loop. The prompt expects a list of source texts with associated publication dates as input, so the application layer must handle document ingestion, date extraction, and deduplication before the prompt is invoked. For high-stakes intelligence or research workflows, the harness should also log every reconstruction attempt with the full input set, model version, and raw output for auditability.
Validation and Repair Loop: After the prompt returns a JSON timeline, the harness must run structural and temporal validation before the output reaches a user. Structural checks verify that every event has the required fields: event_id, date, description, source_ids, and confidence. Temporal ordering checks confirm that events are sorted chronologically and that no event has a date earlier than its preceding event. Conflict resolution quality can be scored by a separate LLM-as-judge eval that checks whether the conflict_notes field adequately explains date disagreements across sources. If validation fails, the harness should retry the prompt once with the validation errors appended as additional context. After two failures, the harness should escalate to a human reviewer rather than silently returning a broken timeline. For model choice, use a model with strong structured output support and a context window large enough to hold all source documents plus the prompt. GPT-4o, Claude 3.5 Sonnet, and Gemini 1.5 Pro are all suitable; open-weight models like Llama 3.1 70B can work but require stricter output format enforcement.
Confidence Thresholds and Human Review: The prompt produces per-event confidence scores, which the harness should use to gate output delivery. Events with confidence below 0.6 should be flagged for human review before inclusion in the final timeline. Events where source_ids contains only one source and that source has low authority should also be escalated. The harness can implement a simple rule: if more than 20% of events in a timeline fall below the confidence threshold, the entire reconstruction is held for review. For applications where timelines feed downstream decision-making, log every confidence score alongside the event for later analysis of reconstruction reliability. Avoid the temptation to strip low-confidence events silently; users need to see information gaps, not a falsely clean timeline. The next step after implementing this harness is to build a regression test suite with known timelines, intentionally conflicting sources, and edge cases like missing dates or documents with no temporal information.
Expected Output Contract
Defines the JSON schema, field types, and validation rules for the event timeline reconstruction output. Use this contract to parse, validate, and integrate the model's response into downstream applications.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
timeline | Array of event objects | Array length must be >= 1. If no events can be reconstructed, return a single event with status 'unable_to_reconstruct'. | |
timeline[].event_id | String (UUID v4) | Must be a valid UUID v4 string. Uniquely identifies this event across all reconstruction runs. | |
timeline[].timestamp | String (ISO 8601) | Must parse to a valid ISO 8601 datetime. If only a date is known, use YYYY-MM-DD format. If the time is approximate, append a '~' prefix. | |
timeline[].description | String | Must be a non-empty string between 10 and 500 characters. Must not contain unresolved placeholders or markdown. | |
timeline[].supporting_sources | Array of source objects | Array length must be >= 1. Each source must have a source_id and a relevant_excerpt. | |
timeline[].supporting_sources[].source_id | String | Must match a source_id provided in the [SOURCES] input array. Unmatched IDs must trigger a retry. | |
timeline[].supporting_sources[].relevant_excerpt | String | Must be a direct quote or close paraphrase from the source. Length must be between 20 and 300 characters. | |
timeline[].confidence_score | Number (float) | Must be a float between 0.0 and 1.0. Represents the model's confidence in the event's accuracy. Scores below 0.5 must trigger a human review flag. | |
timeline[].date_conflict_flag | Boolean | Must be true if multiple sources report conflicting dates for this event. If true, the conflicts array must be populated. | |
timeline[].conflicts | Array of conflict objects | Required if date_conflict_flag is true. Each object must detail the conflicting source_ids and their reported dates. | |
timeline[].information_gap_flag | Boolean | Must be true if the model identifies a missing or unclear temporal detail. If true, the gap_description field must be populated. | |
timeline[].gap_description | String | Required if information_gap_flag is true. Must describe what information is missing and why it matters for the timeline. |
Common Failure Modes
Event timeline reconstruction is brittle. Multiple sources, conflicting dates, and ambiguous language break naive prompts. These are the most common production failures and how to prevent them.
Date Format Ambiguity
What to watch: The model normalizes '03/04/2024' incorrectly, swapping month and day based on locale assumptions. This silently corrupts the timeline order. Guardrail: Require ISO 8601 output (YYYY-MM-DD) in the schema. Add a pre-processing step that extracts and normalizes all date strings before timeline assembly.
Conflicting Source Resolution
What to watch: Two sources report different dates for the same event. The model picks one arbitrarily or hallucinates a compromise date, losing the conflict signal. Guardrail: Instruct the prompt to output a conflicts array for each event, preserving both claims. Add an eval check that penalizes timelines with zero conflicts when the input sources are known to disagree.
Temporal Ordering Errors
What to watch: The model places an event before its documented prerequisite (e.g., 'product launched' before 'funding secured'). The narrative reads plausibly but the sequence is wrong. Guardrail: Add a post-generation validator that checks event timestamps are monotonically increasing. For relative events, enforce a must_occur_after constraint in the output schema.
Missing Information Gap-Filling
What to watch: The model invents plausible dates or events to fill gaps in the source material, producing a complete-looking but fabricated timeline. Guardrail: Require an explicit confidence field per event (HIGH/MEDIUM/LOW). Instruct the model to output date: null and confidence: LOW for unverifiable events. Add a hallucination eval that flags events with no source citation.
Relative Time Misinterpretation
What to watch: Phrases like 'last quarter,' 'earlier this year,' or 'next month' are anchored to the wrong reference point (document publication date vs. current date). Guardrail: Always pass an explicit [ANCHOR_DATE] variable into the prompt. Instruct the model to resolve all relative expressions against this anchor and include the resolved date in the output.
Source Citation Drift
What to watch: The model attributes an event to the wrong source, especially when multiple sources discuss similar events. Downstream users trust the citation and propagate the error. Guardrail: Require inline citation spans ([source_id]) for every event field, not just a bibliography at the end. Add a citation verification eval that checks each cited source actually contains the claimed date.
Evaluation Rubric
Use this rubric to test the quality of the Event Timeline Reconstruction Prompt output before shipping. Each criterion targets a specific failure mode common in multi-source timeline generation.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Temporal Ordering Accuracy | All events are sorted in ascending chronological order. No event is placed before a prior event it depends on. | Events appear out of sequence. An event dated 2024-06-15 appears before an event dated 2024-06-10. | Parse output timestamps. Assert |
Date Conflict Resolution | Every conflicting date across sources is explicitly noted in the [CONFLICT_NOTES] field with source attribution and the chosen resolution rationale. | A date conflict exists in the source set but the output presents a single date without acknowledging the discrepancy. | Compare source dates in [INPUT_SOURCES] to output dates. Assert that any variance > 0 days has a corresponding entry in [CONFLICT_NOTES]. |
Source Citation Completeness | Every event in the timeline includes at least one source citation in the [CITATIONS] field. Citations map back to provided [INPUT_SOURCES]. | An event is listed with a date and description but has an empty or missing [CITATIONS] array. | Iterate over the output events array. Assert |
Information Gap Identification | Gaps in the timeline where data is missing between events are explicitly listed in the [INFORMATION_GAPS] array with a description of the missing period. | A multi-day or multi-hour gap exists between two events but the [INFORMATION_GAPS] array is empty. | Calculate time deltas between consecutive events. Assert that any delta exceeding the [GAP_THRESHOLD] parameter has a corresponding entry in [INFORMATION_GAPS]. |
Confidence Indicator Calibration | Every event has a | All events have a confidence score of 1.0, or an event with a single uncorroborated source has a score >= 0.9. | Check that |
Output Schema Compliance | The output is valid JSON matching the [OUTPUT_SCHEMA] exactly. All required fields are present and non-null. | JSON parsing fails. A required field like | Validate the raw output string against the [OUTPUT_SCHEMA] using a JSON schema validator. Assert no validation errors. |
Hallucinated Source Rejection | No event description contains specific details (names, numbers, locations) not present in the provided [INPUT_SOURCES]. | An event description includes a specific quote or figure that cannot be found verbatim or in substance in any input source. | Extract all named entities and numbers from output descriptions. Assert each is present in the [INPUT_SOURCES] text via substring or semantic match. |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Use the base prompt with a single source document and lighter validation. Replace strict JSON schema enforcement with a simpler structured text format. Focus on getting the chronological reasoning right before adding production constraints.
- Remove the [OUTPUT_SCHEMA] placeholder and ask for a markdown table instead.
- Reduce the number of required sources from multiple to one or two.
- Skip confidence scoring and gap identification until the timeline ordering logic is stable.
Watch for
- The model inventing dates when sources are ambiguous.
- Events appearing out of order when timestamps are imprecise.
- Missing source citations when the prompt doesn't enforce them strictly.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us