Timeline: The powerful idea of temporal representation in obsidian

I would like to suggest an idea that I have been thinking about for a long time, which has been increasingly occupying my thoughts, and which I believe could be interesting from a visualization standpoint, such as the GraphView.

My idea is to integrate a timeline into the software, allowing for a temporal visualization of all our notes.

I think many of us need to situate events in time. That’s why I’m convinced that this temporal representation in the form of a timeline could be very useful for us. Moreover, with the advent of Canva, I thought that a dedicated interface for a timeline could be possible. I hope I’m not the only one for whom this temporal representation is important.

My dream would be to be able to integrate all my notes into a timeline, to be able to visualize them easily and situate them in time.

*To start with, the simplest thing would be to create a timeline based on the date of creation of our notes. This functionality would probably be feasible given the existence of the “Timelapse” option in GraphView, which already allows for a temporal representation of the creation of our notes. *

However, this idea is rather basic and doesn’t add much. It doesn’t take into account the content of the note.

That’s why the most interesting idea would be to be able to place our notes at a specific date on the timeline. We could use the metadata of the note to define its date.

First of all, it’s important to remember that a timeline is composed of different elements: a graduated time bar and markers that represent either a specific moment or a period.

Our time scale would be dynamic, we could zoom in or out in time, similar to what we can see in this video: Time: The History & Future of Everything – Remastered - YouTube.

To facilitate navigation and avoid getting lost in scales that are too large or too small, buttons could be added to directly access a scale by day, month or year, as well as a button to go to a specific date.

Then, events and different periods could be sorted and displayed using the tagging system. This would make it possible to create multiple timelines in one, and why not superimpose them for comparison. A similar system to Photoshop layers could be imagined, although tags are versatile enough to achieve something similar.

There would be several ways to represent this timeline, and it could be quite complex, especially with the use of tags. It could be linear, in the form of a Gantt chart, or even look like a calendar.

Here are some visuals that I have created, they are not perfect, and I do not have the answer to the ideal system.



I am aware that this is very complex, but I am convinced that such a representation has enormous potential combined with the note-taking system of Obsidian, whether for historical events, a personal journal, project management, creating a simple calendar, tracking habits, or even rewinding one’s life.

My perception of time may be personal, but it is such an important thing for me. I need a way to visualize it, and I hope I’m not the only one. That’s why the combination of the Obsidian note-taking system with a timeline seems essential and incredibly powerful.

28 Likes

Here’s a good example: SIMILE Widgets | Timeline (simile-widgets.org)
The project that developed it was moved to Git about 15 years ago, and has since developed into other things. I’d have to think some of that code could be used for an Obsidian based timeline, but I’m no coder, so not sure how difficult a journey that would be.

3 Likes

Excellent, it has been a while since I have been looking for something similar, it could be good to draw inspiration from it in order to find a way to implement it in Obsidian.

Related: There are some existing timeline plugins, but I don’t think any are meant to handle all the notes in a vault or to do the fancy zooming stuff.

I have been thinking about something like this in relation to mind mapping software for a long time too.

The central idea that keeps coming to me is to add a z axis to the graph view so that it is a 3d representation that can be rotated with the z axis being time.

1 Like

Indeed it already has plugins to make timelines, but I find them several defaults.

If I’m not mistaken, they all appear vertically, so I thought that an interface like what the graphview or canva offers where you could move with the mouse would be more interesting.

Not to mention that these plugins do not place notes in a timeline, but allow to create a timeline in notes, it is useful, but the system I have in mind would be used almost as much as the graphview, simply a temporal representation of the notes to which a date has been given

1 Like

I dont know how hard this kind of thing is to create but that a cool idea to explore. It’s all the more ingenious because it keeps the links and cluster of notes

It reminds me of this kind of representation The helical model - our solar system is a vortex - YouTube (replace motion with time), explicit and visual enough to understand time

1 Like

After seeing some people talk about it I just discovered Markwhen.

It is an amazing timeline tool that works in markdown, it is probably the most advanced tool and ends up like this.

I am not a developer, but do you think it is possible to use what was done with Markwhen to create a similar plugin in obisidan in order to mix with the note taking system and use our notes in a timeline ?

Here are several useful links for Markwhen

Markwhen : https://markwhen.com/
Github : https://github.com/mark-when/markwhen
Documentation : https://docs.markwhen.com/
Discord server: https://discord.gg/3rTpUD94ac

The developer has already mentioned Obsidian and plugins, but I don’t know what it is today, maybe it is possible to collaborate with him for the implementation of an obsidian plugin.

(sorry for my english)

9 Likes

Looks very cool. Would love if someone could make it work in Obsidian!

I was just about to add a plugin suggestion for markwhen.

It seems incredibly powerful and at least the rendering engine is open source on Github.
I’m currently trying to include it as a custom frame in Obsidian so I can use Gantt charts in Obsidian, but implementing this as a plugin would be incredibly useful.

2 Likes

