Keyboard Maestro Obsidian Daily Journal

I recently moved my Daily Journal process from DEVONthink to Obsidian.

Through a combination of Applescript and Shell commands I have automated the creation of the Journal via a Keyboard Maestro macro.

Along with some standard Categories such as Weather (via, Daily Quotes and News Headlines (via DEVONthink RSS feeds) I wanted to add in Today’s Events from Calendar and due tasks from Reminders.

Unfortunately the process to extract Calendar Events via Applescript is notoriously slow. Luckily by using icalBuddy via a Shell script this process is much quicker. The icalBuddy approach does not allow for a direct link to the Calendar Event but I included a link to the App for both the Mac and iOS version.

Getting Reminders Tasks can also be slow but this process can be improved if you regularly delete completed tasks. The Applescript I use creates an entry in Obsidian listing the Reminders List and Task Name with a direct link to the Task that works on both platforms.

As per usual it is a continual work in progress but if interested the Keyboard Maestro Macro that I use can be downloaded here.


This looks good. I’ve switched to Obsidian for daily journaling as well, as it’s replaced Zim for me in that regard.

However, in addition, I use a daily note for my work as well and that importing of events would be good. Currently I have an Obsidian template which creates a table and I manually import them, as I create a page for each meeting for notes.

I assume iCalBuddy needs the calendar to be accessible in the Calendar app? Currently I use Busycal, so I’d have to add it to Calendar. I also had to go here to get the 64 bit version for my M1 Mac on Big Sur.

That looks awesome. What do you think is its biggest advantage over DayOne other than no subscription?


icalBuddy will work as long as you have the same calendars that you use in BusyCal loaded in to the Calendar app. You may want to change the Calendar app to refresh every minute so as to quickly pick up any new entries in BusyCal.

As far as I know BusyCal has limited AppleScript capability so this routine will be the easiest way to get the Events into Obsidian.



Pricing is major point of course but I think customisation is the big factor. Given the number of Community plugins being developed plus the ability to use AppleScript, Terminal commands, Keyboard Maestro and soon Shortcuts there is so much control you can have over the design and content of an Obsidian based Journal.



This is very cool! I don’t use KeyboardMaestro but have done a similar workflow for my weekly plan. I’m struggling though with the dates in icalbuddy - do you know of a way to use sort of relative dates, such as ‘use the closest Monday as the base date’?

I posted my question here, but no luck so far…maybe icalbuddy has fallen out of favourite (or been replaced with something better?). Would much appreciate any advice you might have!


Not sure that will be possible, looking at the FAQ the use of relative dates is limited.

Q: How can I automatically get events for a single day (or any date/time range, for that matter) that is relative to the current date (e.g. yesterday, tomorrow or the day after tomorrow)?

As of version 1.7.13 you can specify relative dates such as these in the arguments. The following relative dates are supported: day before yesterday, yesterday, today, now, tomorrow and day after tomorrow. You can also specify a ‘day shift’ (i.e. number of days to add to or remove from) for these relative dates by adding +NUM or -NUM to the end.

Example: get events for tomorrow: