ATTiny Low Power

Hello everyone. Below is my code for an alarm clock that snoozes every time someone steps on it. To reduce the amount of times the battery needs to be replaced, I need some sort of watchdog timer + sleep combination.

The idea is that since the only time the code actually needs to be running is when the alarm should come on, the attiny should be sleeping most of the time. To do that, a watchdog timer could be implemented that increases a counter every 8 mins, so that when the counter reaches 170 or so, ((24*60)/8) the attiny can come on, and then go to sleep again.

However, I didn't really get the few tutorials online because they were extremey technical, so I would be really thankful if someone showed how to do it. Here's my code below, feel free to ask anything if need be

#include <USI_TWI_Master.h>
#include <TinyWireM.h>
#include <TimeLib.h>
#include <TimeAlarms.h>          
#include <DS1307RTC.h>
#include <avr/sleep.h>
#define DS1307_ADDRESS 0x68                               //Tells the adress of the RTC for I2C

int buzzer = 1;                                           //Initialize the buzzer pin                             
AlarmId id;   
void setup()  
  {
    TinyWireM.begin();                                    //Begin I2C for the ATtiny85. 
    pinMode(buzzer, OUTPUT);                              //Initialize the pin as output
    setSyncProvider(RTC.get);                             //The function to get the time from the RTC
    Alarm.alarmRepeat(8,30,0, MorningAlarm);             // 8:30am every day
    Alarm.timerRepeat(15, Repeats);                      // For testing the circuit
    digitalWrite(buzzer, HIGH);                          //Beep to let us know it has reset
    delay(100);
    digitalWrite(buzzer, LOW);
  }

void(* resetFunc) (void) = 0;                            //The reset function

void loop()  
  { 
    Alarm.delay(0);                                      //Necessary delay for the alarm
    delay(10);                                           //Delay for stability
  }

void MorningAlarm() 
  {
                               
    for(int i; i == i; i++)
      
    {
      int pad = analogRead(A3);
      if(pad > 5)                                          //If a foot has closed the circuit, reset
        {
          resetFunc();
        } 
    digitalWrite(buzzer, HIGH);                  //Alarm
    }
  }

void Repeats() 
  {                            
    for(int i; i == i; i++)
    {
      int pad = analogRead(A3);   
      if(pad > 5)                                          //If a foot has closed the circuit, reset
      
          {
            resetFunc();
          } 
      digitalWrite(buzzer, HIGH);
      delayMicroseconds(100);
      digitalWrite(buzzer, LOW);
      delayMicroseconds(100);
    }
  }

(p.s. I'm only 14 and self taught in all of this, so if the code is horrible, you know what to blame)