Notes actions
65 actions. Each action calls the same API route with the same scopes on every surface.
attach
Section titled “attach”Attach a File Task to its latest eligible Log entry.. Body fields: task_id..
| Route | POST /api/v1/notes/tasks/attach |
| Tool name | calternal_tasks_attach_file_task_to_log |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
task_id |
string |
yes |
calternal action run attach --input '{}' --confirm --jsonbacklinks
Section titled “backlinks”List Notes that link to a Home-relative path..
| Route | GET /api/v1/notes/backlinks |
| Tool name | calternal_notes_list_backlinks |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
path |
string |
yes |
calternal action run backlinks --input '{"query":{"path":"<path>"}}' --jsonby_day
Section titled “by_day”List Tasks by day Continuation: Request smaller from/to windows within the handler bounds..
| Route | GET /api/v1/notes/tasks/day |
| Tool name | calternal_api_by_day |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
from |
string |
yes | |
to |
string |
yes | |
tz |
string |
no |
calternal action run by_day --input '{"query":{"from":"<from>","to":"<to>"}}' --jsonby_tag
Section titled “by_tag”List Notes with a Tag.
| Route | GET /api/v1/notes/tags/{tag} |
| Tool name | calternal_api_by_tag |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
tag |
string |
yes |
calternal action run by_tag --input '{"path":{"tag":"<tag>"}}' --jsoncreate
Section titled “create”Create a Note. Body fields: body, canvas, folder, tags, title..
| Route | POST /api/v1/notes |
| Tool name | calternal_api_create_note |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
body |
string | null |
no | |
canvas |
boolean |
no | Canvas creation reuses the Note writer; later edits use collaboration only (§60). |
folder |
string | null |
no | New Notes use the flat Notes/ root, so only that value is accepted. |
tags |
array | null |
no | |
title |
string |
yes |
calternal action run create --input '{}' --confirm --jsoncreate_linked
Section titled “create_linked”Create a Note linked to an item. Body fields: path..
| Route | POST /api/v1/notes/linked-notes |
| Tool name | calternal_api_create_linked |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
path |
string |
yes |
calternal action run create_linked --input '{}' --confirm --jsonGet or create the User’s Daily note for a calendar date..
| Route | GET /api/v1/notes/daily |
| Tool name | calternal_notes_get_or_create_daily |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
date |
string |
no |
headers
| Field | Type | Required | Description |
|---|---|---|---|
X-Calternal-Timezone |
string |
no |
calternal action run daily --input '{}' --jsondetach
Section titled “detach”Detach a File Task from its Log entry.. Body fields: task_id..
| Route | POST /api/v1/notes/tasks/detach |
| Tool name | calternal_tasks_detach_file_task_from_log |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
task_id |
string |
yes |
calternal action run detach --input '{}' --confirm --jsonensure_daily
Section titled “ensure_daily”Ensure a Daily note exists under the shared writer lock (#752, DESIGN §41). POST makes Home creation and adjacent navigation an explicit write..
| Route | POST /api/v1/notes/daily |
| Tool name | calternal_api_ensure_daily |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request none, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
date |
string |
no |
headers
| Field | Type | Required | Description |
|---|---|---|---|
X-Calternal-Timezone |
string |
no |
calternal action run ensure_daily --input '{}' --confirm --jsonexport_canvas
Section titled “export_canvas”Export an editable Canvas as PNG or SVG. Use offset and limit for byte chunks; check that each response ETag matches before joining chunks..
| Route | GET /api/v1/notes/{id}/export |
| Tool name | calternal_api_export_canvas |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response base64 |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
query
| Field | Type | Required | Description |
|---|---|---|---|
format |
"png" | "svg" |
yes | The format is fixed; callers cannot select a program, path or browser flag. |
limit |
integer (1–524288) |
no | |
offset |
integer (0–) |
no |
calternal action run export_canvas --input '{"path":{"id":"<id>"},"query":{"format":"<format>"}}' --jsonget_note
Section titled “get_note”Read a Note.
| Route | GET /api/v1/notes/{id} |
| Tool name | calternal_api_get_note |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
calternal action run get_note --input '{"path":{"id":"<id>"}}' --jsonlinked_notes
Section titled “linked_notes”List Notes linked to a path.
| Route | GET /api/v1/notes/linked-notes |
| Tool name | calternal_api_linked_notes |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
path |
string |
yes |
calternal action run linked_notes --input '{"query":{"path":"<path>"}}' --jsonmove_note
Section titled “move_note”Move a Note. Body fields: folder.. Required headers: If-Match..
| Route | POST /api/v1/notes/{id}/move |
| Tool name | calternal_api_move_note |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
If-Match |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
folder |
string |
yes |
calternal action run move_note --input '{"path":{"id":"<id>"},"headers":{"If-Match":"<If-Match>"}}' --confirm --jsonnote_backlinks
Section titled “note_backlinks”List backlinks to a Note.
| Route | GET /api/v1/notes/{id}/backlinks |
| Tool name | calternal_api_note_backlinks |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
calternal action run note_backlinks --input '{"path":{"id":"<id>"}}' --jsonnote_links
Section titled “note_links”List Note links.
| Route | GET /api/v1/notes/{id}/links |
| Tool name | calternal_api_note_links |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
calternal action run note_links --input '{"path":{"id":"<id>"}}' --jsonnotes_bookmarks_create
Section titled “notes_bookmarks_create”Save a bookmark or clip as a Note. Body fields: description, favicon, highlights, kind, selected_text, tags, title, url..
| Route | POST /api/v1/notes/bookmarks |
| Tool name | calternal_api_notes_bookmarks_create |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
description |
string | null |
no | Page description supplied by the capturing client. |
favicon |
string | null |
no | Favicon address supplied by the capturing client. |
highlights |
array of string |
no | Selected passages to add as blockquotes. |
kind |
"bookmark" | "clip" |
no | Capture a link as a bookmark or fetch and extract it as a clip. |
selected_text |
string | null |
no | The selected text at capture time. |
tags |
array of string |
no | Tags to add to the Note frontmatter. |
title |
string | null |
no | Page title. The server uses the extracted title or site when omitted. |
url |
string |
yes | Absolute HTTP or HTTPS address to save. |
calternal action run notes_bookmarks_create --input '{}' --confirm --jsonnotes_composer_parse
Section titled “notes_composer_parse”Parse Composer text. Body fields: mode, now, text..
| Route | POST /api/v1/notes/composer/parse |
| Tool name | calternal_api_notes_composer_parse |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
mode |
string |
yes | The composer’s mode: event (a Log entry or an Event), task or note. It selects the run grammar and the tag namespace. |
now |
string |
yes | The client’s local wall time, YYYY-MM-DDTHH:MM[:SS]. Its date is the reference for relative dates (“tomorrow”); the core ignores the zone. |
text |
string |
yes | Line 1 of the composer text. No line breaks. |
calternal action run notes_composer_parse --input '{}' --jsonnotes_create_block_reminder
Section titled “notes_create_block_reminder”Add a reminder to a Note block with If-Match set to the current Note ETag.. Body fields: audience, block_id, instant.. Required headers: If-Match..
| Route | POST /api/v1/notes/{id}/reminders |
| Tool name | calternal_api_notes_create_block_reminder |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
If-Match |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
audience |
"everyone" | "only_me" |
no | Users who can see the Note at fire time, or only the setter. |
block_id |
string |
yes | Existing stable Markdown block anchor (^id). |
instant |
string |
yes | One absolute instant in RFC 3339 form. |
calternal action run notes_create_block_reminder --input '{"path":{"id":"<id>"},"headers":{"If-Match":"<If-Match>"}}' --confirm --jsonnotes_delete_block_reminder
Section titled “notes_delete_block_reminder”Delete a Note block reminder with If-Match set to the current Note ETag.. Required headers: If-Match..
| Route | DELETE /api/v1/notes/{id}/reminders/{reminder_id} |
| Tool name | calternal_api_notes_delete_block_reminder |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes | |
reminder_id |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
If-Match |
string |
yes |
calternal action run notes_delete_block_reminder --input '{"path":{"id":"<id>","reminder_id":"<reminder_id>"},"headers":{"If-Match":"<If-Match>"}}' --confirm --jsonnotes_events
Section titled “notes_events”Subscribe to Note changes Continuation: Reduce poll_ms after an overflow. Read current data after reconnect; use Last-Event-ID only where the route replays events..
| Route | GET /api/v1/notes/events |
| Tool name | calternal_api_notes_events |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response sse |
headers
| Field | Type | Required | Description |
|---|---|---|---|
Last-Event-ID |
string |
no |
calternal action run notes_events --input '{}' --jsonnotes_journal_create_log
Section titled “notes_journal_create_log”Create a Log entry. Body fields: attachments, client_id, now, position, text, timezone..
| Route | POST /api/v1/notes/journal/log |
| Tool name | calternal_api_notes_journal_create_log |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
attachments |
array of object |
no | Files already in the Home (uploaded by the composer) to link below the new entry, in order: -  for an embed, else - [text](<target>). Written in the same Daily note write as the entry, so an entry never lands without the attachments it was sent with. |
client_id |
string | null |
no | Stable create identity supplied by the Installation. Receipts retain the first outcome so partial Composer retries cannot create another Log (#844). |
now |
string |
yes | |
position |
object or null |
no | |
text |
string |
yes | |
timezone |
string |
yes |
calternal action run notes_journal_create_log --input '{}' --confirm --jsonnotes_journal_create_log_batch
Section titled “notes_journal_create_log_batch”Create Log entries in a batch. Body fields: entries..
| Route | POST /api/v1/notes/journal/log/batch |
| Tool name | calternal_api_notes_journal_create_log_batch |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
entries |
array of object |
yes |
calternal action run notes_journal_create_log_batch --input '{}' --confirm --jsonnotes_journal_day
Section titled “notes_journal_day”Get a Daily note and its Log.
| Route | GET /api/v1/notes/journal/{date} |
| Tool name | calternal_api_notes_journal_day |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
date |
string |
yes |
calternal action run notes_journal_day --input '{"path":{"date":"<date>"}}' --jsonnotes_journal_delete_entry
Section titled “notes_journal_delete_entry”Delete a Log entry. Required headers: If-Match..
| Route | DELETE /api/v1/notes/journal/entries/{block_id} |
| Tool name | calternal_api_notes_journal_delete_entry |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
block_id |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
If-Match |
string |
yes |
calternal action run notes_journal_delete_entry --input '{"path":{"block_id":"<block_id>"},"headers":{"If-Match":"<If-Match>"}}' --confirm --jsonnotes_journal_entry_attachments
Section titled “notes_journal_entry_attachments”Add files to a Log entry. Body fields: attachments..
| Route | POST /api/v1/notes/journal/entries/{block_id}/attachments |
| Tool name | calternal_api_notes_journal_entry_attachments |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
block_id |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
attachments |
array of object |
yes |
calternal action run notes_journal_entry_attachments --input '{"path":{"block_id":"<block_id>"}}' --confirm --jsonnotes_journal_entry_note
Section titled “notes_journal_entry_note”Create a Note from a Log entry. Body fields: body, client_id..
| Route | POST /api/v1/notes/journal/entries/{block_id}/note |
| Tool name | calternal_api_notes_journal_entry_note |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
block_id |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
body |
string |
yes | |
client_id |
string | null |
no | The Composer’s stable linked-body operation identity (#844). |
calternal action run notes_journal_entry_note --input '{"path":{"block_id":"<block_id>"}}' --confirm --jsonnotes_journal_fix_line
Section titled “notes_journal_fix_line”Fix an unparsed Log line. Required headers: If-Match..
| Route | POST /api/v1/notes/journal/{date}/lines/{hash}/fix |
| Tool name | calternal_api_notes_journal_fix_line |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
date |
string |
yes | |
hash |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
If-Match |
string |
yes |
calternal action run notes_journal_fix_line --input '{"path":{"date":"<date>","hash":"<hash>"},"headers":{"If-Match":"<If-Match>"}}' --confirm --jsonnotes_journal_get_entry
Section titled “notes_journal_get_entry”Get a Log entry by block ID.
| Route | GET /api/v1/notes/journal/entries/{block_id} |
| Tool name | calternal_api_notes_journal_get_entry |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
block_id |
string |
yes |
calternal action run notes_journal_get_entry --input '{"path":{"block_id":"<block_id>"}}' --jsonnotes_journal_patch_entry
Section titled “notes_journal_patch_entry”Change a Log entry. Body fields: date, end, start, tags, title, tz.. Required headers: If-Match..
| Route | PATCH /api/v1/notes/journal/entries/{block_id} |
| Tool name | calternal_api_notes_journal_patch_entry |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
block_id |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
If-Match |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
date |
string | null |
no | |
end |
string | null |
no | |
start |
string | null |
no | |
tags |
array | null |
no | |
title |
string | null |
no | |
tz |
string | null |
no |
calternal action run notes_journal_patch_entry --input '{"path":{"block_id":"<block_id>"},"headers":{"If-Match":"<If-Match>"}}' --confirm --jsonnotes_journal_remove_attachment
Section titled “notes_journal_remove_attachment”Remove a file link from a Log entry. Body fields: target..
| Route | POST /api/v1/notes/journal/entries/{block_id}/attachments/remove |
| Tool name | calternal_api_notes_journal_remove_attachment |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
block_id |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
target |
string |
yes |
calternal action run notes_journal_remove_attachment --input '{"path":{"block_id":"<block_id>"}}' --confirm --jsonnotes_journal_restore_attachments
Section titled “notes_journal_restore_attachments”Restore child links from the Undo action, including links to files that stay Missing (#603).. Body fields: attachments..
| Route | POST /api/v1/notes/journal/entries/{block_id}/attachments/restore |
| Tool name | calternal_api_notes_journal_restore_attachments |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
block_id |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
attachments |
array of object |
yes |
calternal action run notes_journal_restore_attachments --input '{"path":{"block_id":"<block_id>"}}' --confirm --jsonnotes_list
Section titled “notes_list”List Notes Continuation: Pass next_cursor unchanged. Reduce limit after an overflow..
| Route | GET /api/v1/notes |
| Tool name | calternal_api_notes_list |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
cursor |
string |
no | |
limit |
integer, int64 |
no | |
path |
string |
no | |
recent |
boolean |
no | |
sort |
string |
no |
calternal action run notes_list --input '{}' --jsonnotes_list_block_reminders
Section titled “notes_list_block_reminders”List a Note’s block reminders.
| Route | GET /api/v1/notes/{id}/reminders |
| Tool name | calternal_api_notes_list_block_reminders |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
calternal action run notes_list_block_reminders --input '{"path":{"id":"<id>"}}' --jsonnotes_restore_block_reminder
Section titled “notes_restore_block_reminder”Restore a removed reminder if its Note and reminder revisions still match.. Body fields: expected_revision.. Required headers: If-Match..
| Route | POST /api/v1/notes/{id}/reminders/{reminder_id}/restore |
| Tool name | calternal_api_notes_restore_block_reminder |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes | |
reminder_id |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
If-Match |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
expected_revision |
integer, int64 (0–) |
yes | Revision returned by the matching Remove action. |
calternal action run notes_restore_block_reminder --input '{"path":{"id":"<id>","reminder_id":"<reminder_id>"},"headers":{"If-Match":"<If-Match>"}}' --confirm --jsonnotes_task_by_id
Section titled “notes_task_by_id”Get a Task by identity.
| Route | GET /api/v1/notes/tasks/by-id |
| Tool name | calternal_api_notes_task_by_id |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
task_id |
string |
yes |
calternal action run notes_task_by_id --input '{"query":{"task_id":"<task_id>"}}' --jsonnotes_task_views_create
Section titled “notes_task_views_create”Create one stable-ID view in its own readable file under Views.. Body fields: view..
| Route | POST /api/v1/notes/tasks/views |
| Tool name | calternal_api_notes_task_views_create |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
view |
object |
yes | One Obsidian Bases view object. The route assigns or checks its stable ID. |
calternal action run notes_task_views_create --input '{}' --confirm --jsonnotes_task_views_get
Section titled “notes_task_views_get”Read one view by its stable YAML ID, even after its file has been renamed..
| Route | GET /api/v1/notes/tasks/views/{id} |
| Tool name | calternal_api_notes_task_views_get |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
calternal action run notes_task_views_get --input '{"path":{"id":"<id>"}}' --jsonnotes_task_views_list
Section titled “notes_task_views_list”List views from one bounded page of visible .base files. Continuation: Pass next_cursor unchanged. Reduce limit after an overflow..
| Route | GET /api/v1/notes/tasks/views |
| Tool name | calternal_api_notes_task_views_list |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
cursor |
integer, int64 |
no | |
limit |
integer, int64 |
no |
calternal action run notes_task_views_list --input '{}' --jsonnotes_task_views_update
Section titled “notes_task_views_update”Replace one view only at the client source revision (#731, DESIGN §2). The file hash check also rejects a concurrent Files write after the read.. Body fields: view.. Required headers: If-Match..
| Route | PUT /api/v1/notes/tasks/views/{id} |
| Tool name | calternal_api_notes_task_views_update |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
If-Match |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
view |
object |
yes | One Obsidian Bases view object. The route assigns or checks its stable ID. |
calternal action run notes_task_views_update --input '{"path":{"id":"<id>"},"headers":{"If-Match":"<If-Match>"}}' --confirm --jsonnotes_tasks_list
Section titled “notes_tasks_list”List Tasks Continuation: Pass next_cursor unchanged. Reduce limit after an overflow..
| Route | GET /api/v1/notes/tasks |
| Tool name | calternal_api_notes_tasks_list |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
cursor |
integer, int64 |
no | |
limit |
integer, int64 |
no |
calternal action run notes_tasks_list --input '{}' --jsonnotes_template_create
Section titled “notes_template_create”Create a Note from a template. Body fields: folder, template_id, title..
| Route | POST /api/v1/notes/from-template |
| Tool name | calternal_api_notes_template_create |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
folder |
string | null |
no | New Notes use the flat Notes/ root, so only that value is accepted. |
template_id |
string | null |
no | |
title |
string |
yes |
calternal action run notes_template_create --input '{}' --confirm --jsonnotes_templates_default_set
Section titled “notes_templates_default_set”Set the default Note template. Body fields: folder, template_id..
| Route | PUT /api/v1/notes/templates/default |
| Tool name | calternal_api_notes_templates_default_set |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
folder |
string | null |
no | The only destination for Notes created by calternal is Notes/. |
template_id |
string | null |
no |
calternal action run notes_templates_default_set --input '{}' --confirm --jsonnotes_templates_list
Section titled “notes_templates_list”List Note templates.
| Route | GET /api/v1/notes/templates |
| Tool name | calternal_api_notes_templates_list |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
folder |
string |
no |
calternal action run notes_templates_list --input '{}' --jsonnotes_trash
Section titled “notes_trash”Move a Note to Trash. Required headers: If-Match..
| Route | DELETE /api/v1/notes/{id} |
| Tool name | calternal_api_notes_trash |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
If-Match |
string |
yes |
calternal action run notes_trash --input '{"path":{"id":"<id>"},"headers":{"If-Match":"<If-Match>"}}' --confirm --jsonnotes_used_in
Section titled “notes_used_in”List items that use a file.
| Route | GET /api/v1/notes/used-in |
| Tool name | calternal_api_notes_used_in |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
path |
string |
yes |
calternal action run notes_used_in --input '{"query":{"path":"<path>"}}' --jsonnotes_voice_backfill_control
Section titled “notes_voice_backfill_control”Pause or resume this User’s backfill from Settings → Jobs. A stop request ends the current bounded recording and preserves its hash cache for resume.. Body fields: paused..
| Route | PUT /api/v1/notes/voice/backfill |
| Tool name | calternal_api_notes_voice_backfill_control |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
paused |
boolean |
yes |
calternal action run notes_voice_backfill_control --input '{}' --confirm --jsonnotes_voice_status
Section titled “notes_voice_status”Notes voice status This read can enqueue enabled background work. Do not retry it automatically..
| Route | GET /api/v1/notes/voice/status |
| Tool name | calternal_api_notes_voice_status |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
calternal action run notes_voice_status --input '{}' --jsonnotes_voice_transcribe
Section titled “notes_voice_transcribe”Notes voice transcribe.
| Route | POST /api/v1/notes/voice/transcriptions |
| Tool name | calternal_api_notes_voice_transcribe |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request base64, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
target |
"note" | "task" |
yes | |
target_id |
string |
yes |
body: string. Base64 encoded bytes; send large uploads in chunks
calternal action run notes_voice_transcribe --input '{"query":{"target":"<target>","target_id":"<target_id>"}}' --confirm --jsonnotes_voice_transcription
Section titled “notes_voice_transcription”Notes voice transcription.
| Route | GET /api/v1/notes/voice/transcriptions/{job_id} |
| Tool name | calternal_api_notes_voice_transcription |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
job_id |
string |
yes |
calternal action run notes_voice_transcription --input '{"path":{"job_id":"<job_id>"}}' --jsonnotes_voice_update_settings
Section titled “notes_voice_update_settings”Notes voice update settings. Body fields: context, download_enabled, structure, style..
| Route | PUT /api/v1/notes/voice/settings |
| Tool name | calternal_api_notes_voice_update_settings |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
context |
"general" | "email" |
no | |
download_enabled |
boolean |
no | |
structure |
"prose" | "lists" |
no | |
style |
"casual" | "semi-casual" | "semi-formal" | "formal" |
no |
calternal action run notes_voice_update_settings --input '{}' --confirm --jsonnotes_wikilinks_apply
Section titled “notes_wikilinks_apply”Apply Wikilink changes.
| Route | POST /api/v1/notes/wikilinks/{id}/apply |
| Tool name | calternal_api_notes_wikilinks_apply |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
calternal action run notes_wikilinks_apply --input '{"path":{"id":"<id>"}}' --confirm --jsonnotes_wikilinks_preview
Section titled “notes_wikilinks_preview”Preview Wikilink changes. Body fields: convert_unresolved, note_ids..
| Route | POST /api/v1/notes/wikilinks/preview |
| Tool name | calternal_api_notes_wikilinks_preview |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
convert_unresolved |
boolean |
no | Create Markdown links for unresolved references only when explicitly enabled. |
note_ids |
array | null |
no | Omit to convert every indexed Note. Provide stable Note IDs for a selection. |
calternal action run notes_wikilinks_preview --input '{}' --confirm --jsonnotes_wikilinks_preview_page
Section titled “notes_wikilinks_preview_page”Read a Wikilink preview page Continuation: Pass next_cursor unchanged within the same preview job. Reduce limit after an overflow..
| Route | GET /api/v1/notes/wikilinks/{id} |
| Tool name | calternal_api_notes_wikilinks_preview_page |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
query
| Field | Type | Required | Description |
|---|---|---|---|
cursor |
string |
no | |
limit |
integer, int64 |
no |
calternal action run notes_wikilinks_preview_page --input '{"path":{"id":"<id>"}}' --jsonnotes_wikilinks_undo
Section titled “notes_wikilinks_undo”Undo Wikilink changes.
| Route | POST /api/v1/notes/wikilinks/{id}/undo |
| Tool name | calternal_api_notes_wikilinks_undo |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
calternal action run notes_wikilinks_undo --input '{"path":{"id":"<id>"}}' --confirm --jsonopen_file
Section titled “open_file”Open visible Markdown through the Files surface, including Plugin-owned and Daily note files..
| Route | GET /api/v1/notes/files/open |
| Tool name | calternal_api_open_file |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
path |
string |
yes |
calternal action run open_file --input '{"query":{"path":"<path>"}}' --jsonPreview Task text as a File Task with fields and Tags.. Body fields: text..
| Route | POST /api/v1/notes/tasks/parse |
| Tool name | calternal_tasks_preview_text |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
text |
string |
yes |
calternal action run parse --input '{}' --jsonproperties
Section titled “properties”Update the fields or Tags on a File Task.. Body fields: fields, tags, task_id..
| Route | PATCH /api/v1/notes/tasks/properties |
| Tool name | calternal_tasks_update_properties |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
headers
| Field | Type | Required | Description |
|---|---|---|---|
If-Match |
string | null |
no |
body
| Field | Type | Required | Description |
|---|---|---|---|
fields |
object |
no | Task fields plus the internal task-root-block-id reminder identity. Null removes an optional field. |
tags |
array | null |
no | |
task_id |
string |
yes |
calternal action run properties --input '{}' --confirm --jsonreconcile
Section titled “reconcile”Scan the User’s Notes folder and reconcile its Index entries..
| Route | POST /api/v1/notes/reconcile |
| Tool name | calternal_notes_reconcile_home |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request none, response json |
calternal action run reconcile --input '{}' --confirm --jsonretitle
Section titled “retitle”Retitle a Note. Body fields: title.. Required headers: If-Match..
| Route | POST /api/v1/notes/{id}/retitle |
| Tool name | calternal_api_retitle |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
If-Match |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
title |
string |
yes |
calternal action run retitle --input '{"path":{"id":"<id>"},"headers":{"If-Match":"<If-Match>"}}' --confirm --jsonstandalone
Section titled “standalone”List File Tasks and undated inline Tasks outside Daily notes. Continuation: Pass next_cursor unchanged. Reduce limit after an overflow..
| Route | GET /api/v1/notes/tasks/standalone |
| Tool name | calternal_tasks_list_standalone |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
cursor |
integer, int64 |
no | |
limit |
integer, int64 |
no |
calternal action run standalone --input '{}' --jsonList Tags used by Notes and their counts..
| Route | GET /api/v1/notes/tags |
| Tool name | calternal_notes_list_tags |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
calternal action run tags --input '{}' --jsontasks_create
Section titled “tasks_create”Create a Task. Body fields: body, standalone, status, text..
| Route | POST /api/v1/notes/tasks |
| Tool name | calternal_api_tasks_create |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
body |
string | null |
no | Markdown prose placed before the Task checkbox. |
standalone |
boolean |
no | Keep the Task standalone even when a Log entry exists. |
status |
string | null |
no | Initial workflow Status for a Board lane Add task action (todo, doing, waiting, blocked, done or cancelled). |
text |
string |
yes | TickTick-style composer text. The server resolves dates and properties. |
calternal action run tasks_create --input '{}' --confirm --jsonSet a Task’s completion state, including its completed date.. Body fields: done, status, task_id..
| Route | POST /api/v1/notes/tasks/tick |
| Tool name | calternal_tasks_set_completion |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
headers
| Field | Type | Required | Description |
|---|---|---|---|
If-Match |
string | null |
no |
body
| Field | Type | Required | Description |
|---|---|---|---|
done |
boolean |
yes | |
status |
string | null |
no | Exact workflow status for Undo. Done and Cancelled require done=true; other statuses require done=false (#655 review). |
task_id |
string |
yes |
calternal action run tick --input '{}' --confirm --jsonupdate_body
Section titled “update_body”Replace a Note body. Body fields: body.. Required headers: If-Match..
| Route | PUT /api/v1/notes/{id}/body |
| Tool name | calternal_api_update_body |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
If-Match |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
body |
string |
yes |
calternal action run update_body --input '{"path":{"id":"<id>"},"headers":{"If-Match":"<If-Match>"}}' --confirm --jsonupdate_properties
Section titled “update_properties”Change Note properties. Body fields: properties, tags, title.. Required headers: If-Match..
| Route | PATCH /api/v1/notes/{id}/properties |
| Tool name | calternal_api_update_properties |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
If-Match |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
properties |
object |
no | Set User properties; null removes a property. Reserved keys are rejected. |
tags |
array | null |
no | Replace the Note Tags. Omit this field to keep them. |
title |
string | null |
no | Retained for compatibility; use retitle to change a Note title. |
calternal action run update_properties --input '{"path":{"id":"<id>"},"headers":{"If-Match":"<If-Match>"}}' --confirm --json