I've been struggling with the following sentence:
A: Let's meet at 4 PM tomorrow
B: Ok. No problem. I'll have had lunch so It's fine with me
The question is: Is a time expression like "By that time" needed or can it be ommited?
No tense "requires" a time expression, and your sentence is fine without one. The time has been established by context, namely the use of a "time expression" in the previous sentence. But even if Sentence A were
Remember our meeting
or something with more context, such as
Remember there will be no food at our meeting
Okay. No problem. I'll have had lunch so It's fine with me.
would be fine because the time of the meeting is shared knowledge held by both people. A phrase such as by then might be used after lunch, but it's not necessary.
The future perfect tense refers to a completed action in the future. When we use this tense we are projecting ourselves forward into the future and looking back at an action that will be completed some time later than now. It is most often used with a time expression.
- I will have been here for six months on June 23rd.
- By the time you read this I will have left.
- You will have finished your report by this time next week.
- Won't they have arrived by 5:00?
- Will you have eaten when I pick you up?