Zoomable Timeline

I’ve been searching and trying things out on and off for the past four months but I haven’t been able to find anything, so here it goes…

For the sake of keeping track of historical events (in fictional writing) I would LOVE a way to visualize a timeline that

  • is zoomable/collapsable in a customizable way with custom preset units
  • allows links to other notes (obviously)
  • is stored in a way that allows for annotation/events in the meta-note without having to create individual notes for every annotation

I imagine a user experience like opening the timeline to, say, a view that shows three centuries with display names visible of all events of a certain tag/category (toggle visibility of display names by thresholds). Then when you zoom in, it starts breaking up into individual months and as the threshold changes, so does the visibility of displayed events.

Basically this would enable me to organize everything that ever happened in one single timeline, so I could see both “this is the bronze age, and this is modern times” as well as “this is the specific day Alex stepped outside” without events of the respective other category cluttering up the view and without having to scroll excessive lengths of time when I just want to switch over to the next century.

I found an example of what I imagine this to work like here: Timeline | Basic demo
with this being the documentation for it: timeline - vis.js - A dynamic, browser based visualization library.
Another (really cool) example is this: http://timezoom.org/

I can’t believe I’m the only one who ever wished for something like this to exist, but (as you can probably guess) I don’t really know any coding beyond what I can manage through some logic, trial and error and an understanding of the english language…

Is there an obvious way to do this that I’m missing? Other ideas? Workarounds using preexisting code like the one mentioned above? I’m thankful for any suggestions or new approaches to this!

This person seems to want some of what you want: