Google Contacts

by aleksejs1
5
4
3
2
1
Score: 47/100

Description

Category: 3rd Party Integrations

The Google Contacts Sync plugin imports your Google contacts into your vault as individual markdown notes, complete with metadata in YAML frontmatter and space for free-form annotations. It supports multiple fields like names, emails, phone numbers, addresses, and birthdays, with customisable prefixes to prevent conflicts. You can filter synced contacts by Google labels, choose a specific folder for storing them, and define a naming pattern for the files. It only updates the frontmatter on re-sync, preserving any manual edits below. Advanced users can also configure how metadata keys are named. This makes it especially useful for users who want to maintain a lightweight personal CRM or keep contact records alongside their notes.

Reviews

No reviews yet.

Stats

28
stars
1,740
downloads
6
forks
332
days
1
days
3
days
22
total PRs
1
open PRs
4
closed PRs
17
merged PRs
24
total issues
8
open issues
16
closed issues
0
commits

RequirementsExperimental

  • A Google account and a Google cloud project with OAuth client ID and secret

Latest Version

3 days ago

Changelog

New

Profile photo sync — contact photo URLs are now synced to frontmatter automatically.

  • Default / Array strategy: stored as photo (or {prefix}photo)
  • VCF strategy: stored as PHOTO

User-uploaded photos are preferred over Google-generated avatars. If only a generated avatar is available, it is used as a fallback.

Internal

  • Updated dependencies

README file from

Github

🧩 Google Contacts Sync

Synchronize your Google contacts directly into Obsidian!
Each contact becomes a separate note with YAML frontmatter for metadata and free-form text for your notes.


⚙️ Features

  • 🔄 Synchronize Google contacts into your Obsidian vault

  • 🔍 Audit contacts to find local notes that no longer exist in Google Contacts

  • 🗂 Configurable folder for storing contact notes

  • ✏️ Customizable note template (under the metadata block)

  • 🏷 Filter by Google contact label (e.g. only sync contacts tagged with obsidian)

  • 📛 Filename prefix support (e.g. p Ivan Ivanov.md)

  • 🏷️ Customizable naming strategy for filenames as last name first (e.g. p Ivanov Ivan.md)

  • 🧩 Multiple naming strategies for frontmatter keys:

    • Default: Customizable prefix (e.g., s_name, s_email_2).
    • VCF (vCard): Fully compatible with the VCF Contacts plugin.
    • Array: Stores multiple values (emails, phones, etc.) as a single array field in the frontmatter.
  • 📇 Supports multiple names, emails, phone numbers, birthdays, addresses, organizations, job titles, department, labels, relations

  • 🏷️ Option to sync Relations as Obsidian links (e.g. [[Jane Doe|Jane Doe (spouse)]])

📸 Screenshots

Note example Settings tab


📦 Installing into Obsidian

  1. Open your Obsidian vault

  2. Go to Settings → Community plugins

  3. Turn Safe mode → OFF

  4. Click Browse and search for Google Contacts

  5. Click Install, then Enable the plugin

🔐 Google Authorization

  1. Go to the plugin settings inside Obsidian.

  2. Fill in:

  • Client ID

  • Client Secret (see instructions below for how to obtain these)

  1. Click the "Login to Google" button.

  2. Follow the link, log in with your Google account, and copy the authorization code.

  3. Paste the code into the prompt in Obsidian. The plugin will automatically save the access and refresh tokens.

🚀 How to Use

  1. Open the command palette (Ctrl+P or Cmd+P)

  2. Run the command: Google Contacts: Sync

  3. Run the command: Google Contacts: Audit Contacts

🔁 Sync Algorithm

  • Only notes within the specified folder are used for syncing contacts.

  • Each contact is matched using its id stored in the YAML frontmatter.

  • If a contact already exists (by id), the plugin updates only the frontmatter. Existing user-defined frontmatter properties and free-text content below the frontmatter are preserved and never overwritten.

  • There's an option to change the note title if a contact's name changes. Links in notes will automatically update if this option is enabled in the settings.

  • How field names are generated depends on the selected Naming Strategy:

Default Strategy

The plugin appends a number starting from 2 for additional pieces of information:

phone: +123456789
phone_2: +987654321

You can also define a prefix for the property names. For example, if the prefix is sync_, the properties will be stored as:

sync_id: CONTACT_ID
sync_name: Full Name
sync_email: [email protected]
sync_phone: +123456789
sync_synced: 2025-04-19T12:34:56.789Z
VCF (vCard) Strategy

