According to the United States Census Bureau, the town has a total area of , of which is land and (7.04%) is water.
The north town line and about one third of the west town line is the border of Ulster County, New York, and the east town line, marked by the Hudson River, is the border of Dutchess County, New York.