Use the same mechanism as Discord plugin — direct in-process call
to dispatchInboundMessageWithDispatcher from plugin-sdk. No WebSocket,
no CLI, no cron service dependency.
Creates unique session key per slot: agent:{agentId}:hf-calendar:slot-{slotId}
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use the same mechanism as dreaming/memory-core: acquire cron
service from gateway_start event, create one-shot cron job
with wakeMode: "now" and deleteAfterRun: true.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>