How to implement subscription to the BlueMind with CalDav

I have a blueMind server that runs well, so I’m creating a rest API to retrieve my user’s calendars via caldav where I use the Sabre\DAV lib.

But I can’t connect to blueMind

I’m trying to connect to BlueMind via caldav but it won’t work. Is there a specific url to connect to BlueMind via caldav?

this my code:

<?php
namespace App\Service;

use Sabre\DAV\Client;
use Sabre\DAV\Exception;
use Sabre\HTTP\ClientHttpException;

class CalDavClient
{
    private $client;

    public function __construct()
    {
        try {
            $settings = [
                'baseUri' => $_ENV['CALDAV_SERVER_URL'], //http:bm5.organi.tech 
                'userName' => $_ENV['CALDAV_USER'],
                'password' => $_ENV['CALDAV_PASSWORD'],
            ];

            // Vérification des paramètres de connexion
            if (empty($settings['baseUri']) || empty($settings['userName']) || empty($settings['password'])) {
                throw new \InvalidArgumentException('Les paramètres de connexion CalDAV sont manquants.');
            }

            $this->client = new Client($settings);

            // Vérifier la connexion en envoyant une requête OPTIONS
            $this->checkConnection();

        } catch (\InvalidArgumentException $e) {
            error_log('Erreur lors de la connexion au serveur CalDAV : ' . $e->getMessage());
            throw new \RuntimeException('Erreur de configuration du client CalDAV : ' . $e->getMessage());
        } catch (Exception $e) {
            // Gérer les exceptions de connexion CalDAV
            error_log('Erreur lors de la connexion au serveur CalDAV : ' . $e->getMessage());
            throw new \RuntimeException('Erreur lors de la connexion au serveur CalDAV : ' . $e->getMessage());
        }
    }

    public function getClient(): Client
    {
        return $this->client;
    }

    private function checkConnection()
    {
        try {
            // var_dump("tttt", $this->client->options());
            // Envoyer une requête OPTIONS pour vérifier la connexion
            $response = $this->client->request('OPTIONS', '/');
           ;

            // Vérifier et afficher les méthodes autorisées
                $allowedMethods = $response['headers']['Allow'] ?? '';
                
                if (!empty($allowedMethods)) {
                    echo "Méthodes autorisées : " . $allowedMethods;
                } else {
                    echo "Aucune méthode autorisée trouvée.";
                }

        } catch (ClientHttpException $e) {
            error_log("Erreur lors de la vérification de la connexion : " . $e->getMessage());
            throw new \RuntimeException("Erreur lors de la vérification de la connexion : " . $e->getMessage());
        } catch (Exception $e) {
            error_log("Une erreur s'est produite lors de la vérification de la connexion : " . $e->getMessage());
            throw new \RuntimeException("Une erreur s'est produite lors de la vérification de la connexion : " . $e->getMessage());
        }
    }

    public function getAllowedMethods(): array
    {
        try {
            // Envoyer une requête OPTIONS pour récupérer les méthodes disponibles
            $response = $this->client->request('OPTIONS', '/');

            // Récupérer les en-têtes de la réponse
            $allowedMethods = $response['headers']['Allow'] ?? '';

            // Si les méthodes sont trouvées, retourner un tableau, sinon un tableau vide
            return !empty($allowedMethods) ? explode(',', $allowedMethods) : [];
        } catch (ClientHttpException $e) {
            error_log("Erreur lors de la récupération des méthodes : " . $e->getMessage());
            throw new \RuntimeException("Erreur lors de la récupération des méthodes : " . $e->getMessage());
        } catch (Exception $e) {
            error_log("Une erreur s'est produite : " . $e->getMessage());
            throw new \RuntimeException("Une erreur s'est produite : " . $e->getMessage());
        }
    }
}

<?php
namespace App\Controller;

use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use App\Service\CalDavClient;
use Symfony\Component\HttpFoundation\Response;
use Exception;



class CalendarController
{
    private $caldavClient;

    public function __construct(CalDavClient $caldavClient)
    {
        $this->caldavClient = $caldavClient->getClient();
    }

   
    #[Route('/api/calendars', methods: ["GET"])]
    public function listCalendars(): JsonResponse
    {
        try {
            // var_dump($this->caldavClient);
            $response = $this->caldavClient->propfind('/calendars/', ['{DAV:}displayname'], 1);
            return new JsonResponse($response, Response::HTTP_OK);
        } catch (Exception $e) {
            return new JsonResponse(['error' => 'Error fetching calendars: ' . $e->getMessage()], Response::HTTP_INTERNAL_SERVER_ERROR);
        }
    }

   
    #[Route('/api/calendars', methods: ["POST"])]
    p