April's Automatic Timelines

by April Gras
5
4
3
2
1
Score: 65/100

Description

The April's Automatic Timelines plugin enables users to generate visually organized timelines in Obsidian by tagging notes with specific metadata. Designed for storytelling and world-building, the plugin supports flexible date formats, advanced metadata customization, and inline events to create detailed timelines. Users can override global timeline settings for specific cases, customize how date tokens are displayed, and manage complex time systems with ease. The plugin automatically generates timeline cards for tagged notes, displaying customized titles, content, and images.

Reviews

No reviews yet.

Stats

192
stars
57,122
downloads
8
forks
1,096
days
155
days
166
days
146
total PRs
8
open PRs
83
closed PRs
55
merged PRs
91
total issues
27
open issues
64
closed issues
13
commits

README file from

Github

Aprils automatic timelines

A theme agnostic timeline generator for obsidian

This plugins allows you to tag notes to generate timelines. It's designed with story telling in mind.

Sample vault with basic examples

TimelineSampleVault.zip

Here's a zip file of a obsidian vault with various basic examples to help you build timelines. Alternatively Josh Plunkett did a tutorial video covering the basics

How to use

Start by adding some metadata to the notes that you want to appear in your timeline.

aat-event-start-date: 359 # Required
aat-event-end-date: 435 # Optional, can be set to `true` if you want it to span throughout the entire timeline
aat-render-enabled: true # Enables this note to be rendered in a timeline
timelines: [timeline, event] # This note should be rendered in the timeline with the name "timeline" or "event"

Once you tagged at least one note create a new note and add a new markdown code block using three backquotes and flagging it as aat-vertical and adding the name of the timeline as it's content. You can also give multiple names to your timeline by separating the values with a , (This value can be changed in the settings)

image

This will scan the vault for all notes flagged to render inside the timeline timeline

Behind the scenes the plugin will parse the content and generate a card for each note. The only manual content needed to create a card in a timeline is the start date.

Additional metadata keys

Sometimes the content of a note is not exactly what you want to appear in the card. To remedy that, the plugin exposes three keys that are by default:

aat-event-title: New title # Used to override the title of a generated card.
aat-event-body: New card body # Used to override the text content of a generated card.
aat-event-picture: https://f4.bcbits.com/img/a1344871335_65 #Some external link, support for internal links is missing for now
Advanced date formats

Sometimes good old year-month-day timeformat just doesn't cut it for your world and you have a more complex timesystem in use. The plugin exposes 3 majors settings to help achieve your desired time format. Before getting into too many details make sure you're familiar with RegExps and named capture groups within them. If this is not the case fireship.io has a great video for beginners to start your learning journey.

Date Parser Regex

By default the plugin will rely on this RegExp

(?<year>-?[0-9]*)-(?<month>-?[0-9]*)-(?<day>-?[0-9]*)

As you can see it will capture any date that follows the following format: numbers-numbers-numbers. But there's a little subtlety here. The named capture groups <year> <month> and <day>. These will become important latter down the line.

Date Parser Group Priority

This setting should be built directly off the previously created RegExp. In the case of the default regex we have 3 main tokens. year month and day. You can find them in the named capture groups.

In this setting you should order the tokens per weights. So in our case: year,month,day Every token should follow same syntax used in the named capture groups from the previous RegExp and be separated by a single comma (,).

Date Display Format

The most straight forward of all three date format settings. This is the template for the actually in card display. Just wrap every token in {} and format it the way you like. For example to display yyyy-MM-dd we'll write: {year}-{month}-{day}.

Example fantasy date formats.
cycle-moon-phase-day

Let's get a little wild and imagine a world where time is tracked this way

  • Cycles are the hightest value of time, each cycle can see 3 moons come and go.
  • Moons are more frequent than cycles and are comprised of phases.
  • Phases are more frequent than moons per cycle and are comprised of days.
  • Days are the lowest relevant time unit in this system.

Let's say in our metadata we want to store the value as such

# 14 phases & 23 days on the 2'nd moon of the 687'th cycle
aat-event-start-date: 14&23-2M-687C

Our regex would look something like this

(?<phase>[0-9]*)\&(?<day>[0-9]*)-(?<moon>[0-9]*)M-(?<cycle>[0-9]*)C

One capture group per date token can be found. Now to set our date parser group priority: cycle,moon,phase,day

