def METHOD_NAME(self, config: Dict):
    msg_broadcast_id = None
    if not config.get("scheduler_config") or not config["scheduler_config"].get("schedule"):
        raise AppException("scheduler_config is required!")
    try:
        msg_broadcast_id = MessageBroadcastProcessor.add_scheduled_task(self.bot, self.user, config)
        cron_exp = config["scheduler_config"]["schedule"]
        timezone = config["scheduler_config"]["timezone"]
        payload = {'bot': self.bot, 'user': self.user, "event_id": msg_broadcast_id}
        Utility.request_event_server(EventClass.message_broadcast, payload, is_scheduled=True, cron_exp=cron_exp,
                                     timezone=timezone)
        return msg_broadcast_id
    except Exception as e:
        logger.error(e)
        if msg_broadcast_id:
            MessageBroadcastProcessor.delete_task(msg_broadcast_id, self.bot)
        raise AppException(e)