Bar a loan spell at Notts County in the 2013/2014 season, McGregor has spent his entire career at Celtic and was appointed club captain at the start of this campaign after Scott Brown left the club.
McGregor has made 334 appearances for Celtic, scoring 54 goals and has won six Scottish Premiership titles, four Scottish Cups and four Scottish League Cups with the club.
Speaking after signing his new contract, Callum told Celtic TV: "I'm absolutely delighted. It's a proud moment again to extend my stay at the club.
"The club's very close to my heart. I've been here for a number of years now, I'm happy here, I love my football and representing this club, and I want to stay here for as long as I can.
"This is a new chapter and I'm desperate to see the five years out and if I've done that, then that means it's been a pretty successful time again.
"That's the new motivation for me personally, to make sure this club wins silverware and get it back to that successful place where we were two, three, four seasons ago."
Celtic manager Ange Postecoglou added: "It's brilliant news for the club. Obviously it was an important year for Cal stepping up to be the new captain and he's already shown outstanding qualities.
"He espouses the values that I'm after. He understands what we're trying to build and, on and off the field, he's not just talking about it, he's living it and he's showing the behaviour that I want leaders to show, and as I said, he's just taken his first steps but I think that it's exciting with what's ahead."
McGregor has won 37 caps for the Scotland national team.