I read POE::Kernel and POE::Session and didn't see anything to query the kernel about the contents of the event queue. There is a regularly occurring event that only needs to occur when someone is connected to my POE::Component::TCP::Server. My OnConnect event should trigger the delayed event only if it isn't already in the queue. If I just use the normal delayed event dispatching methods then all I can do is clear or add to the delayed event queue.
If there isn't a way to get this from POE then I just have to keep track of whether I've sent a message from outside of POE. I've no problem doing this as an implementation but I don't think it is the right way to do it.
$_[KERNEL]->delay_if_not_already_queued( $_[SESSION], ... );
$_[KERNEL]->delay( $_[SESSION], ... )
if not $_[KERNEL]->already_queued( 'event_foo' );