Add custom events to be handled by `qubes.events.EventDispatcher`

I would like to make custom events to be listened by the qubes.events.EventDispatcher.

So currently, if I would like to do something on domain startup I could do something like this:

import qubesadmin.events
import qubesadmin
import asyncio

def print_starting_domain(*args, **kwargs):
    print(args)
    print(kwargs)

qubes = qubesadmin.Qubes()
dispatcher = qubesadmin.events.EventsDispatcher(qubes)

dispatcher.add_handler("domain-start", print_start_domain)

loop = asyncio.new_event_loop()

asyncio.set_event_loop(loop)

loop.run_until_complete(
        asyncio.ensure_future(dispatcher.listen_for_events())
        )

loop.run_forever()

This code allows me to handle and get the vm information on startup. Now, I would like to do something similar but add my custom event (e.g. handle-vm-network).

I found that (AppVM, TemplateVM, AdminVM, DispVM, and StandaloneVM) under qubes.vm are childs of qubes.events.Emitter. So, I would like to use something as follow and receive the event using qubes.events.EventsDispatcher

import qubes

class MyClass(qubes.events.Emitter):
    def __init__(self) -> None:
        super().__init__()

        self.events_enabled = True


my_class = MyClass()

my_class.fire_event('handle-vm-network')

Now, I would like to see the handle-vm-network event in my previous code. Is there away to do so?