Native YAML override for filesystem creation time

Use case or problem

Filesystem creation times (FCTs) are very fickle, and by extension, Obsidian’s features and community plug-ins which rely on it: Sorting by created time, calendars by created time, automated note trackers, graph view timelapses, and even Obsidian Sync is affected from what I’ve read. You have to be very careful with the original markdown files to ensure its creation timestamps remain untouched, else you risk ruining features which rely on these. There have already been a good few recorded cases of improper handling of files which led to wiped creation timestamps, and with each one came a justifiably frustrated user. “Use cut and paste next time”, they said… but that won’t bring back what was already lost, nor can it fully prevent another occurrence.

There’s just really no simple way of preserving creation dates without resorting to some niche system command or obscure third party program, and that can drive away the average user in the long-term should they plan to switch platforms or devices. And there are even operating systems that don’t bother with creation dates at all (Linux and Android), so it won’t become apparent to users on those platforms as to whether or not their creation times got wiped until they open Obsidian.


Proposed solution

I propose a native YAML front matter key that overrides creation time throughout Obsidian, as well as {{cdate}} and {{ctime}} template inserts that follow a fixed time format. This would save Obsidian from relying only on FCTs for features and functions that revolve around a file’s creation time.

Refer to this for time formats.

#creation: (date value) (time value)
creation: YYYYMMDD HHmmssSSS
creation: {{cdate}} {{ctime}}

Related feature requests


This would definitely be helpful. Here are two more relevant threads: Wrong Date Created Property and Preserve Creation Dates when Using Obsidian Sync


1 Like

I’m now unable to edit the original post, but I found another related feature request which is more or less the same idea, but this discussion has a workaround involving partitions and the use of ddrescue on Linux. This also touches upon cp -p which I’ve tested myself, though sadly it doesn’t preserve creation times, only modification times.

Right now, I’m using Templater instead of Templates to fulfill the {{cdate}} and {{ctime}} inserts, and would like to add to the “…fixed time format”, with “while allowing users to specify one-off custom formats as seen on the {{date}} and {{time}} inserts.”