I schedule events in Google Calendar and often write notes in the event description. I prefer to keep notes in Obsidian, and would like to link an event to a note, however Google Calendar does not allow Obsidian URI (obsidian://) links.

To solve this I bought obsidian.name and setup Cloudflare so that it redirects to obsidian:// using the subdomain as the vault name and the path as the note name:

https://<vault>.obsidian.name/<note>

Will redirect to:

obsidian://open?vault=<vault>&file=<note>

Let’s say your vault is called “Notes” and you have a note called “Journal”. Here is how you would create a URL to use as a link:

https://notes.obsidian.name/Journal

You can create the links yourself just by writing the URL, but to make it easier there is form on obsidian.name to create the link for you.

form

Now I can add obsidian.name links to Google Calendar, and when I click them, they open in Obsidian.

Feel free to use this yourself, it doesn’t cost me anything to run, but I can’t guarantee I will renew the domain forever.


How to set up your own

You will need a domain name and a free Cloudflare account.

Configure your domain

First add your domain name to Cloudflare.

Now set up your DNS so that it can redirect any subdomain. Add a CNAME with name * and target can be anything. I am using obsidian.name as the target, but this will never be used, once you set up the redirect rule it will take effect before the target is resolved.

Optionally, set up the form to help you create links. Skip this step if you don’t need it. The form is a single index.html file that is hosted on Cloudflare page. You can fork the obsidian.name form here codewithcheese/obsidian.name. Modify the HTML to create a link containing your domain name. Deploy the form using Cloudflare pages. Then add a second CNAME rule with name <your domain name> and target the Cloudflare pages host name.

Setup redirect rule

Now create the redirect rule that will match your vault and note name, and redirect to the obsidian:// URI.

Request URL: https://*.<your domain name>/* Target URL: obsidian://open?vault=${1}&file=${2}