Peak travel season for foreigners is in great part determined by weather. Peru experiences two very distinct seasons, wet and dry -- terms that are much more relevant than "summer" and "winter." Peru's high season for travel coincides with the driest months: May through October, with by far the greatest number of visitors in July and August. May and September are particularly fine months to visit much of the country. Airlines and hotels also consider the period from mid-December through mid-January as peak season.
From June to September (winter in the Southern Hemisphere) in the highlands, days are clear and often spectacularly sunny, with chilly or downright cold nights, especially at high elevations. For trekking in the mountains, including the Inca Trail, these are by far the best months. This is also the best time of the year to visit the Amazon basin: Mosquitoes are fewer, and many fauna stay close to the rivers (although some people prefer to travel in the jungle during the wet season, when higher water levels allow for more river penetration). Note that Peruvians travel in huge numbers around July 28, the national holiday, and finding accommodations in popular destinations around this time can be difficult.
Generally, May through October is the dry season; November through April is the rainy season, and the wettest months are January through April. In mountain areas, roads and trek paths can become impassable. Peru's climate, though, is markedly different among its three regions. The coast is predominantly arid and mild, the Andean region is temperate to cold, and the eastern lowlands are tropically warm and humid.
On the desert coast, summer (Dec-Apr) is hot and dry, with temperatures reaching 77°F to 95°F (25°C-35°C) or more along the north coast. In winter (May-Oct), temperatures are much milder, though with high humidity. Much of the coast, including Lima, is shrouded in a gray mist called garúa. Only extreme northern beaches are warm enough for swimming.
In the highlands from May to October, rain is scarce. Daytime temperatures reach a warm 68°F to 77°F (20°C-25°C), and nights are often quite cold (near freezing), especially in June and July. Rainfall is very abundant from December to March, when temperatures are slightly milder -- 64°F to 68°F (18°C-20°C) dropping only to 59°F (15°C) at night. The wettest months are January and February. Most mornings are dry, but clouds move in during the afternoon and produce heavy downpours.
Although the Amazon jungle is consistently humid and tropical, with significant rainfall year-round, it, too, experiences two clearly different seasons. During the dry season (May-Oct), temperatures reach 86°F to 100°F (30°C-38°C) during the day. From November to April, there are frequent rain showers (which last only a few hours at a time), causing the rivers to swell; temperatures are similarly steamy.
National public holidays in Peru include New Year's Day (Jan 1), Three Kings Day (Jan 6), Maundy Thursday and Good Friday (Easter week, Mar or Apr), Labor Day (May 1), Fiestas Patrias (July 28-29), Battle of Angamos (Oct 8), All Saints' Day (Nov 1), Feast of the Immaculate Conception (Dec 8), and Christmas (Dec 24-25).
Check http://events.frommers.com, where you'll find a searchable, up-to-the-minute roster of what's happening in cities all over the world.