diff --git a/files/usr/share/cinnamon/applets/calendar@cinnamon.org/eventView.js b/files/usr/share/cinnamon/applets/calendar@cinnamon.org/eventView.js
index 1d1035c60..ebfd5a3a4 100644
--- a/files/usr/share/cinnamon/applets/calendar@cinnamon.org/eventView.js
+++ b/files/usr/share/cinnamon/applets/calendar@cinnamon.org/eventView.js
@@ -301,7 +301,7 @@ class EventsManager {
     }
 
     start_events() {
-        if (this._calendar_server == null) {
+        if (this._calendar_server == null && Cinnamon.CalendarServerProxy) {
             Cinnamon.CalendarServerProxy.new_for_bus(
                 Gio.BusType.SESSION,
                 // Gio.DBusProxyFlags.NONE,
diff --git a/meson.build b/meson.build
index 2c1baf47d..aba5d5a30 100644
--- a/meson.build
+++ b/meson.build
@@ -179,6 +179,9 @@ install_subdir(
     strip_directory: true,
 )
 
-subdir('calendar-server')
+
+if get_option('build_calendar_server')
+    subdir('calendar-server')
+endif
 subdir('python3')
 subdir('install-scripts')
diff --git a/meson_options.txt b/meson_options.txt
index 82422246b..752f7904e 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -13,6 +13,11 @@ option('build_recorder',
     value: true,
     description: 'Build the cinnamon recorder into source'
 )
+option('build_calendar_server',
+    type: 'boolean',
+    value: true,
+    description: 'Build the cinnamon EDS calendar server'
+)
 option('disable_networkmanager',
     type: 'boolean',
     value: false,
diff --git a/src/meson.build b/src/meson.build
index 7999c0a67..1b22aa279 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -3,12 +3,6 @@ subdir('hotplug-sniffer')
 
 include_src = include_directories('.')
 
-calendar_generated = gnome.gdbus_codegen('cinnamon-calendar',
-  sources: 'org.cinnamon.CalendarServer.xml',
-  interface_prefix: 'org.cinnamon.',
-  namespace: 'Cinnamon'
-)
-
 cinnamon_headers = [
     'cinnamon-app.h',
     'cinnamon-app-system.h',
@@ -59,10 +53,21 @@ cinnamon_sources = [
     'cinnamon-window-tracker.c',
     'cinnamon-wm.c',
     'cinnamon-xfixes-cursor.c',
-    cinnamon_headers,
-    calendar_generated
+    cinnamon_headers
 ]
 
+if get_option('build_calendar_server')
+    calendar_generated = gnome.gdbus_codegen('cinnamon-calendar',
+      sources: 'org.cinnamon.CalendarServer.xml',
+      interface_prefix: 'org.cinnamon.',
+      namespace: 'Cinnamon'
+    )
+
+    cinnamon_sources += [
+        calendar_generated
+    ]
+endif
+
 cinnamon_enum_types = gnome.mkenums_simple(
     'cinnamon-enum-types',
     sources: cinnamon_headers,
