Grouping journal days together to summarize a sprint

At my job, every sprint (two-week cycle) we deliver a short presentation on what we did that sprint. We also write a brief report at the end of every month, and update our co-workers on our work at the start of each workday. So I’ve gotten in the habit of writing down what I did at the end of each workday.

Until recently, I’ve been doing this in Workflowy, like so:

  • Sprint 59 (Mon, Jan 29 - Fri, Feb 9)
    • Mon, Jan 29: Today I did A, B, C…
    • Tue, Jan 30: Today I did D, E, F…

This works pretty well. It lets me zoom in on any particular sprint, scroll through it, and see what was accomplished each day in that two-week period. It’s intuitive and easy to maintain.

I’m trying to figure out how to accomplish something similar in Logseq. I really like the way Logseq automatically creates a journal entry for each day and lets me scroll backwards through time.

I gave each day of the sprint the property sprint:: 60. When I run a search for sprint:: 60, it lists the days of the sprint in the search results, but I have to click on each one to see its contents, which slows me down a lot.

I want a page that shows me everything that happened during sprint 60. I feel like the best way to achieve that is to make a page that embeds the contents of each journal entry that took place during that period.

I might be able to do this by creating a Sprint 60 page and then going:

  • {{embed [[Feb 12th, 2024]]}}
  • {{embed [[Feb 13th, 2024]]}}
  • {{embed [[Feb 14th, 2024]]}}

That’s going to be laborious. Is there a better way?


Thanks for getting back to me!

  • I installed kits and got the “kits OK” message.
  • I created an EmbedReference page, added a JS codeblock, and added the required code.
  • I added the macro to config.edn.
  • I added {{emref Sprint 60}} to a couple of my journal pages.

However, the “Sprint 60” page is still empty, aside from “Unlinked references” at the bottom. Am I missing any steps?

Edit: I see what you mean in your first point–I could add a top-level block each day tagged with #[[Sprint 60]], and its children will be included on the sprint page. That might work. Thank you!

The emref approach failed because of the space within the tag’s name. To support such cases, should replace in the code this:

"#" + tagname

…with either of:

  • "[[" + tagname + "]]"
  • "#[[" + tagname + "]]"

Hmm. I tried {{emref Sprint-60}}; when I visited the Sprint-60 page, no result.

When I open the developer console, I see a couple of errors:

  • These errors are not related to emref.
  • Try these steps:
    • Restart Logseq
      • This is important if you make changes to the code.
        • Kits provide some buttons to avoid that.
    • Open the console
    • Clear the console
    • Try again {{emref Sprint-60}}
    • Then check:
      • the console for any messages
      • the content of the block itself, whether the macro got replaced or not
      • the page Sprint-60

OK, I restarted Logseq. I’m not seeing that error any more.

I’ve deleted that block from my journal page. I made a new one and typed {{emref Sprint-60}} in. When I move away from the block, it gets replaced with the text Sprint-60. But when I visit the Sprint-60 page, it’s still empty.

When the macro succeeds, it gets replaced not with plain text, but with the tag/reference-link. If this doesn’t happen, the kit probably wasn’t called at all. Try repeating the installation steps, checking the exact spelling of the involved items. If you feel like debugging:

  • Enter logseq.kits.embedreference in the console
  • Click on the printed function to open its source
  • Set a breakpoint
  • Try again {{emref Sprint-60}}

I confirmed again that all that works properly on my side. After that, we may have to check for versions, any plugins etc.


  • Click again in the block, to see its actual content.
  • Try enabling the messages of kits with button {{togglemsg}}

OK, I was doing something wrong on the EmbedReference page. I deleted and recreated the page and codeblock, and now my emrefs are being replaced by links instead of plaintext.

However, on the Sprint-60 page, it’s not embedding the whole page, just the block with the emref. So the Sprint-60 page looks like this:

Embedding is about a block and its children. That’s why I said about top-level blocks.