Korean past tense and vowel harmony
Korean marks the past with a single suffix glued onto the verb stem: -았 if the stem's last vowel is ㅏ or ㅗ (bright vowels), and -었 otherwise (dark vowels and everything else). The 하다 family is the one big irregular: 하- + 였 → 했. After this suffix you re-add the polite -어요 ending → -았어요 / -었어요 / -였어요 → 했어요.
The vowel-harmony rule
Look at the last vowel of the verb stem. If it's ㅏ or ㅗ (the 'bright', open vowels), the suffix is -았어요. If it's any other vowel (ㅓ, ㅜ, ㅡ, ㅣ, ㅔ, ㅐ…), the suffix is -었어요. Examples: 살다 (live, stem 살, vowel ㅏ) → 살았어요. 먹다 (eat, stem 먹, vowel ㅓ) → 먹었어요. 읽다 (read, stem 읽, vowel ㅣ) → 읽었어요.
Vowel contraction (this is where it looks tricky)
When the stem itself ends in a vowel, the -았/었 doesn't sit alone — it merges. 가다 (go, stem 가, vowel ㅏ): 가 + 았어요 → 갔어요 (one syllable absorbs the other). 오다 (come, stem 오, vowel ㅗ): 오 + 았어요 → 왔어요. 보다 (see): 보 + 았어요 → 봤어요. 마시다 (drink): 마시 + 었어요 → 마셨어요. 배우다 (learn): 배우 + 었어요 → 배웠어요. The rule is: write the most natural single-syllable contraction.
하다 → 했어요
하다 ('to do') and every 하다-verb (공부하다, 일하다, 사랑하다, 운동하다, 전화하다…) take a special suffix -였, which then contracts with 하 to 했. So 하다 → 했어요. 공부하다 → 공부했어요. 일하다 → 일했어요. Memorize 했어요 as a single chunk — it's everywhere.
이다 → 이었어요 / 였어요 (was/were)
The copula 이다 also has a past form. After a consonant: -이었어요: 학생 + 이었어요 → 학생이었어요 ('was a student'). After a vowel: contract to -였어요: 친구 + 였어요 → 친구였어요 ('was a friend'). Negative copula past: 아니에요 → 아니었어요.
Putting it together with 어제
어제 (yesterday) is a great anchor. 어제 학교에 갔어요 = 'I went to school yesterday.' 어제 친구를 만났어요 = 'I met a friend yesterday.' 어제 한국어를 공부했어요 = 'I studied Korean yesterday.' For the formal-polite style from the previous lesson, replace -어요 with -습니다: 갔습니다, 먹었습니다, 했습니다.
