Based and inspired from @zeus-webJournal Calendar , i've redone this with a graphical-UI & as a floating JournalCalendar which stays on top of your page even if you navigate away from your page. this can make your Journal Navigation much more flexible.
You can find it in Mr-xRed Silverbullet Library Repo on Github or simply by adding this to your repo sources in your Library Manager:
Well, I must admit, you did a great job making âmyâ calendar even better But Iâm glad, you liked my basic idea
To be honest, as you first came up with your side-panel ideas, I wanted to adapt that to âmyâ calendar, too.
However, I had some other ideas in my pipeline to complete for the calendar first (e.g. adding additional markers for different types of dates, eg. holidays, birthdays and so on). So âmineâ might develop in a slightly different direction.
But I donât even had a clue how to add such pulldown menues and buttons within the calendar itself - not to mention the great small design, anywayâŚ
So thanks a lot for that!
However, I might use it to mix it and extend with my own ideas
But as you wrote elsewhere: This is one of the greatest features of SB / libraries (and opensource thinking) - that everyone can benefit from others work and ideas to make something (hopefully) even greater for everyone
Oh, the only thing we should consider:
Naming the functions and config settings kind of unique. So that we donât interfere as soon someone installs both Libraries.
(You could keep yours as is, and as soon as my next iteration is ready to publish, I will transform it to the new Library Manager format, anyway and then I will name it something like âzeus-webs_JournalCalendarâ or similarâŚ)
Youâre absolutely right. Iâve changed mine now in: config & functions and Library name to âFloatingJournalCalendarâ so there shouldnât be any conflicts.
Now the more you know. youâr very welcome to use and/or improve on anything from my library, thatâs why I share it here so we can make greater tools together for Silverbullet and inspire new users and show them what can be achieved.
I tinkered with the code to set the theme to dark although I generally use light for silverbullet. But it will be overwritten if updated âŚ
Would it be possible to configure the theme (dark|light|data-theme) ? Thanks.
Indeed, I donât use the Dark theme for silverbullet but I find that the calendar looks prettier in Dark (âthe tastes and the colorsâŚ!â). To achieve this, I simply duplicated the 3 css lines from [data-theme=âdarkâ] to [data-theme=âlightâ].
added #monthname# as option for path pattern now you can use monthname in the path or any other combination:
example: [[Journal/2026/01-January/2026-01-01_Thu]]
Here is a quick update to the Floating Journal Calendar widget.
The focus was on data accuracy (Refresh Button), Visual density(Multi Dot Support), and flexible file naming (Wildcard Suffix).
Wildcard Matching: The calendar now fully supports wildcard suffixes. It doesnât just look for a 1:1 filename match; it scans for any page starting with your journal pattern. This means multiple entries for a single day, e.g.:
Journal/2026/01-January/2026-01-15_Thu - Afternoon and
Journal/2026/01-January/2026-01-15_Thu - Morning etc.
are all captured and counted and displayed in a filter box for you to choose:
Visual Activity Heat Map: Iâve replaced the single static dot with a color-coded density system.
At a glance, you can see your productivity levels:
Green (1 entry)
Yellow (2 entries)
Orange (3 entries)
Red (4 entries)
Multi-Dot Overflow: If you exceed 4 entries, the calendar renders multiple dots (e.g., 5 entries = 1 Red + 1 Green). Itâs a literal âheat mapâ for your journal.
Manual âToday & Refreshâ: The old âTodayâ button is repurposed now to act as a manual Refresh button too. Clicking it resets your view to the current date and instantly triggers a fresh scan of your space to update the activity dots, perfect for when youâve just added a new entry.
This is great! Is it possible to drag and drop a date on to a word (or highlight) on the page? If I do this currently it just inserts at the cursor position where I release the drag, but it would save a couple of seconds of reformatting [[Journal/2026-01-19]] to [[Journal/2026-01-19|some text]].
I spent a solid hour trying to save you those precious seconds of âreformatting exhaustion,â but hereâs the reality: the widget relies on the browserâs native drag-and-drop behavior.
Trying to force that native behavior to distinguish between âdropping at a cursorâ and âwrapping a selectionâ proved to be a bit of a nightmare to implement cleanly. Iâm not entirely satisfied with having to pivot, but Iâve built a compromise: Ctrl/Cmd-Click.
Itâs not the drag-and-drop dream you had, but itâs arguably faster:
Highlight/Select your text, hold Ctrl/Cmd, and click the date. Itâll wrap the selection into a piped wikilink instantly. Hopefully, thatâs enough to keep your productivity going.
Just pushed the update, you can update the library and tell me if itâs ok?
Because the PR was older, and didnât noticed until now, and since then other modifications were made to the code. I couldnât merge it. But I added weekStartsSunday option myself, but without the need to change the config in two places.
The dayNames variables stay âMonââŚâSunâ, only the weekStartsSunday needs to be true, and everything else is handled.
Example:
dayNames = {âMonâ, âTueâ, âWedâ, âThuâ, âFriâ, âSatâ, âSunâ},
weekStartsSunday = true
The modifications are pushed from my part. So I closed the PR because it couldnât be merged with main anyway.
Not sure if this is just me, but if I click the ânext monthâ arrow it jumps to March instead of February. Iâm wondering if this is a bug because today (29th Jan) is âtoo closeâ to Feb?
Itâs definitely a bug. I will look into this asap. As a workaround until itâs solved, please use the month-dropdown and choose February manually. I will report back when solved [SOLVED]
It appears the calendar fell into a classic JavaScript trap. Since today is the 29th of January and February 2026 has only 28 days, setMonth(vDate.getMonth() + 1) attempted to navigate to February 29th, so JavaScript, rolled that over to March 1st.
I have adjusted the navigation logic to set the date to the 1st of the month before switching, ensuring you donât accidentally teleport through time again. Check Update & consider it solved.