diff --git a/data/dbus-interfaces/org.gnome.Shell.CalendarServer.xml b/data/dbus-interfaces/org.gnome.Shell.CalendarServer.xml
new file mode 100644
index 000000000..c19883095
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Shell.CalendarServer.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/gnome-shell-dbus-interfaces.gresource.xml b/data/gnome-shell-dbus-interfaces.gresource.xml
index ba148ca1f..3352e0dcd 100644
--- a/data/gnome-shell-dbus-interfaces.gresource.xml
+++ b/data/gnome-shell-dbus-interfaces.gresource.xml
@@ -39,6 +39,7 @@
org.gnome.SettingsDaemon.Rfkill.xml
org.gnome.SettingsDaemon.Wacom.xml
org.gnome.Shell.AudioDeviceSelection.xml
+ org.gnome.Shell.CalendarServer.xml
org.gnome.Shell.Extensions.xml
org.gnome.Shell.Introspect.xml
org.gnome.Shell.HotplugSniffer.xml
diff --git a/js/ui/calendar.js b/js/ui/calendar.js
index 28e0d86d2..cd3e879c4 100644
--- a/js/ui/calendar.js
+++ b/js/ui/calendar.js
@@ -9,6 +9,8 @@ const MessageTray = imports.ui.messageTray;
const Mpris = imports.ui.mpris;
const Util = imports.misc.util;
+const { loadInterfaceXML } = imports.misc.fileUtils;
+
var MSECS_IN_DAY = 24 * 60 * 60 * 1000;
var SHOW_WEEKDATE_KEY = 'show-weekdate';
var ELLIPSIS_CHAR = '\u2026';
@@ -121,19 +123,7 @@ var EmptyEventSource = class EmptyEventSource {
};
Signals.addSignalMethods(EmptyEventSource.prototype);
-const CalendarServerIface = `
-
-
-
-
-
-
-
-
-
-
-
-`;
+const CalendarServerIface = loadInterfaceXML('org.gnome.Shell.CalendarServer');
const CalendarServerInfo = Gio.DBusInterfaceInfo.new_for_xml(CalendarServerIface);