Obsidian properties are a good idea with a shallow floor: text, number, date, checkbox, list. Fine for a note. Not enough for work that has a budget, a severity, a client, a completion percentage and a signed contract attached.
Obsidian custom fields, as InventTasks implements them, are a real typed system
on top of that same frontmatter — task metadata the plugin understands rather
than strings it merely stores. Values stay
in custom_fields in the note, readable in any editor, and the plugin knows what
each one means.
The 24 types#
| Group | Types |
|---|---|
| Text | Text, Long text, Markdown note |
| Secret | Secret text, Secret long text, Secret Markdown note |
| Numeric | Number, Money, Rating, Progress (manual), Progress (automatic) |
| Time | Date, Date & time, Time of day |
| Choice | Dropdown, Labels (multi-select), Checkbox |
| Contact & place | URL, Email, Phone, Location |
| Links | Relationship (to other tasks), Doc link, Attachment |
Each field has a stable ID and a type that is locked after creation — on purpose. Silently reinterpreting existing values because someone flipped a field from Number to Text is how data gets lost.
Progress (automatic) is the one worth calling out: it derives from completed subtasks or checklist items, so the number is a consequence of the work rather than something you remember to update.
Inheritance, not repetition#
Fields are defined at the workspace level and cascade down:
Workspace → Space → Folder → List
Every level below the workspace sets each section to inherit, on or off. A "Client" dropdown defined once at the workspace appears on every task underneath; a Space for personal projects turns it off; one list adds a "Story points" field nobody else sees.
The same cascade carries statuses, priorities, item types, the tag palette, context labels, view defaults, feature toggles and notification rules — Reset to inherited drops overrides for one section or all of them.
Secret fields are actually encrypted#
Three of the 24 types — Secret text, Secret long text, Secret Markdown — are encrypted before they are written to the Markdown file. You set one workspace password of at least eight characters on first use; the plugin stores authenticated-encryption metadata and ciphertext, and never stores the password or the plaintext.
You can reveal one field, unlock everything in a task, or unlock the workspace
for the session and lock it again from the toolbar. Ordinary views mask the
values. The REST API redacts them as null unless Full
access, a separate secret-access switch, and the workspace password are all
supplied on the request.
The password cannot be recovered. Lose it and the encrypted values are gone, including every copy that travelled through sync or a backup. Keep it in a password manager, not in your head.
What it looks like on disk#
---
id: TSK-00311
title: Renew the hosting contract
status: todo
custom_fields:
cf-client: Acme GmbH
cf-budget: 1840.00
cf-severity: high
cf-renewal: 2026-11-30
cf-contract: { path: contract.pdf }
---
No proprietary database, no export step. Grep it, script it, keep it in Git,
sync it to your own server, or read it in a decade with cat.
Where fields show up#
Columns in List and Table, with per-column calculations (sum, average, min, max, range, checked percent, regex match count). Grouping and filtering in every view. Bar and pill colours in Gantt, Timeline and Calendar. Card faces on the board.
Required fields show an asterisk and highlight when empty — but they warn, they do not block you from saving a task mid-thought.
If custom fields are what you are looking for, you probably had them somewhere else first — see what carries over from ClickUp.