Index: ReserveNGo-backend/pom.xml
===================================================================
--- ReserveNGo-backend/pom.xml	(revision a2cf76ef39eb9ad9c31f4239648f3ae7a7d0c764)
+++ ReserveNGo-backend/pom.xml	(revision dc470c35f1538d02ffe0757fe1189a53d8d19084)
@@ -107,4 +107,9 @@
             <version>3.2.0</version>
         </dependency>
+        <dependency>
+            <groupId>com.twilio.sdk</groupId>
+            <artifactId>twilio</artifactId>
+            <version>10.9.2</version>
+        </dependency>
     </dependencies>
     <build>
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/TwilioConfig.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/TwilioConfig.java	(revision dc470c35f1538d02ffe0757fe1189a53d8d19084)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/TwilioConfig.java	(revision dc470c35f1538d02ffe0757fe1189a53d8d19084)
@@ -0,0 +1,22 @@
+package mk.ukim.finki.it.reservengo.config;
+
+import com.twilio.Twilio;
+import jakarta.annotation.PostConstruct;
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@ConfigurationProperties(prefix = "twilio")
+@Data
+public class TwilioConfig {
+    private String accountSid;
+    private String authToken;
+    private String phoneNumber;
+
+    @PostConstruct
+    public void init() {
+        Twilio.init(accountSid, authToken);
+    }
+}
+
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/ReservationRepository.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/ReservationRepository.java	(revision a2cf76ef39eb9ad9c31f4239648f3ae7a7d0c764)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/ReservationRepository.java	(revision dc470c35f1538d02ffe0757fe1189a53d8d19084)
@@ -4,4 +4,7 @@
 import mk.ukim.finki.it.reservengo.model.enumerations.ReservationStatus;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
@@ -16,3 +19,7 @@
 
     List<Reservation> findByLocalIdAndStatus(Long id, ReservationStatus status);
+
+    @Modifying
+    @Query("UPDATE Reservation r SET r.status = 'EXPIRED' WHERE r.timeOfReservation < :now AND r.status NOT IN ('CANCELED', 'EXPIRED', 'FINISHED')")
+    void expireOldReservations(@Param("now") LocalDateTime now);
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalWorkerServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalWorkerServiceImpl.java	(revision a2cf76ef39eb9ad9c31f4239648f3ae7a7d0c764)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalWorkerServiceImpl.java	(revision dc470c35f1538d02ffe0757fe1189a53d8d19084)
@@ -12,4 +12,5 @@
 import mk.ukim.finki.it.reservengo.repository.ReservationRepository;
 import mk.ukim.finki.it.reservengo.service.intf.LocalWorkerService;
+import mk.ukim.finki.it.reservengo.service.intf.SmsService;
 import mk.ukim.finki.it.reservengo.service.intf.UserService;
 import org.springframework.stereotype.Service;
@@ -23,9 +24,11 @@
     private final UserService userService;
     private final ReservationRepository reservationRepository;
+    private final SmsService smsService;
 
-    public LocalWorkerServiceImpl(LocalWorkerRepository localWorkerRepository, UserService userService, ReservationRepository reservationRepository) {
+    public LocalWorkerServiceImpl(LocalWorkerRepository localWorkerRepository, UserService userService, ReservationRepository reservationRepository, SmsService smsService) {
         this.localWorkerRepository = localWorkerRepository;
         this.userService = userService;
         this.reservationRepository = reservationRepository;
+        this.smsService = smsService;
     }
 
@@ -91,4 +94,9 @@
         reservation.setStatus(ReservationStatus.ACCEPTED);
         reservationRepository.save(reservation);
+
+        smsService.sendSms(
+                reservation.getCustomer().getPhoneNumber(),
+                "Your reservation has been ACCEPTED."
+        );
     }
 
@@ -101,4 +109,9 @@
         reservation.setStatus(ReservationStatus.CANCELED);
         reservationRepository.save(reservation);
+
+        smsService.sendSms(
+                reservation.getCustomer().getPhoneNumber(),
+                "Your reservation has been DECLINED."
+        );
     }
 
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/ReservationServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/ReservationServiceImpl.java	(revision a2cf76ef39eb9ad9c31f4239648f3ae7a7d0c764)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/ReservationServiceImpl.java	(revision dc470c35f1538d02ffe0757fe1189a53d8d19084)
@@ -4,5 +4,4 @@
 import org.springframework.transaction.annotation.Transactional;
 
