diff --git a/configure.ac b/configure.ac
index b739d1e..a2ae7a6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -35,7 +35,7 @@
 PKG_INSTALLDIR
 
 # Checks for typedefs, structures, and compiler characteristics.
-AX_CXX_COMPILE_STDCXX([14], [noext], [mandatory])
+AX_CXX_COMPILE_STDCXX([17], [noext], [mandatory])
 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wpedantic], [CFLAGS])
 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wpedantic], [CXXFLAGS])
 
diff --git a/src/sdeventplus/event.hpp b/src/sdeventplus/event.hpp
index bcb89fe..ba7c77d 100644
--- a/src/sdeventplus/event.hpp
+++ b/src/sdeventplus/event.hpp
@@ -1,6 +1,6 @@
 #pragma once
 
-#include <experimental/optional>
+#include <optional>
 #include <sdeventplus/internal/sdevent.hpp>
 #include <sdeventplus/internal/sdref.hpp>
 #include <sdeventplus/internal/utils.hpp>
@@ -18,7 +18,7 @@
     /** @brief Duration type used for specifying timeouts
      */
     using Timeout = SdEventDuration;
-    using MaybeTimeout = std::experimental::optional<Timeout>;
+    using MaybeTimeout = std::optional<Timeout>;
 
     /** @brief Constructs a new event from sd_event
      *         Takes a reference on the passed in sd_event
diff --git a/test/event.cpp b/test/event.cpp
index a9b6439..1bf5976 100644
--- a/test/event.cpp
+++ b/test/event.cpp
@@ -1,6 +1,7 @@
 #include <gmock/gmock.h>
 #include <gtest/gtest.h>
 #include <memory>
+#include <optional>
 #include <sdeventplus/event.hpp>
 #include <sdeventplus/exception.hpp>
 #include <sdeventplus/test/sdevent.hpp>
@@ -128,14 +129,14 @@
     const int events_ready = 10;
     EXPECT_CALL(mock, sd_event_wait(expected_event, static_cast<uint64_t>(-1)))
         .WillOnce(Return(events_ready));
-    EXPECT_EQ(events_ready, event->wait(std::experimental::nullopt));
+    EXPECT_EQ(events_ready, event->wait(std::nullopt));
 }
 
 TEST_F(EventMethodTest, WaitInternalError)
 {
     EXPECT_CALL(mock, sd_event_wait(expected_event, static_cast<uint64_t>(-1)))
         .WillOnce(Return(-EINVAL));
-    EXPECT_THROW(event->wait(std::experimental::nullopt), SdEventError);
+    EXPECT_THROW(event->wait(std::nullopt), SdEventError);
 }
 
 TEST_F(EventMethodTest, DispatchInitial)
@@ -172,14 +173,14 @@
     const int events_ready = 10;
     EXPECT_CALL(mock, sd_event_run(expected_event, static_cast<uint64_t>(-1)))
         .WillOnce(Return(events_ready));
-    EXPECT_EQ(events_ready, event->run(std::experimental::nullopt));
+    EXPECT_EQ(events_ready, event->run(std::nullopt));
 }
 
 TEST_F(EventMethodTest, RunInternalError)
 {
     EXPECT_CALL(mock, sd_event_run(expected_event, static_cast<uint64_t>(-1)))
         .WillOnce(Return(-EINVAL));
-    EXPECT_THROW(event->run(std::experimental::nullopt), SdEventError);
+    EXPECT_THROW(event->run(std::nullopt), SdEventError);
 }
 
 TEST_F(EventMethodTest, LoopSuccess)
