I found this on another posting and it returns the list of servers but it'd still be easier to work with a callback or api.
select distinct cs.name, cs.ip, cs.origin, ms.SCHEDULE_NAME, ms.DESCRIPTION, CONVERT(VARCHAR(50), mw.START_TIME,100) as 'Start Time', CONVERT(VARCHAR(50), mw.END_TIME, 100) as 'End Time' from CM_COMPUTER_SYSTEM cs
INNER JOIN MAINTENANCE_SCHEDULE_MEMBERS msm
ON cs.cs_id=msm.CS_ID
INNER JOIN MAINTENANCE_WINDOW mw
ON msm.SCHEDULE_ID=mw.SCHEDULE_ID
INNER JOIN MAINTENANCE_SCHEDULE ms
ON msm.SCHEDULE_ID=ms.SCHEDULE_ID
WHERE mw.END_TIME >=GETDATE()