Đây là một trong số ít quy tắc ngữ pháp tiếng Anh gọn đến mức đọc xong là nhớ. Nó cũng là quy tắc bị vi phạm nhiều nhất trong bài viết của người học Việt Nam, vì tiếng Việt không bắt bạn chọn.
Quy tắc

Trong một câu có hai mệnh đề, khi mệnh đề phụ chỉ thời gian:
mệnh đề thời gian → hiện tại đơn mệnh đề chính → will
When I get home, I will call you. ✓
When I will get home, I will call you.✗
Cả hai việc đều ở tương lai. Nhưng mệnh đề thời gian vẫn dùng hiện tại đơn.
Áp dụng cho những liên từ nào
when · after · before · until / till · as soon as · once · by the time · whenever · while
Ví dụ đủ bộ:
I'll wait until you finish. As soon as the rain stops, we'll go. Before you leave, please turn off the lights. After he arrives, we'll start. By the time you read this, I'll be gone.
Ngoại lệ: khi "when" là từ để hỏi

Quy tắc trên chỉ áp dụng khi when là liên từ nối hai mệnh đề. Khi when là từ để hỏi, nó dùng will bình thường:
When will you arrive? ✓ — câu hỏi trực tiếp I don't know when he will arrive. ✓ — câu hỏi gián tiếp Tell me when you will be free. ✓
So sánh hai câu gần giống nhau:
Tell me when you will be free. — "cho tôi biết lúc nào bạn rảnh" (when = từ để hỏi) Call me when you are free. — "gọi tôi lúc bạn rảnh" (when = liên từ thời gian)
Cách phân biệt: nếu bạn thay được when bằng "vào lúc mà" thì đó là liên từ → dùng hiện tại đơn. Nếu thay được bằng "khi nào" trong nghĩa hỏi thì dùng will.
Cùng luật với câu điều kiện
Câu điều kiện loại 1 theo đúng nguyên tắc đó:
If it rains, I will stay home. ✓
If it will rain, I will stay home.✗
Và áp dụng cho unless, in case, as long as, provided that:
Unless you hurry, we'll be late. Take an umbrella in case it rains.
Dùng hiện tại hoàn thành để nhấn "xong hẳn"
Trong mệnh đề thời gian, ngoài hiện tại đơn còn dùng được hiện tại hoàn thành khi muốn nhấn rằng việc đó phải hoàn tất trước:
I'll call you when I have finished. — sau khi xong hẳn After you have read it, let me know.
Khác biệt so với hiện tại đơn khá nhỏ và trong nhiều câu hai cách thay nhau được. Trục quyết định vẫn là khoảng thời gian đã đóng chưa.
Vì sao người Việt sai chỗ này
Tiếng Việt đánh dấu tương lai bằng "sẽ" và đặt được ở cả hai vế:
"Khi nào tôi sẽ về đến nhà, tôi sẽ gọi cho anh."
Câu tiếng Việt đó nghe bình thường. Dịch thẳng sang tiếng Anh thì ra câu sai.
Nói cách khác: đây không phải lỗi vì bạn chưa học quy tắc, mà vì tiếng mẹ đẻ không có gì nhắc bạn rằng có một quy tắc ở đó.
Cách tự kiểm khi viết
Tìm trong câu các từ when, after, before, until, as soon as, if. Nếu ngay sau đó có will, dừng lại và hỏi: từ này đang nối hai mệnh đề, hay đang hỏi "khi nào"?
- Nối hai mệnh đề → bỏ will, dùng hiện tại đơn
- Hỏi "khi nào" → giữ will
Đó là toàn bộ bài này.
