You've written a great document in Obsidian. Meeting notes, a project brief, a research summary. Now someone needs it in Google Docs. You select all, copy, paste, and everything breaks.
Headings show up as lines starting with ##. Tables become walls of pipe characters and dashes. Code blocks lose their styling. Bold text might survive, or it might show up as **asterisks**. Links appear as raw [text](url) syntax.
This is one of the most common frustrations in the Obsidian community. There are dozens of forum threads, Reddit posts, and plugin discussions about it. The core issue is straightforward, but the solutions vary in quality.
Why copy-paste from Obsidian breaks in Google Docs
Obsidian stores your notes as plain markdown files. When you see formatted headings, tables, and code blocks in Obsidian's editor, you're seeing Obsidian's live rendering of that markdown. The underlying file is still just text with symbols.
When you copy from Obsidian and paste into Google Docs, one of two things happens depending on what you're copying:
If you copy from Obsidian's editing view, you typically get the raw markdown text. Google Docs receives ## Project Update instead of a formatted heading. It receives | Column 1 | Column 2 | instead of a table. It sees backticks instead of code formatting.
If you copy from Obsidian's reading view, the results are better but inconsistent. Some formatting transfers (bold, italic, basic lists), but headings often lose their levels, tables may or may not render, and code blocks rarely survive intact.
Google Docs has a "Detect Markdown" feature under Tools > Preferences, but it only handles basic formatting like bold and italic. It doesn't detect headings, tables, code blocks, or most of the elements that make up a typical Obsidian note.
What doesn't work well
Before we get to the solution, let's be honest about the approaches that fall short.
Direct copy-paste
As described above, this is the most common approach and the one that causes the most frustration. It works for simple notes that are mostly prose with some bold and italic text. It fails badly for anything with headings, tables, code blocks, or structured content.
Obsidian's "Export to PDF" then import to Google Docs
Obsidian can export notes to PDF, and Google Docs can open PDFs. The problem is that the import converts the PDF into a Google Doc with approximate formatting. Tables become images or lose their structure. Code blocks become plain text. The document is technically editable, but reformatting it takes as long as starting from scratch.
Pandoc (command line)
Pandoc is a powerful document converter that handles markdown to DOCX (which Google Docs can open). For standard markdown, it works well. But it has real limitations for Obsidian users:
- It doesn't handle Obsidian-specific syntax like callouts (
> [!note]), wikilinks ([[page name]]), or embedded files. - It requires command line familiarity, which is a barrier for many users.
- The output is a Word document that you then upload to Google Docs, adding extra steps.
- There's no template system, so every export looks the same.
Pandoc is a good tool if you're comfortable with the terminal and your notes use standard markdown only. For most Obsidian users, it's more friction than it's worth.
Third-party Obsidian plugins
Several community plugins attempt to improve export quality. Results vary significantly. Some are well-maintained and work for specific use cases. Others are abandoned and break with Obsidian updates. None of them produce output that's optimized for Google Docs specifically, because they're general-purpose export tools, not destination-aware converters.
The Unmarkdown workflow (step by step)
Here's how to get your Obsidian notes into Google Docs with proper formatting using Unmarkdown™.
Step 1: Open your note in Obsidian.
Navigate to the note you want to export. Switch to the Source mode or Editing view so you can select the raw markdown. (Reading view works too, but Source mode gives you the cleanest copy.)
Step 2: Select all and copy.
Press Cmd+A (Mac) or Ctrl+A (Windows) to select all content, then Cmd+C or Ctrl+C to copy.
Step 3: Go to Unmarkdown™.
Open unmarkdown.com in your browser. No account is needed for the core converter.
If you have an Unmarkdown™ account, you can paste directly into the app where you'll also have access to templates and AI editing.
Step 4: Paste your markdown.
Click in the editor pane and press Cmd+V or Ctrl+V. You'll see your raw markdown on the left and a live formatted preview on the right.
Step 5: Choose a template (optional).
If you want your document to look more polished than default styling, click the template picker in the toolbar. There are 62 templates across categories like Business, Academic, Developer, and Creative. A meeting notes template, a project brief template, or a consulting report template can make your Obsidian notes look immediately professional.
Step 6: Click "Copy for Google Docs."
In the destination bar at the bottom, click "Google Docs." The button changes to "Copied!" and your clipboard now contains HTML formatted specifically for Google Docs.
Step 7: Paste into Google Docs.
Open your Google Doc and press Cmd+V or Ctrl+V.
Step 8: Review the result.
Your document now has proper headings (all 6 levels), formatted tables with borders and header rows, styled code blocks with monospace font and background color, working hyperlinks, properly nested lists, and blockquotes with visual styling.
The whole process takes about 30 seconds.
What gets preserved
Here's a detailed breakdown of how Obsidian markdown elements transfer through Unmarkdown™ to Google Docs.
Headings (H1 through H6): All six heading levels are converted to real Google Docs heading styles. This means they appear in the document outline, work with the table of contents feature, and maintain proper hierarchical sizing.
Bold and italic: Standard markdown bold (**text**) and italic (*text*) transfer cleanly. Strikethrough (~~text~~) also works.
Tables: Markdown tables with pipe syntax become native Google Docs tables with borders, header row formatting, and proper cell spacing. This is one of the biggest improvements over direct paste, where tables are completely destroyed.
Code blocks: Fenced code blocks (triple backticks) get monospace font (Consolas) and a gray background. Syntax highlighting is preserved when a language is specified.
Inline code: Single backtick code spans get monospace styling, matching how they appear in Obsidian.
Links: Markdown links ([text](url)) become clickable hyperlinks in Google Docs.
Lists: Both unordered (bullets) and ordered (numbered) lists transfer with proper nesting. Task lists (- [ ] and - [x]) get checkbox-style formatting.
Blockquotes: > quoted text gets visual styling with an indented border, similar to how it appears in Obsidian's reading view.
Images: If your markdown references images by URL (not local file paths), they'll be included in the formatted output. Local image paths (![[image.png]]) won't transfer because Google Docs can't access your local filesystem.
Math (LaTeX): If your Obsidian notes use $...$ or $$...$$ math notation, Unmarkdown™ renders these as formatted equations using KaTeX.
Horizontal rules: --- dividers become proper horizontal lines.
Handling Obsidian-specific syntax
Obsidian extends standard markdown with its own syntax. Here's how each extension fares.
Callouts (> [!note], > [!warning], etc.): These convert as styled blockquotes. The callout type (note, tip, important, warning, caution) is preserved with appropriate visual styling and colored accents.
Wikilinks ([[page name]]): These become plain text with the brackets stripped. Since Google Docs doesn't have a concept of internal wiki links, the page name is preserved as readable text. If you need the link to go somewhere, convert it to a standard markdown link before copying.
Embedded files (![[other note]]): Transclusion doesn't work in the export. You'll need to copy the content from the embedded note separately if you want it included.
Tags (#tag): Tags become plain text with the hash symbol. Google Docs doesn't have a tagging system, so there's no meaningful conversion target.
Dataview queries: These are Obsidian plugin syntax and won't render. They'll appear as code blocks. If you need the query results, copy them from Obsidian's reading view where the plugin has already rendered them.
Mermaid diagrams: If your note includes Mermaid diagram code blocks, Unmarkdown™ renders these as SVG diagrams. The rendered diagram transfers to Google Docs as an image.
Making your notes look professional with templates
One advantage of going through Unmarkdown™ instead of a raw converter is the template system. Templates apply consistent styling to your entire document: typography, colors, spacing, and element styling.
A few use cases where templates make a real difference:
- Meeting notes going to your team. Choose a clean business template like Executive or Consulting. Your bullet points and action items look polished instead of plain.
- Project documentation for a client. The Startup or Corporate Blue template adds visual structure without being over-designed.
- Technical documentation. GitHub or Terminal templates give code blocks and technical content appropriate styling.
- Academic work. Thesis or Paper templates handle citations, footnotes, and hierarchical headings well.
Templates are entirely optional. The default conversion (without any template) already produces clean, properly formatted output for Google Docs. Templates add an extra layer of polish.
A note about workflow direction
This guide covers one direction: Obsidian to Google Docs. But it's worth knowing that you can also go the other direction. If someone sends you a Google Doc or a formatted email that you want to bring into Obsidian, you can paste the rich text into Unmarkdown™ and it will convert it back to clean markdown that you can paste into your vault. This reverse conversion (called Remarkdown) handles tables, headings, lists, and other formatting.
Frequently asked questions
Does this work with Obsidian's YAML frontmatter?
YAML frontmatter (--- blocks at the top of your note) won't appear in the formatted output. Unmarkdown™ processes the markdown content below the frontmatter. If you want frontmatter values to appear in the document, move them into the body of the note before copying.
Can I automate this workflow?
If you're comfortable with APIs, Unmarkdown™ has a REST API and MCP server that can convert markdown programmatically. You could build a script that reads your Obsidian files and converts them in batch.
What about Obsidian Publish?
Obsidian Publish creates a website from your vault. It's a different use case from exporting to Google Docs. Publish is for creating a public or private wiki-style site. Unmarkdown™ is for creating documents that live in other people's apps.
Is the converter free?
The core conversion (paste markdown, copy formatted text for Google Docs) is free with no limits and no account required. Templates, AI editing, and publishing are available with an account (free tier) or Pro subscription.
Try the Unmarkdown plugin for Obsidian
Unmarkdown is now available as an Obsidian community plugin. Right-click any note and copy it formatted for Google Docs, Word, Slack, OneNote, Email, or Plain Text, directly from your vault. You can also publish notes to the web with 62 templates.
How to install (Community Plugins directory approval pending):
- Download
main.js,manifest.json, andstyles.cssfrom the latest release - In your vault, create the folder
.obsidian/plugins/unmarkdown/ - Move the three downloaded files into that folder
- Open Obsidian Settings > Community Plugins > Enable "Unmarkdown"
- Go to Settings > Unmarkdown > Click "Connect account" to link your free Unmarkdown account
Once approved for the Community Plugins directory, you can install by searching "Unmarkdown" in Obsidian's plugin browser.
