When travelling, I like to have everything organized in one place. Coming from Notion, I wasn’t sure how to transfer my travel database into Obsidian. But I got something working (for now) and in this post I want to explain how my current travel database works.
My philosophy is to keep it as simple as possible while being flexible enough to adapt to different types of travels (single location, roadtrip, multi-location). I want to create files, apply templates, and have them automatically show up in the right place without needing to do any manual work.
The foundation for these automatic filters on Obsidian’s Bases (opens in a new tab) is the correct frontmatter setup. You can link bases and files, for example:
---base: "[[Travel.base]]"backlink: "[[South_Korea]]"---As you’ll see, I use that feature heavily to create relationships between files and have them automatically show up in the right place. But let’s start with the file structure first.
You can view each file in the file explorer below:
---
base: "[[Travel.base]]"
banner:
startDate: "{{date}}"
endDate: "{{date}}"
Persons: []
Done: false
---
TBD---base: "[[Travel.base]]"banner:startDate: "{{date}}"endDate: "{{date}}"Persons: []Done: false---
TBD---base: "[[Travel.base]]"banner:startDate: "{{date}}"endDate: "{{date}}"Persons: []Done: false---
## Itinerary
![[Planning.base]]
## Activities
![[Activities.base]]---base: "[[_templates/Bases/Planning.base]]"backlink: "[[TODO]]"startDate: "{{date}}"endDate: "{{date}}"Activities:---
TBD---base: "[[_templates/Bases/Activities.base]]"backlink: "[[TODO]]"Location:Done: false---
TBDfilters: and: - base == link("_templates/Bases/Activities.base") - file.hasLink(this)views: - type: table name: Activities groupBy: property: Done direction: ASC order: - file.name - Done sort: - property: file.name direction: ASC cardSize: 180 - type: table name: Grouped by location groupBy: property: Location direction: ASC order: - file.name - Done sort: - property: file.name direction: ASCfilters: and: - base == link("_templates/Bases/Planning.base") - file.hasLink(this)views: - type: table name: Planning order: - file.name - startDate - endDate - Activities sort: - property: startDate direction: ASC rowHeight: mediumfilters: and: - base == link("Travel.base") - file.folder.startsWith("Travel")formulas: year: date(startDate).yearproperties: file.name: displayName: Name Persons: displayName: Personsviews: - type: table name: Overview groupBy: property: formula.year direction: DESC order: - file.name - Done - startDate - endDate - Persons sort: - property: startDate direction: ASC - type: cards name: Cards groupBy: property: formula.year direction: DESC sort: - property: startDate direction: ASC image: note.banner imageAspectRatio: 0.55---base: "[[Travel.base]]"banner: URLstartDate: 2026-07-20endDate: 2026-07-24Persons: []Done: false---
TBD---base: "[[Travel.base]]"banner: URLstartDate: 2026-07-20endDate: 2026-07-24Persons: []Done: false---
## Itinerary
![[Planning.base]]
## Activities
![[Activities.base]]---base: "[[_templates/Bases/Activities.base]]"backlink: "[[South_Korea]]"Location: JejuDone: true---
TBD---base: "[[_templates/Bases/Planning.base]]"backlink: "[[South_Korea]]"startDate: 2025-05-21endDate: 2025-05-24Activities: - "[[Hallasan]]"---
TBDWhen I want to create a new travel entry, the workflow is pretty simple:
- Decide whether the travel is “simple” or “advanced”. The “advanced” template wants me to create individual files for each activity and plan them in an itinerary. This is really helpful for detailed plans, e.g. writing down all photo spots. For shorter travels or work trips this is overkill, so I’ll use the “simple” template then.
- Create a new file in the folder of the current year (e.g.
Travel/2026) and apply the right template. - Fill in the frontmatter details and add a
bannerimage (URL from Unsplash). - Using templates, create activities and itinerary items (if necessary).
After following the workflow, a bunch of things happen automatically:
- The
Travel.baseshows the new travel entry - The
Travel/2026/Destination/Destination.mdfile shows thePlanning.baseandActivities.baseviews, however they only show the files from the current folder
How does this work? The key is in the filters of the bases:
-
The
Travel.basebase automatically shows all travel files because it looks for files that have abaseproperty linking to it. The additional filter for the folder is there to filter out the_templatesfiles.Travel.base filters:and:- base == link("Travel.base")- file.folder.startsWith("Travel") -
The
Planning.baseandActivities.basebases only show files that link back to the current file (using thebacklinkproperty in the frontmatter). This means that when I create a new activity or planning item and link it to the destination file, it automatically shows up in the right place.Activities.base filters:and:- base == link("_templates/Bases/Activities.base")- file.hasLink(this)For this to work you have to define the
file.hasLink(this)filter.