Twenty is the current limit, as dictated by the current Concorde. However, I think that number could be as high as twenty-five with the agreement of the teams and some creative allocations. By running events that are close together physically (ie Montreal-New Jersey, Brazil-Argentina, Bahrain-Abu Dhabi, and so on), the calendar could easily fit a few extra races. We're also losing the European Grand Prix, and the Koreans are said to be very unhappy with their race, so they could go to. If Bahrain is cancelled again, then they could be removed entirely as well.
For now, the 2013 calendar has seventeen confirmed races. Spa, Suzuka and Singapore are all up for re-negotiation this year, and dropping Europe makes way for New Jersey. Paul Ricard and Spa are planning to alternate, so if Argentina comes in, one event needs to go. I'm guessing Korea could fall by the wayside to be replaced by Argentina, which means one more event needs to be given up to fit Russia in - unless the teams agree to more races under the new Concorde. Which they might do in exchange for a stake in the sport.