Barnet is a town in Caledonia County, Vermont, United States. The population was 1,708 at the 2010 census. Barnet contains the locations of Barnet Center, East Barnet, McIndoe Falls, Mosquitoville, Passumpsic and West Barnet. The main settlement of Barnet is recorded as a census-designated place by the U.S. Census Bureau, with a population of 129 at the 2010 census.
According to the United States Census Bureau, the town has a total area of 43.6 square miles (112.9 km2), of which 42.2 square miles (109.4 km2) is land and 1.3 square miles (3.4 km2), or 3.04%, is water. The Barnet CDP, comprising the town center, has a total area of 0.64 square miles (1.66 km2), of which 0.62 square miles (1.61 km2) is land and 0.019 square miles (0.05 km2), or 2.96%, is water.
The eastern border of the town is the Connecticut River, which is also the boundary between Vermont and New Hampshire. The Passumpsic River enters the Connecticut at East Barnet. Neighboring communities are Ryegate to the south, Groton to the southwest, Peacham to the west, Danville to the northwest, St. Johnsbury to the north, and Waterford, Vermont, to the northeast. Across the Connecticut River is the New Hampshire town of Monroe.
Barnet is traversed from north to south by Interstate 91, with access to the town at Exit 18, West Barnet Road.