My end goal is to build a volatility surface for caps. It's well known that SABR model has Hagan approximation formulas for log-normal and normal implied volatilities of options, e.g. caplets, therefore given quoted market volatilities of caplets with same maturities but different strikes one can use them to calibrate model parameters and obtain SABR implied volatilities. Repeating this procedure for different maturities allows one to build a volatility surface for caplets. However I do not see how to obtain a volatility of a cap which is a series of caplets. It would be wrong to take a quoted market cap volatility as an input and expect to get a proper implied volatility as an output because a cap isn't an option on a forward rate but rather a series of such options.
Is there an easy way to find implied volatility of a series of options? Of course one can compute implied volatilities of all caplets, use them to price caplets, get a price of a cap as a sum of all caplet prices and then extract the implied volatility from the cap price, but I would like to have a way around it which wouldn't involve calculating prices.