In both models, there's an unobserved state that changes over time according to relatively simple rules, and you get indirect information about that state every so often.
In Kalman filters, you assume the unobserved state is Gaussian-ish and it moves continuously according to linear-ish dynamics (depending on which flavor of Kalman filter is being used).
In HMMs, you assume the hidden state is one of a few classes, and the movement among these states uses a discrete Markov chain.
In my experience, the algorithms are often pretty different for these two cases, but the underlying idea is very similar.