Calgary added the Czech forward Monday on the second day of NHL free agency.
The 28-year-old Hudler had a career-high 25 goals and 50 points last season with the Detroit Red Wings. He had 87 career goals and 214 points in five full seasons plus parts of two years with the franchise that drafted him in 2002.
Hudler had a career-high 57 points during the 2008-09 season, then played in Russia's Kontinental Hockey League for one season. He returned to the Red Wings with a $5.75 million, two-year deal.
Flames general manager Jay Feaster says Hudler is a highly skilled offensive player and one of the league's best even-strength scorers.