My 2003 Toyota Rav4 lost its heater. I also noticed that the engine began to overheat at idle but quickly returned to normal temp when moving again. The coolant level is low but not invisible.
Low coolant or a head gasket leak causing a blocking air bubble will do this. Being able to see the coolant level is not good enough and will not give good circulation especially to the upper engine and heater which is usually higher. Fill it up first and hope its not a head gasket.