Action
Add to Obsidian Daily Note
created by @FlohGro / more on my Website
Add to Obsidian Daily Note
This action will add the contents of the current draft to the todays Daily Note in Obsidian.
You can choose if the action should append or prepend the content and if you want to add a text prefix (e.g. to add a todo or a bullet point to the daily note). If you want to use different prefixes, you can duplicate the action and configure and rename the duplicate accordingly.
[Configuration]
Before you can use the action you need to configure it depending on your setup in Obsidian and personal preference.
All configuration parameters are adapted in the „Define Template Tag“ steps in the Action. To change the configurations edit them to match your setup - don’t change the names of the template tags since the action won’t work anymore afterwards. The following parameters must be adapted:
obsidianVaultBookmarkName
: the name of the folder bookmark that will be created to access the files in your vault (see the Drafts documentation for more information about Folder Bookmarks). When you run the Action the first time it should prompt you to select a folder for that bookmark. Default:Obsidian Vault
dateFormat
: the date format of your daily notes in Obsidian. You need to use the Drafts specific notation documented here Default:%Y-%m-%d
which matchesYYYY-MM-DD
in ObsidiandailyNotesFolderPath
: the path where obsidian creates the daily notes (matches the setting for „New file location“ in the daily notes settings section). Default:empty
textAddPrefix
: an optional prefix that will be prepended to the content of the DrafttextAddMode
: you can choose if the action should prepend or append the draft to the daily note - onlyprepend
orappend
are allowed. Default:append
IMPORTANT: If you‘re running the Action the first time and it shows an error that the file is not existing even when the file exists in Obsidian then please go into the Settings of Drafts, navigate to „Bookmarks“ and make sure that the configured bookmark name is not set to „-unknown-“. If it is set to Unknown then tap „Select Folder“ and navigate to your Obsidian Vault in the files UI, select it and tap „Done“ in the upper right corner.
[Usage]
The action directly accessed the files so Obsidian won’t be opened when adding something to the daily note. If you didn’t open obsidian on that day, the daily note file will not be created or synced into the folder. Make sure to open Obsidian on the device if you see the alert that the file is missing. This is to prevent sync issues and ensure that potential templates for daily notes are applied first.
Simply run the the Action to add the content of the current draft to your Daily Note in Obsidian. When you e.g. want to use the Action to add tasks to your Daily Note then you need to configure - [ ]
as textAddPrefix
. If you have different usecases, just duplicate the Action and configure it differently.
If you find this useful and want to support me you can
Steps
-
defineTemplateTag
name obsidianVaultBookmarkName
template Obsidian Vault
-
defineTemplateTag
name dateFormat
template %Y-%m-%d
-
defineTemplateTag
name dailyNotesFolderPath
template -
defineTemplateTag
name textAddPrefix
template -
defineTemplateTag
name textAddMode
template append
-
script
// add to obsidian daily note const obsidianVaultBookmarkName = draft.processTemplate("[[obsidianVaultBookmarkName]]") const dateFormat = draft.processTemplate("[[dateFormat]]"); let dailyNoteFileName = draft.processTemplate("[[date|" + dateFormat + "]]") + ".md"; let dailyNotesFolderPath = draft.processTemplate("[[dailyNotesFolderPath]]") + "/"; dailyNoteFileName = dailyNotesFolderPath + dailyNoteFileName //"2022\.10\.25.md" let bookmark = Bookmark.findOrCreate(obsidianVaultBookmarkName); const configEntryPrefix = "- " const textAddPrefix = draft.processTemplate("[[textAddPrefix]]"); const textAddMode = draft.processTemplate("[[textAddMode]]"); let fm = FileManager.createForBookmark(bookmark); if (fm.exists(dailyNoteFileName)) { // file exists let fileContent = fm.readString(dailyNoteFileName) if (textAddMode == "append") { fileContent = fileContent + "\n" + textAddPrefix + draft.content } else if (textAddMode == "prepend") { fileContent = textAddPrefix + draft.content + "\n" + fileContent } else { console.log("invalid text add mode") alert("invalid text add mode configured - only \"append\" or \"prepend\" are allowed") context.fail() } if (!fm.writeString(dailyNoteFileName, fileContent)) { console.log("failed writing content to file") alert("failed writing content to file - this should not happen. please contact FlohGro via Twitter or the Drafts Forum.") context.fail() } } else { // file does note exist console.log("daily notes file does not (yet) exist") alert("daily notes file does not (yet) exist, create it in obsidian") context.fail() }
Options
-
After Success Default Notification Info Log Level Info