McCaleb, who served on council from 2001-09, will replace Mayor Roger Bergman, who has been Grand Haven's mayor since 2003.
Ruiter beat fellow Ferrysburg Councilman John Stafford, 270-88. Ruiter will replace Mayor Jeff Stille, who did not seek re-election.
The millage proposal in Ferrysburg passed by a single vote on Tuesday. Residents were asked to add a half-mill to property tax bills for 10 years to fund the replacement of motorized equipment for the police, fire and public service departments. It passed, 188-187.
Incumbent Ferrysburg councilmen Scott Blease and Chris Larson were unopposed for three council seats. There was no third candidate. Larson received 294 votes, while Blease had 250.
Because Ruiter was elected mayor, and Stafford's term on council expires with the election, the city will advertise for candidates to fill the two open seats and council will appoint them, Ferrysburg City Clerk Debbie Wierenga said.
McCaleb held off a write-in campaign from local businessman Ken Sharkey. Chris Collette was also an official write-in candidate for mayor, but did little campaigning.
The separated vote totals for the write-in candidates won't be known until later this week, city election officials said Tuesday night. The turnout in Grand Haven was 20 percent of the 8,172 registered voters.
Two Grand Haven City Council seats were also up for grabs Tuesday, with two candidates running unopposed. Incumbent Mike Fritz was re-elected with 1,295 votes and newcomer John Hierholzer was elected to a four-year term with 1,119 votes.
Board of Light & Power incumbent directors Larry Kieft and Gerry Witherell were re-elected, holding off a challenge from Michael Ciofu. Kieft took 1,164 votes, Witherell received 1,116 and Ciofu had 414.
In Zeeland, Allen Dannenburg (668 votes), Sally Gruppen (645) and Mary Beth Timmer (634) were elected Tuesday to City Council. They were the top three vote-getters for three seats. Schyuler James Wilson finished fourth with 259 votes.
Kevin Klynstra was unopposed in his bid for mayor of Zeeland. A city councilman since 1995, Klynstra will replace Les Hoogland, who has been Zeeland's mayor for the past 22 years.
In Holland, Wayne Klomparens edged Scott Troeger for a four-year at-large seat on City Council. Klomparens received 1,096 votes to Troeger's 1,078.
In Coopersville, incumbents Charlie VanderKolk (294 votes) and Larry Crandle (293) were re-elected to four-year terms on City Council. James Ward was third with 217 votes to grab the third council seat on Tuesday's ballot. Challengers Tim Palko (157), Dan Cooke (146) and Bradley Sprague (115) were unsuccessful.
Montague's longtime mayor, Henry Roesler Jr., received 129 votes, or 14 more votes than challenger Kevin Erb. However, Erb has been elected mayor.
Roesler died Nov. 1 at the age of 84 and after serving 20 years as Montague's mayor. According to the White Lake Beacon, state law requires all votes for a deceased candidate to be voided.