Sorry man, I forgot about these. Ok...

once event is created and active, do I also have to call tbem_addtrigger even if event has been set as active?
Only a trigger can start running an event. But if an event is inactive, then it will not run, even if a trigger was fired.
I was thinking about a new function were you can fire a trigger eventID related. Like TBEM_AddEventTrigger(eventID) or so.
That will fire a trigger only on a certain event.

event type must be a unique number all around or unique inside a group? If event type is unique all around, why groups?
I mean, can I have EventType 1 in 2 different groups? If yes, how can tbem_addtrigger knows what to trigger
Event types and groups are two different things, not related to each other. And the event type doesn't have to be unique but having several event types with the same number would make no sence. A trigger with its event type sets the runflags of all events with the same type. So if eventtype, the time related fields and the active flag fit to the trigger, then the event's runflag will be set to TRUE and the event will run next time TBEM_Run will be called.

Now about the event group. Remember event types set the event's runflag. If you have set the event's group then an event will only run during the call of TBEM_Run, if it has an event group equal to the parameter of TBEM_Run. This can be usefull if you want to make sure that some events will be running before others. Of course you would need to call several TBEM_Run with the defined events groups in one frame.
See it like a tool to kinda sort the running order of events. If all events have the same group and the same time parameters, then they run in the order of creation. I'm having the idea allready for some kind of reorder command. So you can switch events within the internal event list.

Do you want me to create a little example?