And let's say we want a fairly minimal display format where only the cycle and the moon are displayed.

cycle {cycle}, {moon}

The end result for our initially declared metadata would look something like: cycle 687, 2.

Date token types

In some cases numbers displaying your dates as plain numbers won't really cut it. This is where date token types come in. For now they come in two flavors

  • numerical: These date tokens should be displayed as default, for example the day and the year in 06 july 2018 are numerical date tokens. The day token has a minimal length of 2 and the year token has a minimal length of 4.
  • string: These are a bit more cumbersome to configure but add great visibility. For instance in our previous example (06 july 2018) the month token is a string date token. To configure your date tokens head to the plugins settings and use the Date Format Settings setup flow or edit them using advanced mode.
Timeline specific settings override

In some cases the output format used defined in the settings is too broad for some timelines. Let's say we defined the following tokens:

  • year
  • month
  • day
  • hour
  • minute

We could set our default output format to {day} {month} {year} and cover a lot of use cases. But let's say we have a timeline full of events that are potentially minutes apart. Instead of trying to compromise with other timelines display we could just write image This will override the globals settings but just for this one timeline line The syntax is as follow: dateDisplayFormat: whatever {token-name} some more whatever {other-token-name}. You can use as many and as little tokens as you want as long as they where defined earlier in the global settings.


In-line events

In-line events are enabled by default but if you don't need them you can always disable them to shave a couple processing cycles off each note. With this feature you can define events from inside a note. The event will ignore anything above it's position in a note, and parse the note from there on. This means you could describe all events for a single timeline inside one note. The following example could be in the middle of your note. Or at the end of it. Or anywhere really. Just not before the frontmatter

%%aat-inline-event
aat-event-start-date: 54
aat-event-end-date: true
aat-render-enabled: true
timelines: [timeline-name]
%%

The keys are the ones you setup in your settings. Check the sample vault for more examples on this.


Conditional token formatting

This feature has a bit of an overwhelming name but it basically allows for date system to incorporate token based formatting. I think an example would be 10x easier to understand. For example some people use B.C. and A.D. to annotate their dates. This can be configured in the settings of the plugin. For a more in dept example refer to the Sample vault chapter named 07 - Condition based token formats.

Development

As per obsidians unofficial documentation:

  • clone the repository in a test vault
  • pnpm install to install dependencies
  • pnpm run dev to launch development watcher

Testing

Before launching the unit tests, make sure to install the dependencies with pnpm install and use pnpm run prepare-vitest to setup some changes for vitests to work correctly with obsidians package.

