diff --git a/src/sdeventplus/event.cpp b/src/sdeventplus/event.cpp
index 897f549..e8e8d19 100644
--- a/src/sdeventplus/event.cpp
+++ b/src/sdeventplus/event.cpp
@@ -3,24 +3,26 @@
 #include <sdeventplus/exception.hpp>
 #include <sdeventplus/internal/sdevent.hpp>
 #include <systemd/sd-event.h>
+#include <type_traits>
 
 namespace sdeventplus
 {
 
-Event::Event(sd_event* event, internal::SdEvent* sdevent) :
+Event::Event(sd_event* event, const internal::SdEvent* sdevent) :
     sdevent(sdevent), event(event, &internal::SdEvent::sd_event_ref,
                             &internal::SdEvent::sd_event_unref, sdevent)
 {
 }
 
-Event::Event(sd_event* event, std::false_type, internal::SdEvent* sdevent) :
+Event::Event(sd_event* event, std::false_type,
+             const internal::SdEvent* sdevent) :
     sdevent(sdevent),
     event(event, &internal::SdEvent::sd_event_ref,
           &internal::SdEvent::sd_event_unref, std::false_type(), sdevent)
 {
 }
 
-Event Event::get_new(internal::SdEvent* sdevent)
+Event Event::get_new(const internal::SdEvent* sdevent)
 {
     sd_event* event = nullptr;
     int r = sdevent->sd_event_new(&event);
@@ -31,7 +33,7 @@
     return Event(event, std::false_type(), sdevent);
 }
 
-Event Event::get_default(internal::SdEvent* sdevent)
+Event Event::get_default(const internal::SdEvent* sdevent)
 {
     sd_event* event = nullptr;
     int r = sdevent->sd_event_default(&event);
diff --git a/src/sdeventplus/event.hpp b/src/sdeventplus/event.hpp
index f55e9fa..e7c007f 100644
--- a/src/sdeventplus/event.hpp
+++ b/src/sdeventplus/event.hpp
@@ -11,19 +11,21 @@
 {
   public:
     Event(sd_event* event,
-          internal::SdEvent* sdevent = &internal::sdevent_impl);
+          const internal::SdEvent* sdevent = &internal::sdevent_impl);
     Event(sd_event* event, std::false_type,
-          internal::SdEvent* sdevent = &internal::sdevent_impl);
-    static Event get_new(internal::SdEvent* sdevent = &internal::sdevent_impl);
+          const internal::SdEvent* sdevent = &internal::sdevent_impl);
+
     static Event
-        get_default(internal::SdEvent* sdevent = &internal::sdevent_impl);
+        get_new(const internal::SdEvent* sdevent = &internal::sdevent_impl);
+    static Event
+        get_default(const internal::SdEvent* sdevent = &internal::sdevent_impl);
 
     int loop();
     int get_watchdog();
     int set_watchdog(int b);
 
   private:
-    internal::SdEvent* sdevent;
+    const internal::SdEvent* sdevent;
     internal::SdRef<sd_event> event;
 };
 
