obsidian-bases

Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.

By kepano · 73,296 installs

npx skills add kepano/obsidian-skills --skill obsidian-bases

Source repository · Upstream listing

Obsidian Bases Skill Workflow 1. Create the file : Create a .base file in the vault with valid YAML content 2. Define scope : Add filters to select which notes appear (by tag, folder, property, or date) 3. Add formulas (optional): Define computed properties in the formulas section 4. Configure views : Add one or more views ( table , cards , list , or map ) with order specifying which properties to display 5. Validate : Verify the file is valid YAML with no syntax errors. Check that all referenced properties and formulas exist. Common issues: unquoted strings containing special YAML characters, mismatched quotes in formula expressions, referencing formula.X without defining X in formulas 6. Test in Obsidian : Open the .base file in Obsidian to confirm the view renders correctly. If it shows a YAML error, check quoting rules below Schema Base files use the .base extension and contain valid YAML. Filter Syntax Filters narrow down results. They can be applied globally or per view. Filter Structure Filter Operators Operator Description == equals != not equal greater than < less than = greater than or equal <= less than or equal && logical and \ \ logical or <code !</code logical not Properties Three Types of Properties 1. Note properties From frontmatter: note.author or just author 2. File properties File metadata: file.name , file.mtime , etc. 3. Formula properties Computed values: formula.my formula File Properties Reference Property Type Description file.name String File name file.basename String File name without extension file.path String Full path to file file.folder String Parent folder path file.ext String File extension file.size Number File size in bytes file.ctime Date Created time file.mtime Date Modified time file.tags List All tags in file file.links List Internal links in file file.backlinks List Files linking to this file file.embeds List Embeds in the note file.properties Object All frontmatter properties The this Keyword In main content area: refers to the base file itself When embedded: refers to the embedding file In sidebar: refers to the active file in main content Formula Syntax Formulas compute values from properties. Defined in the formulas section. Key Functions Most commonly used functions. For the complete reference of all types (Date, String, Number, List, File, Link, Object, RegExp), see [FUNCTIONS REFERENCE.md](references/FUNCTIONS REFERENCE.md). Function Signature Description date() date(string): date Parse string to date ( YYYY MM DD HH:mm:ss ) now() now(): date Current date and time today() today(): date Current date (time = 00:00:00) if() if(condition, trueResult, falseResult?) Conditional duration() duration(string): duration Parse duration string file() file(path): file Get file object link() link(path, display?): Link Create a link Duration Type When subtracting two dates, the result is a Duration type (not a number). Duration Fields: duration.days , duration.hours , duration.minutes , duration.seconds , duration.milliseconds IMPORTANT: Duration does NOT support .round() , .floor() , .ceil() directly. Access a numeric field first (like .days ), then apply number functions. Date Arithmetic View Types Table View Cards View List View Map View Requires latitude/longitude properties and the Maps community plugin. Default Summary Formulas Name Input Type Description Average Number Mathematical mean Min Number Smallest number Max Number Largest number Sum Number Sum of all numbers Range Number Max Min Median Number Mathematical median Stddev Number Standard deviation Earliest Date Earliest date Latest Date Latest date Range Date Latest Earliest Checked Boolean Count of true values Unchecked Boolean Count of false values Empty Any Count of empty values Filled Any Count of non empty values Unique Any Count of unique values Complete Examples Task Tracker Base Reading List Base Daily Notes Index Embedding Bases Embed in Markdown files: YAML Quoting Rules Use single quotes for formulas containing double quotes: 'if(done, "Yes", "No")' Use double quotes for simple strings: "My View Name" Escape nested quotes properly in complex expressions Troubleshooting YAML Syntax Errors Unquoted special characters : Strings containing : , { , } , [ , ] , , , & , , , ? , , , < , , = , ! , % , @ , must be quoted. Mismatched quotes in formulas : When a formula contains double quotes, wrap the entire formula in single quotes. Common Formula Errors Duration math without field access : Subtracting dates returns a Duration, not a number. Always access .days , .hours , etc. Missing null checks : Properties may not exist on all notes. Use if() to guard. Referencing undefined formulas : Ensure every formula.X in order or properties has a matching entry in formulas . References [Bases Syntax](https://help.obsidian.md/bases/syntax) [Functions](https://help.obsidian.md/bases/functions) [Views](https://help.obsidian.md/bases/views) [Formulas](https://help.obsidian.md/formulas) [Complete Functions Reference](references/FUNCTIONS REFERENCE.md)