  We give a new proof of Hardy's uncertainty principle, up to the end-point
case, which is only based on calculus. The method allows us to extend Hardy's
uncertainty principle to Schr\"odinger equations with non-constant
coefficients. We also deduce optimal Gaussian decay bounds for solutions to
these Schr\"odinger equations.
