Skip to content
Download CardDAV VCards and upload as phonebook to AVM FRITZ!Box
PHP Other
  1. PHP 98.7%
  2. Other 1.3%
Branch: next
Clone or download
Pull request Compare This branch is 7 commits ahead of andig:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

CardDAV contacts import for AVM FRITZ!Box

Purpose of the software is the (automatic) uploading of contact data from CardDAV servers as a phone book into an AVM Fritz!Box.

This is an extendeded version of


  • download from any number of CardDAV servers
  • read from any local *.vcf files (optional)
  • selection (include/exclude) by categories or groups (e.g. iCloud)
  • upload of contact pictures to display them on the FRITZ!Fon (handling see below)
  • automatically preserves quickDial and vanity attributes of phone numbers set in FRITZ!Box Web GUI. Works without config. (Hint: If you used the old way of configuring your CardDav server with X-FB-QUICKDIAL /X-FB-VANITY, then your old config is respected and this new automatic feature is skipped).
  • automatically preserves internal numbers (e.g. if you use Gruppenruf)
  • if more than nine phone numbers are included, the contact will be divided into a corresponding number of phonebook entries (any existing email addresses are assigned to the first set [there is no quantity limit!])
  • phone numbers are sorted by type. The order of the conversion values ('phoneTypes') determines the order in the phone book entry
  • the contact's UID of the CardDAV server is added to the phonebook entry (not visible in the FRITZ! Box GUI)
  • automatically preserves QuickDial and Vanity attributes of phone numbers set in FRITZ!Box Web GUI. Works without config. These data are saved separately in the internal FRITZ!Box memory under ../FRITZ/mediabox/Atrributes.csv from loss. The legacy way of configuring your CardDav server with X-FB-QUICKDIAL/X-FB-VANITY is no longer supported.
  • generates an image with keypad and designated quickdial numbers (2-9), which can be uploaded to designated handhelds (see details below)

Additonal with this version (fork):

  • specify with forcedupload whether the phone book should be overwritten, or if phone numbers that are not included in the upload are to be saved as vcf by e-mail (see wiki for handling details).
  • specify with fritzadr if fax numbers should be extracted from the phonebook and stored as FRITZ!Fax (fax4box) adressbook (FritzAdr.dbf)

Have a look in the wiki for further information!



Install carddav2fb:

git clone
cd carddav2fb

Install composer (see for newer instructions):

composer install --no-dev --no-suggest

Edit config.example.php and save as config.php or use an other name of your choice (but than keep in mind to use the -c option to define your renamed file)


List all commands:

./carddav2fb list

Complete processing:

./carddav2fb run

Get help for a command:

./carddav2fb run -h

Upload contact pictures

Uploading can also be included in uploading phonebook:

./carddav2fb run -i


  • memory (USB stick) is indexed [Heimnetz -> Speicher (NAS) -> Speicher an der FRITZ!Box]
  • ftp access is active [Heimnetz -> Speicher (NAS) -> Heimnetzfreigabe]


  • requires FRITZ!Fon C4 or C5 handhelds
  • you use an standalone user (NOT! dslf-config) which has explicit permissions for FRITZ!Box settings, access to NAS content and read/write permission to all available memory [System -> FRITZ!Box-Benutzer -> [user] -> Berechtigungen]

Upload Fritz!FON background image

The background image will be uploaded during

./carddav2fb run

Alternativly using the background-image command it is possible to upload only the background image to FRITZ!Fon (nothing else!)

./carddav2fb background-image


  • FRITZ!Fon: Einstellungen -> Anzeige -> Startbildschirme -> Klassisch -> Optionen -> Hintergrundbild


  • requires FRITZ!Fon C4 or C5 handhelds
  • quickdial numbers are set between 2 to 9
  • settings in FRITZ!Fon: Einstellungen -> Anzeige -> Startbildschirme -> Klassisch -> Optionen -> Hintergrundbild
  • assignment is made via the internal number(s) of the handheld(s) in the 'fritzfons'-array in config.php
  • internal number have to be between '610' and '615', no '**'-prefix


For debugging please set your config.php to

'http' => 'debug' => true

Docker image

The Docker image contains the tool and all its dependencies. A volume /data contains the configuration files. If the configuration is missing, the Docker entrypoint will abort with an error message and copy an example file to the volume.

There are two ways to use the image:

docker run --rm -v ./carddav2fb-config:/data andig/carddav2fb command...

will execute a single command (and remove the created container afterwards).

Without a command, the container entrypoint will enter an endless loop, repeatedly executing carddav2fb run in given intervals. This allows automatic, regular updates of your FRITZ!Box's phonebook.


This script is released under Public Domain, some parts under GNU AGPL or MIT license. Make sure you understand which parts are which.


Copyright (c) 2012-2019 Andreas Götz, Volker Püschel, Karl Glatz, Christian Putzke, Martin Rost, Jens Maus, Johannes Freiburger

You can’t perform that action at this time.