I would try to troubleshoot this one on your own. This problem is finicky at best and almost always inconclusive when you try to have a shop "decode" it. You tinkering away and getting your elbows dirty, one thing at a time, will yield better results. Like others have said already, start basic.

Clean MAF/check for induction breaches
PCV replacement
IAC cleanup
Fuel filter replacement
EGR cleanup (replacement?)

The ones that take a bit more elbow grease ....
FPR cleanup/replacement
Cam or Crank sensor replacement (VERY rare but I did have a crank sensor go bad and alter idle)
Manifold gasket

Chances are, 1 of these is the culprit. Hopefully it's one of the ones listed in the first list.