If it just happens on idle then I would suspect the IACV, or Idle Air Control Valve. It allows air to pass the closed throttle body and compensates for fluctuations in load on tickover, to keep a steady rpm. They can get blocked up. Old ones you can take apart and clean, but newer ones are sealed. You can try flushing it through with carb cleaner or replace with a new one.