for item in data: vcard = vobject.vCard() vcard.add('fn').value = item.get('name', 'No Name') if 'phone' in item: vcard.add('tel').value = item['phone'] if 'email' in item: vcard.add('email').value = item['email'] vcf_file.write(vcard.serialize())
Once the contacts are populated in Google Contacts, select them all. json to vcf converter
vcard.add('version') vcard.version.value = '4.0' for item in data: vcard = vobject
| Feature | Benefit | |---------|---------| | | No manual mapping for standard exports (e.g., from Google Contacts JSON). | | Preserve custom fields | Map unknown JSON keys to X- extension properties. | | Photo handling | If JSON contains base64‑encoded image or URL, embed photo in vCard ( PHOTO ). | | Groups/Categories | Convert JSON group labels to vCard CATEGORIES . | | Internationalization | Support Unicode names, addresses, and notes (UTF‑8). | | CLI version | For developers: json2vcf input.json -o output.vcf . | | REST API | POST JSON → receive VCF file (for integration with other apps). | | Privacy filter | Strip or mask certain fields (e.g., remove secondary phone numbers). | | | Photo handling | If JSON contains