Skip to content

Dates and attributes in indexed notes ​

Liminis indexes your notes into the context graph one chunk at a time. Each chunk is stored with the time it describes, not the time you last saved the file, so meeting notes, daily notes and journals keep their real dates in the graph's timeline.

Where a chunk's time comes from ​

In order of preference:

  1. A date in the section heading. An ISO 8601 date in an # or ## heading dates that section. A sub-section without a date of its own uses the nearest dated heading above it.
  2. A date at the start of the file name. 2026-08-04.md and 2026-08-04 standup.md are dated 4 August. This is how daily notes get their day without any frontmatter.
  3. The frontmatter date of the note, or created if there is no date.
  4. The file's modified time, as before.
markdown
---
title: Design review
date: 2026-08-04
---

## 2026-08-04 Kickoff
We agreed the scope.

## 2026-09-12 Review
We agreed to ship Friday.

Here the first section is dated 4 August and the second 12 September. A section with no dated heading would take the note's own date (the file name, else the frontmatter date).

Dates in file names ​

  • The name must begin with a valid YYYY-MM-DD that is not followed by another digit: 2026-08-04.md and 2026-08-04-standup.md count; standup 2026-08-04.md, 20260804.md, 2026-8-4.md and 2026-02-30.md do not.
  • Only the file name is read, never the folders: 2024-01-01/notes.md has no filename date.
  • The file name outranks the frontmatter date, because it is the plainest statement of which day the note is about. A time of day written in the frontmatter is not used when the file name has a date. A dated heading inside the note still wins for its own section.

Only ISO 8601 counts: 2026-08-04 and 2026-08-04T09:30 are read; 03/04, 4 Aug 2026, 2026-08 and last Tuesday are ignored, and the next source in the list applies. If a heading has several dates, the first is used. Dates in the future are used as written. Dates in ### or deeper headings are ignored, because those headings do not start a new chunk.

Times and time zones ​

  • A date on its own (2026-08-04, including one from a file name) means midnight UTC. This is the same whether the date is used to date a chunk or to order notes during a full rebuild.
  • A date and time with an offset (2026-08-04T09:00+02:00, or Z) is used as written.
  • A date and time without an offset (2026-08-04T09:00) is read in your computer's time zone.

A date-only value can display as the previous day in time zones west of UTC; that is a display matter, and the stored time is not shifted.

Attributes ​

A frontmatter attributes: map is stored on every chunk of the note:

markdown
---
attributes:
  kind: meeting
---

Other frontmatter keys (title, tags, …) are not attributes. If attributes: is not a map it is ignored.

What the engine sees ​

Each chunk is sent with a short context line ahead of its text:

[Design review · 2026-08-04 · Decisions]

It holds the note's title (frontmatter title, else the first # heading, else the file name), the resolved date when there is one, and the heading path. It lets "we agreed to ship Friday" be read against the right date and document. The line is not part of the chunk's identity, so adding it re-indexes nothing.

Things to know ​

  • Editing a date in a heading renames the section, so its chunk is removed and re-added.
  • Notes whose names start with a date are re-indexed once after upgrading, because their time changes from the saved time to the day in the name. Notes without a date in the name are not.
  • Changing the frontmatter date, created or attributes re-indexes every chunk of the note.
  • Malformed frontmatter or an unreadable date never stops indexing; it is logged and the file's modified time is used.
  • Existing notes are not rewritten in bulk. A note is re-indexed with its corrected time and context line the next time it changes, or when you re-ingest your workspace (see the upgrade notice).

For authors of generated content ​

The indexing queue entry (IndexQueueEntry) has optional reference_time (ISO 8601) and attributes fields. When a chunk source sets them they are sent to the engine exactly as given and take precedence over anything derived from the text, so generated files do not need dates or metadata encoded in markup. Entries without them behave as before.