It is relatively easy to figure out trains. Go to the Trenitalia website and insert date, time, and station names in Italian, choosing the exact name from the drop-down menu appearing as you digit the name.
It is much more difficult, even for locals, to figure out bus services as the different providers are constantly merging and separating, in order to get subsides from local authorities.
So: for Lucca, check the train. There is also a bus service - once it was on Lazzi, but now is much more difficult to figure.
For San Giminiano, you must first get to Poggibonsi, either by train or by a bus on the Florence-Siena itinerary, then switch to a local bus. Times of the local buses Poggibonsi-S.G.
http://www.tiemmespa.it/var/ezdemo_site/storage/original/application/52c3f8890b2682792e8696203037e1b7.pdf
or: http://www.comune.sangimignano.si.it/it/turismo-cultura/turismo/come-arrivare-a-san-gimignano/orari-extraurbano-poggibonsi-san-gimignano-1/view
You may need to understand some Italian. Buses may run on festive days only (may be marked with a cross), or Mon-Sat (marked with two crossed hammers), on Saturday (SAB), Mon-Fri (A in a circle), Summer (estivo), Winter (invernale), only when schools are open (scolastico). Difficult? You bet.
For Volterra, first train to Pontedera, then local bus (line 500 at http://www.pisa.cttnord.it/Linee_e_Orari/Linee_Extraurbane/L/134 )