Currently, MMM-TTS and MMM-GoogleTTS can change text to composed voice. both modules can be activated by notification.
https://github.com/eouia/MMM-GoogleTTS#by-notification

Default calendar module cannot response on demand, however it can broadcast all events when be refreshed. Maybe you can make your own module to receive and store events then use.

MMM-CalendarExt has a feature to response specific events by notification query. https://github.com/eouia/MMM-CalendarExt/wiki/Use-Notification-(for-module-developers)#calext_tell_schedule

MMM-CalendarExt2 also has same feature but somewhat different with MMM-CalendarExt
https://github.com/eouia/MMM-CalendarExt2/wiki/3.-Usage#get-events

MMM-NotificationTrigger can relay and chain notifications between modules. If you need to translate notification between modules you could use this module together.

So It could be done by combination of above modules with PIR related module(MMM-PIR-Sensor??).