Timelines that don't invent dates
CHRONOLOGY is an Agent Skill and a Python command-line tool. It turns notes, PDFs, books, logs and tables into checked chronologies. Vague dates stay vague, sources that disagree are flagged, contradictions are reported, and every event is checked against the source's own words.
Interactive examples
Three sources, one timelineA witness, a police log and a newspaper merged, with the conflict and consistency errors highlighted.
Eight calendarsJulian, Hijri, Hebrew, Japanese eras, regnal and fiscal years, and the Hindu panchang, computed from the Sun and Moon.
Told vs. happenedA novel's flashbacks and flash-forwards, mapped. Open the "As told" view.
Self-checkFour planted errors (an invented quote, a misquote, a wrong year, a wrong page), all caught.
What slipped?Planned vs. actual milestones, asked "as of 1 April".
Incident timelineA to-the-second postmortem timeline with confidence scores.
What changed?A second run that reports new events, corrected dates and new contradictions.
Apollo 11The basics: zoom from century down to second, search, filter.
Why
- Ask a chatbot for a timeline and a date known only as "July 1969" quietly becomes 16 July. Here it stays a month, and the order between it and 16 July is marked as uncertain (≈).
- Shakespeare and Cervantes both "died on 23 April 1616", eleven days apart. One date is Julian, the other Gregorian. Calendar-aware sorting gets that right.
- Three accounts give 14:02, 14:10 and the next day for the same meeting. You see all three, flagged ⚠, not one picked at random.
Install
# Claude.ai / Claude Desktop: download chronology.zip from the latest release,
# then Customize → Skills → upload.
# Claude Code (personal skill)
git clone https://github.com/gauravnavgire/chronology
cp -r chronology/chronology ~/.claude/skills/
# Command line, no Claude needed (Python 3.9+, standard library only)
python chronology/chronology/scripts/chronology.py events.json -g day -l tree