org.nvim

Properties and column view

Table of Contents

1. How to use this file

Properties are key/value pairs attached to an entry, stored in a :PROPERTIES: drawer right below the headline. Column view shows the entries of a subtree as a table of their properties, with totals and other summaries computed over the children. This file walks through both, with exercises you can check.

Start Neovim from the root of the repository with the bundled init file:

nvim -u examples/minimal_init.lua examples/06-properties-columns.org

examples/minimal_init.lua makes <leader> the <Space> key, so <prefix> (the default <leader>o) is <Space>o, and lists all examples/*.org files as agenda files. It keeps the default use_property_inheritance = false.

  • The file opens folded. <Tab> on a heading opens it, <S-Tab> cycles the whole buffer. <Tab> on a :PROPERTIES: line folds the drawer.
  • u undoes anything; git checkout examples/06-properties-columns.org restores the original file. Opening column view can write computed totals into the file (see 10.7): that is expected, u undoes it too.
  • g? lists every key of the buffer; the usual Emacs keys work as well.
  • Try: marks an exercise, Expect: says exactly what you should see.
  • Lines starting with # and a space are Org comments: notes for you.

Options that only exist in Lua are shown as small lua source blocks: put the cursor in the block, press <C-c><C-c> and answer y. They run inside Neovim and last until you quit.

1.1. The settings of this file

#+PROPERTY: Effort_ALL 0:15 0:30 1:00 2:00 4:00
#+PROPERTY: Owner_ALL Alice Bob Carol
#+PROPERTY: Status_ALL "Not started" "In progress" Done
#+PROPERTY: Team platform
#+COLUMNS: %30ITEM %TODO %3PRIORITY %Owner %Effort{:} %TAGS
  • The _ALL lines list the allowed values of Effort, Owner and Status; values with spaces are quoted.
  • #+PROPERTY: Team platform gives every entry of the file the property Team (as a default that entries inherit).
  • #+COLUMNS: is the default layout of column view in this file.

2. Keys in this file

Key Emacs key What it does
<prefix>p C-c C-x p set a property
  C-c C-x P set from one NAME: value
<prefix>P   delete a property
<C-c><C-c> C-c C-c menu, cursor on a property line
<S-Right> <S-Left> same next / previous allowed value
<prefix>xe C-c C-x e set the Effort
<prefix>C C-c C-x C-c column view of this subtree
1<prefix>C C-u C-c C-x C-c column view of the whole file
<prefix>/ then p C-c / p sparse tree for PROP=value
<prefix>/ then m C-c / m sparse tree for a match
<prefix>xu C-c C-x C-u update the dynamic block

Keys inside column view are in 9.3.

3. Property drawers

3.1. Syntax

The drawer comes right after the headline (and after its SCHEDULED: / DEADLINE: line, if any), starts with :PROPERTIES: and ends with :END:. Each line is :NAME: value. Names are case insensitive (:owner: and :Owner: are the same property) and can't contain spaces; a value may be empty.

3.1.1. A task with properties

3.1.2. A task with a date and properties

3.1.3. Not a property drawer

Some text first.

:Owner: Nobody

3.2. Properties of the whole file

Properties for every entry of the file come from #+PROPERTY: NAME value lines (this file has Team, and the _ALL lists), from a property drawer at the very top of the file (before any other line except comments), or from global_properties in your config. They act as defaults: an entry gets them when it looks them up with inheritance.

:PROPERTIES:
:Client:   Initech
:END:
#+TITLE: A file whose first lines are a property drawer

4. Setting and deleting properties

4.1. <prefix>p: set a property

<prefix>p (Emacs <C-c><C-x>p) asks for the property name, with completion of the names used in this buffer and the agenda files, then for the value. When the property has allowed values (Owner_ALL, Status_ALL, …) you pick one from a list; otherwise you type it, with completion of the values already used. The drawer is created when needed and every line is written as :NAME: padded to 10 characters, then the value (property_format "%-10s %s").

4.1.1. TODO Rewrite the onboarding guide

Try: on this heading press <prefix>p, type Owner, <CR>, and pick Carol. Expect: a new drawer below the heading:

:PROPERTIES:
:Owner:    Carol
:END:

Try: press <prefix>p again, type Budget, <CR>, type 1200 and <CR>. Expect: a line :Budget: 1200 is added to the same drawer.

Try: press <prefix>p, type Status and pick In progress. Expect: :Status: In progress (the quotes of Status_ALL are not written).

4.2. C-c C-x P: name and value in one answer

<C-c><C-x>P asks one question, NAME: value, and sets it. A count (1<C-c><C-x>P) repeats the last pair on another heading without asking.

Try: on "Fix the flaky test" press <C-c><C-x>P, type Owner: Bob and <CR>. Then on "Update the CI image" press 1<C-c><C-x>P. Expect: both entries now have :Owner: Bob.

4.2.1. TODO Fix the flaky test

4.2.2. TODO Update the CI image

4.3. Special properties set the headline

A few special property names change the headline instead of the drawer: TODO, PRIORITY, SCHEDULED and DEADLINE (an empty value removes them). The other special properties (ITEM, TAGS, …) can't be set.

4.3.1. Plan the release party

Try: press <prefix>p, type TODO, <CR>, type TODO, <CR>. Expect: the heading becomes TODO Plan the release party; no drawer.

Try: press <prefix>p, type DEADLINE, <CR>, type 2026-10-30 and <CR>. Expect: a line DEADLINE: with 2026-10-30 Fri in angle brackets is added below the heading.

Try: press <prefix>p, type PRIORITY, <CR>, A, <CR>. Expect: the heading reads TODO [#A] Plan the release party.

4.4. Deleting properties

  • <prefix>P asks which property of the entry to delete (Emacs org-delete-property). The drawer is removed when it becomes empty.
  • :Org delete_property_globally removes a property from every entry of the buffer.

Try: on "Old task with leftovers" press <prefix>P and pick Owner. Expect: only :Legacy: yes is left in its drawer.

Try: type :Org delete_property_globally, <CR>, then Legacy, <CR>. Expect: the message Property Legacy removed from 2 entries (both tasks below; their drawers disappear because they are empty now).

4.4.1. TODO Old task with leftovers

4.4.2. TODO Another old task

4.5. C-c C-c on a property line

With the cursor on a property line, <C-c><C-c> opens a menu:

Key Action
s set a new value (list of allowed values when there is one)
d delete the property from this entry
D delete it from every entry of the buffer
c compute it from the column summary of its children

4.5.1. TODO Review the contract

Try: on the :Owner: line press <C-c><C-c>, then s and pick Alice. Expect: :Owner: Alice.

4.6. Effort estimates: <prefix>xe

Effort is the property for time estimates (effort_property). It is used by the agenda, the clock (see 08-clocking.org) and by column view sums. <prefix>xe (Emacs <C-c><C-x>e) sets it, offering Effort_ALL (here 0:15 to 4:00). Values are durations: 0:45, 2:30, 1h, 90min, 1d 2h, stored exactly as typed.

4.6.1. TODO Prepare the demo

Try: press <prefix>xe and pick 2:00. Expect: :Effort: 2:00 in a new drawer.

Try: press <prefix>xe again and pick another value. Expect: the line is updated in place.

5. Allowed values

5.1. _ALL lists and S-Right / S-Left

A property NAME_ALL lists the values allowed for NAME. It can be set for the file (#+PROPERTY: Owner_ALL Alice Bob Carol) or in a drawer, in which case it applies to that subtree (_ALL is always inherited). Values with spaces are written in double quotes.

With the cursor on a property line, <S-Right> / <S-Left> switch to the next / previous allowed value, wrapping around at the end. <prefix>p, <prefix>xe and the s of <C-c><C-c> offer these values as a list.

5.1.1. TODO Negotiate the office lease

Try: put the cursor on the :Owner: line and press <S-Right> three times. Expect: Bob, Carol, then Alice again.

Try: on the :Status: line press <S-Right> twice, then <S-Left>. Expect: In progress, Done, then In progress again.

Try: on the :Effort: line press <S-Left>. Expect: 0:30.

Try: on the :Room: line press <S-Right>. Expect: the warning "Allowed values for this property have not been defined". Nothing changes.

5.2. Allowed values for one subtree

5.2.1. Colours of the new logo

Try: on the :Color: line of "Draft two", press <S-Right>. Expect: red (after blue it wraps to the first value). The list comes from Color_ALL on the parent.

  1. Draft one
  2. Draft two

6. Inheritance

6.1. Most properties are not inherited by default

With the default use_property_inheritance = false, a property belongs only to the entry that has it: a search for Client"ACME"= finds the entry with the drawer, not its children. Some properties are always looked up in the parents: CATEGORY, COLUMNS, LOGGING, LOG_INTO_DRAWER, ARCHIVE, the _ALL lists and a few others that Org itself uses.

6.1.1. Website for ACME

Try: press <prefix>/ then p, type Client=ACME and <CR>. Expect: the message "1 match for Client="ACME"": only "Website for ACME". (The children don't have the property.)

Try: press <prefix>a then t. Expect: the two tasks show the category acme in the first column: CATEGORY is inherited even without inheritance switched on.

  1. TODO Design the landing page
  2. TODO Set up hosting

6.2. Switching inheritance on

use_property_inheritance can be true (every property), a list of names, or a Vim regexp matching names (Emacs org-use-property-inheritance). Run the block to make Client and Team inherited in this session:

require("org.config").opts.use_property_inheritance = { "Client", "Team" }

Try: run the block, then press <prefix>/ p with Client=ACME again. Expect: "3 matches": "Website for ACME" and its two tasks.

Try: <prefix>/ p with Team=platform. Expect: every heading of the file matches: #+PROPERTY: Team platform is the default for all of them, unless a subtree sets its own Team (see the next section).

require("org.config").opts.use_property_inheritance = false

6.3. Overriding and appending (NAME+)

A child's own value replaces the inherited one. :NAME+: value appends to the inherited value (or to an earlier line of the same drawer) with a space in between; #+PROPERTY: NAME+ value appends at file level.

6.3.1. Mobile team

Try: run the inheritance block above again but with { "Client", "Team", "Tools" }, then <prefix>/ m with Tools={xcode}. Expect: only "iOS app": its Tools value is git xcode.

Try: <prefix>/ m with Tools"git gradle kotlin"=. Expect: only "Android app".

Try: <prefix>/ p with Team=mobile. Expect: "Mobile team" and its two children; the rest of the file has platform.

  1. iOS app
  2. Android app

7. Special properties

Some property names are computed from the entry instead of read from the drawer. They can be used in searches and in column view:

Name Value
ITEM the headline text (no keyword, priority or tags)
TODO the TODO keyword
PRIORITY the priority letter (B when there is no cookie)
TAGS the entry's own tags, like :work:urgent:
ALLTAGS own and inherited tags
CATEGORY the category (property, #+CATEGORY, file name)
LEVEL the number of stars (in searches)
FILE the file name
SCHEDULED the SCHEDULED: timestamp
DEADLINE the DEADLINE: timestamp
CLOSED the CLOSED: timestamp
TIMESTAMP the first active timestamp in the entry
TIMESTAMP_IA the first inactive timestamp in the entry
CLOCKSUM the time clocked in the subtree
CLOCKSUM_T the time clocked today
BLOCKED t when the entry can't be marked DONE yet

Don't put special names in a drawer: they are ignored there and :Org lint reports them.

7.1. Special properties in column view

7.1.1. Release checklist   release

Try: put the cursor on "Release checklist" and press <prefix>C. Expect: the four headlines of this subtree turn into rows; the column titles are in the window bar at the top. The values, shown here as a table (with the stars left out and sub-entries indented):

ITEM                | TODO | PRIORITY | TAGS      | ALLTAGS        | CLOCKSUM
Release checklist   |      | B        | :release: | :release:      | 3:15
  Tag the release   | TODO | A        | :git:     | :release:git:  |
  Write the chang…  | DONE | B        |           | :release:      | 2:30
  Announce it       | TODO | B        | :blog:    | :release:blog: | 0:45
  • ITEM is the title without keyword, priority and tags (cut to the width of 20 from %20ITEM);
  • PRIORITY is B (the default) where there is no cookie;
  • TAGS are the entry's own tags, ALLTAGS include the inherited ones;
  • CLOCKSUM of the parent is the total of its subtree (2:30 + 0:45).

Press q to leave column view.

  1. TODO Tag the release   git
  2. DONE Write the changelog
  3. TODO Announce it   blog

7.2. Dates in column view

7.2.1. Conference trip

Try: on "Conference trip" press <prefix>C. Expect: dates are shown as inactive timestamps (in square brackets):

  • "Book the flight": DEADLINE [2026-10-09 Fri];
  • "Hotel": SCHEDULED [2026-10-12 Mon];
  • "Talk": TIMESTAMP [2026-11-03 Tue 14:00];
  • "Register": CLOSED [2026-09-21 Mon 10:15].

TIMESTAMP is the first active timestamp of the entry text.

  1. TODO Book the flight
  2. TODO Hotel
  3. Talk

    The talk is on <2026-11-03 Tue 14:00>.

  4. DONE Register

8. Searching by property

Properties can be used in match strings: in sparse trees (<prefix>/ m, <C-c>\), in the agenda (<prefix>a m) and in custom agenda commands. <prefix>/ p is a shortcut that asks for NAME=value and adds the quotes.

Match Finds entries whose …
Owner"Alice"= Owner is exactly Alice
Owner<>"Alice" Owner is not Alice (missing counts as different)
Effort>1 Effort is more than 1 (see below)
Effort<*2 Effort exists and is less than 2 hours
Status={progress} Status matches the regexp progress
PRIORITY"A"= priority is A
LEVEL=4 are at level 4
TODO"DONE"= keyword is DONE
+Owner"Bob"/TODO= Owner is Bob and keyword TODO
DEADLINE<"<+1w>" deadline is less than one week away

Numbers compare as numbers, a missing property is 0 for numbers and "" for strings. The starred operators (<*, >*, …) only match entries that have the property. Like Emacs, a value is read as a number up to the first character that isn't part of one: 1:30 is 1, 90min is 90, 1d is 1. So Effort>1 works for H:MM values but not for mixed units.

8.1. Search playground

Try: <prefix>/ m with Owner"Alice"=. Expect: "Migrate the database" and "Write the runbook".

Try: <prefix>/ p with Owner=Bob (no quotes needed here). Expect: "Rotate the API keys".

Try: <prefix>/ m with Effort>1. Expect: "Migrate the database" (4:00) and "Write the runbook" (2:00).

Try: <prefix>/ m with Effort<2, then with Effort<*2. Expect: first "Rotate the API keys" and "Talk to the vendor" (no Effort: counts as 0); then only "Rotate the API keys".

Try: <prefix>/ m with Status={progress}. Expect: "Migrate the database".

Try: <prefix>/ m with Owner<>"Alice". Expect: "Rotate the API keys" and "Talk to the vendor".

8.1.1. TODO Migrate the database

8.1.2. TODO Rotate the API keys

8.1.3. TODO Write the runbook

8.1.4. TODO Talk to the vendor

9. Column view

9.1. Opening and leaving column view

<prefix>C (Emacs <C-c><C-x><C-c>) turns the headlines of the current subtree into rows of a table: each column shows a property, the column titles go into the window bar at the top. The text of the file does not change; body lines stay visible between the rows. q leaves the view.

Which entries and which columns:

  • the format comes from the nearest COLUMNS property of the entry or its parents, else from #+COLUMNS: (here %30ITEM %TODO %3PRIORITY %Owner %Effort{:} %TAGS), else from columns_default_format;
  • with a COLUMNS property, the view covers the subtree that has it; otherwise the subtree at the cursor (the whole file when the cursor is before the first heading);
  • 1<prefix>C always shows the whole file with the file format.

9.1.1. TODO Organise the team day   work

Try: put the cursor on "Organise the team day" and press <prefix>C. Expect: five rows; the Effort column of "Organise the team day" shows 3:45, the sum of its four children (1:00 + 0:30 + 2:00 + 0:15). The window bar shows the titles ITEM, TODO, PR…, Owner, Effort and TAGS (the %3PRIORITY column is 3 characters wide, so its title is cut). Press q.

Try: press 1<prefix>C. Expect: every headline of the file is a row now, with the #+COLUMNS: format; each top-level heading shows the Effort total of its subtree (e.g. "Column view" and "Summary operators"). q again.

If you prefer a separate window, columns_view = "table" shows the view as a table in a split (<CR> there jumps to the entry):

require("org.config").opts.columns_view = "table"

Try: run the block and press <prefix>C on "Organise the team day". Expect: a split at the bottom with the same five rows, drawn with │ separators. q closes it. Set the option back to "overlay" to return to the default.

  1. TODO Book the venue
  2. TODO Order the food
  3. TODO Plan the games   fun
  4. DONE Send the invitations

9.2. The format: %[width]PROPERTY[(title)][{summary}]

Each column is % followed by an optional width, the property name, an optional title in parentheses and an optional summary operator in braces: %25ITEM is the headline, 25 characters wide; %Effort(Time){:} shows Effort under the title Time and sums it as durations. A format after ; in the braces (%Cost{+;%.2f}) is applied to every value of the column.

9.3. Keys in column view

Key Action
e edit the value (also TODO, tags, dates)
n p next / previous allowed value
<S-Right> <S-Left> same as n / p
1 .. 9 pick the N-th allowed value
a edit the allowed values (NAME_ALL)
v show the full value
<C-c><C-c> toggle a checkbox value (else quit)
<C-c><C-t> change the TODO state
<C-c><C-o> open the link in the field
h l previous / next column (also arrow keys)
< > narrow / widen the column
<M-h> <M-l> move the column left / right
<M-L> <M-H> add a column / delete the column
s edit the column (property, title, summary)
<M-k> <M-j> move the entry up / down
c o contents / overview visibility
r g recompute
q quit

Changes to the layout (width, order, new columns) are saved back to the COLUMNS property or the #+COLUMNS: line the view comes from.

9.3.1. TODO Move to the cloud

Try: on "Move to the cloud" press <prefix>C. Move to the Owner column of "Pick a provider" (j / k move between rows, l / h between columns) and press n. Expect: Carol, and the drawer of "Pick a provider" now says :Owner: Carol.

Try: in the Status column of the same row press 1. Expect: Not started (the first allowed value).

Try: in the Effort column of "Migrate the mail server" press p. Expect: 2:00, and the total on "Move to the cloud" changes from 7:00 to 5:00.

Try: in the TODO column press n. Expect: the entry becomes DONE.

Try: press > three times (one key at a time) in the Owner column, then q. Expect: the COLUMNS property of "Move to the cloud" now starts %25ITEM %TODO %8Owner: the width was saved.

  1. TODO Inventory the servers
  2. TODO Pick a provider
  3. TODO Migrate the mail server

10. Summary operators

A summary operator in braces computes a value for every entry with children, from the values of its children (and their children, bottom up). The entry's own value is not added: a parent shows the summary of its children. Each subtree below has its own COLUMNS property; press <prefix>C on its first heading to see the numbers of the Expect: lines.

10.1. Numbers: {+} {$} {min} {max} {mean}

Operator Result
{+} sum (6, 19.5: printed like Emacs)
{+;%.1f} sum, every value with one decimal
{$} sum with two decimals (money)
{min} smallest value
{max} largest value
{mean} arithmetic mean (always shown with a decimal)

10.1.1. Books to buy

Try: on "Books to buy" press <prefix>C. Expect:

ITEM            | Pages | Price | Low | Avg | High
Books to buy    | 1363  | 29.49 | 3   | 4.0 | 5
  Dune          | 612   | 9.99  | 5   | 5   | 5
  Neuromancer   | 271   | 7.5   | 4   | 4   | 4
  Snow Crash    | 480   | 12    | 3   | 3   | 3
  • Pages{+}: 612 + 271 + 480 = 1363;
  • Price{$}: 9.99 + 7.5 + 12 = 29.49, always with two decimals;
  • the same property Rating appears three times with different operators and titles: min 3, mean 4.0 (a mean always has a decimal), max 5. Leaves show their own value.
  1. Dune
  2. Neuromancer
  3. Snow Crash

10.2. Durations: {:} {:min} {:max} {:mean}

10.2.1. Sprint 42

Try: on "Sprint 42" press <prefix>C. Expect: on the "Sprint 42" row: Total 6:15, Min 0:45, Max 4:00, Mean 2:05 (375 minutes / 3 = 125 minutes).

  1. Design
  2. Build
  3. Test

10.2.2. Long project

Try: on "Long project" press <prefix>C. Expect: 1d 21:30 on "Long project": 1 day + 20 hours + 90 minutes. Values in units (1d, 20h, 90min) are added up and written with duration_format (default "d h:mm": days, then hours and minutes). When every value is H:MM, the total stays H:MM even past 24 hours.

  1. Research
  2. Prototype
  3. Review

10.3. Checkboxes: {X} {X/} {X%}

10.3.1. Packing list

Try: on "Packing list" press <prefix>C. Expect: on "Packing list": All [-] (some but not all are [X]), Count [2/4], Pct [50%].

Try: in the view, go to the All column of "Charger" and press <C-c><C-c> (or n). Expect: Charger's value becomes [X] (its drawer too), and the parent row shows [-], [3/4], [75%].

  1. Passport
  2. Tickets
  3. Charger
  4. Sunscreen

10.4. Ages: {@min} {@max} {@mean}

10.4.1. Waiting times

Try: on "Waiting times" press <prefix>C. Expect: Shortest 12h, Longest 5d, Average 2d 12h (7.5 days / 3).

The @ operators are meant for ages: a value that is a timestamp, such as [2026-09-01 Tue], counts as the time elapsed since then, so the result changes every day. Durations like the ones above give fixed results.

  1. Support ticket
  2. Refund
  3. Password reset

10.5. Estimates: {est+}

10.5.1. Kitchen remodel

Try: on "Kitchen remodel" press <prefix>C. Expect: 10-14 on "Kitchen remodel". Each low-high value is treated as a range: the result adds up the midpoints (3 + 2 + 7 = 12) and widens them by the combined spread (the square root of the summed variances, about 2.4), rounded to whole numbers.

  1. Cabinets
  2. Plumbing
  3. Flooring

10.6. Nested summaries

10.6.1. Company offsite

Try: on "Company offsite" press <prefix>C. Expect:

ITEM                | Cost    | Effort
Company offsite     | 1800.00 | 2:30
  Travel            | 300.00  | 0:30
    Train tickets   | 240.00  | 0:30
    Taxi            | 60.00   |
  Venue             | 1500.00 | 2:00

Summaries are computed bottom up: "Travel" sums its children, then "Company offsite" sums "Travel" and "Venue". "Taxi" has no Effort and is simply left out. The ;%.2f after + formats every value of the column, the entries' own values too, not just the sums.

  1. Travel
    1. Train tickets
    2. Taxi
  2. Venue

10.7. Summaries are written back

Like Emacs, opening column view (or updating a columnview block) writes each computed summary into the entry's own property when the entry already has that property, even an empty one, and its value differs. This keeps totals in the file up to date.

10.7.1. Garden project

Try: on "Garden project" press <prefix>C, then q. Expect: the drawer of "Garden project" now reads :COST: 155: the sum was written into the empty Cost property (its name upper-cased, like Emacs).

Try: in the drawer of "Seeds" change 35 to 50, then on the :COST: line of "Garden project" press <C-c><C-c> and c (compute). Expect: 170: :Org compute_property_at_point recomputes just this property without opening column view.

  1. Seeds
  2. Tools

10.8. Your own summary operator

columns_summary_types adds operators. Each is a Lua function receiving the list of child values (strings) and returning the summary. This one counts the children that have a value:

require("org.config").opts.columns_summary_types = {
  count = function(values) return tostring(#values) end,
}

10.8.1. Bug triage

Try: run the block, then on "Bug triage" press <prefix>C. Expect: the Severity column of "Bug triage" shows 3.

  1. Crash on start
  2. Typo in menu
  3. Slow search

11. Column view as a table (columnview dynamic block)

A columnview dynamic block writes the column view into the file as an Org table that you can export or use in formulas. <C-c><C-x>i inserts one; <C-c><C-c> on the #+BEGIN: line (or <prefix>xu) updates it. Parameters: :id local (this subtree), global (the whole file), file:path or an ID; :maxlevel N; :hlines N; :indent t; :skip-empty-rows t; :match "tags"; :exclude-tags (a b); :format "...". See 18-dynamic-blocks.org for everything about dynamic blocks.

11.0.1. Offsite budget

Try: put the cursor on the #+BEGIN: line and press <C-c><C-c>. Expect: the block is filled with:

| <20>           |       |      |
| ITEM           | Owner | Cost |
|----------------+-------+------|
| Offsite budget |       | 1150 |
| \_  Catering   | Alice |  800 |
| \_  Bus        | Bob   |  350 |

The first row holds the width <20> from %20ITEM, and that column is shrunk to 20 characters on screen. \_ marks the indentation of sub-entries (:indent t). Change a Cost and update the block again.

  1. Catering
  2. Bus

12. Column view in the agenda

In the agenda, <C-c><C-x><C-c> shows the agenda entries in column view too (with the format of each entry's file); see 09-agenda.org.

13. Further reading

  • :h org-properties and :h org-columns
  • :h org-match-syntax – property matches
  • :h org-dblocks – the columnview block
  • :h org-agenda-columns – column view in the agenda
  • Related example files: 04-todo, 05-tags, 08-clocking, 09-agenda, 18-dynamic-blocks.