created
2026-10-29
updated
2026-10-30

Calendar events

Calendar events

Use events for something happening over a date range or time interval. Use Tasks for work with a completion state, scheduled day, or deadline. Creating an event does not convert an existing note or task.

Back to Web workspace and track.

Register and edit

In the live Calendar, choose Month, Today, Tomorrow, or This week, then New event in the Events section. A day page also offers New event for that date. The selected vault determines where the event is saved; related-note choices come from that same vault.

In Today, Tomorrow, This week, and a day page, Show: All / Events / Tasks controls which agenda sections are visible. Choose Events to focus on appointments, Tasks for dated work, or All for both. The check mark and pressed state identify the choice; Tab and Enter or Space operate the buttons. On macOS, use Option-Tab when keyboard navigation skips buttons. The choice stays while moving dates or periods in that Calendar screen; opening another screen or reloading starts with All. Switching the filter does not save or delete anything. Day pages continue to show activity notes and the Journal action. Published calendars keep their read-only task snapshot and do not offer the live event filter.

Calendar display

Open Calendar display in the live Calendar or a day page. Choose Sunday or Monday for Week starts on, enter a supported IANA Display time zone such as America/New_York, Asia/Tokyo, or UTC, then choose Apply display. An empty zone follows your device. Use defaults restores Sunday and the device zone, including any unsaved fields in the form. A successful Apply shows the accepted value in the fields. Invalid input stays in the form; a save failure leaves the current display unchanged so you can retry.

The saved choice is shared across vaults in this browser profile and server address. Reloading, opening another Calendar screen, or reopening the same address restores it. Another browser, profile, or server port has its own choice. The desktop app uses its persistent browser store at its usual address. Preferences do not sync with a vault or change OS settings. Unreadable or unsupported saved settings fall back to Sunday/device with an explanation in Calendar display.

Today, Tomorrow, the current week, month weekday columns, event membership, and time-grid labels use the selected display zone and week start. Current month returns to that zone's current month; changing the display zone keeps the month you are browsing. All-day dates, task scheduled and due dates, and note activity dates stay as written. “Today” and overdue reminders use the selected display zone. Published calendars retain their read-only Sunday/device defaults.

Changing display preferences does not rewrite events or an open editor. Existing timed events keep their authored zone in the editor and detailed Agenda labels; a new timed event starts with the selected display zone. An already-open draft keeps its current values.

Day and week time grid

In Today, Tomorrow, This week, or a day page, choose Time grid in the Events section. Agenda returns to the detailed list. The layout stays while moving dates in the same screen; the Month view keeps its list. Show: Events / Tasks / All still controls the sections.

All-day events appear above the hours on every included civil date. Timed events are split at midnight in the selected display zone, with “Continues” at the clipped ends. Overlapping intervals use separate columns so every event can be selected. Short entries keep a minimum target; very dense periods widen the grid rather than covering another event. Cancelled entries are labelled; deleted entries stay in Show trash. Open an event to read all its details and edit its original date range and event time zone.

The grid labels the selected display zone (the device zone by default). Each day follows actual elapsed time from local midnight in that zone: a daylight-saving transition can have 23 or 25 hours, and transition-day labels include UTC offsets so repeated clock times remain distinct. Adjacent columns can therefore show different wall-clock hours at the same height on transition days. A skipped civil date has no local hours. When a date begins at 01:00 after a clock change, its end still uses the following date's own midnight; events after that boundary appear only on the following date. The grid does not change saved timestamps or event time zones.

Scroll the grid vertically for later hours and horizontally for more days or overlapping events, including on narrow windows. Tab (Option-Tab on macOS when needed) reaches the scroll region and event buttons; use arrow keys to scroll the focused region and Enter or Space to open an event. The event editor retains the same save and unsaved-input protection as Agenda. Date-only tasks stay in the task agenda; the grid does not invent a time for them. Use the time-change controls below for eligible entries; other intervals remain editable in the regular event form.

Change times from the grid

For a confirmed timed event that fits inside one ordinary 24-hour display-zone day, drag the event to move both ends, or drag its ↕ Change time handle to resize the end. Proposals snap to 15-minute steps, stay in the same day, and keep at least 15 minutes when resizing. A dashed preview appears during a drag. Dropping opens Review time change; the grid's saved times stay in place until you confirm Apply time change.

The same handle opens four actions: Move earlier 15 minutes, Move later 15 minutes, End earlier 15 minutes, and End later 15 minutes. Tab to Change time and use Enter or Space, then Tab to an available action and activate it. These actions create the same proposals as dragging. Escape closes the action list and returns focus. Touch scrolling keeps its normal behavior; use the action buttons or regular editor on a touch device.

Review shows the original schedule and proposed fields in the event's authored time zone. Its identity, revision, other details, and authored zone are retained; seconds and fractional precision are preserved by grid adjustments. Nothing is saved merely by opening the review. Choose Apply to save, or Cancel/Escape to discard. An untouched proposal already has unsaved-input protection. An in-flight Apply must finish or time out before the editor's Cancel/Escape becomes available.

