Instead of having this:
it would be a lot better to store the event to the Teleport object, just like the player is stored there:
static std::map<uint32, Event> _events;
This would save space and work better all around :)
One thing I am "worried" about a bit with teleporting and timed events is that if you teleport the player somewhere and then he logs out or shuts his client, he will be saved there.
Then when he logs in, the timed events dont continue anymore and he has now teleported to an area, possibly where he shouldnt be .. yet.