Gallery › robotparts › Releases and daily notes

Releases and daily notes

robotparts' release tags and the dates of Zach's daily notes on one calendar: a month grid, a list, and the latest release week. Only file names and frontmatter dates are read from the vault, never a note's text. Drag an event to another day: the view proposes the new date to the host, and this page (site.json: editable) applies it in memory; a read-only page refuses and the event goes back.

robotpartscalendartable4 views of one calendar.json

The .base file and its data

Every tab above is one entry of this file; the views read these rows. ⋯ in the toolbar copies the current view as YAML.

# robotparts' releases and the dates of Zach's daily notes (file names and frontmatter dates only). Obsidian Bases
# grammar plus data-ui's calendar keys (docs/CONTRACT.md §5).
data: calendar.json
properties:
  title: { displayName: Title }
  kind: { displayName: Kind }
  date: { displayName: Date }
views:
  - type: calendar
    name: Month
    start: date
    title: title
    calendarView: month
    groupBy: { property: kind, direction: ASC }
  - type: calendar
    name: List
    start: date
    title: title
    calendarView: list
    groupBy: { property: kind, direction: ASC }
  - type: calendar
    name: Release week
    filters: 'kind == "release"'
    start: date
    title: title
    calendarView: week
  - type: table
    name: All
    order: [title, kind, date, created, modified, commit]
    sort:
      - { property: date, direction: DESC }
// calendar.json: 172 rows, 37 KB; the first 3
{
 "id": "robotparts-calendar",
 "title": "Releases and daily notes",
 "titleProperty": "title",
 "source": "git -C ~/robotparts tag -l 'release/*' + file names and frontmatter dates of ~/zach_brain/Sources/Daily Notes (no note content)",
 "properties": {
  "title": {
   "type": "text",
   "label": "Title",
   "width": 240
  },
  "kind": {
   "type": "text",
   "label": "Kind",
   "display": "badge",
   "colors": {
    "release": 8,
    "daily note": 1
   }
  },
  "date": {
   "type": "date",
   "label": "Date"
  },
  "created": {
   "type": "date",
   "label": "Note created",
   "readOnly": true
  },
  "modified": {
   "type": "date",
   "label": "Note modified",
   "readOnly": true
  },
  "commit": {
   "type": "text",
   "label": "Tagged commit"
  }
 },
 "rows": [
  {
   "id": "note-jun-7-2021",
   "title": "Jun 7 2021",
   "kind": "daily note",
   "date": "2021-06-07",
   "created": "2026-06-10T18:49:54",
   "modified": null,
   "commit": null
  },
  {
   "id": "note-feb-27-2026",
   "title": "Feb 27 2026",
   "kind": "daily note",
   "date": "2026-02-27",
   "created": "2026-05-30T18:29:24",
   "modified": null,
   "commit": null
  },
  {
   "id": "note-2026-04-30",
   "title": "2026-04-30",
   "kind": "daily note",
   "date": "2026-04-30",
   "created": "2026-04-30T05:49:23",
   "modified": null,
   "commit": null
  }
 ]
}
README.md
# Releases and daily notes

robotparts' release tags and the dates of Zach's daily notes on one calendar: a month grid, a list, and the
latest release week. Only file names and frontmatter dates are read from the vault, never a note's text. Drag an
event to another day: the view proposes the new date to the host, and this page (`site.json`: editable) applies it
in memory; a read-only page refuses and the event goes back.

- **App:** robotparts
- **Replaces:** scanning `Sources/Daily Notes/` by file name and `git tag -l 'release/*'`; there was no calendar of
  either.
- **Shows:** the calendar view (Event Calendar) with `start`, `title`, `calendarView` (month, list, week; the
  toolbar's buttons write it back), `groupBy` as event colour, a filter, drag-to-reschedule through
  `host.propose`, and the same rows as a table.
- **Data:** `calendar.json`, written by `source/build.py`: 166 daily notes (title = file name, date from it,
  `date created` / `date modified` from frontmatter) and 6 releases (tag date-time and commit).

The original UI it replaces

scanning Sources/Daily Notes/ by file name and git tag -l 'release/*'; there was no calendar of either.

What it shows

the calendar view (Event Calendar) with start, title, calendarView (month, list, week; the toolbar's buttons write it back), groupBy as event colour, a filter, drag-to-reschedule through host.propose, and the same rows as a table.

Data

calendar.json, written by source/build.py: 166 daily notes (title = file name, date from it, date created / date modified from frontmatter) and 6 releases (tag date-time and commit).