To convert a vCard addressbook to the fritzbox xml format I wrote this short perl script.

 

#!/usr/bin/perl -w
use warnings;
use strict;

my $inputFile = shift;

open(VCARD, $inputFile);

my $newContactFlag = 0;
my %nameNumberHash;
my $name;
my $i = 0;

# Input section

sub umlautwechseln {
    my $messystring = shift;
    my $conversion = shift || "1";
 
    my @vorlage = (
        [   'ä',   'ö',      'ü',      'Ä',      'Ö',     'Ü',      'ß'],
        ['ä', 'ö', 'ü', 'Ä', 'Ö','Ü', 'ß'],
        [   'ae',  'oe',     'ue',     'Ae',     'Oe',    'Ue',     'ss']
    );
 
    for (0 .. 6) {
        $messystring =~ s/$vorlage[0][$_]/$vorlage[$conversion][$_]/g;
    }
 
    return $messystring;
}

while(<VCARD>)
{
        if($_ =~ /^FN:(.+)\n$/)
        {
            $name = $1;
            chop($name);
            $name = umlautwechseln($name);
        }
        elsif( $_ =~ /TEL;type=(.+);type=VOICE:\+49(\d+)/ )
        {
            $i++;
            my $type = lc($1);
            $nameNumberHash{$name} .= "<number type=\"$type\" vanity=\"\" prio=\"1\">0$2</number>\n";  
        }
        elsif( $_ =~ /TEL;type=(.+);type=VOICE;type=pref:\+49(\d+)/ )
        {
            $i++;
            my $type = lc($1);
            $nameNumberHash{$name} .= "<number type=\"$type\" vanity=\"\" prio=\"1\">0$2</number>\n";  
        }
}

close(VCARD);

# Output Section

print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>
<phonebooks>
    <phonebook>";
my $id = 0;
foreach my $key ( keys %nameNumberHash )
{
    my $name = $key; # chop($key);
    #print "key: $key, value: $nameNumberHash{$key}\n";
print"        <contact>
            <category>0</category>
            <person>
                <realName>".$key."</realName>
            </person>
            <telephony>
                $nameNumberHash{$key}
            </telephony>
            <services />
            <setup />
            <mod_time>1319558289</mod_time>
            <uniqueid>$id</uniqueid>
        </contact>";
    $id++;
}
print "    </phonebook>
</phonebooks>";

After that you can start it with:

perl vcards2fritz.pl vCards.vcf > test.xml

and you can upload the test.xml file to your fritzbox.