There really isn’t anyplace on Lago di Garda that connects easily with Spiazzi, because of the steep rugged mountain ridge that runs along the east side of Garda. Look at a map that shows some relief, like Google satellite view, and you can see the problem.
It is possible to get to Malcescine by public transport—-we were going to do that on our way to the Dolomites last September, until British Airways changed our flights and cut a day off the time we had available to spend at Lago di Garda. That combined with a problem in the Trenitalia schedule on the day we needed to travel made it impossible. Our hotel on the lake, Hotel Venezia, was going to arrange a shuttle to pick us up at the Verona train station and take us to Malcescine. Most of the hotels will probably arrange this, for guests traveling without a car. After our stay, we were to take a shuttle to the north, meeting the train heading to Bolzano at Rovereto.
But, as explained, we had to cancel that part of the planned trip. So we stayed 2 nights in Desanzano del Garda, at the southern end of the lake, instead of 3 nights at Malcescine. Desenzano is pleasant enough, and we enjoyed visiting Sirmione from there, but the south end of the lake is nowhere near as scenic as the northern end, around Malcescine. We were there for 3 nights 20 years ago (traveling by rental car) and I still want to go back.
One can also reach Malcescine by ferry from Peschiera del Garda, on the train line between Milan and Verona. But that would take more time than the shuttle from Verona.
Honestly, as you have only one night on your way to Bolzano allotted to Malcescine, I don’t think it is worth the trouble you would take to get there by public transport. A car would be much better, and then you could stop in Spiazzi to visit the Sanctuary on your drive between Bolzano and Verona. Apparently it is a short 20-minute walk from the parking lot. I imagine your luggage would be safe in the car in a place like that, well off the beaten path.