diff --git a/boards/nucleo-l053/Makefile.features b/boards/nucleo-l053/Makefile.features
index 682b380690f88781cb0409a606d9f70c47f7f1b7..58200e3051056f4f3bafecd7c0d5ac3b2ec98cc7 100644
--- a/boards/nucleo-l053/Makefile.features
+++ b/boards/nucleo-l053/Makefile.features
@@ -3,6 +3,7 @@ FEATURES_PROVIDED += periph_cpuid
 FEATURES_PROVIDED += periph_gpio
 FEATURES_PROVIDED += periph_hwrng
 FEATURES_PROVIDED += periph_pwm
+FEATURES_PROVIDED += periph_rtc
 FEATURES_PROVIDED += periph_spi
 FEATURES_PROVIDED += periph_timer
 FEATURES_PROVIDED += periph_uart
diff --git a/boards/nucleo-l053/include/periph_conf.h b/boards/nucleo-l053/include/periph_conf.h
index 702e1916bebdc52367df7675627defd6b158de27..2e47c8a218d2afc8b520fb0258c79e40c11eefeb 100644
--- a/boards/nucleo-l053/include/periph_conf.h
+++ b/boards/nucleo-l053/include/periph_conf.h
@@ -182,7 +182,7 @@ static const spi_conf_t spi_config[] = {
  * @name    RTC configuration
  * @{
  */
-#define RTC_NUMOF           (0U)
+#define RTC_NUMOF           (1U)
 /** @} */
 
 #ifdef __cplusplus
diff --git a/boards/nucleo-l073/Makefile.features b/boards/nucleo-l073/Makefile.features
index 682b380690f88781cb0409a606d9f70c47f7f1b7..58200e3051056f4f3bafecd7c0d5ac3b2ec98cc7 100644
--- a/boards/nucleo-l073/Makefile.features
+++ b/boards/nucleo-l073/Makefile.features
@@ -3,6 +3,7 @@ FEATURES_PROVIDED += periph_cpuid
 FEATURES_PROVIDED += periph_gpio
 FEATURES_PROVIDED += periph_hwrng
 FEATURES_PROVIDED += periph_pwm
+FEATURES_PROVIDED += periph_rtc
 FEATURES_PROVIDED += periph_spi
 FEATURES_PROVIDED += periph_timer
 FEATURES_PROVIDED += periph_uart
diff --git a/boards/nucleo-l073/include/periph_conf.h b/boards/nucleo-l073/include/periph_conf.h
index e14442e1d0b561f4d3f0ff8e158dce260575eebb..f96223983ad9889ea0b147e4dd1446b3d3ca8455 100644
--- a/boards/nucleo-l073/include/periph_conf.h
+++ b/boards/nucleo-l073/include/periph_conf.h
@@ -182,7 +182,7 @@ static const spi_conf_t spi_config[] = {
  * @name    RTC configuration
  * @{
  */
-#define RTC_NUMOF           (0U)
+#define RTC_NUMOF           (1U)
 /** @} */
 
 #ifdef __cplusplus
diff --git a/boards/nucleo32-l031/Makefile.features b/boards/nucleo32-l031/Makefile.features
index 5a03b928bda269f0c18e4ff5ccd5735c2e15cc6a..f2ce7419b6131dd8aab27602cac652d54245f209 100644
--- a/boards/nucleo32-l031/Makefile.features
+++ b/boards/nucleo32-l031/Makefile.features
@@ -2,6 +2,7 @@
 FEATURES_PROVIDED += periph_cpuid
 FEATURES_PROVIDED += periph_gpio
 FEATURES_PROVIDED += periph_pwm
+FEATURES_PROVIDED += periph_rtc
 FEATURES_PROVIDED += periph_spi
 FEATURES_PROVIDED += periph_timer
 FEATURES_PROVIDED += periph_uart
diff --git a/boards/nucleo32-l031/include/periph_conf.h b/boards/nucleo32-l031/include/periph_conf.h
index 3559af3a52841a4f2b56710373e3b8db761dda69..720b91f2c72cab1ddacc8e2c3dc9ade1a46b9091 100644
--- a/boards/nucleo32-l031/include/periph_conf.h
+++ b/boards/nucleo32-l031/include/periph_conf.h
@@ -167,7 +167,7 @@ static const spi_conf_t spi_config[] = {
  * @name    RTC configuration
  * @{
  */
-#define RTC_NUMOF           (0U)
+#define RTC_NUMOF           (1U)
 /** @} */
 
 #ifdef __cplusplus
diff --git a/cpu/stm32_common/periph/rtc.c b/cpu/stm32_common/periph/rtc.c
index ce81dd2231d4646a5c1eeed8d6635a27a4a1e366..195354bad526f3f7eb0c4cb02f05dca14c897f92 100644
--- a/cpu/stm32_common/periph/rtc.c
+++ b/cpu/stm32_common/periph/rtc.c
@@ -27,7 +27,8 @@
 
 #if defined(CPU_FAM_STM32F0) || defined(CPU_FAM_STM32F2) || \
     defined(CPU_FAM_STM32F3) || defined(CPU_FAM_STM32F4) || \
-    defined(CPU_FAM_STM32F7) || defined(CPU_FAM_STM32L1)
+    defined(CPU_FAM_STM32F7) || defined(CPU_FAM_STM32L0) || \
+    defined(CPU_FAM_STM32L1)
 
 /* guard file in case no RTC device was specified */
 #if RTC_NUMOF
@@ -65,7 +66,7 @@ void rtc_init(void)
     PWR->CR |= PWR_CR_DBP;
 #endif
 
-#if defined(CPU_FAM_STM32L1)
+#if defined(CPU_FAM_STM32L1) || defined(CPU_FAM_STM32L0)
     if (!(RCC->CSR & RCC_CSR_RTCEN)) {
 #else
     if (!(RCC->BDCR & RCC_BDCR_RTCEN)) {
@@ -192,9 +193,15 @@ int rtc_set_alarm(struct tm *time, rtc_alarm_cb_t cb, void *arg)
     /* Enable RTC write protection */
     RTC->WPR = 0xFF;
 
+#if defined(CPU_FAM_STM32L0)
+    EXTI->IMR  |= EXTI_IMR_IM17;
+#else
     EXTI->IMR  |= EXTI_IMR_MR17;
+#endif
+
     EXTI->RTSR |= EXTI_RTSR_TR17;
-#if defined(CPU_FAM_STM32F0)
+
+#if defined(CPU_FAM_STM32F0) || defined(CPU_FAM_STM32L0)
     NVIC_SetPriority(RTC_IRQn, 10);
     NVIC_EnableIRQ(RTC_IRQn);
 #else
@@ -235,7 +242,7 @@ void rtc_clear_alarm(void)
 
 void rtc_poweron(void)
 {
-#if defined(CPU_FAM_STM32L1)
+#if defined(CPU_FAM_STM32L1) || defined(CPU_FAM_STM32L0)
     /* Reset RTC domain */
     RCC->CSR |= RCC_CSR_RTCRST;
     RCC->CSR &= ~(RCC_CSR_RTCRST);
@@ -274,7 +281,7 @@ void rtc_poweron(void)
 
 void rtc_poweroff(void)
 {
-#if defined(CPU_FAM_STM32L1)
+#if defined(CPU_FAM_STM32L1) || defined(CPU_FAM_STM32L0)
     /* Reset RTC domain */
     RCC->CSR |= RCC_CSR_RTCRST;
     RCC->CSR &= ~(RCC_CSR_RTCRST);
@@ -293,7 +300,7 @@ void rtc_poweroff(void)
 #endif
 }
 
-#if defined(CPU_FAM_STM32F0)
+#if defined(CPU_FAM_STM32F0) || defined(CPU_FAM_STM32L0)
 void isr_rtc(void)
 #else
 void isr_rtc_alarm(void)
@@ -331,4 +338,5 @@ static uint8_t byte2bcd(uint8_t value)
 
 #endif /* defined(CPU_FAM_STM32F0) || defined(CPU_FAM_STM32F2) || \
           defined(CPU_FAM_STM32F3) || defined(CPU_FAM_STM32F4) || \
-          defined(CPU_FAM_STM32F7) || defined(CPU_FAM_STM32L1) */
+          defined(CPU_FAM_STM32F7) || defined(CPU_FAM_STM32L0) || \
+          defined(CPU_FAM_STM32L1) */