Designed for full compatibility with the VCF Contacts plugin. It uses standard vCard field names and indexed notation for multiple values:

FN: Full Name
TEL: +123456789
TEL[2]: +987654321
EMAIL: [email protected]
ADR.CITY: New York
CATEGORIES: Friends, Work

[!IMPORTANT] To ensure strict vCard compatibility, the following settings are ignored when the VCF strategy is active:

  • Property name prefix (keys always use standard vCard names).
  • Organization as link (organizations stored as plain text).
  • Relations as link (relations stored as plain text).
  • Track last sync time (no synced field added).
  • If no matching file exists, a new note is created with the following structure:
---
id: CONTACT_ID
name: Full Name
email: [email protected]
phone: +123456789
synced: 2025-04-19T12:34:56.789Z
---

# Notes  

You can write anything here — this section is safe.
  • The synced date uses UTC (Coordinated Universal Time) to ensure correct synchronization across time zones. This option is disabled by default to improve performance and avoid touching hundreds of contact notes with each synchronization.

  • The plugin only updates properties related to the contact (such as name, email, phone, etc.). Any custom properties created by the user will remain untouched.

  • If auto-syncing fails (e.g., due to a lack of internet connection), the next attempt will only occur during the next scheduled auto-sync. No retries will be attempted in between.

  • If a sync label is configured, only contacts with that label will be synchronized. Contacts without the specified label will be ignored during the sync process.

🔍 Contact Audit

The plugin provides a command to audit your local contact notes against your Google Contacts.

  • Goal: Identify contact notes in your vault that do not exist (or no longer match the sync label) in Google Contacts.
  • How to run: Open command palette and search for Google Contacts: Audit Contacts.
  • Output: Generates a report file Contact Audit Report.md in your vault root.
    • If functioning correctly, it will list "No orphaned contacts found".
    • If orphans are found, it lists the files and their contact IDs so you can decide whether to delete or keep them.

🔐 How to Get a Google Client ID and Secret

To sync your contacts, you’ll need a valid Google Access Token that grants access to the People API. Follow the steps below to obtain the Client ID and Client Secret, and to configure your account so you can retrieve the necessary Authorization Code for the Obsidian plugin.

1. Set up Google Cloud

Go to Google Cloud Platform

Create a new project (or select an existing one)

2. Enable People API

Navigate to: API & Services → Library

Search for Google People API

Click Enable

Navigate to: API & Services → OAuth consent screen

Navigate to: Audience tab

If prompted, click Get started

Fill in the required App information (App name, User support email)

Set the User Type to External (you do not need to publish the app)

Complete the contact information and click Finish

4. Add Your Account as a Test User

Navigate to: Audience tab again

Go to the Test users section (under the "OAuth user cap")

Click "+ Add users" and enter the exact Google email address you will use to log in from within Obsidian

5. Create OAuth 2.0 Credentials

Go to: API & Services → Credentials

Click "+ Create Credentials" and select "OAuth client ID" from the list

For Application type, select: Desktop App, and give it a name

Copy your Client ID and Client Secret and insert them into the plugin's options

6. Get the Authorization Code

In the Obsidian plugin, log in with the registered Test User email via the "Login" button

After confirming the dialog to grant the plugin permissions, a final screen will display the Authorization Code you need to copy and paste back into the plugin

🔧 Build Instructions

To build the plugin:

  1. Clone or download the repository

  2. Install dependencies:

    npm install
    
  3. Build the plugin using Rollup:

    npm run build
    

📦 Installing your build into Obsidian

  1. Open your Obsidian vault

  2. Go to .obsidian/plugins/ and create a folder, e.g. google-contacts-sync

  3. Copy the following files into that folder:

