nvim-orgmode / nvim-orgmode/orgmode
Implement #+BEGIN: clocktable dynamic block
Nobody has claimed this yet.
- Dominant language
- Lua
- Stars
- 3.9k
- Forks
- 190
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 7
Description
Does this feature exist in Emacs orgmode core?
Yes, Here’s the official Emacs Org Mode documentation for the clocktable dynamic block.
Orgmode link (https://orgmode.org/manual/The-clock-table.html)
This page explains:
- How to insert and update #+BEGIN: clocktable … #+END: blocks
- How clock tables automatically summarize clocked time by headline
- How to set options like :scope file, :maxlevel, :block, etc.
clocktable is a core feature of Emacs Org, not an add-on. It’s the bridge between raw CLOCK:LOGS and derived, in-file analytics. Right now, nvim-orgmode already has all the primitives components required for this.
- CLOCK entries with LOGBOOK support
- Accurate duration computation
- Agenda clock reports via
<space>oaR - Formatting via
gqgq - Scope resolution via
org_agenda_files
What’s missing is the Glue the dynamic block evaluator that lets a file contain a projection of its own data.
In Emacs Org:
#+BEGIN: clocktable :scope file
#+END:
generates an in-file table by:
- Scanning CLOCK entries in the requested scope (file, subtree, etc.)
- Aggregating by headline
- Computing totals
- Rendering a table in place
raw facts → derived views in the same document by this clocktable feature.
In nvim-orgmode, the same data already exists and is already aggregated in Agenda. The engine that computes clock reports exists. The missing piece is exposing that engine as a dynamic block renderer inside files.
Proposed minimal MVP:
- Recognize blocks of the form:
#+BEGIN: clocktable :scope file
#+END:
- Add a command (e.g.
:Org CreateDynamicClockTableor:Org UpdateDynamicClockTable) that parses the block. - Calls the existing clock-report logic.
- Replaces the block body with a rendered table
Even a first version that supports only:
:scope file- `:scope subtree'
would unlock a major part of Org’s workflow.
This is not a “nice-to-have”.
It is one of Org’s core features, and nvim-orgmode already has 90% of the machinery. Implementing this would complete the loop between logging and reflection inside the same document.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the existing agenda clock-report logic and scope resolution through org_agenda_files. Define how clocktable blocks are recognized and updated, then verify that :scope file and :scope subtree produce rendered tables in place from the existing clock data.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- lua
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100