It may be helpful to determine what question is being answered, literally or implicitly, by the statement. In my experience, "at" usually suggests a location while "in" suggests an activity.
By way of example, consider the following question/answer pairs:
Q: "Where is Ms. Smith?"
A: "She is at a shareholder meeting."
Q: "What is Ms. Smith doing?"
A: "She is in a shareholder meeting."
Q: "Is Mr. Johnson here?"
A: "No, he is at a meeting with a client."
Q: "Is Mr. Johnson busy?"
A: "Yes, he is in a meeting with a client."
The "in" construction avoids the issue of location altogether. Suppose you were to enter an office and ask the person at the front desk:
"Is Susan here today?"
If the person responded:
"Susan is in a meeting all day today."
that would not really answer the question. Susan might be in a meeting and still be in the office. On the other hand, if the answer was:
"Susan is at a meeting all day today."
you could be fairly certain that Susan is not in the office, but has gone to a meeting somewhere else.