No description
Find a file
2026-07-03 02:25:55 +03:00
.github refactor: moved to pnpm 2026-07-03 02:25:55 +03:00
src refactor!: migrate from moment.js to Temporal, drop moment-duration-format 2026-07-03 02:12:41 +03:00
tests refactor!: migrate from moment.js to Temporal, drop moment-duration-format 2026-07-03 02:12:41 +03:00
.editorconfig Initial 2023-08-24 21:35:56 +03:00
.gitignore refactor: moved to pnpm 2026-07-03 02:25:55 +03:00
.npmrc Initial 2023-08-24 21:35:56 +03:00
.oxfmtrc.json chore(tooling): TypeScript 5 strict, oxlint + oxfmt, CI workflow 2026-07-03 02:12:11 +03:00
.oxlintrc.json chore(tooling): TypeScript 5 strict, oxlint + oxfmt, CI workflow 2026-07-03 02:12:11 +03:00
CLAUDE.md refactor: moved to pnpm 2026-07-03 02:25:55 +03:00
esbuild.config.mjs chore(tooling): TypeScript 5 strict, oxlint + oxfmt, CI workflow 2026-07-03 02:12:11 +03:00
LICENSE Initial commit 2023-08-24 21:18:10 +03:00
manifest.json chore(release): v2.0.0 — minAppVersion 1.5.7, release workflow, breaking-change notes 2026-07-03 02:12:49 +03:00
package.json refactor: moved to pnpm 2026-07-03 02:25:55 +03:00
pnpm-lock.yaml refactor: moved to pnpm 2026-07-03 02:25:55 +03:00
README.md chore(release): v2.0.0 — minAppVersion 1.5.7, release workflow, breaking-change notes 2026-07-03 02:12:49 +03:00
styles.css Most edited notes view 2024-04-07 17:12:08 +03:00
tsconfig.json test: add vitest with characterization tests for core logic 2026-07-03 02:12:21 +03:00
version-bump.mjs Initial 2023-08-24 21:35:56 +03:00
versions.json chore(release): v2.0.0 — minAppVersion 1.5.7, release workflow, breaking-change notes 2026-07-03 02:12:49 +03:00
vitest.config.ts test: add vitest with characterization tests for core logic 2026-07-03 02:12:21 +03:00

Time Things

Show clock in status bar. Sync modified file property with frontmatter.

v2.0.0 breaking changes

  • The "Most edited notes" view is registered under a new internal ID; if a saved workspace layout shows an empty pane where the view was, close it and reopen the view from the ribbon or command palette (one-time).
  • The command ID changed; re-assign your hotkey for "Most edited notes" if you had one.
  • Date/time formats are now interpreted by a built-in formatter instead of moment.js. All tokens documented in the Format tokens section below — including the defaults and previously recommended formats — behave identically. Exotic moment tokens outside that table (for example, Do and ddd) are now rendered literally.
  • The clock update interval setting is stored as a number; existing values migrate automatically (a minimum of 100 ms is now enforced).
  • Requires Obsidian 1.5.7 or newer.

Obsidian_vH8xXX5e7Z

Clock

image

  • Option to change the date format. Recommended: HH:mm:ss and hh:mm A.
  • Option to change update interval.
  • Option to use UTC timezone.

Modified frontmatter key

  • Have a key that records the time when you last modified a file.
  • Supports nesting.
  • Option to change the date format. Recommended: YYYY-MM-DD[T]HH:mm:ss.SSSZ.

Edit duration frontmatter key

  • Track time spent editing a note
  • Display editing duration of current note in the status bar

Format tokens

Clock and modified-timestamp formats support the following tokens. Text inside square brackets is emitted literally.

Token Meaning
YYYY Four-digit year
MM Two-digit month
DD Two-digit day
HH Two-digit 24-hour hour
H One- or two-digit 24-hour hour
hh Two-digit 12-hour hour
h One- or two-digit 12-hour hour
mm Two-digit minute
ss Two-digit second
SSS Three-digit millisecond
A Uppercase AM/PM
a Lowercase am/pm
Z UTC offset, such as +05:30
[literal] Literal text

About custom frontmatter handling solution

Custom frontmatter handling solution is disabled by default since Obsidian's straightforward frontmatter API is much more stable and robust. However, advanced users may enable it if they wish. Don't forget to regularly back up your vault.

Reasons to enable custom frontmatter handling solution

  • It updates the value instantly
  • It only touches one line, which means it never makes your cursor jump, or a message "A file has been modified" popup
  • It doesn't reformat your frontmatter to fit any standard

Reasons to leave custom frontmatter handling solution disabled

  • You are using nested keys in the Time Things settings. Using custom frontmatter handling solution with a nested key may result in the wrong key being updated. This only happens if it comes before the needed key in the frontmatter and has a similar path. For example x.y.z will update x.y.g.z instead if it meets it first and if it has a value of a format specified in the settings.
  • You are not using templates populated with needed variables to create notes. Using custom frontmatter handling solution works best with templates since it doesn't create a key for you if it doesn't already exist. Also it doesn't update null values or the values of the format different from the one specified in the settings.

I may improve it further in the future, but for that I feel like I'd have to write a full-blown YAML parser from scratch. For now it covers my own wishes completely and even has some room for limited flexibility, so I will focus on other aspects of the plugin.

What's next

  • Ignore files in specified folders
  • Ingore files with specified frontmatter keys (and their values)
  • Pick a timezone for all things globally
  • Pick a timezone for clock and frontmatter seperately
  • Track time spent editing a note