Home / Docs / Temporal Markers

Temporal Markers

Temporal Markers

Annotate your prose with time references — dates, named events, relative offsets, and relationship lifecycle markers — that Skribex indexes and surfaces across the application.

What it does

Temporal markers are inline chips you place in your manuscript text using ~-mention syntax. They record when things happen in your story's timeline. Skribex indexes every marker on save and uses them to power the timeline sidebar, the markers panel, and temporal badges on entity relationships.

There are two separate time-tracking mechanisms:

  • Chapter-level time — a single time value set on each chapter via the hourglass button in the toolbar. Provides the global time context for the chapter (shown in the rolodex sidebar).
  • Inline temporal markers~-mentions placed anywhere in the prose text. These mark specific moments, transitions, or relationships within a chapter.

Inline markers — full syntax

Type ~ to open a hint menu showing all available patterns. Select one or keep typing freely. The time part inside [brackets] is free-typed — you can use any format (dates, durations, fantasy calendars). Press space after the closing ] to create the chip.

Absolute time

Mark a specific point in time.

You type Chip shows Colour
~[1942-06-15] 1942-06-15 Blue
~[Dawn, third day] Dawn, third day Blue

Named time markers

Link a time to a named reference. Type ( after the time to open the reference dropdown.

You type Chip shows Colour
~[June 1942](the_wedding June 1942 (The Wedding) Blue
~(the_coronation The Coronation Blue

Named markers are saved to your book's timeline store (timeline.json) and become available as suggestions everywhere — in other ~-mentions, in the relationship "Starting from" / "Ending at" dropdowns, and in the sidebar markers panel.

The dropdown suggests from four sources:

  • Timeline markers (committed named anchors)
  • Cached markers (named temporals from previous saves)
  • Event entities (entities of type "event")
  • Structure elements (chapters, sections, parts)

Relative references

Position an event relative to another named moment.

You type Chip shows Colour
~before:(the_trial before: The Trial Teal
~after:[3 days](the_battle after: 3 days (The Battle) Teal
~during:(the_siege during: The Siege Amber
~simultaneous:(the_escape simultaneous: The Escape Amber
~elapsed:[6 months] elapsed: 6 months Teal

Narrative devices

Mark analepsis (flashback) and prolepsis (flashforward).

You type Chip shows Colour
~flashback:[1920] flashback: 1920 Purple, italic
~flashback:(the_memory flashback: The Memory Purple, italic
~flashforward:[2050] flashforward: 2050 Purple, italic

Ranges and durations

You type Chip shows Colour
~[1940]-[1945] 1940 – 1945 Blue
~[start]-(end_event start – End Event Blue
~duration:[2 hours] duration: 2 hours Blue

Fantasy calendars

Use dnp: (do-not-parse) for time systems Skribex shouldn't try to interpret.

You type Chip shows Colour
~dnp:[3rd moon of Kryos] 3rd moon of Kryos Muted, italic

Relationship lifecycle markers

Create or end entity relationships directly from the prose. Type ~begins:( or ~ends:( to start a three-step guided dropdown:

  1. Select source entity — type to search, pick from suggestions
  2. Select relationship type — filtered by the entity's type (e.g. character sees kinship/social types)
  3. Select target entity — filtered by the relationship's range

Each step is separated by · in the query.

You type Chip shows Colour
~begins:(Kael · parentOf · Arin) ▸ Kael parentOf Arin Green
~ends:(Kael · basedIn · Aldenmere) ◂ Kael basedIn Aldenmere Red

On save:

  • ~begins: creates a relationship edge with the marker name as "Starting from"
  • ~ends: terminates the matching active edge with the marker name as "Ending at"

Sync policy: Deleting a ~begins: or ~ends: chip from the text does not delete the relationship. The relationship persists on the entity page — manage it there if you want to remove it.

Chapter-level time

Click the hourglass icon (⏳) in the editor toolbar to set a global time for the focused chapter.

  • A popover appears with a text input — type any time string (e.g. "June 15, 1942", "Day 3", "Third Age, Year 2941").
  • Press Enter or click Set to save. Click Clear to remove.
  • The chapter time appears in the Timeline rolodex in the right sidebar.
  • It provides context for relative ~before: and ~after: references within the chapter.

Where markers appear

Right sidebar — Timeline section

A 3D rolodex showing the previous, current, and next chapter with their chapter-level times. Updates as you scroll through chapters.

Right sidebar — Markers section

Color-coded dots for every inline ~-mention in the currently visible chapter. Dot colours match chip colours:

  • Blue — absolute, named
  • Teal — before, after, elapsed
  • Amber — during, simultaneous
  • Purple — flashback, flashforward
  • Green — begins (relationship start)
  • Red — ends (relationship end)
  • Grey — unknown/unparsed

Entity page — relationship badges

When a relationship has temporal markers, the entity page shows:

  • "since [marker name]" — next to the relationship
  • "until [marker name]" — next to terminated relationships

Entity page — add relationship form

Click "link to timeline..." to reveal optional "Starting from" and "Ending at" dropdowns that suggest the same sources as the inline dropdown (markers, events, elements).

How it works under the hood

  • Chips are TipTap inline nodes (skribexTemporal) — atomic, non-editable. Delete with backspace or select+delete.
  • On each autosave, all temporal nodes are extracted from the document and indexed in a SQLite cache (temporal_index table).
  • Named markers are also written to timeline.json in your book's .skribex/ directory (committed to git).
  • Relationship lifecycle markers (begins/ends) trigger edge creation or termination in relationships.json on save.
  • Markers do not export to EPUB — they are stripped during export.

Tips

  • Use named markers for important story events — they become reusable anchors across the entire book.
  • Combine chapter-level time with inline markers: set the chapter time for the broad context ("Chapter 5: June 1942"), then use inline markers for specific moments within it.
  • Fantasy authors: use ~dnp:[...] freely — Skribex stores the text as-is without trying to parse it as a date.
  • The ~begins: / ~ends: syntax is fastest for authors who think about relationships while writing. For retrospective relationship management, use the entity page form instead.

Quick start

Keyboard shortcuts

Cmd+/
Toggle distraction-free
Cmd+K
Omnibar (quick search)
Cmd+S
Save milestone
?
Show this help

Entity system

Type @ in the editor to mention a character, place, object, event, or concept. Skribex color-codes them and tracks relationships automatically. Click any mention to inspect the entity.

Temporal markers

Type ~ to place a time marker — absolute dates, relative ("two days later"), or named events. These anchor your story in a timeline visible on the mindmap.

Mindmap

The mindmap shows your story world as a graph: characters, locations, and their relationships. It builds itself as you write — no manual diagram work needed.