Once that's out of the way use pnpm run test to just launch the tests. pnpm run test-ui to run the UI and see coverage in your browser.

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Meta Bind Plugin
4 years ago by Moritz Jung
A plugin for Obsidian to make your notes interactive with inline input fields, metadata displays, and buttons.
Datacore
8 months ago by Michael Brenan
Work-in-progress successor to Dataview with a focus on UX and speed.
Metadata Menu
4 years ago by mdelobelle
For data management enthusiasts : type and manage the metadata of your notes.
Supercharged Links
5 years ago by mdelobelle
obsidian plugin to add attributes and context menu options to internal links
Pretty Properties
6 months ago by Anareaty
Custom File Explorer sorting
4 years ago by SebastianMC
Take full control over the order and sorting of folders and notes in File Explorer in Obsidian
MetaEdit
5 years ago by Christian B. B. Houmann
MetaEdit for Obsidian
Charts View
5 years ago by caronchen
Data visualization solution in Obsidian, support plots and graphs.
Timeline
5 years ago by George Butco
Obisdian.md plugin for creating timelines
Auto Card Link
4 years ago by Nekoshita Yuki
Update time on edit
5 years ago by beaussan
Tasks Calendar Wrapper
3 years ago by zhuwenq
This plugin currently provides a timeline view to display your tasks from your obsidian valut, with customizable filters and renderring options.
Chronology
4 years ago by Gabriele Cannata
Media DB Plugin
4 years ago by Moritz Jung
A plugin that can query multiple APIs for movies, series, anime, games, music and wiki articles, and import them into your vault.
Chronos Timeline
a year ago by Claire Froelich
Render interactive timelines in your Obsidian notes from simple Markdown.
Metadata Extractor
5 years ago by kometenstaub
Obsidian Plugin that provides metadata export for use with third-party apps.
Dialogue
4 years ago by Jakub Holub
Dialogue plugin for Obsidian.md
Timelines (Revamped)
2 years ago by Sean Lowe
Create a timeline view of all notes with the specified combination of tags
Recent Notes
a year ago by Kamil Rudnicki
Recent Notes Plugin for Obsidian
Frontmatter Markdown Links
a year ago by mnaoumov
Obsidian Plugin that adds support for markdown links in frontmatter
Binary File Manager
4 years ago by qawatake
An Obsidian plugin to manage binary files
Storyteller Suite
9 months ago by Maws
AI Tagger Universe
a year ago by Hu Nie
An intelligent Obsidian plugin that leverages AI to automatically analyze note content and suggest relevant tags, supporting both local and cloud-based LLM services.
Release Timeline
4 years ago by cakechaser
NetClip
a year ago by Elhary
this plugin is for Obsidian that allows you to browse the web and clip webpages directly into your vault.
Plotly
5 years ago by Dmitriy Shulha
Obsidian plugin to embed Plotly charts into markdown notes.
Timeline View
3 years ago by b.camphart
Obsidian plugin for viewing your notes linearly based on a given property
Auto Tag
3 years ago by Control Alt
Easily generate relevant tags for your Obsidian notes.
echarts
4 years ago by windily-cloud && Cuman
Render echarts in obsidian,[Apache ECharts](https://echarts.apache.org/en/index.html) An Open Source JavaScript Visualization Library
Media Companion
a year ago by Nick de Bruin
MemoryLane
2 years ago by BangCa
Relive and celebrate your life's milestones on a personal, interactive timeline. A nostalgic journey through your history with anniversary reminders and cherished memories.
Notes dater
3 years ago by Paul Treanor
Adds created_on and updated_on dates of the active note to status bar
Time Things
2 years ago by Nick Winters
Show clock, track time spent editing a note, and track the last time a note has been edited.
Bulk Exporter
3 years ago by symunona
Bulk export Markdown filtered, renamed and sorted by front matter metadata into a new structure.
Metadata Auto Classifier
2 years ago by Beomsu Koh
AI-powered Obsidian plugin that automatically classifies and generates metadata (tags, frontmatter) for your notes.
Content Cards
a year ago by leo
Insert content cards in Markdown, such as timeline, highlightblock, target card, book information card, music information card, movie information card, photoes ablum, business card, content subfield, countdown, SWOT,BCG.
Vega Visualizations
3 years ago by Justin Kim
Create Vega and Vega-Lite visualizations in https://obsidian.md/.
Fold Properties By Default
a year ago by Tommy Bergeron
Always have editor/metadata properties folded by default.
Linked Data Vocabularies
3 years ago by kometenstaub
Add linked data to the YAML of your Obsidian notes.
Kanban Status Updater
a year ago by Ankit Kapur
Obsidian plugin that automatically updates the note property when card is moved to a column.
QueryDash
a year ago by lwx
Note aliases
3 years ago by Pulsovi
This plugin manages wikilinks aliases and save them on the aliases list of the linked note
Metadata Icon
2 years ago by Benature
change metadata entry icon
historica
2 years ago by Nhan Nguyen
Not (smart) to help you create your timeline in obsidian like a ... bro
Additional Icons
2 years ago by Matthew Turk
Add additional iconsets to Obsidian
Frontmatter generator
2 years ago by Hananoshika Yomaru
A plugin for Obsidian that generates frontmatter for notes
File Title Updater
a year ago by wenlzhang
An Obsidian plugin that synchronizes titles between filename, frontmatter, and first heading in your notes.
Symbol linking
10 months ago by Evan Bonsignori ; Mara-Li
Adds ability to link with any trigger in Obsidian. Each trigger can limit linking to specific folders or file.
Siteswap
4 years ago by Tim Dresser
Markdown Timeline
a year ago by Jiaheng Zhang
An Obsidian plugin to record the events in a Flashback timeline
Copy Metadata
3 years ago by wenlzhang
An Obsidian plugin to copy metadata to clipboard and insert it into file name.
File Index
2 years ago by Steffo
Obsidian plugin to create a metadata file about the files present in the Vault
Timeline Schedule
2 years ago by Evan Bonsignori
Inline timelines generated from human-readable time strings, e.g. 'Walk dog (30min)' in a ```schedule codeblock.
Generate Timeline
a year ago by Shanshuimei
An obsidian plugin to generate timelines from tags, folders, files or metadata automatically. 根据标签,文件夹,文件或者属性自动生成时间轴的插件。
Barcode Generator
2 years ago by noxonad
A barcode generator for obsidian.
Update Time
2 years ago by Sébastien Dubois
Obsidian plugin that updates front matter to include creation and last update times
Markline
2 years ago by 闲耘
Markline: Markdown timeline view in Obsidian.
Easy Timeline
a year ago by Romeliun
The Easy Timeline plugin for Obsidian allows you to create timelines easily.
Dataview Autocompletion
a year ago by Daniel Bauer
KoReader Highlight Importer
a year ago by Tahsin Kocaman
Imports highlights and metadata from KoReader into Obsidian notes
SQLSeal Charts
a year ago by hypersphere
Charting extension for SQLSeal Obsidian Plugin. Visualise your data!
Conditional Properties
4 months ago by Diego Eis
Automate frontmatter property updates in your Obsidian notes using simple conditional rules.
Tag Tactician
a year ago by Scott Tomaszewski
Note UID Generator
a year ago by Valentin Pelletier
Allow you to automatically generate UID for the notes in your vault.
Image Metadata
2 years ago by alexeiskachykhin
Adds image metadata editing capabilities to Obsidian
LLM Tagger
a year ago by David Jayatillake
Vertical Timeline List
a year ago by Jalad
Utilizes task lists to create a timeline... or something like a timeline.
GitHub Integration
a year ago by Kirill Zhuravlev
Plugin that fetch your github stars into notes
Timeline Canvas Creator
10 months ago by chris-codes1
Quickly create timeline structured canvases in Obsidian.
Note Codes
8 months ago by Ezhik
Reference your Obsidian notes from anywhere with simple 4-character codes.
Markwhen File Sync
a year ago by rouvenjahnke
Synchronize properties from your Obsidian notes with a Markwhen timeline file.
Focus Tracker
2 years ago by Jeet Sukumaran
Virus Total Enrichment
2 years ago by ytisf
An Obsidian plugin to enrich a note with VirusTotal API.
Reactive Notes
a year ago by Elias Noesis
Paste Image Into Property
a year ago by Nito
Sentinel
a year ago by Giorgos Sarigiannidis
A plugin for Obsidian that allows you to update properties or run commands based on document visibility changes.
Timelive
a year ago by aNNiMON
Turn a list of dates into a timeline
Boardgame Search
a year ago by Marlon May
A plugin to create notes for boardgames based on the BGG API
Note Favicon
a year ago by mdklab
Obsidian plugin – Show Favicon from Metadata
ExMemo Assistant
a year ago by ExMemo AI
Using LLMs to manage files and generating metadata such as tags and summaries.
Current File Tags
a year ago by Trung Tran
Sankey
a year ago by Finn Romaneessen
An Obsidian plugin to create sankey diagrams
Book Clipper
5 months ago by Hossein Fardmohammadi
Save book details from websites into your notes
Simple File Info
a year ago by Lukas Capkovic
My Thesaurus
a year ago by Mara-Li
A plugin that auto tags file based on contents and a csv file or a Markdown table (inspired by https://github.com/pmartinolli/MyThesaurus)
Papers
8 months ago by William Liang
An obsidian plugin to retrieve and import research papers.
Watched-Metadata
2 years ago by Nail Ahmed
Watches for changes in metadata and updates the note content accordingly.
Ink Player
a year ago by Uglyboy
基于 ink 脚本语言的文字互动游戏播放器
Another Name
a year ago by Jiyuan Wang
Add a subheading to your note in Obsidian
Onto Tracker
2 years ago by Jacob Hart
Plugin for obsidian allowing project management with ontologies.
Discrete
9 months ago by shkarlsson
Frontmatter Metadata Link Classes
10 months ago by Varvara Zmeeva / zmeeva.io
Enhanced internal links with automatic classnames based on frontmatter metadata.
Byte Field Diagrams
a year ago by natri0
Byte-field diagrams for Obsidian.
Inboxer
a year ago by Eoin Hurrell
Obsidian plugin to add an inbox to notes
Frontmatter to HTML Attributes
2 months ago by Tarek Saier
Makes YAML frontmatter available as data-* attributes in HTML, enabling metadata based CSS styling.