NAME
    vcardtidy - normalize the format of VCARD files

VERSION
    v1.0.4 (2026-01-14)

SYNOPSIS
        vcardtidy [FILES...] [OPTIONS...]

DESCRIPTION
    vcardtidy formats VCARD files, using Text::vCard::Addressbook to
    normalize field order and capitalization.

    By default vcardtidy acts like a filter, reading from "stdin" and
    writing to "stdout".

    Any "FILES..." specified are tidied up in place without backup!
    Users are encouraged to use a revision control system (e.g. Git) or
    have secure backups.

OPTIONS
    --filter, -F PERL
        Before tidying, evaluate the "PERL" string with $_ set to the
        input text. The modified $_ value then input to
        Text::vCard::Addressbook for tidying.

        Tools like sed(1), awk(1) and of course perl(1) are obviously
        natively designed to modify text, in a better way. But
        "--filter" ensures that you still have a valid VCARD afterwards,
        allowing you to easily iterate while you develop your change.

        To add an additional or missing category for example:

            $ vcardtidy \
               -f '$_ .= "\nCATEGORIES:\n" unless m/^CATEGORIES:/m' \
               -f 's/^(CATEGORIES:\S+)(\s+)$/$1,$2/m' \
               -f 's/^(CATEGORIES:.*)(\s+)$/${1}NewCat$2/m'

        If the result cannot be parsed by Text::vCard then no files are
        modified or output generated.

    --force, -f
        Force a tidy to occur by adding missing N and FN fields based on
        the UID.

        This can also be used to overwrite the VERSION field.

    --help, -h
        Print the full usage message and exit.

    --no-rev, -R
        By default vcardtidy sets a new "REV" timestamp. Use this flag
        to prevent that.

    --nothing, -n
        Do not write

    --vcard-version, -v VERSION
        The desired vCard VERSION when none exists. Defaults to "4.0".

    --version, -V
        Print the version and exit.

SUPPORT
    This tool is managed via github:

        https://github.com/mlawren/vcardtidy

SEE ALSO
    Text::vCard::Addressbook, githook-perltidy(1)

AUTHOR
    Mark Lawrence <nomad@null.net>

COPYRIGHT AND LICENSE
    Copyright 2022-2026 Mark Lawrence <nomad@null.net>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.

