qcard is a CLI addressbook application for CardDAV servers written in Go. In contrast to other tools it does not cache anything. It can fetch multiple servers / addressbooks in parallel what makes it quite fast.
Its main purpose is displaying addressbook data. Nevertheless it supports basic creation and editing of entries.
This simply displays all contacts from all addressbooks:
This only shows contacts from addressbook 0:
qcard -a 0
This displays all avaliable addressbooks with their numbers and colors:
This searches for contacts containing "doe" in all addressbooks:
qcard -s doe
The DetailThreshold parameter in the configuration file determines when all contact details are shown for a given numer of search results. For instance, on DetailThreshold = 3 you get all details if 3 or less contacts are found for the searchword "doe".
Here's a list of all attributes:
This creates a contact for John Doe with a private mobile phone number and an email address in address book 1:
qcard -a 1 -n "John Doe M:+49 172 123123 E:email@example.com"
Just combine the parameters from above like you wish.
This shows searches for "doe" in addressbook 2 and prints the corresponding filenames ("fobarxyz.vcf"):
qcard -a 2 -s doe -f
This edits the selected vCard object in your $EDITOR (i.e. vim). When you save-quit the modified object is automatically uploaded:
qcard -c 2 -edit foobarxyz.vcf
To use qcard as your addressbook in neomutt, put the following in your neomuttrc:
set query_command= "qcard -s '%s' -emailonly" bind editor <Tab> complete-query bind editor ^T complete
Instead of putting your password in the config file you can specify an external command to resolve your password. Put a line like this in your addressbook config and leave the "Password" field empty:
"PasswordCmd":"rbw get calendar-provider"