pythonvCard4
RFC 6350-compliant vCard 4.0 parser & generator
What it is and what it does
pythonvCard4 is a vCard 4.0 parser and generator that implements RFC 6350, letting you create, read, and modify contact information in the standard .vcf file format. It wraps vCard data—names, emails, phone numbers, addresses, URLs, photos, and custom fields—into Python Contact objects, and serializes them back to compliant vCard text. The library handles inline image embedding with Base64 encoding, extension properties via custom fields, and claims full round-trip fidelity including proper folding and escaping per the RFC.
The package has no runtime dependencies and installs as a pure Python wheel, making it lightweight to add to any project. However, it is very new (first released 2025-04-26 with no updates since) and has minimal adoption signal, so production use should account for the possibility of undiscovered bugs or missing edge-case handling.
Use it for:
- Build contact management tools that import and export vCard files for interoperability with email clients and address books
- Parse existing .vcf files to extract and manipulate contact data programmatically within Python
- Generate vCard files from a database or web form to share contact information in a portable, standards-compliant format
- Embed photos in vCard files by specifying a path and letting the library handle Base64 encoding automatically
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Parse and generate RFC 6350-compliant vCard 4.0 files, converting between Contact objects and .vcf text with support for names, emails, phone numbers, addresses, photos, and custom fields.
Yes, if you need RFC 6350 vCard 4.0 support and can tolerate early-stage software. The package is permissively licensed, has no dependencies, and covers the core vCard use cases. However, verify that it handles your specific vCard features and edge cases before relying on it in production, given its minimal history and adoption.
Install
pythonvcard4 on PyPI
pip
pip install pythonvcard4uv
uv add pythonvcard4poetry
poetry add pythonvcard4Installing pythonvCard4
Before you install
Low friction—pure Python wheel with no runtime dependencies. Maintenance status is aging: the package was first released on 2025-04-26 and has not been updated since, with only 3 repository stars and minimal community signal.
License in practice
MIT License permits free use, modification, and distribution with minimal restrictions, making it suitable for both open-source and proprietary projects.
Quickstart
pip install pythonvCard4
from datetime import date
from pythonvCard4.vcard import Contact
c = Contact(
fn="Jane Doe",
n=["Doe","Jane","","",""],
email=[{"value": "jane@example.com", "type": ["work"]}],
tel=[{"value": "+1234567890", "type": ["cell"]}],
bday=date(1990, 5, 15)
)
vcf_text = c.to_vcard()
print(vcf_text)
Verify before relying
- Whether round-trip fidelity and RFC 6350 compliance have been tested against real-world vCard files and edge cases
- Whether photo embedding and Base64 encoding work reliably with various image formats and sizes
- Community adoption and bug-fix responsiveness given the minimal star count and recent-only release history
Package facts
| License | MIT License Copyright (c) 2025 Your Name Permission is hereby granted, free of charge, to any person obtaining a copy (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | aging — 475 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 109,905/month — #12,493 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pythonvcard4-0.2.0-py3-none-any.whl
Tags
More Markup packages
PyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
markdown-it-pyA Python markdown parser that converts markdown…
permissive · top 100 on PyPI
beautifulsoup4Beautiful Soup parses HTML and XML documents…
permissive · top 100 on PyPI
et-xmlfileet_xmlfile writes large XML files with minimal…
permissive · top 1,000 on PyPI
tomlkitParses and edits TOML files while preserving…
permissive · top 1,000 on PyPI
docstring-parserParses Python docstrings in ReST, Google,…
permissive · top 1,000 on PyPI
vobjectParses and serializes iCalendar and vCard…
permissive · top 5,000 on PyPI
cyvcf2cyvcf2 is a Cython wrapper around htslib that…
permissive · top 15,000 on PyPI
cbor2Encodes and decodes CBOR (Concise Binary Object…
permissive · top 1,000 on PyPI
icalParse, create, and iterate over iCalendar (RFC…
permissive · top 15,000 on PyPI
py-multibaseEncodes and decodes data using the Multibase…
permissive · top 15,000 on PyPI
commonregexExtracts dates, times, emails, phone numbers,…
permissive · top 15,000 on PyPI
django-phonenumber-fieldProvides a Django model field for storing,…
permissive · top 5,000 on PyPI
mail-parserParses raw email messages into structured…
permissive · top 5,000 on PyPI
vmware-vapi-runtimeVMware vAPI Runtime provides HTTP client,…
permissive · top 15,000 on PyPI
unpaddedbase64Encodes and decodes Base64 data without RFC…
permissive · top 5,000 on PyPI