We use cookies to measure site usage with Google Analytics. We only turn that on if you say yes. See our Privacy Policy.

Documentation

Daily Notes

BlackOps writes your daily notes on your schedule, to your vault paths, from your calendar, queued todos, and open brain tasks.

BlackOps can write your daily notes for you. Set up as many as you want (work, personal, one per project), each with its own schedule and its own place in your vault. You don't need a local script, and your computer doesn't have to be on.

What goes in the note

A default note has these sections, top to bottom:

  • Navigation: links to the previous and next day's notes.
  • Today's Focus: a short AI summary of the day's shape, any conflicts, and the todos that most need attention. It is built only from the note's own data, and you can turn it off.
  • Today's Meetings: a table of the day's events from your calendar, with times in your timezone, a join link when there is one, and tentative or declined flags. Overlapping meetings get a Schedule Conflicts warning.
  • To-dos: everything queued with queue_daily_item for this context. Todos you haven't finished carry forward and show how many days they've been waiting.
  • Waiting on you: open brain tasks from the brains this note is about, past-due first.
  • New in your brains: every note added or changed in those brains since the previous note, grouped by brain and linked. On a Monday, a weekdays-only note covers the weekend.
  • Notes for today and Reminders: note links and text you queued for this day.
  • Daily Log: an empty heading for you to write under. With edit routing on, anything you write here is routed into your brains automatically.

If one source fails, you still get a note. An unreachable calendar, for example, shows a flagged "Calendar unavailable" box in that section while the rest of the note fills in normally.

Setting up a daily note

Go to Admin → Daily Notes and click New daily note. Give it a name (Work, Personal, Project Apollo) and you land on its settings page. Make as many as you like, one for each part of your life or one per project. Each one is generated separately, on its own schedule, to its own path.

  • Name and context. The name appears in the note's title. The context is the label you queue items with, so "put this in tomorrow's work note" lands in the note whose context is work.
  • Schedule. Pick the days of the week and the time. The note is written once on each of those days, in the timezone you choose. Weekdays only is a common setup for a work note.
  • Calendar. Paste your calendar's private ICS link (see below) and, optionally, your email on that calendar.
  • Where it's written. The file path in your vault, built from date tokens (see below). As you type, the page shows exactly where the next three notes will go.
  • What's in it. The sections and their order. Drag to reorder, switch a section off to hide it, rename headings, and add your own markdown sections.
  • Brains. The brains this note is about. It pulls their open tasks and links whatever changed in them since the last note. Pick none to use every brain.
  • Work Log. A section you fill in during the day, and whether BlackOps acts on it. See Work Log below.
  • Edit routing. Whether anything else you jot in the note (most often under Daily Log) is routed into your brains the same way. See Edit routing below.
  • Meeting notes. A prepped note for each meeting, read back at the end of the day. See Meeting notes below.
  • Options. The AI focus summary, and whether items queued with no context also show up.

Notes start switched off. Turn one on from the list or its settings page when it looks right, and use Generate today's note to see a real one straight away.

Path templates

The path is relative to the root of your vault, exactly as Obsidian shows it, and can include these tokens:

TokenExampleTokenExample
{yyyy}2026{dd}04
{yy}26{d}4
{mm}09{weekday}Thursday
{m}9{wkd}Thu
{month}September{week}36 (ISO week)
{mon}Sep{quarter}3
{context}work

For example, 02 - daily/{yyyy}/{mm}-{month}/{yyyy}-{mm}-{dd}.md writes to 02 - daily/2026/09-September/2026-09-04.md, and Projects/Apollo/Log/{yyyy}-W{week}/{yyyy}-{mm}-{dd}.md groups a project log by week. The path has to include the day and year, so each day gets its own file.

BlackOps never overwrites a file it didn't write. If a file you wrote yourself is already at a note's path, the file is left untouched and that day's run is flagged, so it's safe to point a new daily note at a folder you already use.

