DS3231 Real Time Clock (RTC) with Arduino and LowPower library

Dear Arduino-Fellows,

I've read quite some DS3231 threads here and elsewhere to get my project working but I haven't managed it so far. Could you please help me?
I would like to do the following: Put my Arduino to deepsleep and measure every 1minute and every hour an analog value ( I am also interested in measuring like every 5 minutes but that's a bit more difficult I guess).

Here is my Code:
I am using the Makuna library for the RTC: GitHub - Makuna/Rtc: Arduino Library for RTC, Ds1302, Ds1307, Ds3231, & Ds3234 with deep support. Please refer to the Wiki for more details. Please use the gitter channel to ask questions as the GitHub Issues feature is used for bug tracking.
And the LowPower library from RocketScream: GitHub - rocketscream/Low-Power: Low Power Library for Arduino

#include <Wire.h>
#include <RtcDS3231.h> //https://github.com/Makuna/Rtc
#include<LowPower.h>
int val;
int tempPin = A0;
const byte interruptPin = 2;
volatile bool alarm = 0;
 
RtcDS3231<TwoWire> rtcObject(Wire);
 
void setup() {
 
  Serial.begin(115200);
 
  pinMode(interruptPin, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(interruptPin), handleInterrupt, FALLING);
 
  rtcObject.Begin();
 
  RtcDateTime timestamp = RtcDateTime(__DATE__, __TIME__);
  rtcObject.SetDateTime(timestamp);
 
  rtcObject.Enable32kHzPin(false);
  rtcObject.SetSquareWavePin(DS3231SquareWavePin_ModeAlarmOne);
 
  DS3231AlarmOne alarm1(
    0,
    0,
    0,
    1,
    DS3231AlarmOneControl_SecondsMatch);
 
  rtcObject.SetAlarmOne(alarm1);
  rtcObject.LatchAlarmsTriggeredFlags();
}
 
void loop() {
  LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
  if (alarm == true) {
    handleAlarm();
  }
 
}
 
void handleAlarm() {
  alarm = false;
  val = analogRead(tempPin);
  float mv = ( val/1024.0)*5000;
  float cel = mv/10;
  float farh = (cel*9)/5 + 32;
  Serial.print("TEMPRATURE = ");
  Serial.print(cel);
  Serial.print("*C");
  Serial.println();
  delay(1000);
  RtcDateTime timestamp = rtcObject.GetDateTime();
 
  Serial.print("time interrupt at: ");
  char time[10];
 
  sprintf(time, "%d:%d:%d",
          timestamp.Hour(),
          timestamp.Minute(),
          timestamp.Second()
         );
Serial.println(time);
 
  rtcObject.LatchAlarmsTriggeredFlags();
 
}
 
void handleInterrupt() {
  alarm = true;
}

Best,
Marco

I forgot, I should also tell you what the program is doing, it compiles without errors but the serial monitor displays nothing, probably due to that setting in void loop:

void loop() {
  LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
  if (alarm == true) {
    handleAlarm();
  }

Setting SLEEP_8S works but the MCU needs longer than 8S for wakeup.

Best,
Marco