diff --git a/src/util/scheduler.cpp b/src/util/scheduler.cpp
index d51f83d..998728f 100644
--- a/src/util/scheduler.cpp
+++ b/src/util/scheduler.cpp
@@ -151,6 +151,13 @@
 }
 
 void
+Scheduler::cancelAllEvents()
+{
+  m_events.clear();
+  m_deadlineTimer.cancel();
+}
+
+void
 Scheduler::onEvent(const boost::system::error_code& error)
 {
   if (error) // e.g., cancelled
diff --git a/src/util/scheduler.hpp b/src/util/scheduler.hpp
index bf6ada5..4287556 100644
--- a/src/util/scheduler.hpp
+++ b/src/util/scheduler.hpp
@@ -58,6 +58,12 @@
   void
   cancelEvent(const EventId& eventId);
 
+  /**
+   * \brief Cancel all scheduled events
+   */
+  void
+  cancelAllEvents();
+
 private:
   void
   onEvent(const boost::system::error_code& code);
diff --git a/tests/unit-tests/util/test-scheduler.cpp b/tests/unit-tests/util/test-scheduler.cpp
index a046b93..04d4f99 100644
--- a/tests/unit-tests/util/test-scheduler.cpp
+++ b/tests/unit-tests/util/test-scheduler.cpp
@@ -217,6 +217,58 @@
 }
 
 
+struct CancelAllFixture
+{
+  CancelAllFixture()
+    : m_scheduler(m_io)
+    , m_count(0)
+  {
+  }
+
+  void
+  cancelAll()
+  {
+    m_scheduler.cancelAllEvents();
+  }
+
+  void
+  event()
+  {
+    ++m_count;
+
+    m_scheduler.scheduleEvent(time::seconds(1),
+                              bind(&CancelAllFixture::event, this));
+  }
+
+  void
+  abort()
+  {
+    m_io.stop();
+  }
+
+  boost::asio::io_service m_io;
+  Scheduler m_scheduler;
+  uint32_t m_count;
+};
+
+
+BOOST_FIXTURE_TEST_CASE(CancelAll, CancelAllFixture)
+{
+  m_scheduler.scheduleEvent(time::milliseconds(500),
+                            bind(&CancelAllFixture::cancelAll, this));
+
+  m_scheduler.scheduleEvent(time::seconds(1),
+                            bind(&CancelAllFixture::event, this));
+
+  m_scheduler.scheduleEvent(time::seconds(3),
+                            bind(&CancelAllFixture::abort, this));
+
+  BOOST_REQUIRE_NO_THROW(m_io.run());
+
+  BOOST_CHECK_EQUAL(m_count, 0);
+}
+
+
 BOOST_AUTO_TEST_SUITE_END()
 
 } // namespace ndn
