{
  "slug": "vcard-to-json",
  "name": "gizza-ai/vcard-to-json",
  "version": "0.1.0",
  "title": "vCard to JSON — Convert .vcf Contacts Online",
  "description": "Convert vCard (.vcf) contact cards to a clean JSON array. Parses vCard 2.1/3.0/4.0, splits names and addresses, keeps phone/email types. Runs in your browser.",
  "tags": [
    "vcard to json",
    "vcf to json",
    "vcard parser",
    "vcf converter",
    "contacts to json",
    "parse vcard",
    "vcard 4.0"
  ],
  "category": "data",
  "urls": {
    "page": "https://gizza.ai/tools/vcard-to-json/",
    "markdown": "https://gizza.ai/tools/vcard-to-json/index.md",
    "descriptor": "https://gizza.ai/tools/vcard-to-json/tool.json",
    "deep_link_example": "https://gizza.ai/tools/vcard-to-json/?data=BEGIN%3AVCARD%0AVERSION%3A3.0%0AFN%3AJohn%20Doe%0AN%3ADoe%3BJohn%3B%3BMr.%3B%0AEMAIL%3BTYPE%3Dwork%3Ajohn%40example.com%0ATEL%3BTYPE%3DCELL%3A%2B15551234567%0AEND%3AVCARD&structured=true&wrap=array&pretty=true"
  },
  "cli": "gizza tool vcard-to-json \"BEGIN:VCARD\nVERSION:3.0\nFN:John Doe\nN:Doe;John;;Mr.;\nEMAIL;TYPE=work:john@example.com\nTEL;TYPE=CELL:+15551234567\nEND:VCARD\"",
  "tool": {
    "description": "Parse vCard (.vcf) contact cards into a JSON array of contacts. Accepts vCard 2.1, 3.0, and 4.0, handling folded continuation lines, multiple cards in one file, repeatable properties (emails/phones/urls/addresses become arrays with their TYPE tags), group prefixes, and value unescaping. `structured` (default true) splits Name and Address into component fields; `wrap` is 'array' (bare array) or 'object' ({contacts,count}); `pretty` indents the JSON. Runs locally.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "data": {
          "description": "The vCard text — one or more .vcf contact cards (each a BEGIN:VCARD … END:VCARD block). vCard 2.1, 3.0, and 4.0 are accepted.",
          "type": "string"
        },
        "pretty": {
          "default": false,
          "description": "Pretty-print (indent) the JSON output instead of emitting it on one line. Default false.",
          "type": "boolean"
        },
        "structured": {
          "default": true,
          "description": "Split the Name (N) into family/given/middle/prefix/suffix and each Address (ADR) into poBox/extended/street/locality/region/postalCode/country. With false, N and ADR stay as their raw semicolon-joined strings. Default true.",
          "type": "boolean"
        },
        "wrap": {
          "default": "array",
          "description": "Top-level shape: 'array' returns a bare JSON array of contact objects; 'object' returns { \"contacts\": [...], \"count\": N }. Default 'array'.",
          "enum": [
            "array",
            "object"
          ],
          "type": "string"
        }
      },
      "required": [
        "data"
      ],
      "type": "object"
    }
  }
}