Do action at certain time using RTC

Ok guys, got my DS1307 today, wired her up and shes working fine, however got one problem, the alarms wont trigger ! - any idea where im going wrong here as ive been reading the examples etc and cant see anything obvious -

#include <Wire.h>
#include "RTClib.h"
#include <Time.h>
#include <TimeAlarms.h>

RTC_DS1307 RTC;


// RELAYS

int pumprelay = 3;
int filterrelay = 4;
int lightsrelay = 5;
int heaterrelay = 6;

//BUTTONS

int FeedingButton = 7;
int HeaterButton = 18;

//LEDS

int lightsled = 8;
int pumpled = 9;
int filterled = 10;
int FeedingLED = 11;
int heaterled = 12;


// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

// the setup routine runs once when you press reset:
void setup() {
    Serial.begin(9600); 
    Wire.begin();
    RTC.begin();
 
  if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    
  }
  
  // initialize the digital pin as an output.
  pinMode(lightsrelay, OUTPUT); 
  pinMode(lightsled, OUTPUT);    
  pinMode(heaterrelay, OUTPUT); 
  pinMode(heaterled, OUTPUT);   
  pinMode(pumprelay, OUTPUT); 
  pinMode(pumpled, OUTPUT);  
  pinMode(filterrelay, OUTPUT); 
  pinMode(filterled, OUTPUT);    
  pinMode(FeedingButton, INPUT); 
  pinMode(FeedingLED, OUTPUT);
  Serial.println("Startup Completed");  
  FilterOn();
    Alarm.alarmRepeat(23,00,0, Night);  // 8:30am every day
    Alarm.alarmRepeat(06,00,0, Day);  // 8:30am every day
    Alarm.alarmRepeat(21,55,30, Feeding);  // 8:30am every day
}

// the loop routine runs over and over again forever:
void loop() {
 
  DateTime now = RTC.now();
 
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();

  
    // read the state of the pushbutton value:
  buttonState = digitalRead(FeedingButton);

  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {     
    // Start Feeding Cyle    
      Feeding();
  } 
  else {
    // Continue Normal Program

 }
 
 Alarm.delay(1000); // wait one second between clock display
}

void Feeding() {
   digitalWrite(FeedingLED, HIGH); // Set Feeding LED On
     Serial.println("Feeding Cycle Started");  
  LightsOn();
  PumpOff();
  FilterOff();
  delay(6000);
  digitalWrite(FeedingLED, LOW); // Set Feeding LED Off
    Serial.println("Feeding Cycle Ended");  
  LightsOff();
  PumpOn();
  FilterOn();
  delay(6000);

}

void Night () {
  LightsOff();
  PumpOff();
}

void Day () {
  LightsOn();
  PumpOn();
}

void LightsOn() {
 digitalWrite(lightsrelay, HIGH); // Set Lights On
 digitalWrite(lightsled, HIGH); // Set LED On
   Serial.println("Lights On");  
}

void LightsOff() {
 digitalWrite(lightsrelay, LOW); // Set Lights Off
 digitalWrite(lightsled, LOW); // Set LED Off
   Serial.println("Lights Off");  
}

void PumpOn() {
 digitalWrite(pumprelay, HIGH); // Set Pump On
 digitalWrite(pumpled, HIGH); // Set LED On
   Serial.println("Pump On");  
}

void PumpOff() {
 digitalWrite(pumprelay, LOW); // Set Pump Off
 digitalWrite(pumpled, LOW); // Set LED Off
   Serial.println("Pump Off");  
}

void FilterOn() {
 digitalWrite(filterrelay, HIGH); // Set Filter On
 digitalWrite(filterled, HIGH); // Set LED On
   Serial.println("Filter On");  
}

void FilterOff() {
 digitalWrite(filterrelay, LOW); // Set Filter Off
 digitalWrite(filterled, LOW); // Set LED Off
   Serial.println("Filter Off");  
}