If your vault connection is limited to one folder (it doesn't have whole-vault access), paths must start with that folder. The settings page tells you which folder when that applies.

Changing a note's path affects new notes only. Notes already written stay where they are, and the previous/next links in new notes point at the new layout.

From a conversation

The same settings are available to an AI assistant through three MCP tools: list_daily_note_configs, set_daily_note_config (create or update by context, with schedule_days as weekday numbers where 0 is Sunday, path_template, the Work Log settings work_log_enabled, reconcile_enabled, work_log_brain_id and ticket_url_template, edit_routing_enabled, and the meeting note settings meeting_notes_enabled, meeting_notes_path_template, meeting_prep_brain_ids, meeting_notes_skip and meeting_review_time) and generate_daily_note. Use the admin page for your calendar link rather than pasting it into a chat.

Work Log

Turn on Add a Work Log section and every note gets an empty ## Work Log heading at the end (or wherever you drag the Work Log section in What's in it). During the day, write one line per thing that happened. Start a line with a prefix so BlackOps knows what it is, and indent details under it:

## Work Log

- done: ABC-1234 shipped the export fix
- mtg: Release planning
  - Agreed to freeze on the 14th
  - Dana owns the rollout doc
- note: The Q4 board needs a cleanup before planning
- blocked: ABC-1301 waiting on API keys from infra
PrefixMeansWhat happens when it's filed
done:You finished somethingThe matching open to-do or brain task is closed
mtg: or meeting:A meeting and what came out of itThe line and its details are added to the brain note it's about
note:An update, a decision, an ideaAdded to the brain note it's about
blocked:Work is stuck or waitingAdded to the brain note it's about
todo: or action:Something you still need to doA new to-do on your next note, in this context

A line with no prefix still works. BlackOps works out which kind it is, and if it can't tell, it asks you instead of guessing.

Filing It Automatically

Turn on File it automatically and BlackOps acts on each Work Log line. It does this in two passes:

  • During the day, on each vault sync. A line is filed by the first sync at least 10 minutes after you last changed it. A half-typed line is replaced before it is ever filed, and its finished wording starts its own 10 minutes. Edit a line after it's filed and the new wording counts as a new line, so fix lines before you move on. Only the latest note is filed this way.
  • Before the next note is written. Whatever the day didn't file (a line written just before your last sync, or one still inside its 10 minutes) is filed then, without waiting.

Either way:

  • It only looks inside this note's own scope: the to-dos queued for this context, the open tasks in this note's brains, and the notes in those brains. It never closes or edits anything else.
  • To keep a note out of it, tag the note no-autofile. Use this for structured notes a routine maintains, such as a ledger or a roster, where an added bullet would be in the wrong place.
  • Each line is matched by a model that picks from that list or says none of them fits. A change is only made when the match is confident.
  • Anything it isn't sure about is left alone and listed under Needs your call in the new note, with the reason. If matching is unavailable, the line is tried again on the next sync; if it is still unavailable the next morning, the line is listed there too, and regenerating today's note tries it again.
  • Each line is acted on once. Regenerating a note never closes a to-do twice or files a meeting twice.

The next note opens with a Processed from block covering every line, whether it was filed during the day or that morning. It comes right after the previous/next links, listing every change and linking each note it touched:

## 🔁 Processed from 2026-10-06

- ✅ Closed todo **Ship the export fix** · "done: ABC-1234 shipped the export fix"
- 📝 Added to [[Work Log/release-planning|Release planning]] · "mtg: Release planning"

**Needs your call**

- "done: tidied up the old branch" · No open todo or task matched confidently

Each line is sent to the matching model together with this note's open to-do and task text and the titles of the notes in its brains.

A daily log in a brain

Pick a brain under Keep a daily log in a brain and every Work Log line also goes into one dated note in that brain (for example 2026-10-06 · Work Work Log), with where each line was filed. A mtg:, note: or blocked: line with no better home is logged there instead of waiting on you. This is a good fit for a work-log brain you already use for status reports.

Ticket links

Set Ticket link to your tracker's URL with {key} where the ticket number goes, for example https://yourcompany.atlassian.net/browse/{key}. Ticket numbers such as ABC-123 then become links in the Processed from block and in everything filed into your brains. The link must start with https://.

Edit routing

Work Log has its own format for a reason — done:/mtg:/note:/blocked: lines are unambiguous. Most days you also jot things in plainer form, most often under Daily Log: a win, a fix, an idea, a decision from a meeting that didn't get its own note. Turn on Route edits into brains and those lines get filed too, without a prefix to remember.

It works on every markdown-type section of the template that has a heading — Daily Log by default, or any other free-text section you add. Each line in one of those sections is its own item; an indented line under it is a detail that travels with it, exactly like Work Log. If you split a section with your own sub-headings (### UOR, ### CCP, and so on, written as plain text or as a [[wiki link]]), the nearest one above a line is sent along as a hint for which brain it belongs in.

Timing is the same as Work Log: a line is routed by the first vault sync at least 10 minutes after you last changed it, and whatever that doesn't catch is swept up before the next note is generated. Editing a daily note from days or weeks ago works too — the sweep isn't limited to today's note.

Each settled line goes through the same brain selector other BlackOps intake surfaces use:

  • A confident match is filed straight into that brain.
  • A plausible but less confident match is filed into that brain's Triage lane instead of being filed outright, so you can review it before it becomes part of the brain's compiled summary.
  • No match at all is never silently dropped — it's listed for you instead.

[[Linked notes]] mentioned in a routed line are read and sent along as context, so "see [[Restricted Product Assignment Environment Comparison]]" routes with that note's content in view, not just its title.

Either way, what happened is appended to the note itself as a Filed from edits block, so you can see where each line went without leaving the day it was written on:

## 🗂️ Filed from edits

- 📝 "Fern wants more GDS-semantics findings in the tech spec" → **UDX Brain**
- "found a showstopper in restricted product assignment" — needs your call (closest: UDX Work Log)

Work Log lines are never re-routed here — they already have their own pipeline and their own receipt.

Meeting Notes

Turn on Create a note for each meeting and every daily note also writes one note per meeting on your calendar, and links it from Today's Meetings with a 📝 Notes link next to the join link. All-day and cancelled events are always skipped, and so is any meeting whose title contains one of your skip words (for example Lunch, Focus time). It needs a connected calendar.

Which RSVPs get a note. By default only meetings you've accepted get a note — a tentative or unanswered invite still shows in Today's Meetings, just without the 📝 Notes link. Check Which RSVPs get a note to also prep tentative, declined, or unanswered (needs-action) invites. Two things always get a note regardless of this setting: a meeting you organize, and any event the calendar carries no RSVP data for at all (including every event when you haven't set a Your address on this calendar). Regenerating the daily note never deletes a meeting note that already exists, even if that meeting's RSVP status later changes.

Each meeting note opens with Discussion points: the open to-dos, brain tasks and recent notes worth raising in that meeting. BlackOps looks at the meeting's title and attendees and picks from your to-dos for this context, the open tasks in this note's brains, and notes changed in the last two weeks in the brains you pick under Brains to prep from (this note's own brains when you pick none). Each point links back to where it came from. A meeting with nothing relevant says so rather than reaching for a weak match.

Below that are two sections for you to write in:

## 🗣️ Discussion points

- Confirm the freeze date for the release · todo: [[Release checklist]]

## 📝 Notes

Agreed to freeze on the 14th. Dana owns the rollout doc.

## ✅ Action items

- Send Dana the rollout template
- done: ABC-1301 API keys arrived
- [x] Booked the retro room
  • Notes is free-form. It is filed as one entry, with every line, into the brain note the meeting is about, the same way a mtg: Work Log line is.
  • Action items takes one item per line. A plain line becomes a to-do on your next daily note, linked to the meeting note. Start a line with done: to close an open to-do or brain task instead, or note: or blocked: to file it. A ticked box was handled in the room, so it's left alone.

Turn on Read meeting notes back at the end of the day and pick a time. At that time BlackOps reads every meeting note from that day and acts on it. Anything written after that (or every meeting note, if you leave the end-of-day read off) is picked up before the next daily note is written, and that note's Processed from block lists what happened, together with the Work Log. Each item is acted on once, so editing a meeting note after it was read never files it twice. Matching follows the same rules as the Work Log: only this note's own scope, and anything unsure is listed under Needs your call.

A meeting note is yours once it's written. Regenerating the daily note links the notes that already exist and never rewrites them, so nothing you typed in a meeting is lost. Meeting notes are written to Where meeting notes are written, a path with the same date tokens as the daily note plus {meeting} (the meeting's title) and {time} (its start time, like 1030). Two meetings with the same title on the same day get (2) added to the second file name.

Each day's meetings, with your to-do, task and note titles (and a short excerpt of each recent note), are sent to an AI model to pick the discussion points.

Brains: why this runs in BlackOps

A script that builds a daily note from your vault can only guess at what's new, from file dates and folder names. BlackOps knows which brain every note belongs to, when it was created and when it changed, and what each brain is still waiting on you for. So each daily note can answer "what happened in the things I care about since yesterday?" directly:

  • A work note pointed at your project brains lists the meeting notes, decisions and answers added to them since the last working day, plus the tasks those brains are waiting on.
  • A personal note pointed at your home and travel brains does the same for those, without any work noise.

A brain's compiled summary note is skipped (it's regenerated on every compile, so it's not news), and archived notes are left out. Up to 40 notes are listed per day, newest first.

Connecting a calendar

Most calendar apps can give you a private ICS link:

  • Outlook: Settings → Calendar → Shared calendars → Publish a calendar. Copy the ICS link.
  • Google Calendar: Settings → your calendar → Integrate calendar. Copy the Secret address in iCal format.
  • iCloud: Share the calendar as a Public Calendar and copy the webcal:// link.

Paste it into the Calendar section of the note's settings. BlackOps encrypts it when you save it and never shows it again; the page only says the calendar is connected. Use Replace link or Disconnect to change it. Only https:// and webcal:// links are accepted, and BlackOps won't fetch a link that points at a private or internal network address.

The calendar is fetched each time a note is generated. Recurring meetings, skipped occurrences, moved occurrences and cancellations are all handled. Meeting titles and times from that day are sent to the AI model that writes the focus summary. Set ai_focus: false if you'd rather they weren't.

Checking off todos

Every todo is written as a checkbox with a hidden block ID at the end of the line:

- [ ] Send the config doc _(carried 2 days)_ ^di-3f2a…

A todo queued with a note gets a link to that note before the block ID (· [[path/to/note|Title]]), so you never have to paste a slug into the text.

Tick it in Obsidian and, once your vault syncs, BlackOps marks that item done, so it doesn't carry into tomorrow's note. The block ID is what makes this work, so leave it on the line. Editing the todo's text doesn't matter. You can also mark items done with complete_daily_item.

Checking off only works one way. Unticking a box doesn't reopen the item. To bring a todo back, queue it again.

Who owns the note

The note is a BlackOps note, written to the path you chose. Checkoffs flow back from Obsidian. Other edits you make to the file stay in the vault, but regenerating that day replaces the file, so treat regeneration as a fresh start for that day. The scheduled run generates each day once, and it skips a day you've already generated by hand, so it never overwrites a note you made manually.

Queuing into a note that's already generated

Queuing something for today after today's note has already been written doesn't wait for tomorrow. queue_daily_item inserts the item straight into the matching section of the live file — todos under To-dos, links under Notes for today, text under Reminders — based on the file as it currently stands in your vault, so ticked boxes, your Work Log, and anything you typed in the Daily Log are left exactly as they are. If a section's heading isn't in the file yet (a links or reminders section that was empty when the note was generated has no heading at all until something needs it), the item lands in a fallback Added today section at the end instead. Queuing the same item twice never duplicates the line.

See Daily Feed for what the queue_daily_item response reports about this.

Related

  • Daily Notes Playbook: how to use daily notes day to day, what to say to your assistant, moving off a script or plugin, and troubleshooting.
Want this page as machine-readable markdown? GET /docs/features/daily-notes.md