April Automatic Timelines

by april-gras
5
4
3
2
1
Score: 54/100

Description

Category: Creative & Writing Tools

The Aprils automatic timelines plugin builds visual timelines from notes tagged with timeline metadata. It reads frontmatter or inline event blocks, turns matching notes into cards and can render the same note in more than one timeline. Card title, body and picture can be overridden with dedicated metadata keys when the note text is not the right fit. A big part of the plugin is its custom date system. It supports parser regex rules, token priority, display templates, string and numerical token types, per timeline format overrides and unusual calendar models for fictional settings. It also lets you disable rendering per note, which keeps the timeline logic flexible without forcing one date format or one writing style.

Reviews

No reviews yet.

Stats

211
stars
61,963
downloads
8
forks
61
days
61
days
61
days
151
total PRs
8
open PRs
83
closed PRs
60
merged PRs
94
total issues
26
open issues
68
closed issues
10
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.
Binary File Manager
5 years ago by qawatake
An Obsidian plugin to manage binary files
Auto Card Link
4 years ago by Nekoshita Yuki
Release Timeline
4 years ago by cakechaser
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.
Linkify
4 years ago by Matthew Chan
Metadata Menu
4 years ago by mdelobelle
For data management enthusiasts : type and manage the metadata of your notes.
Bulk Rename
4 years ago by Oleg Lustenko
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
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.
Chronology
4 years ago by Gabriele Cannata
Note aliases
4 years ago by Pulsovi
This plugin manages wikilinks aliases and save them on the aliases list of the linked note
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.
Global Search and Replace
3 years ago by Mahmoud Fawzy Khalil
A plugin to do a global search and replace in all your Obsidian vault files.
Linked Data Vocabularies
3 years ago by kometenstaub
Add linked data to the YAML of your Obsidian notes.
Notes dater
3 years ago by Paul Treanor
Adds created_on and updated_on dates of the active note to status bar
Bulk Exporter
3 years ago by symunona
Bulk export Markdown filtered, renamed and sorted by front matter metadata into a new structure.
Copy Metadata
3 years ago by wenlzhang
An Obsidian plugin to copy metadata to clipboard and insert it into file name.
Auto Tag
3 years ago by Control Alt
Easily generate relevant tags for your Obsidian notes.
Timeline View
3 years ago by b.camphart
Obsidian plugin for viewing your notes linearly based on a given property
Frontmatter generator
3 years ago by Hananoshika Yomaru
A plugin for Obsidian that generates frontmatter for notes
File Index
3 years ago by Steffo
Obsidian plugin to create a metadata file about the files present in the Vault
Additional Icons
3 years ago by Matthew Turk
Add additional iconsets to Obsidian
Timeline Schedule
3 years ago by Evan Bonsignori
Inline timelines generated from human-readable time strings, e.g. 'Walk dog (30min)' in a ```schedule codeblock.
Markline
3 years ago by 闲耘
Markline: Markdown timeline view in Obsidian.
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.
Metadata Icon
2 years ago by Benature
change metadata entry icon
Tag Links
2 years ago by Zacchary Dempsey-Plante
A plugin for Obsidian that allows tags to be opened as links using a hotkey.
LinkMagic
2 years ago by AndyReifman
Update Time
2 years ago by Sébastien Dubois
Obsidian plugin that updates front matter to include creation and last update times
Regex Mark
2 years ago by Mara-Li
Focus Tracker
2 years ago by Jeet Sukumaran
Watched-Metadata
2 years ago by Nail Ahmed
Watches for changes in metadata and updates the note content accordingly.
Image Metadata
2 years ago by alexeiskachykhin
Adds image metadata editing capabilities to Obsidian
Virus Total Enrichment
2 years ago by ytisf
An Obsidian plugin to enrich a note with VirusTotal API.
Onto Tracker
2 years ago by Jacob Hart
Plugin for obsidian allowing project management with ontologies.
Dataview
6 years ago by Michael Brenan
A data index and query language over Markdown files, for https://obsidian.md/.
Find and replace in selection
5 years ago by Dmitry Savosh
Obsidian plugin. Find and replace in selection.
Regex Pipeline
5 years ago by No3371
An Obsidian plugin that allows users to setup custom regex rules to automatically format notes.
Supercharged Links
5 years ago by mdelobelle
obsidian plugin to add attributes and context menu options to internal links
MetaEdit
5 years ago by Christian B. B. Houmann
MetaEdit for Obsidian
Timeline
5 years ago by George Butco
Obisdian.md plugin for creating timelines
Metadata Extractor
5 years ago by kometenstaub
Obsidian Plugin that provides metadata export for use with third-party apps.
Update time on edit
5 years ago by beaussan
Dialogue
5 years ago by Jakub Holub
Dialogue plugin for Obsidian.md
Metadata Auto Classifier
2 years ago by Beomsu Koh
AI-powered Obsidian plugin that automatically classifies and generates metadata (tags, frontmatter) for your notes.
Blue Star
2 years ago by Wang Guoshi
A plugin for Obsidian that generates Anki flashcards in various ways.
Markdown Timeline
2 years ago by Jiaheng Zhang
An Obsidian plugin to record the events in a Flashback timeline
Chronos Timeline
2 years ago by Claire Froelich
Render interactive timelines in your Obsidian notes from simple Markdown.
ExMemo Assistant
2 years ago by ExMemo AI
Using LLMs to manage files and generating metadata such as tags and summaries.
Easy Timeline
2 years ago by Romeliun
The Easy Timeline plugin for Obsidian allows you to create timelines easily.
KoReader Highlight Importer
2 years ago by Tahsin Kocaman
Imports highlights and metadata from KoReader into Obsidian notes
Frontmatter Markdown Links
2 years ago by mnaoumov
Obsidian Plugin that adds support for markdown links in frontmatter
Boardgame Search
2 years ago by Marlon May
A plugin to create notes for boardgames based on the BGG API
Sentinel
2 years ago by Giorgos Sarigiannidis
A plugin for Obsidian that allows you to update properties or run commands based on document visibility changes.
Recent Notes
2 years ago by Kamil Rudnicki
Recent Notes Plugin for Obsidian
Current File Tags
2 years ago by Trung Tran
Dataview Autocompletion
2 years ago by Daniel Bauer
NetClip
2 years ago by Elhary
this plugin is for Obsidian that allows you to browse the web and clip webpages directly into your vault.
Media Companion
2 years ago by Nick de Bruin
Fold Properties By Default
a year ago by Tommy Bergeron
Always have editor/metadata properties folded by default.
Hide Commands in Menu
a year ago by bomian98
Obsidian Plugin, hide different commands in different menus.
LLM Tagger
a year ago by David Jayatillake
Paste Image Into Property
a year ago by Nito
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)
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.
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.
Note Favicon
a year ago by mdklab
Obsidian plugin – Show Favicon from Metadata
File Title Updater
a year ago by wenlzhang
An Obsidian plugin that synchronizes titles between filename, frontmatter, and first heading in your notes.
AutoMover
a year ago by Al0cam
Move files and notes with specified names into their designated folders according to rules you define.
Ink Player
a year ago by Uglyboy
基于 ink 脚本语言的文字互动游戏播放器
Kanban Status Updater
a year ago by Ankit Kapur
Obsidian plugin that automatically updates the note property when card is moved to a column.
Generate Timeline
a year ago by Shanshuimei
An obsidian plugin to generate timelines from tags, folders, files or metadata automatically. 根据标签,文件夹,文件或者属性自动生成时间轴的插件。
Simple File Info
a year ago by Lukas Capkovic
aDHL
a year ago by tine-schreibt
The Dynamic Highlights Plugin, but with hotkeys, more options and sorting; works well with Highlightr.
Another Name
a year ago by Jiyuan Wang
Add a subheading to your note in Obsidian
FileName Styler
a year ago by Marc Feininger
An Obsidian plugin to hide, customize, and decorate file names in the sidebar using regex and customizable profiles.
Vertical Timeline List
a year ago by Jalad
Utilizes task lists to create a timeline... or something like a timeline.
Inboxer
a year ago by Eoin Hurrell
Obsidian plugin to add an inbox to notes
GitHub Integration
a year ago by Kirill Zhuravlev
Plugin that fetch your github stars into notes
Regex Line Filter
a year ago by 64MM4-KN1F3
A note filtering plugin for Obsidian
Markwhen File Sync
a year ago by rouvenjahnke
Synchronize properties from your Obsidian notes with a Markwhen timeline file.
Timelive
a year ago by aNNiMON
Turn a list of dates into a timeline
Note UID Generator
a year ago by Valentin Pelletier
Allow you to automatically generate UID for the notes in your vault.
Custom Selected Word Count
a year ago by banisterious
Custom Selected Word Count for Obsidian
Auto Replacer
a year ago by Alecell
A live text replacement plugin that applies automatic formatting, corrections, or custom replacements in real-time. Define your own regex-based rules and transformation logic to modify text dynamically as you type.
Symbol linking
a year 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.
Timeline Canvas Creator
a year ago by chris-codes1
Quickly create timeline structured canvases in Obsidian.
Frontmatter Metadata Link Classes
a year ago by Varvara Zmeeva / zmeeva.io
Enhanced internal links with automatic classnames based on frontmatter metadata.
Storyteller Suite
a year ago by Maws
Discrete
a year ago by shkarlsson
Papers
a year ago by William Liang
An obsidian plugin to retrieve and import research papers.
Note Codes
a year ago by Ezhik
Reference your Obsidian notes from anywhere with simple 4-character codes.
URL Formatter
a year ago by Thomas Snoeck
Automatically formats specific URLs pasted into Obsidian into clean Markdown links.
Pretty Properties
10 months ago by Anareaty
Book Clipper
8 months ago by Hossein Fardmohammadi
Save book details from websites into your notes
Conditional Properties
7 months ago by Diego Eis
Automate frontmatter property updates in your Obsidian notes using simple conditional rules.
Frontmatter to HTML Attributes
5 months ago by Tarek Saier
Snipd Official
3 months ago by snipd-app
File Explorer++
3 months ago by kelszo
A plugin for https://obsidian.md, which enables the ability to hide and pin specific files and folders in the file explorer by applying custom filters.
Day Planner OG
3 months ago by ebullient
An Obsidian plugin for day planning and managing pomodoro timers from a markdown task list.
Timelines (Revamped)
3 months ago by seanlowe
Create a timeline view of all notes with the specified combination of tags
Better Export PDF
2 months ago by l1xnan
Obsidian PDF export enhancement plugin
Gantt Calendar
a month ago by Sugar
obsidian-gantt-calendar
StoryLine
a month ago by Jan Sandström
StoryLine transforms your Obsidian vault into a complete book planning and writing tool. Organize scenes, build characters, manage locations, track plotlines, and monitor your progress, all inside Obsidian.
ReverySky Map
a month ago by MoonSkorch Studio
Obsidian plugin rendering the vault graph as an interactive 3D star map with Unity WebGL
Bases Toolbox
20 days ago by Grub Basket
Adds Quality of Life features to Obsidian Bases
Property Panels
17 days ago by Eva Chen
Display and edit Obsidian frontmatter properties in configurable panels that stay inside the note's scrollable content.
Power Bases
15 days ago by Power Plugins
Add board, calendar, timeline, chart, gallery, and table views to Bases, with inline editing, colors, rollups, field types, formulas, and CSV import.
Journal View
13 days ago by RUverse
A Journal View for Obsidian
Gantt this
5 days ago by Altarok
Obsidian plugin showing multiple TTRPG calendars at once in one gantt chart.