The 35-year-old Zaheer, who had been battling fitness issues and was even dropped from the BCCI's list of contracted players, was chosen in the 17-member Test squad after taking 13 wickets in three Ranji Trophy matches at an average of 19.84 this season.
Gambhir, however, had no such luck as the opener, who has been downgraded to group B in the list of contracted players, failed to find a place despite a healthy average of 74 plus in the ongoing Ranji season.
The month-long tour featuring three ODIs followed by two Tests is India's first international assignment after the retirement of iconic batsman Sachin Tendulkar.
Baroda batsman Ambati Rayudu, a seasoned domestic player, has been named in both the Test and ODI squads, while veterans like Virender Sehwag and Harbhajan Singh continued to remain on the sidelines.
More From This Section
The 28-year-old Rayudu, who is currently a part of the team in the ongoing ODI series against the West Indies, has played four one-dayers for India.
Pacer Ishant Sharma, who has been struggling for form, was retained in both the squads. The gangling speedster took a match-haul of nine wickets in Delhi's win over Haryana in a Ranji Trophy match yesterday.
Another fast bowler Umesh Yadav, who had been dropped due to poor form in the recent series against Australia and West Indies, has been recalled in both the Test and ODI squads largely becaue of his ability to bowl fast.