Only way to know for sure that it's ready is to take hydrometer readings. Take at least one (I usually just wait 3 weeks and take a reading to confirm it's at a reasonable/expected FG), but preferably take two a couple days apart. If the readings are the same, then it's done fermenting.
Bottled/Drinking: Apfelwein, Leaping Goats Coffee Brown Ale (v2), Anniversary Barleywine, High Ground Gose, Vanilla Rhubarb Mead, Sour Blackberry Cider, Dos Caldera Porter (plain & whiskey versions), Evolution of Funk (Vol. 1), Unseasonably Pale
Primary/Secondary: Evolution of Funk (Brett Saison mini-solera), BRB Melomel, Red River (Flanders) Red, Wild Cider, Frankencyser, Higher Ground Gose