diff --git a/UltiMaker-Cura.spec.jinja b/UltiMaker-Cura.spec.jinja
index 3d540d3b8f..cd939cf736 100644
--- a/UltiMaker-Cura.spec.jinja
+++ b/UltiMaker-Cura.spec.jinja
@@ -266,6 +266,10 @@ app = UMBUNDLE(
'CFBundlePackageType': 'APPL',
'CFBundleVersionString': {{ version }},
'CFBundleShortVersionString': {{ short_version }},
+ 'CFBundleURLTypes': [{
+ 'CFBundleURLName': '{{ display_name }}',
+ 'CFBundleURLSchemes': ['cura', 'slicer'],
+ }],
'CFBundleDocumentTypes': [{
'CFBundleTypeRole': 'Viewer',
'CFBundleTypeExtensions': ['*'],
diff --git a/packaging/NSIS/Ultimaker-Cura.nsi.jinja b/packaging/NSIS/Ultimaker-Cura.nsi.jinja
index 9996b24773..228dba4fe4 100644
--- a/packaging/NSIS/Ultimaker-Cura.nsi.jinja
+++ b/packaging/NSIS/Ultimaker-Cura.nsi.jinja
@@ -192,3 +192,18 @@ DeleteRegKey ${REG_ROOT} "${UNINSTALL_PATH}"
SectionEnd
######################################################################
+
+Section UrlProtocol
+ WriteRegStr HKCR "cura" "" "URL:cura"
+ WriteRegStr HKCR "cura" "URL Protocol" ""
+ WriteRegStr HKCR "cura\DefaultIcon" "" "$INSTDIR\${MAIN_APP_EXE},1"
+ WriteRegStr HKCR "cura\shell" "" "open"
+ WriteRegStr HKCR "cura\shell\open\command" "" '"$INSTDIR\${MAIN_APP_EXE}" "%1"'
+
+ WriteRegStr HKCR "slicer" "" "URL:slicer"
+ WriteRegStr HKCR "slicer" "URL Protocol" ""
+ WriteRegStr HKCR "slicer\DefaultIcon" "" "$INSTDIR\${MAIN_APP_EXE},1"
+ WriteRegStr HKCR "slicer\shell" "" "open"
+ WriteRegStr HKCR "slicer\shell\open\command" "" '"$INSTDIR\${MAIN_APP_EXE}" "%1"'
+
+SectionEnd
\ No newline at end of file
diff --git a/packaging/msi/UltiMaker-Cura.wxs.jinja b/packaging/msi/UltiMaker-Cura.wxs.jinja
index a183a97d5f..5ce8cd0a08 100644
--- a/packaging/msi/UltiMaker-Cura.wxs.jinja
+++ b/packaging/msi/UltiMaker-Cura.wxs.jinja
@@ -33,6 +33,21 @@
/>
+
+
+
+
+
{% if "Enterprise" in app_name %}
@@ -144,11 +159,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+