Explanation: Calculate LCM of all intervals to create a cycle. Within the cycle, schedule each announcement at multiples of its interval. Prevent overlaps by assigning the earliest available slot.
Code:
const moment = require('moment');
const SCHEDULED_ANNOUNCEMENTS = [/* as defined */];