Generally come is used when the direction is towards where the speaker is, was or will be at a relevant point in time, go when the direction is away from the speaker. Examples:
a. Come here. (Towards me)
b. Go towards the window. (Not towards me)
c. Please come to my house this evening. (I will be at home)
d. Please go to my house this evening. (I will not be there, but I want you to check that I locked the door.)
e. I am going to Fred’s party this evening. (Clearly away from the speaker)
f. Will you come with me? (Come with + a person = accompany. If you come with me, by the time you get to Fred’s party I will logically be there!)
g. Are you coming to school tomorrow? (I am speaking to you on the telephone from school, or: we are both at school.).)
h. Are you coming to school tomorrow? (Are you accompanying me?)
i. Are you going to school tomorrow? (I am speaking from a place other than school.)
One important point here is that sometimes there is no ‘correct’ answer. The choice between come and go depends on how the speaker views the situation at the moment of speaking. In [f,] for example, the speaker could easily have chosen go.
Incidentally, bring (towards the speaker and take (away from the speaker) are used in a similar way.