google-contacts-sync/
├── main.js
└── manifest.json
  1. In Obsidian:
  • Go to Settings → Community Plugins

  • Enable Safe Mode → OFF

  • Click "Load community plugins"

  • Enable google-contacts-sync

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
KOReader Sync
4 years ago by Federico "Edo" Granata
Obsidian.md plugin to sync highlights/notes from koreader
Pinboard Sync
4 years ago by Mathew Spolin
Obsidian plugin to sync Pinboard.in links to Daily Notes
Vim Multibyte Char Search
4 years ago by anselmwang
Search multibyte characters by the corresponding input method encoding. For example, for Chinese, search "用来" by "yl"
Google Calendar and Contacts Lookup
4 years ago by ntawileh
Obsidian plugin that pulls contact and calendar event information from your Google account
Weread Plugin
4 years ago by hank zhao
Obsidian Weread Plugin is a plugin to sync Weread(微信读书) hightlights and annotations into your Obsidian Vault.
Douban
4 years ago by Wanxp
an obsidian plugin that can pull data from douban to your markdown file
Readavocado Sync
4 years ago by Cyrus Zhang
Readavocado obsidian plugin to sync your favorite highlights.
Awesome Flashcard
4 years ago by AwesomeDog
Handy Anki integration for Obsidian.
SamePage
3 years ago by SamePage
Sync Graph Settings
3 years ago by Xallt
This is a plugin for syncing graph settings (Color Groups and Search Filters) to Local Graphs
Contacts
3 years ago by vbeskrovnov
With this plugin, you can easily organize and manage your contacts within Obsidian. Simply create a note with contact information and use the plugin's features to quickly search, and sort through your contacts. Contacts plugin also helps you to remember birthdays of your contacts and keeps track of the last time you met them.
Awesome Reader
3 years ago by AwesomeDog
Make Obsidian a proper Reader.
WuCai highlights Official
3 years ago by 希果壳五彩
WuCai highlights Official, for Sync highlights into your obsidian notes
Askify Sync
3 years ago by Kishlay Raj
Invio
3 years ago by frontend-engineering
Publish obsidian docs online
Syncthing Integration
3 years ago by LBF38
Obsidian plugin for Syncthing integration
TickTick
3 years ago by Viduy Cheung
Share to NotionNext
3 years ago by EasyChris, jxpeng98
Share obsidian markdown file to any Notion database and generate notion share link 同步obsdian文件到任意Notion数据库。
Sync Contacts on macOS
3 years ago by Marcel Schöckel
AnkiSync+
3 years ago by RochaG0
Notes Sync Share
3 years ago by Alt-er
Sync and share (publish) your notes in your own private service.
TickTickSync
2 years ago by thesamim
Peerdraft
2 years ago by Peerdraft
Collaboration for Obsidian – Sync, Share, and Edit anywhere
Instapaper
2 years ago by Instapaper
Official Instapaper plugin for Obsidian
Settings profiles
2 years ago by 4Source
This is a plugin for Obsidian (https://obsidian.md). Allows you to create various global settings profiles. You can sync them between different vaults. To keep all your settings in sync, you'll never have to manually adjust them again for every vault you have or create in the future.
iCloud Contacts
2 years ago by Truls Aagaard
Obsidian plugin that imports contacts from iCloud and manages a note for each contact.
GitHub Sync
2 years ago by Kevin Chin
Sync Obsidian vault to personal GitHub
BookFusion
2 years ago by BookFusion
BookFusion Obsidian Plugin
Confluence Sync
2 years ago by Prateek Grover
Obsidian plugin for obsidian confluence sync
Cicada Synchronizer
2 years ago by Adapole, Adapole, Mahyar Mirrashed
Sync config folder to common folder
2 years ago by codeonquer
Voicenotes Sync
2 years ago by Andrew Lombardi
Official Obsidian plugin that syncs your notes from VoiceNotes.com into your vault
Memos Sync
2 years ago by RyoJerryYu
Syncing Memos to Obsidian daily note. Fully compatible with official Daily Notes plugin, Calendar plugin and Periodic Notes plugin.
DocBase (Unofficial)
2 years ago by yurikuvanov
Unofficial DocBase plugin for Obsidian
Vikunja Sync
2 years ago by Peter Heiss
Manage your tasks in vikunja.
AnySocket Sync
2 years ago by Andrei Vaduva
Securely Synchronize your Vault on a self-hosted server
Todoist Sync
6 years ago by jamiebrynes7
Materialize Todoist tasks in Obsidian notes
Filename Heading Sync
5 years ago by dvcrn
Obisdian.md plugin to keep the filename and the first header of the file in sync
Readwise Mirror
5 years ago by jsonmartin
Taskbone
5 years ago by Dominik Schlund
Obsidian OCR plugin - extract text from images
Remotely Save
4 years ago by fyears
Sync notes between local and cloud with smart conflict: S3 (Amazon S3/Cloudflare R2/Backblaze B2/...), Dropbox, webdav (NextCloud/InfiniCLOUD/Synology/...), OneDrive, Google Drive (GDrive), Box, pCloud, Yandex Disk, Koofr, Azure Blob Storage.
BookXNote Sync
2 years ago by CodeListening
将bookxnote中的笔记同步到obsidian指定的文件夹中
Cloud Storage
2 years ago by Jiajun Ma
Obsidian Cloud Storage is a powerful and user-friendly plugin designed to seamlessly integrate cloud storage capabilities into your Obsidian workflow. This plugin allows you to effortlessly upload your attachments to the cloud, freeing up local storage space and enabling easy sharing and access across all your devices.
Strava Sync
2 years ago by Howard Wilson
Sync Strava activities to your Obsidian vault
ExMemo Client
2 years ago by Yan.Xie
exmemo obsidian plugin
Unearthed (Kindle Sync)
2 years ago by CheersCal
HackMD Sync
a year ago by thor kampefner
obsidian extension to push and pull notes from hackmd conveniently
Beautiful Contact Cards
a year ago by Seth Tenembaum
A plugin for the Obsidian text editor which renders "contact" code blocks with tappable links for phone, social media, etc.
Google Drive Sync
a year ago by Richard Xiong
A plugin to make Obsidian work in Google Drive to enable access to iOS.
Sync to Hugo
a year ago by Cray Huang
Sync the selected notes from Obsidian to Hugo
Sync Cnblog
a year ago by zhanglei
同步文章到博客园
WikiDocs
a year ago by pahkey
BetaX NAS Sync
a year ago by Skye
Obsidian NAS Sync
Hoarder Sync
a year ago by Jordan Hofker
An Obsidian.md community plugin that allows syncing with https://karakeep.app/
Feedly Annotations Sync
a year ago by Nick Felker
Download my Feedly annotations
Glasp
a year ago by Glasp
Obsidian plugin to import highlights and notes from Glasp
Minote Sync
a year ago by Emac Shen
Minote Sync is a Obsidian plugin to sync Minote(小米笔记) into your Vault.
Checkbox Sync
a year ago by Grol
Keep parent/child checkboxes in sync automatically within your Obsidian task lists.
VaultSync
a year ago by Justin Bird
Obsidian plugin to link your vault to a cloud storage provider.
KOI Sync
a year ago by Luke Miller
Memos AI Sync
a year ago by leoleelxh
obsidian-memos-sync-plugin,将 Memos 内容同步到 Obsidian 的插件,提供无缝集成体验。
Jade Publisher
a year ago by Lucas Ji
This is a simple plugin to help publish your Obsidian vault to a public website(build with Jade).
Sync Vault CE
a year ago by Camus Qiu
The missing bridge between your 10+ TB cloud drive and your AI brain.
InfoFlow
a year ago by RockieStar Inc.
Obsidian plugin for InfoFlow.app - This plugin integrates InfoFlow with Obsidian, allowing you to sync your saved articles, web pages, notes, and highlights directly into your Obsidian vault.
LINE Notes Sync
a year ago by onikun94
GitHub Gitless Sync
a year ago by Silvano Cerza
Sync a GitHub repository with vaults on different platforms without requiring git installation
GitHub Tracker
a year ago by schaier-io
Browser History
a year ago by noy4
Sync your browser history to notes.
Anki Integration
a year ago by Noah Boos AKA Rift
Create flashcards from your notes with a seamless interface, structuring them with metadata and syncing effortlessly via AnkiConnect.
Jira Issue Manager
a year ago by Alamion
Obisdian plugin to sync tasks between Obsidian and Jira
Cubox
a year ago by delphi-2015
Cubox Official Obsidian Plugin
Limitless Lifelogs
a year ago by Maclean Dunkin
Sync your Limitless AI lifelog entries directly into Obsidian markdown files.
VCF Contacts
a year ago by Roland Broekema
With this plugin, you can easily organize and manage your contacts within Obsidian. Simply create a note with contact information and use the plugin's features to quickly search, and sort through your contacts. Contacts plugin also helps you to remember birthdays of your contacts and keeps track of the last time you met them.
Markwhen File Sync
a year ago by rouvenjahnke
Synchronize properties from your Obsidian notes with a Markwhen timeline file.
Markdown Hijacker
a year ago by Yongmini
Beyond the Vault. One hub for every Markdown, everywhere
Yandex Wiki Integration
10 months ago by Pavel Sokolov
Github Issues
10 months ago by LonoxX
An Obsidian plugin that integrates with GitHub to track issues and pull requests directly in your vault.
Sync-safe file names
7 months ago by j-maas
Ensure your Obsidian files can always be synced across all your devices.
MrDoc
7 months ago by zmister
An Obsidian plugin for MrDoc that enables two-way synchronization between local Obsidian documents and MrDoc.一个 Obsidian 的 MrDoc 插件,用于 Obsidian 本地文档与 MrDoc 的双向同步
Nutstore Sync
6 months ago by nutstore-dev
Hardcover
3 months ago by aliceinwaterdeep