St. Johnsbury is the shire town of Caledonia County, Vermont, United States. As of the 2020 census, the population was 7,364. St.