An Obsidian plugin enabling Markwhen support is being discussed here: Obsidian support · Issue #103 · mark-when/markwhen · GitHub

5 Likes

I would like to help, but I am not a developer.

I am closely following the news and progress. Thank you for working on it.

1 Like

It’s not difficult, but it feels unnecessary.
If you want,from zero, you can do this in just three days, js+html+css+react,

Markwhen looks all well and fine, but is it really necessary to build a timeline from scratch every time you need one (and learn another coding language to be able to do this)?
Wouldn’t it be much more helpful (and cooler), if this could be done using a simple search command (like a dataview query)? I posted a feature request for this here, but don’t have much faith that this will be done any time soon.
As a writer I often struggle with creating timelines, but I imagine that there are lots of other use cases (historians, journalists, all types of sciences that include time-related subjects), and even the pure wish to create a timeline of your notes, or some notes with a certain tag could be an interesting application.
For the pure creation of a timeline I found an app a few weeks ago (I described it HERE ). That app does not include an export to markdown, but you can the timeline to an svg-file, which can the be altered and linked to all necessary notes via the Excalidraw plugin.
This might be helpful for a limited time, but needs much extra work any time there is need for a display of time related events, periods or epochs. What is actually needed, is a way to create a timeline of data that already exists: as Metadata in any note (as creation-date, modification-date, or a date that is in a metadata-field (which I would presume is required anyway in the before mentioned disciplines).
So why create another markdown note with a special syntax when all relevant date already exists?

I would like to propose the following idea:
Use the markwhen tool as a “display-engine”, whose input can be provided by a “dataview-like” query, based on tags or folders and metadata already existing (or declarable) in obsidian notes.

Sorry, long post. Thanks for your patience.

P.S. @redcod : Sorry to say so, but its nice If you can do this and have the time to spend 3 days on this. But I would fathom that most of the users of obsidian use the app for working in their field of expertise, not for learning 4 programming languages and programming with them. Let alone having the time. I certainly don’t. But if it is that easy, why don’t you take on the task and share it with us?
No offense!

5 Likes

I think the timeline functionality Markwhen provides and the timeline functionality you’re describing are for different use cases.

It seems like you would like something similar to Zotero’s Timeline feature but for notes in Obsidian. Is that accurate?

1 Like

I don’t think so. They are just different applications of the same process. The difference is just about which metadata field is being used.
In the terminology of dataview: you may use implicit fields (like “creation-date” (can be queried in different ways)) or an explicit field (like “date-of-birth” (which might be queried e.g. via “this.date-of-birth”).
From the perspective of dataview these are both datapoints, which are either to be displayed or used as criteria.
The problem lies mostly in the way, these datapoints are being displayed. As of today there seems to be a plugin (oz-calendar) that offers the functionality of Zotero, though not in a gantt-chart, but a calendar view. That is not helpful for the overview-functionality one would want for a proper timeline-view.
What I am proposing is a more generalized approach, as described in the post under link No. 1 above (which I won’t replicate here, but encourage you to read).
The only condition needed for something like that to work would be some metadata fields in the notes that are subject of the query. Those are:

  1. start-date
  2. end-date
  3. duration (in case there is no definite end-date)
  4. grouping-field(s) (which are optional e.g. for different time-threads)

My argument is this: If there is a strictly defined markdown-language in markwhen to describe every event that should be displayed, this code can also be produced by the plugin itself, based on the metadata in the implicit or explicit fields.

This way the user is enabled to produce any timeline, based on his notes and their content. In a way, its just a mode of display of the results of a dataview-query.

2 Likes

I think @redcod was responding to the original poster saying they’re weren’t sure how easy or hard it would be for someone who knows how to make plugins to make a plugin like this. I don’t think they were saying, “You want it, you build it.”

You can make a post like this easier on people by using paragraph breaks (like you did in the last part).

Been searching for something similar for a long time, with nothing fitting the bill. My 2c:

  1. Learning yet another markup language just for timelines will certainly veer into silly territory AFAIC.

  2. Obsidian is a note-taking system made for notes (hence the “Readable line length” preference). If a timeline plugin is to be made, devs should at least consider making the default orientation vertical. I’m probably biased in my use case because I mainly need this for historical research, not project planning, and scrolling “up” rather than “left” into the past seems very natural, but it might apply to other folks’ needs as well.

  3. I’ve achieved a very useful historical view, although with no fancy period lines or anything, by using dataview, using conditional emoji icons, conditional CSS etc. Filtering events by type, category, time span etc is very easy to do. IMHO this shouldn’t be over-engineered, since dataview is already extremely powerful.

1 Like

I would think that horizontal and vertical timelines should both be possible. Just depending on the prefences of the user. I personally prefer something like horizontal charts (similar to gantt charts) since it gives you more the sense of parallel developments, but I can very well imagine cases in which vertical orientation would be preferable.

It would be great to have a description of your system in the Share & Showcase category! (No pressure, tho. :slightly_smiling_face:)