Timeline Event Sorter
How it works
Timelines organise historical events, project milestones, and narrative sequences in chronological order. When assembling a timeline from multiple sources, events are rarely gathered in date order — they arrive as notes, research findings, and bullet points in the order you found them. The Timeline Event Sorter takes a list of events with dates, sorts them chronologically, and formats them for display.
**Date format support** The sorter parses: ISO 8601 (2024-03-15), US format (March 15, 2024 or 03/15/2024), EU format (15 March 2024 or 15/03/2024), approximate dates ("circa 1850", "c. 1850", "~1850"), year-only (1789, ~1200 BCE), decade ("1960s"), century ("19th century"), and BC/BCE dates.
**BCE date handling** BC/BCE dates are sorted in reverse numeric order (1000 BCE comes before 500 BCE, which comes before 100 BCE). The display can show years as "500 BCE" or as negative years (−500) depending on the context.
**Historical timeline uses** History class: organise events from a chapter into a visual timeline for revision. Literature: sequence events in a novel's plot for analysis (especially non-linear narratives). Biography: organise a person's life events. Project management: arrange milestones and deliverables. Genealogy: organise family history events.
**Output formats** The tool generates: sorted plain text list; HTML/CSS horizontal timeline; Markdown list with dates as headers; or a structured JSON format suitable for import into timeline libraries (TimelineJS, Vis.js).
Privacy: all sorting runs in the browser. No data is transmitted.
Frequently Asked Questions
- Historians use several conventions for uncertain dates: 'c.' or 'circa' (Latin 'around') for approximate dates: c. 1066. 'fl.' (floruit, 'flourished') when exact birth/death dates are unknown but active period is documented. '?' for unknown dates. Ranges: 1350–1400. 'before' or 'after': before 476 CE. 'ca.' (circa) is interchangeable with 'c.' The timeline sorter handles all these conventions, treating 'c. 1066' as 1066 and 'fl. 1350–1400' as the midpoint (1375) for sorting purposes, with the original notation preserved in the display.
- For events with durations (World War II: 1939–1945; the Renaissance: ~14th–17th century), you have three options: sort by start date (most common for historical timelines), sort by end date (useful for 'when things were resolved'), or sort by midpoint. The tool defaults to start date for spanning events. For display, the full range is preserved: 'World War II (1939–1945)'. For events where the range is known but uncertain (the Bronze Age collapse: ~1200–1150 BCE), sort by the best estimate of the starting year.
- Accepted formats for the tool: '500 BCE', '500 BC', '-500', '500 B.C.E.'. The tool normalises all to negative year numbers internally for sorting (500 BCE = year −500). The display format preserves your original notation. Note: there is no year 0 in the proleptic Gregorian calendar used by historians — 1 BCE is immediately followed by 1 CE. Astronomers use a different convention (year 0 = 1 BCE), so astronomical year numbering and historical year numbering differ by 1 for BCE dates. The tool uses the historical convention (no year 0).
- The tool generates output in several formats: plain text (for pasting into any application), Markdown (compatible with many document editors), JSON (for programmatic use), and HTML/CSS (a styled visual timeline). For Google Slides or PowerPoint: use the plain text or Markdown output to structure your slide content, then apply visual formatting manually. TimelineJS (a free web service) accepts JSON input and produces interactive visual timelines that can be embedded or screenshotted for presentations. The tool's JSON export is formatted for direct import into TimelineJS.