Jimmy Garoppolo is poised to return as the San Francisco 49ers’ starting quarterback on Sunday night after a three-week absence.

Garoppolo’s right calf has recovered sufficiently for him to start against the Indianapolis Colts, according to Niners coach Kyle Shanahan. Garoppolo returned to practice on Monday and took the majority of the reps for the rest of the week, according to the release.

“Every day he grew better, and now I view him as 100 percent,” Shanahan said.

However, against the Colts, the Niners will be without many crucial players. Trey Lance, the backup quarterback, has been ruled out, as have defensive tackles Javon Kinlaw (knee) and Maurice Hurst (calf).

Trent Williams, the starting left tackle, is classified as questionable due to elbow and ankle issues.

Williams’ ankle ailment is “related to the Cardinals game,” Shanahan said. “We didn’t believe it was as horrible as it turned out to be… On Monday, he zinged it a little bit in practice and hasn’t been able to go since. We’ll take it all the way up to game time for Trent, if anyone on this squad.”

While Garoppolo is back in the mix, Lance, who replaced him in a Week 5 defeat to Arizona, will be unavailable against Indianapolis. Lance has a damaged left knee and hasn’t practiced this week, but the Niners are optimistic he’ll be back next week.

Garoppolo’s backup will once again be Nate Sudfeld, who was promoted from the practice squad. In an Oct. 3 defeat to the Seattle Seahawks, Garoppolo suffered a calf injury early in the game.

Garoppolo promptly self-diagnosed the ailment after that game, stating he thought it would just be a few of weeks. Garoppolo only missed the Arizona game because the Niners had a Week 6 bye, which proved to be correct.

“Coming out of the gate with that ‘couple of weeks’ statement was a bit aggressive,” Garoppolo said. “I’ve done it previously and had comparable damage. So it was simply a matter of knowing my body and knowing it would take a few weeks. It was only a minor nudge. It wasn’t a major incident.”

Garoppolo stayed near the club facility while he recovered from his injury, rehabilitating in preparation for a game versus Indianapolis. The most important thing, according to Garoppolo, was regaining the ability to make modest adjustments in the pocket without risking aggravating the injury.

“I suppose you could say pushing off of it, just those short, tiny jerky motions,” Garoppolo said. “I really didn’t want to push it too hard last week,” he says, “but I believe we’ve really made some huge steps during the bye week, so I’m satisfied with where we’re at.”

In the event that Williams is unable to play, the 49ers will start rookie Jaylon Moore at left tackle. The Niners are weak on the inside of the defensive line without Hurst and Kinlaw, with D.J. Jones, Kentavius Street, Zach Kerr, and, on occasion, Arik Armstead as the only healthy possibilities to handle the two inside spots.

Shanahan also stated that running back JaMycal Hasty will be activated off injured reserve. Due to a severe ankle injury, he has been out since Week 2.