Eight passengers suffered neck and back injuries and 13 more were taken to hospital for observation.
Those hurt were in a stable condition, an emergency services spokesman said.
Air Canada`s chief operating officer Klaus Goersch said passengers had been through a "very unsettling experience".
The Boeing 777 with 332 passengers and 19 crew on board landed at Calgary without further incident, the airline said in a statement.
Passengers described the experience.
"To start with it was just OK, normal just up and down, and all of a sudden it was really violent and just shaking everybody," said Yi Lee.
"Suddenly the flight is just going down and everything is really scary. The girl sitting next to me, she was sleeping and she just fly up (to the ceiling)," said Linda He.
Mr Goersch praised the crew`s response and said some of the passengers taken to hospital had quickly been discharged.
More about: