Skip to content

The Easy Timeline plugin for Obsidian allows you to create timelines easily.

License

Notifications You must be signed in to change notification settings

Romelium/obsidian-easy-timeline

Repository files navigation

Easy Timeline

The Easy Timeline plugin for Obsidian allows you to create timelines easily. It’s inspired by the historica plugin, and it’s designed for those who need a simple way to visualize events over time. It allows references in properties to be used by relative dates.

How to Use Basic

You want to turn this into a timeline

Today. Slow breakfast. Organized, felt good. Watched a space doc, had veggies and quinoa.

Tomorrow. Quick jog. Worked on a project. Dinner with friends.

Dec 31. Walked, reflected. Last-minute shopping. Celebrated with friends.

Jan 1. Slept in, journaled. Walked, read. Quiet night, healthy meal, episodes.

Jan 2. Made a plan. Caught up on emails, watched snow. Tried chili, read.

Creating a timeline is as easy as adding a simple block. Just use the following syntax:

```timeline
```

That's all! The timeline block will automatically be processed, and each section will be defined by two new lines (or one in the settings).

basic

A Bit More

Block Content

You can either format it this way, where the timeline block renders content using the text outside the block:

Today. Slow breakfast. Organized, felt good. Watched a space doc, had veggies and quinoa.

Tomorrow. Quick jog. Worked on a project. Dinner with friends.

Dec 31. Walked, reflected. Last-minute shopping. Celebrated with friends.

Jan 1. Slept in, journaled. Walked, read. Quiet night, healthy meal, episodes.

Jan 2. Made a plan. Caught up on emails, watched snow. Tried chili, read.

```timeline
```

Or, you can format it this way, by placing the content inside the block. However, this approach does not allow you to use explicit settings:

```timeline
Today. Slow breakfast. Organized, felt good. Watched a space doc, had veggies and quinoa.

Tomorrow. Quick jog. Worked on a project. Dinner with friends.

Dec 31. Walked, reflected. Last-minute shopping. Celebrated with friends.

Jan 1. Slept in, journaled. Walked, read. Quiet night, healthy meal, episodes.

Jan 2. Made a plan. Caught up on emails, watched snow. Tried chili, read.
```

Dates

Each section's date is determined by the first valid date mentioned in the section. You can use various formats supported by Chronos, including:

  • Relative Dates:

    • Today
    • Tomorrow
    • 5 days ago
    • 2 weeks from now
    • This Friday at 13:00
  • Specific Dates:

    • 17 August 2013
    • Sat Aug 17, 2013 18:40:39
    • 2014-11-30T08:15:30

Feel free to experiment with other date formats recognized by Chronos.

Reference

The relative dates (e.g. Today, Last week) will use the file created date as the reference by default but you can set it by having a 'created' property which the Update Time is useful for. Use any valid Chronos specific date format:

created: 2018-12-14T18:56

or

created: 14 December 2018, at 6:56pm

Customize sections

Customize sections using inline metadata for each sections such as author, icon, status, and title. The title metadata can be inferred from the heading. Icon use fontawesome. Status will change the color of the icon, the possible values are success, failure, warning, info. Like this:

## Cool header
A week ago, [author:: John Doe] did his [icon:: house] chores, so it is a [status:: success]. Looking forward to the next phase is exciting, but reflecting on the journey—from yesterday, through today, and into tomorrow—brings clarity and gratitude. 

customized section

If you don't want dataview to detect a inline metadata, just use a single colon (e.g. [author: John Doe] instead of [author:: John Doe])

Settings

  • You can use a regex pattern to find which property to use by toggling the Use Regex setting. (e.g. set (creat|ref) in Reference setting)
  • You can set which property name or regex to be used to get the reference by the Reference setting.
  • The default sorting is ascending. You can set the default sorting of a timeline to be ascending or descending by the Default Sorting setting.
  • You can set if sections will be divided by a single line or double line by toggling the Use Regex setting.

Customizing the Source Block

Explicit Reference

To explicitly set the reference for a timeline block, you can include a reference field in the source. This will have the highest precedence. Use any valid Chronos specific date format:

```timeline
reference: 2011 Oct 25
```

or

```timeline
reference: 2011-10-25
```

Explicit Sorting

To explicitly set the sorting for a timeline block. you can include a sort field in the source. This will have the highest precedence.

```timeline
sort: asc
```

or

```timeline
sort: dest
```

or

```timeline
sort: Descending
```

Issues, Bugs, and Feature Requests

If you’ve found a bug, have an idea for a feature, or want to share feedback, please let me know by opening an issue.

I’ll do my best to get back to you quickly.

Funding

ko-fi