Help me adjust the code such that it checks the date of the request, just the day, month, and year match today's date. The date of request is stored as a timestamp in firebase.
Code context:
// LeaveRequestScheduler.java
package com.g4t4.home_cleaning_scheduler.service;

import com.g4t4.home_cleaning_scheduler.model.LeaveRequest;
import com.g4t4.home_cleaning_scheduler.model.User;
import com.g4t4.home_cleaning_scheduler.repository.LeaveRequestRepository;
import com.g4t4.home_cleaning_scheduler.repository.UserRepository;

import com.google.api.core.ApiFuture;
import com.google.cloud.Timestamp;
import com.google.cloud.firestore.CollectionReference;
import com.google.cloud.firestore.Query;
import com.google.cloud.firestore.QuerySnapshot;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

import java.util.*;
import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;

@Service
public class LeaveRequestScheduler {

    @Autowired
    private LeaveRequestRepository leaveRequestRepository;

    @Autowired
    private UserRepository userRepository;

    @Autowired
    private JavaMailSender emailSender;

    @Scheduled(fixedRate = 60000) // Runs every minute
    public void checkPendingMedicalLeaveRequests() {
        System.out.println("Scheduled task started: checkPendingMedicalLeaveRequests");

        try {
            // Get today's date at midnight in UTC
            Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
            calendar.set(Calendar.HOUR_OF_DAY, 0);
            calendar.set(Calendar.MINUTE, 0);
            calendar.set(Calendar.SECOND, 0);
            calendar.set(Calendar.MILLISECOND, 0);
            Timestamp startOfToday = Timestamp.of(calendar.getTime());

            // Set time to start of tomorrow
            calendar.add(Calendar.DAY_OF_MONTH, 1);
            Timestamp startOfTomorrow = Timestamp.of(calendar.getTime());

            CollectionReference collection = leaveRequestRepository.getCollectionReference();
            Query query = collection
                    .whereEqualTo("leaveType", "Medical")
                    .whereGreaterThanOrEqualTo("dateOfApplication", startOfToday)
                    .whereLessThan("dateOfApplication", startOfTomorrow)
                    .whereIn("medicalCertificateUrl", Arrays.asList(null, ""));

            ApiFuture<QuerySnapshot> querySnapshot = query.get();

            List<LeaveRequest> leaveRequests = querySnapshot.get().getDocuments().stream()
                    .map(document -> document.toObject(LeaveRequest.class))
                    .collect(Collectors.toList());

            System.out.println("Number of pending medical leave requests found: " + leaveRequests.size());

            for (LeaveRequest lr : leaveRequests) {
                System.out.println("Processing LeaveRequest ID: " + lr.getLeaveRequestId());

                // Get supervisorId
                String supervisorId = lr.getSupervisorId();
                if (supervisorId == null || supervisorId.isEmpty()) {
                    System.out.println("LeaveRequest ID " + lr.getLeaveRequestId() + " has no supervisorId");
                    continue;
                }

                // Get supervisor user
                User supervisor = userRepository.findById(supervisorId);
                if (supervisor == null) {
                    System.out.println("Supervisor not found for ID: " + supervisorId);
                    continue;
                } else {
                    System.out.println("Supervisor found: " + supervisor.getName());
                }

                // Send email to supervisor
                sendEmailToSupervisor(supervisor.getEmail(), lr);
            }

        } catch (Exception e) {
            System.out.println("Exception occurred in scheduled task: " + e.getMessage());
            e.printStackTrace();
        }
    }

    private void sendEmailToSupervisor(String supervisorEmail, LeaveRequest leaveRequest) {
        try {
            SimpleMailMessage message = new SimpleMailMessage();
            message.setTo(supervisorEmail);
            message.setSubject("Pending Medical Leave Request - " + leaveRequest.getLeaveRequestId());
            message.setText("Dear Supervisor,\n\n" +
                    "A medical leave request has been submitted by worker " + leaveRequest.getWorkerName() +
                    " (ID: " + leaveRequest.getWorkerId() + ") and requires a medical certificate.\n\n" +
                    "Please follow up with the worker to provide the necessary documentation.\n\n" +
                    "Best regards,\n" +
                    "Home Cleaning Scheduler System");

            emailSender.send(message);
            System.out.println("Email sent to supervisor: " + supervisorEmail);

        } catch (Exception e) {
            System.out.println("Failed to send email to supervisor: " + supervisorEmail);
            e.printStackTrace();
        }
    }

}