I usually try to book a few weeks in advance. Last time I tried to do a last-minute booking, I wound up spending more than I wanted to.