Weesen liegt im Kanton St. Gallen am Westufer des Walensees, wo der Linthkanal den See mit dem Zürichsee verbindet. Das Gemeindegebiet erstreckt sich fast bis nach Ziegelbrücke im Westen, während der Ortsteil Fli bereits zu Amden gehört. Die Landschaft wird vom See und dem Kanal geprägt, der durch die Linthkorrektion entstand und das Gesicht des Ortes nachhaltig veränderte.
Die ältesten Spuren auf Weesener Boden reichen bis in die Latènezeit zurück, doch erste dauerhafte Siedlungen entstanden vermutlich in römischer Zeit. Im Mittelalter entwickelte sich der Ort aus mehreren Teilen: Oberweesen mit einer Basilika, Niederweesen als befestigte Stadt und ein Flecken mit Hafen und Kloster. Die Habsburger prägten die Geschichte, bis die Eidgenossen 1388 die Stadt zerstörten. Später stand Weesen unter der Herrschaft von Glarus und Schwyz, verlor aber an Bedeutung, bis der Linthkanal und die Bahnverbindung neue Impulse setzten.
Heute ist Weesen vor allem als Verkehrsknotenpunkt bekannt, doch historische Spuren wie die Überreste der mittelalterlichen Stadtmauer oder das umgebaute Schloss Halde erinnern an die bewegte Vergangenheit. Die Heiligkreuzkirche steht auf dem Platz der einstigen Burg Bühl, während der Hafen und das Dominikanerinnen-Kloster Maria Zuflucht von der einstigen Blüte des Ortes zeugen. Die Nähe zum Walensee macht den Ort auch zu einem beliebten Ziel für Touristen.