diff --git a/apps/dav/appinfo/register_command.php b/apps/dav/appinfo/register_command.php
new file mode 100644
index 0000000000000000000000000000000000000000..c996dd44063a694e028ee94a2f112bf62957a0e1
--- /dev/null
+++ b/apps/dav/appinfo/register_command.php
@@ -0,0 +1,8 @@
+<?php
+
+use OCA\DAV\Command\CreateAddressBook;
+
+$dbConnection = \OC::$server->getDatabaseConnection();
+$userManager = OC::$server->getUserManager();
+/** @var Symfony\Component\Console\Application $application */
+$application->add(new CreateAddressBook($userManager, $dbConnection));
diff --git a/apps/dav/command/createaddressbook.php b/apps/dav/command/createaddressbook.php
new file mode 100644
index 0000000000000000000000000000000000000000..286871b39e2762d53abbacf6e89a8c59d9400531
--- /dev/null
+++ b/apps/dav/command/createaddressbook.php
@@ -0,0 +1,52 @@
+<?php
+
+namespace OCA\DAV\Command;
+
+use OCA\DAV\CardDAV\CardDavBackend;
+use OCP\IDBConnection;
+use OCP\IUserManager;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class CreateAddressBook extends Command {
+
+	/** @var IUserManager */
+	protected $userManager;
+
+	/** @var \OCP\IDBConnection */
+	protected $dbConnection;
+
+	/**
+	 * @param IUserManager $userManager
+	 * @param IDBConnection $dbConnection
+	 */
+	function __construct(IUserManager $userManager, IDBConnection $dbConnection) {
+		parent::__construct();
+		$this->userManager = $userManager;
+		$this->dbConnection = $dbConnection;
+	}
+
+	protected function configure() {
+		$this
+			->setName('dav:create-addressbook')
+			->setDescription('Create a dav addressbook')
+			->addArgument('user',
+				InputArgument::REQUIRED,
+				'User for whom the addressbook will be created')
+			->addArgument('name',
+				InputArgument::REQUIRED,
+				'Name of the addressbook');
+	}
+
+	protected function execute(InputInterface $input, OutputInterface $output) {
+		$user = $input->getArgument('user');
+		if (!$this->userManager->userExists($user)) {
+			throw new \InvalidArgumentException("User <$user> in unknown.");
+		}
+		$name = $input->getArgument('name');
+		$carddav = new CardDavBackend($this->dbConnection);
+		$carddav->createAddressBook("principals/$user", $name, []);
+	}
+}