diff --git a/apps/dav/lib/CalDAV/BirthdayService.php b/apps/dav/lib/CalDAV/BirthdayService.php
index 278373733a41df60f1b17165fc6b576382fdc355..a4326f54f647843cda8230cd4b2ec2bc5039d4ee 100644
--- a/apps/dav/lib/CalDAV/BirthdayService.php
+++ b/apps/dav/lib/CalDAV/BirthdayService.php
@@ -243,7 +243,11 @@ class BirthdayService {
 		}
 
 		try {
-			$date = new \DateTime($birthday);
+			if ($birthday instanceof DateAndOrTime) {
+				$date = $birthday->getDateTime();
+			} else {
+				$date = new \DateTimeImmutable($birthday);
+			}
 		} catch (Exception $e) {
 			return null;
 		}
@@ -259,10 +263,13 @@ class BirthdayService {
 		);
 		$vEvent->DTSTART['VALUE'] = 'DATE';
 		$vEvent->add('DTEND');
-		$date->add(new \DateInterval('P1D'));
+
+		$dtEndDate = (new \DateTime())->setTimestamp($date->getTimeStamp());
+		$dtEndDate->add(new \DateInterval('P1D'));
 		$vEvent->DTEND->setDateTime(
-			$date
+			$dtEndDate
 		);
+
 		$vEvent->DTEND['VALUE'] = 'DATE';
 		$vEvent->{'UID'} = $doc->UID . $postfix;
 		$vEvent->{'RRULE'} = 'FREQ=YEARLY';
@@ -306,7 +313,7 @@ class BirthdayService {
 		foreach($books as $book) {
 			$cards = $this->cardDavBackEnd->getCards($book['id']);
 			foreach($cards as $card) {
-				$this->onCardChanged($book['id'], $card['uri'], $card['carddata']);
+				$this->onCardChanged((int) $book['id'], $card['uri'], $card['carddata']);
 			}
 		}
 	}