Escape during a drag, pointer cancellation, losing capture or window focus, changing period/zone, or dropping outside the original day cancels the gesture. A failed save or revision conflict keeps the form and does not optimistically move the saved grid entry. Another editor's confirmed changes can still update the grid. An uncertain response may mean the save completed: use the same unchanged retry behavior described below. After success, reopen the event to adjust it again; there is no separate post-save Undo for time changes in this version.

All-day entries, events crossing a display-zone day boundary, cancelled and deleted entries, clock-change/skipped days in the display zone, and authored zones unavailable in the browser have no grid adjustment handle. Continue using their regular editor. Moving to another day, resizing the start edge, recurring series, and converting tasks are not part of these grid controls. The regular editor's existing date/time capabilities remain available. Deletion and its Undo stay in the regular event workflow.

Dates and details

Month cells list events on every day they overlap. A date with events opens its day agenda, including when a journal exists; the day's Journal action still opens that journal separately.

Enter a title and dates. All day uses a first day and a Last day, both inclusive in the form. For a three-day event from October 28 through October 30, enter those two dates. Without All day, enter start/end dates, times, and an IANA time zone such as Asia/Tokyo, America/New_York, or Europe/London. Standard IANA aliases such as US/Eastern are also accepted. Host-only names such as localtime, posixrules, and the Factory placeholder are refused. If this browser does not recognize a zone, choose a supported zone before changing an event's dates or times. Existing timestamps remain visible with their saved offsets, so an unsupported zone does not break the calendar.

Location, description, a source URL, and a related note are optional. Source URLs must use HTTP or HTTPS. Use Cancelled to retain a cancelled event visibly; a cancelled event is different from a completed task. Event rows open their editor, while Related note and Source open their references.

Save waits for confirmation. Failed input stays in the editor, and repeated clicks do not create another event. If confirmation times out, a save may already have completed: retry without changing the input to check the same operation safely. After an editing conflict, keep a copy of any draft text you need, then close and reopen the event to read the latest revision. Cancel or Escape leaves saved data unchanged and returns focus to the invoking control. Those editor actions wait for an in-flight save to finish or time out.

The desktop app asks before quitting, closing its window, or reloading/navigating the native window while an event editor is open, even before its first edit. Cancel that native warning to keep the form, then save or cancel the event editor before retrying. Closing the editor after a successful save removes that extra warning.

In the browser, Back, Forward, and navigation to another page ask before discarding changed input, a pending save, or a failed save. Cancel that navigation to retain the form. Reload and closing the browser tab use the browser's own unsaved-changes warning, including after a cancelled Back. An untouched form does not need a browser warning. A successful save, or intentionally choosing the event editor's Cancel or Escape, removes its protection; those editor actions still wait for an in-flight save to finish or time out. If you approve leaving while a save is pending, it can still finish: check the agenda before registering it again.

Dates and clock changes

All-day dates stay on their authored dates regardless of the display time zone. Internally the end is the following, excluded day; the form and event label show the inclusive last day. Timed events belong to the day or days they overlap in the selected display zone, and Agenda labels use each event's authored time zone. A midnight ending does not add the next day. A week starts Sunday by default; Calendar display can switch it to Monday.

A local time skipped by a clock change is refused. A repeated local time is also refused until you choose its UTC offset in UTC offsets for repeated times. For example, the New York fall clock change can repeat 01:30: -04:00 and -05:00 select different instants. An offset must match the named zone at that instant. No time is invented for an unknown event date/time.

Trash and restore

Move to trash keeps the saved event and its identity. Undo restores that deletion, and Show trash lists deleted events in the selected vault even when their dates are outside the visible period. Restore brings back the stored title, dates, description, references, and status; edit it afterward to make further changes. There is no permanent purge operation in this slice. Moving an event to trash discards unapplied form edits and preserves the last saved content.

CLI

The CLI uses the same validation, revision checks, and retry rules as the editor. Supply a UUID for the event and a different UUID for each distinct operation. Keep both IDs and the payload unchanged when retrying an uncertain response.

cat > /tmp/track-event-example.json <<'JSON'
{"title":"Review","all_day":true,"start":"2026-10-28","end":"2026-10-31","time_zone":"","description":"Read the source first","location":"","url":"","note_id":"","status":"confirmed","deleted":false}
JSON
track event save --id aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa --expect 0 --operation bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb < /tmp/track-event-example.json
track event list
track event get --id aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa

Use --expect 0 only for creation. For an edit, use the current revision returned by get/list, and a new operation UUID. deleted:true moves an existing event to trash with its other fields unchanged; deleted:false restores it using the latest revision. track event list --deleted includes trash. Timed JSON may provide local YYYY-MM-DDTHH:mm values with time_zone, or explicit RFC3339 values with a matching UTC offset.

Storage and limits

Events are authoritative, versioned files under calendar/events/ in the vault. Include that directory in vault backups and sync. Reindexing notes does not erase or recreate events, and no existing notes or tasks are migrated. A corrupt event file is reported as an error rather than silently omitted. Non-regular record files, including named pipes, are refused without waiting for another process to open them.

Static site export does not publish event files or event descriptions. The published calendar continues to show its dated-task snapshot. Events currently work in the live Web workspace and the desktop app that shares it. Actual native interactions require platform verification.

This slice handles single events. Recurring series, reminders, external calendar synchronization, invitations, and automatic research actions are not provided. A source URL and related note can prepare a manual research workflow without starting an external action.