I visited Spain the last two weeks of December. Although the beaches were out of scope and had to wear jacket in north, it is a great time to go, if you want to avoid tourists and manage the budget. It is certainly cheaper to travel in the winter.
Madrid: One can easily spend a week in the city visiting museums, monuments, palace, and enjoying restaurants, flamenco dance parties, and drinking Sangariya. I spent about three days wandering in the city and took a day trip to Toledo by train. Trains to Toledo are frequent, and ticket can be bought the same day. No need to plan ahead.
Duration: 4.5 days
Stay: Hostal San Martin
Transit: Day train from Madrid to Cordoba. Sight seeing in Cordoba for the beautiful churches and evening onward train to Seville.
Seville via Cordoba:
Seville can keep you entertained for another week if you have enough time. I didn’t have much time and only hit the highlights in two days. Almost all the hostels/hotels will have a local city map with major touristy spots marked.
Mode of Transportation: Walking.
Duration: 2 days
Stay: Hostel Lis II
Transit: Day train from Seville to Granada
Granada:
Main attraction is Alhambra. I had to buy the ticket well in advance (online) as they get sold out.
To buy ticket: http://www.alhambradegranada.org/en/info/buyalhambratickets.asp
Stay: Rambutan Guesthouse. The hostal overlooks Alhambra and the night view is just spectacular.
Duration: 2 days
Transit: Early morning flight to Barcelona
Barcelona:
I spent the new year’s eve in Barcelona. The main square gets really crowded on NYEve but there was no fireworks or ball-drop. Just people getting together to celebrate with their friends and family. I took a day trip to Montserrat by train.
Stay: AAE Ribagorza. Great location and easy access to the main square.
Duration: 3 days