diff --git a/jellyfin_kodi/jellyfin/http.py b/jellyfin_kodi/jellyfin/http.py
index a58ad961..bf6d103e 100644
--- a/jellyfin_kodi/jellyfin/http.py
+++ b/jellyfin_kodi/jellyfin/http.py
@@ -179,7 +179,7 @@ class HTTP(object):
 
             else:
                 try:
-                    self.config.data["server-time"] = r.headers["Date"]
+                    self.config.data["server-time"] = r.headers.get("Date")
                     elapsed = int(r.elapsed.total_seconds() * 1000)
                     response = r.json()
                     LOG.debug("---<[ http ][%s ms]", elapsed)
diff --git a/jellyfin_kodi/library.py b/jellyfin_kodi/library.py
index 45242976..2d75313e 100644
--- a/jellyfin_kodi/library.py
+++ b/jellyfin_kodi/library.py
@@ -525,18 +525,22 @@ class Library(threading.Thread):
         return True
 
     def save_last_sync(self):
+        _raw_time = self.server.config.data["server-time"]
 
         try:
-            time_now = datetime.strptime(
-                self.server.config.data["server-time"].split(", ", 1)[1],
-                "%d %b %Y %H:%M:%S GMT",
-            ) - timedelta(minutes=2)
+            import email.utils
+
+            time_now = email.utils.parsedate_to_datetime(_raw_time)
+
         except Exception as error:
+            LOG.warning(error)
+            LOG.warning("Failed to parse server time, falling back to client time.")
+            time_now = datetime.utcnow()
 
-            LOG.exception(error)
-            time_now = datetime.utcnow() - timedelta(minutes=2)
+        # Add some tolerance in case time is out of sync with server
+        time_now -= timedelta(minutes=2)
 
-        last_sync = time_now.strftime("%Y-%m-%dT%H:%M:%Sz")
+        last_sync = time_now.strftime("%Y-%m-%dT%H:%M:%SZ")
         settings("LastIncrementalSync", value=last_sync)
         LOG.info("--[ sync/%s ]", last_sync)