-
 @Service
 @Transactional
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/SmsServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/SmsServiceImpl.java	(revision dc470c35f1538d02ffe0757fe1189a53d8d19084)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/SmsServiceImpl.java	(revision dc470c35f1538d02ffe0757fe1189a53d8d19084)
@@ -0,0 +1,24 @@
+package mk.ukim.finki.it.reservengo.service.impl;
+
+import com.twilio.rest.api.v2010.account.Message;
+import com.twilio.type.PhoneNumber;
+import mk.ukim.finki.it.reservengo.config.TwilioConfig;
+import mk.ukim.finki.it.reservengo.service.intf.SmsService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SmsServiceImpl implements SmsService {
+    private final TwilioConfig config;
+
+    public SmsServiceImpl(TwilioConfig config) {
+        this.config = config;
+    }
+
+    public void sendSms(String to, String text) {
+        Message.creator(
+                new PhoneNumber(to),
+                new PhoneNumber(config.getPhoneNumber()),
+                text
+        ).create();
+    }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/ReservationService.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/ReservationService.java	(revision a2cf76ef39eb9ad9c31f4239648f3ae7a7d0c764)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/ReservationService.java	(revision dc470c35f1538d02ffe0757fe1189a53d8d19084)
@@ -1,4 +1,3 @@
 package mk.ukim.finki.it.reservengo.service.intf;
-
 
 public interface ReservationService {
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/SmsService.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/SmsService.java	(revision dc470c35f1538d02ffe0757fe1189a53d8d19084)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/SmsService.java	(revision dc470c35f1538d02ffe0757fe1189a53d8d19084)
@@ -0,0 +1,5 @@
+package mk.ukim.finki.it.reservengo.service.intf;
+
+public interface SmsService {
+    void sendSms(String phoneNumber, String message);
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/jobs/ScheduledTasks.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/jobs/ScheduledTasks.java	(revision a2cf76ef39eb9ad9c31f4239648f3ae7a7d0c764)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/jobs/ScheduledTasks.java	(revision dc470c35f1538d02ffe0757fe1189a53d8d19084)
@@ -1,7 +1,5 @@
 package mk.ukim.finki.it.reservengo.service.jobs;
 
-import mk.ukim.finki.it.reservengo.model.domain.Reservation;
 import mk.ukim.finki.it.reservengo.model.domain.User;
-import mk.ukim.finki.it.reservengo.model.enumerations.ReservationStatus;
 import mk.ukim.finki.it.reservengo.model.enumerations.Role;
 import mk.ukim.finki.it.reservengo.repository.ReservationRepository;
@@ -50,18 +48,7 @@
 
     @Transactional
-    @Scheduled(cron = "0 0 0/3 * * ?")
+    @Scheduled(cron = "0 0 0/1 * * ?")
     public void expireOldReservations() {
-        List<Reservation> reservations = reservationRepository.findAll();
-        LocalDateTime now = LocalDateTime.now();
-
-        for (Reservation reservation : reservations) {
-            if (reservation.getTimeOfReservation().isBefore(now)
-                    && reservation.getStatus() != ReservationStatus.CANCELED
-                    && reservation.getStatus() != ReservationStatus.EXPIRED
-                    && reservation.getStatus() != ReservationStatus.FINISHED) {
-                reservation.setStatus(ReservationStatus.EXPIRED);
-                reservationRepository.save(reservation);
-            }
-        }
+        reservationRepository.expireOldReservations(LocalDateTime.now());
     }
 }
Index: ReserveNGo-backend/src/main/resources/application-dev.properties
===================================================================
--- ReserveNGo-backend/src/main/resources/application-dev.properties	(revision a2cf76ef39eb9ad9c31f4239648f3ae7a7d0c764)
+++ ReserveNGo-backend/src/main/resources/application-dev.properties	(revision dc470c35f1538d02ffe0757fe1189a53d8d19084)
@@ -19,2 +19,6 @@
 spring.security.oauth2.client.registration.google.client-id=${CLIENT_ID}
 spring.security.oauth2.client.registration.google.client-secret=${CLIENT_SECRET}
+
+twilio.accountSid=${TWILIO_SID}
+twilio.authToken=${TWILIO_TOKEN}
+twilio.phoneNumber=${TWILIO_PHONE_NUMBER}
