Слово "когда" в русском языке является местоименным наречием.
Запятая перед ним может как ставиться, так и не ставиться - всё зависит от его значения и роли в предложении, а также от наличия других союзов рядом с ним.
На самом деле, случаев может быть довольно много; я ограничился вариантами, которые используются в устной и письменной речи чаще всего.
1) Запятая не нужна, если "когда" участвует в создании вопроса и является вопросительным местоименным наречием.
Например:
И когда всё это закончится?
А вы когда пойдёте?
и т.п.
2) Слово "когда" может быть связующим звеном между главной и придаточной частями сложноподчинённого предложения, это будет уже относительное местоименное наречие в роли союзного слова.
По правилам пунктуации русского языка запятая перед "когда" уже необходима.
Например:
Я не люблю, когда идёт дождь.
Мне нравится, когда светит солнце.
3) Более сложный вариант - если "когда" используется в сложноподчинённом предложении с последовательным подчинением придаточных вместе с другими союзами (например, с союзом "что").
Здесь запятая не нужна, если вторая придаточная часть начинается с "то", "как", "но" (согласно справочнику Д.Э.Розенталя).
Например:
Отец рассказывал, что когда он был в лесу, то видел медведя.
В остальных случаях между союзами запятая ставится, а вторую придаточную часть начинающуюся с "когда" можно легко убрать из предложения..
Например:
Я уверена, что, когда ты уедешь, он будет скучать по тебе. = Я уверена, что он будет скучать по тебе.
4) Также "когда" может связывать однородные члены предложения в придаточной части сложноподчинённого предложения.
Запятая в этом случае ставится только перед первым словом "когда".
Например:
Ты пойдёшь гулять только тогда, когда уберёшься в своей комнате и когда сделаешь уроки.
5) Ещё один вариант - когда это слово используется при противопоставлении двух членов предложения посредством повторения.
Здесь запятая ставится перед вторым и последующим "когда".
Например:
Когда хорошо, когда плохо.
Я занимаюсь когда утром, когда днём, когда вечером...