validate event details before posting

based on #14, catch invalid events on the client