diff --git a/redfish-core/include/utils/telemetry_utils.hpp b/redfish-core/include/utils/telemetry_utils.hpp
index c16cc89..8aeff0d 100644
--- a/redfish-core/include/utils/telemetry_utils.hpp
+++ b/redfish-core/include/utils/telemetry_utils.hpp
@@ -16,10 +16,16 @@
 
 inline std::string getDbusReportPath(const std::string& id)
 {
-    std::string path =
-        "/xyz/openbmc_project/Telemetry/Reports/TelemetryService/" + id;
-    dbus::utility::escapePathForDbus(path);
-    return path;
+    sdbusplus::message::object_path reportsPath(
+        "/xyz/openbmc_project/Telemetry/Reports/TelemetryService");
+    return {reportsPath / id};
+}
+
+inline std::string getDbusTriggerPath(const std::string& id)
+{
+    sdbusplus::message::object_path triggersPath(
+        "/xyz/openbmc_project/Telemetry/Triggers/TelemetryService");
+    return {triggersPath / id};
 }
 
 } // namespace telemetry
diff --git a/redfish-core/lib/trigger.hpp b/redfish-core/lib/trigger.hpp
index c3d1448..210468c 100644
--- a/redfish-core/lib/trigger.hpp
+++ b/redfish-core/lib/trigger.hpp
@@ -270,13 +270,6 @@
     return true;
 }
 
-inline std::string getDbusTriggerPath(const std::string& id)
-{
-    sdbusplus::message::object_path path(
-        "/xyz/openbmc_project/Telemetry/Triggers/TelemetryService");
-    return {path / id};
-}
-
 } // namespace telemetry
 
 inline void requestRoutesTriggerCollection(App& app)
@@ -337,6 +330,38 @@
                     "org.freedesktop.DBus.Properties", "GetAll",
                     telemetry::triggerInterface);
             });
+
+    BMCWEB_ROUTE(app, "/redfish/v1/TelemetryService/Triggers/<str>/")
+        .privileges(redfish::privileges::deleteTriggers)
+        .methods(boost::beast::http::verb::delete_)(
+            [](const crow::Request&,
+               const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
+               const std::string& id) {
+                const std::string triggerPath =
+                    telemetry::getDbusTriggerPath(id);
+
+                crow::connections::systemBus->async_method_call(
+                    [asyncResp, id](const boost::system::error_code ec) {
+                        if (ec.value() == EBADR)
+                        {
+                            messages::resourceNotFound(asyncResp->res,
+                                                       "Triggers", id);
+                            return;
+                        }
+
+                        if (ec)
+                        {
+                            BMCWEB_LOG_ERROR << "respHandler DBus error " << ec;
+                            messages::internalError(asyncResp->res);
+                            return;
+                        }
+
+                        asyncResp->res.result(
+                            boost::beast::http::status::no_content);
+                    },
+                    telemetry::service, triggerPath,
+                    "xyz.openbmc_project.Object.Delete", "Delete");
+            });
 }
 
 } // namespace redfish
