diff --git a/src/QBar/Blocks/Date.hs b/src/QBar/Blocks/Date.hs
index d640647706613b620f779613249815d761e10209..ae124689e3e022fea0b43d8de3280474940d1923 100644
--- a/src/QBar/Blocks/Date.hs
+++ b/src/QBar/Blocks/Date.hs
@@ -7,19 +7,12 @@ import QBar.Time
 import qualified Data.Text.Lazy as T
 import Data.Time.Format
 import Data.Time.LocalTime
-import Control.Lens
 
 
 dateBlock :: PushBlock
-dateBlock = forever $ do
-  updateBlock =<< liftIO dateBlockOutput
-  sleepUntilInterval everyMinute
-
-
-dateBlockOutput :: IO BlockOutput
-dateBlockOutput = do
-  zonedTime <- getZonedTime
+dateBlock = schedulePullBlock' (everyNSeconds 60) $ forever $ do
+  zonedTime <- liftIO getZonedTime
   let date = T.pack (formatTime defaultTimeLocale "%a %F" zonedTime)
   let time = T.pack (formatTime defaultTimeLocale "%R" zonedTime)
   let text = normalText ("📅\xFE0E " <> date <> " ") <> activeText time
-  return $ blockName ?~ "date" $ mkBlockOutput text
+  updateBlock $ mkBlockOutput text