Corta la calabaza en trozos grandes, ponla en un molde refractario y rocíala con el aceite de oliva y un poco de sal y la metes al horno a 200 grados por al menos una hora que se ase y ablande. Saca del horno, deja enfriar y reserva.
Corta las espinacas en trozos pequeños y rehógala con un poco de aceite de oliva y el diente de ajo por al menos 5 minutos. Reserva.
Con una cuchara ve sacando la pulpa de la calabaza y la vas uniendo con las espinacas, agrega el queso mascarpone y une todo bien, pon sal y pimienta a tu gusto. Con una cuchara pequeña ve rellenando los canelones uno a uno y los pones en un molde para posteriormente ponerlos al horno.
Por otro lado corta muy finamente los tomates y la cebolla y en una olla pones a hacer una salsa de tomate a fuego medio por al menos 25 minutos, baja a fuego lento otros 15 minutos, que vaya cogiendo ese color rojo intenso, pon sal y pimienta a tu gusto.
Ahora echa esta salsa sobre los canelones, espolvorea el queso parmesano, metes al horno a 200 grados con un papel aluminio por encima por unos 35 minutos, estos canelones vienen listos para meter al horno, quita el papel aluminio y deja otros 5 minutos que el queso dore. Saca del horno, deja reposar un par de minutos y sirve, verás que deliciosos están!