diff --git a/redfish-core/lib/message_registries.hpp b/redfish-core/lib/message_registries.hpp
index 89538f3..57e0ad2 100644
--- a/redfish-core/lib/message_registries.hpp
+++ b/redfish-core/lib/message_registries.hpp
@@ -19,6 +19,7 @@
 #include "registries.hpp"
 #include "registries/base_message_registry.hpp"
 #include "registries/openbmc_message_registry.hpp"
+#include "registries/resource_event_message_registry.hpp"
 #include "registries/task_event_message_registry.hpp"
 
 namespace redfish
@@ -56,10 +57,11 @@
             {"@odata.id", "/redfish/v1/Registries"},
             {"Name", "MessageRegistryFile Collection"},
             {"Description", "Collection of MessageRegistryFiles"},
-            {"Members@odata.count", 3},
+            {"Members@odata.count", 4},
             {"Members",
              {{{"@odata.id", "/redfish/v1/Registries/Base"}},
               {{"@odata.id", "/redfish/v1/Registries/TaskEvent"}},
+              {{"@odata.id", "/redfish/v1/Registries/ResourceEvent"}},
               {{"@odata.id", "/redfish/v1/Registries/OpenBMC"}}}}};
 
         res.end();
@@ -113,6 +115,11 @@
             header = &message_registries::openbmc::header;
             dmtf.clear();
         }
+        else if (registry == "ResourceEvent")
+        {
+            header = &message_registries::resource_event::header;
+            url = message_registries::resource_event::url;
+        }
         else
         {
             messages::resourceNotFound(
@@ -207,6 +214,15 @@
                 registryEntries.emplace_back(&entry);
             }
         }
+        else if (registry == "ResourceEvent")
+        {
+            header = &message_registries::resource_event::header;
+            for (const message_registries::MessageEntry& entry :
+                 message_registries::resource_event::registry)
+            {
+                registryEntries.emplace_back(&entry);
+            }
+        }
         else
         {
             messages::resourceNotFound(
