Родился в семье рабочего.
Окончил 5 классов.
В Красной Армии с августа 1941 года.
На фронтах Великой Отечественной войны с сентября 1941 года. Принимал участие в освобождении Польши.
Разведчик 175-го гвардейского стрелкового полка (58-я гвардейская стрелковая дивизия, 5-я гвардейская армия, 1-й Украинский фронт) гвардии младший сержант Иван Калашников при выполнении боевого задания в ночь на 11 сентября 1944 г. северо-восточнее населенного пункта Подвале (юго-восточнее города Буско-Здруй, Польша) первым из группы захвата проник в расположение противника и вывел из строя пулеметный расчет, прикрыв бойцов от флангового удара. Задание по захвату «языка» группа выполнила.
За мужество и отвагу, проявленные в боях, гвардии младший сержант И.М.Калашников 19 сентября 1944 года награждён орденом Славы 3-й степени.
В ночь на 28 октября 1944 гвардии сержант Калашников, действуя в группе захвата севернее населенного пункта Новы-Фаленцин (восточнее города Буско-Здруй, Польша), одним из первых достиг траншеи противника и вывел из строя линию связи. Группа истребила пятерых и захватила в плен одного гитлеровца.
За мужество и отвагу, проявленные в боях, гвардии сержант И.М.Калашников 20 декабря 1944 года награждён орденом Славы 2-й степени.
13 января 1945 в районе населенного пункта Новогура (Польша) Иван Калашников участвовал в захвате «языка». Разведчики вступили в неравный бой с противником. В этом бою Калашников вывел из строя пушку вместе с расчетом, сразил из автомата пятерых вражеских солдат и одного взял в плен. Группа захвата заняла окраину населенного пункта и удерживала ее до подхода подразделения.
Указом Президиума Верховного Совета СССР от 27 июня 1945 за образцовое выполнение заданий командования в боях с немецко-фашистскими захватчиками гвардии сержант И.М.Калашников награждён орденом Славы 1-й степени, став полным кавалером ордена Славы. Но не суждено было Ивану Калашникову получить заслуженную награду Родины. Он погиб в бою 12 апреля 1945 года.