Technically, you cannot get the duration of an "event". The duration of an event will be based on multiple factors and those factors may change during the process of the event. For example, an event can target a random container, which will play a series of random sounds. Every sound have the possibility to loop X number of times, the number of loop can be random as well. The event may also be terminated only by another event, or by a state change if the sound is infinitely looping or if it is a recurring ambiance sound.
For all these reasons, we decided to not expose the expected duration of an event since it would be too easy to fall in problematic situations.
However, you may register a callback to get the duration of every sound that will be instantiated in the course of an event. In PostEvent(), pass in your callback function and set the AK_Duration flag. Every time a sound starts playing, your function will be called and passed an AkDurationCallbackInfo structure, which indicates the sound's nominal and estimated durations. The nominal duration takes looping into account, but not pitch shifting. "Zero" (0) represents the nominal duration of infinitely looping sounds. The estimated duration also takes pitch shifting into account. This value will obviously not be true if the pitch changes while the sound is playing, because of an RTPC or "Set Pitch" action.