Calendar actions
36 actions. Each action calls the same API route with the same scopes on every surface.
calendar_accounts
Section titled “calendar_accounts”List Calendar accounts.
| Route | GET /api/v1/calendar/accounts |
| Tool name | calternal_api_calendar_accounts |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
calternal action run calendar_accounts --input '{}' --jsoncalendar_calendars
Section titled “calendar_calendars”List Calendars.
| Route | GET /api/v1/calendar/calendars |
| Tool name | calternal_api_calendar_calendars |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
calternal action run calendar_calendars --input '{}' --jsoncalendar_create_account
Section titled “calendar_create_account”Connect a CalDAV account. Body fields: app_password, endpoint, username..
| Route | POST /api/v1/calendar/accounts |
| Tool name | calternal_api_calendar_create_account |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
app_password |
string |
yes | |
endpoint |
string |
yes | |
username |
string |
yes |
calternal action run calendar_create_account --input '{}' --confirm --jsoncalendar_create_event
Section titled “calendar_create_event”Create an Event. Body fields: calendar_id, icalendar..
| Route | POST /api/v1/calendar/events |
| Tool name | calternal_api_calendar_create_event |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
calendar_id |
string | null |
no | Omit to use the User’s synced default, or the first visible Calendar on an enabled account for legacy Users without a saved default (#827). |
icalendar |
string |
yes |
calternal action run calendar_create_event --input '{}' --confirm --jsoncalendar_create_event_from_log
Section titled “calendar_create_event_from_log”Create an Event from a Log entry. Body fields: calendar_id, end, log_id, start, timezone..
| Route | POST /api/v1/calendar/events/from-log |
| Tool name | calternal_api_calendar_create_event_from_log |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
calendar_id |
string |
yes | |
end |
string |
yes | RFC 3339 instant selected by the user. |
log_id |
string |
yes | |
start |
string |
yes | RFC 3339 instant selected by the user. |
timezone |
string |
yes |
calternal action run calendar_create_event_from_log --input '{}' --confirm --jsoncalendar_create_event_from_note
Section titled “calendar_create_event_from_note”Create an Event from a Note. Body fields: calendar_id, end, note_id, start, timezone..
| Route | POST /api/v1/calendar/events/from-note |
| Tool name | calternal_api_calendar_create_event_from_note |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
calendar_id |
string | null |
no | Optional destination; omission uses the synced Event default (#827, DESIGN §30 C14). |
end |
string |
yes | RFC 3339 instant selected by the user. |
note_id |
string |
yes | |
start |
string |
yes | RFC 3339 instant selected by the user. |
timezone |
string |
yes |
calternal action run calendar_create_event_from_note --input '{}' --confirm --jsoncalendar_create_feed
Section titled “calendar_create_feed”Publish a Calendar feed. Body fields: color, detail, include_notes, include_tasks, name, source, source_id..
| Route | POST /api/v1/calendar/feeds |
| Tool name | calternal_api_calendar_create_feed |
| Surfaces | cli, mcp, webmcp |
| Scopes | data, account |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
color |
string | null |
no | |
detail |
"full" | "busy_only" |
yes | Full feeds keep event details; Busy-only feeds reveal only availability. |
include_notes |
boolean |
no | |
include_tasks |
boolean |
no | |
name |
string |
yes | |
source |
"journal" | "area" | "calendar" |
yes | A feed source selects one owner-scoped collection of calendar data. |
source_id |
string | null |
no |
calternal action run calendar_create_feed --input '{}' --confirm --jsoncalendar_create_subscription
Section titled “calendar_create_subscription”Subscribe to a Calendar feed. Body fields: color, name, url..
| Route | POST /api/v1/calendar/subscriptions |
| Tool name | calternal_api_calendar_create_subscription |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
color |
string | null |
no | |
name |
string |
yes | |
url |
string |
yes |
calternal action run calendar_create_subscription --input '{}' --confirm --jsoncalendar_delete_event
Section titled “calendar_delete_event”Delete an Event.
| Route | DELETE /api/v1/calendar/events/{id} |
| Tool name | calternal_api_calendar_delete_event |
| 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 calendar_delete_event --input '{"path":{"id":"<id>"}}' --confirm --jsoncalendar_delete_feed
Section titled “calendar_delete_feed”Remove a published Calendar feed.
| Route | DELETE /api/v1/calendar/feeds/{id} |
| Tool name | calternal_api_calendar_delete_feed |
| Surfaces | cli, mcp, webmcp |
| Scopes | data, account |
| Effect | destructive, needs --confirm |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
calternal action run calendar_delete_feed --input '{"path":{"id":"<id>"}}' --confirm --jsoncalendar_duplicate_item
Section titled “calendar_duplicate_item”Duplicate a Calendar item. Body fields: date, id, kind..
| Route | POST /api/v1/calendar/items/duplicate |
| Tool name | calternal_api_calendar_duplicate_item |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
date |
string |
yes | The Calendar-local day that displays the source item. |
id |
string |
yes | Stable Journal block ID, Event identity, or Task identity. |
kind |
"log" | "event" | "task" |
yes |
calternal action run calendar_duplicate_item --input '{}' --confirm --jsoncalendar_event_detail
Section titled “calendar_event_detail”Get an Event.
| Route | GET /api/v1/calendar/events/{id} |
| Tool name | calternal_api_calendar_event_detail |
| 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 calendar_event_detail --input '{"path":{"id":"<id>"}}' --jsoncalendar_event_log_status
Section titled “calendar_event_log_status”Get the Log entry for an Event.
| Route | GET /api/v1/calendar/events/{id}/log-this |
| Tool name | calternal_api_calendar_event_log_status |
| 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 calendar_event_log_status --input '{"path":{"id":"<id>"}}' --jsoncalendar_events
Section titled “calendar_events”List Events Continuation: Request smaller from/to windows within the handler bounds..
| Route | GET /api/v1/calendar/events |
| Tool name | calternal_api_calendar_events |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
fresh |
boolean |
no | |
from |
string |
no | |
to |
string |
no | |
tz |
string |
no |
calternal action run calendar_events --input '{}' --jsoncalendar_items
Section titled “calendar_items”List standalone Calendar items Continuation: Pass next_cursor unchanged or reduce the date window and limit..
| Route | GET /api/v1/calendar/items |
| Tool name | calternal_api_calendar_items |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
cursor |
string |
no | |
from |
string |
yes | |
limit |
integer, int32 (0–) |
no | |
to |
string |
yes | |
tz |
string |
yes |
calternal action run calendar_items --input '{"query":{"from":"<from>","to":"<to>","tz":"<tz>"}}' --jsoncalendar_list_feeds
Section titled “calendar_list_feeds”List published Calendar feeds.
| Route | GET /api/v1/calendar/feeds |
| Tool name | calternal_api_calendar_list_feeds |
| Surfaces | cli, mcp, webmcp |
| Scopes | data, account |
| Effect | read only |
| Encoding | request none, response json |
calternal action run calendar_list_feeds --input '{}' --jsoncalendar_list_subscriptions
Section titled “calendar_list_subscriptions”List Calendar subscriptions.
| Route | GET /api/v1/calendar/subscriptions |
| Tool name | calternal_api_calendar_list_subscriptions |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
calternal action run calendar_list_subscriptions --input '{}' --jsoncalendar_log_event
Section titled “calendar_log_event”Log a past Event. Body fields: end, start..
| Route | POST /api/v1/calendar/events/{id}/log-this |
| Tool name | calternal_api_calendar_log_event |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
end |
string | null |
no | Optional local HH:MM override for an Event’s end. |
start |
string | null |
no | Optional local HH:MM override for an Event’s start. |
calternal action run calendar_log_event --input '{"path":{"id":"<id>"}}' --confirm --jsoncalendar_move_event
Section titled “calendar_move_event”Move an Event. Body fields: calendar_id..
| Route | POST /api/v1/calendar/events/{id}/move |
| Tool name | calternal_api_calendar_move_event |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
calendar_id |
string |
yes |
calternal action run calendar_move_event --input '{"path":{"id":"<id>"}}' --confirm --jsoncalendar_preferences_get
Section titled “calendar_preferences_get”Get Calendar preferences.
| Route | GET /api/v1/calendar/preferences |
| Tool name | calternal_api_calendar_preferences_get |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
calternal action run calendar_preferences_get --input '{}' --jsoncalendar_preferences_put
Section titled “calendar_preferences_put”Update Calendar preferences. Body fields: date_format, default_event_calendar_id, first_day_of_week, hour_height, snap_to_items, snap_to_now, time_format, time_step_minutes..
| Route | PUT /api/v1/calendar/preferences |
| Tool name | calternal_api_calendar_preferences_put |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
body
| Field | Type | Required | Description |
|---|---|---|---|
date_format |
"system" | "dmy_slash_padded_short" | "mdy_slash_short" | "dmy_slash_short" | "mdy_slash_long" | "dmy_slash_padded_long" | "dmy_dot" | "dmy_dash" | "ymd_slash" | "ymd_dot" | "iso" or null |
no | |
default_event_calendar_id |
string | null |
no | Select a default Event calendar. null clears the saved choice; omission keeps it for partial updates. |
first_day_of_week |
"system" | "sunday" | "monday" | "saturday" or null |
no | |
hour_height |
integer | null, int32 (0–) |
no | |
snap_to_items |
boolean | null |
no | Align pointer edits with nearby item edges. |
snap_to_now |
boolean | null |
no | Align pointer edits with the current-time line. |
time_format |
"system" | "24_hour" | "12_hour" or null |
no | |
time_step_minutes |
5 | 10 | 15 | 30 | null |
no | Grid interval: 5, 10, 15 or 30 minutes. |
calternal action run calendar_preferences_put --input '{}' --confirm --jsoncalendar_range
Section titled “calendar_range”Read a Calendar range Continuation: Request smaller from/to windows within the handler bounds..
| Route | GET /api/v1/calendar/range |
| Tool name | calternal_api_calendar_range |
| 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 calendar_range --input '{"query":{"from":"<from>","to":"<to>"}}' --jsoncalendar_refresh_calendar
Section titled “calendar_refresh_calendar”Refresh a Calendar.
| Route | POST /api/v1/calendar/calendars/{id}/refresh |
| Tool name | calternal_api_calendar_refresh_calendar |
| 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 calendar_refresh_calendar --input '{"path":{"id":"<id>"}}' --confirm --jsoncalendar_refresh_now
Section titled “calendar_refresh_now”Refresh Calendars.
| Route | POST /api/v1/calendar/refresh |
| Tool name | calternal_api_calendar_refresh_now |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request none, response json |
calternal action run calendar_refresh_now --input '{}' --confirm --jsoncalendar_refresh_subscription
Section titled “calendar_refresh_subscription”Refresh a Calendar subscription.
| Route | POST /api/v1/calendar/subscriptions/{id}/refresh |
| Tool name | calternal_api_calendar_refresh_subscription |
| 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 calendar_refresh_subscription --input '{"path":{"id":"<id>"}}' --confirm --jsoncalendar_remove_account
Section titled “calendar_remove_account”Remove a CalDAV account.
| Route | DELETE /api/v1/calendar/accounts/{id} |
| Tool name | calternal_api_calendar_remove_account |
| 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 calendar_remove_account --input '{"path":{"id":"<id>"}}' --confirm --jsoncalendar_remove_subscription
Section titled “calendar_remove_subscription”Remove a Calendar subscription.
| Route | DELETE /api/v1/calendar/subscriptions/{id} |
| Tool name | calternal_api_calendar_remove_subscription |
| 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 calendar_remove_subscription --input '{"path":{"id":"<id>"}}' --confirm --jsoncalendar_revoke_feed_link
Section titled “calendar_revoke_feed_link”Revoke a feed link.
| Route | DELETE /api/v1/calendar/feeds/{id}/link |
| Tool name | calternal_api_calendar_revoke_feed_link |
| Surfaces | cli, mcp, webmcp |
| Scopes | data, account |
| Effect | destructive, needs --confirm |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
calternal action run calendar_revoke_feed_link --input '{"path":{"id":"<id>"}}' --confirm --jsoncalendar_rotate_feed_link
Section titled “calendar_rotate_feed_link”Replace a feed link.
| Route | POST /api/v1/calendar/feeds/{id}/link |
| Tool name | calternal_api_calendar_rotate_feed_link |
| Surfaces | cli, mcp, webmcp |
| Scopes | data, account |
| Effect | destructive, needs --confirm |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
calternal action run calendar_rotate_feed_link --input '{"path":{"id":"<id>"}}' --confirm --jsoncalendar_tags
Section titled “calendar_tags”List Event Tags.
| Route | GET /api/v1/calendar/tags |
| Tool name | calternal_api_calendar_tags |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
calternal action run calendar_tags --input '{}' --jsoncalendar_update_account
Section titled “calendar_update_account”Set a CalDAV account status. Body fields: enabled..
| Route | PATCH /api/v1/calendar/accounts/{id} |
| Tool name | calternal_api_calendar_update_account |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
enabled |
boolean |
yes |
calternal action run calendar_update_account --input '{"path":{"id":"<id>"}}' --confirm --jsoncalendar_update_calendar
Section titled “calendar_update_calendar”Update Calendar settings. Body fields: color, visible..
| Route | PATCH /api/v1/calendar/calendars/{id} |
| Tool name | calternal_api_calendar_update_calendar |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
color |
string | null |
no | |
visible |
boolean | null |
no |
calternal action run calendar_update_calendar --input '{"path":{"id":"<id>"}}' --confirm --jsoncalendar_update_event
Section titled “calendar_update_event”Update an Event. Body fields: icalendar..
| Route | PUT /api/v1/calendar/events/{id} |
| Tool name | calternal_api_calendar_update_event |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
icalendar |
string |
yes |
calternal action run calendar_update_event --input '{"path":{"id":"<id>"}}' --confirm --jsoncalendar_update_feed
Section titled “calendar_update_feed”Update a published Calendar feed. Body fields: color, detail, include_notes, include_tasks, name, source, source_id..
| Route | PUT /api/v1/calendar/feeds/{id} |
| Tool name | calternal_api_calendar_update_feed |
| Surfaces | cli, mcp, webmcp |
| Scopes | data, account |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
color |
string | null |
no | |
detail |
"full" | "busy_only" |
yes | Full feeds keep event details; Busy-only feeds reveal only availability. |
include_notes |
boolean |
no | |
include_tasks |
boolean |
no | |
name |
string |
yes | |
source |
"journal" | "area" | "calendar" |
yes | A feed source selects one owner-scoped collection of calendar data. |
source_id |
string | null |
no |
calternal action run calendar_update_feed --input '{"path":{"id":"<id>"}}' --confirm --jsoncalendar_update_subscription
Section titled “calendar_update_subscription”Update a Calendar subscription. Body fields: color, name, visible..
| Route | PUT /api/v1/calendar/subscriptions/{id} |
| Tool name | calternal_api_calendar_update_subscription |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | destructive, needs --confirm |
| Encoding | request json, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes |
body
| Field | Type | Required | Description |
|---|---|---|---|
color |
string | null |
no | |
name |
string | null |
no | |
visible |
boolean | null |
no |
calternal action run calendar_update_subscription --input '{"path":{"id":"<id>"}}' --confirm --jsoncalendar_year
Section titled “calendar_year”Get Calendar activity for a year.
| Route | GET /api/v1/calendar/year |
| Tool name | calternal_api_calendar_year |
| Surfaces | cli, mcp, webmcp |
| Scopes | data |
| Effect | read only |
| Encoding | request none, response json |
query
| Field | Type | Required | Description |
|---|---|---|---|
tz |
string |
no | |
year |
integer, int32 |
yes |
calternal action run calendar_year --input '{"query":{"year":"<year>"}}' --json