• Here it is with dates formatted and ordered by freq and next run date & time. This works also in SQL Server 2012. (Darn, when I edited it, it lost all formatting. You'll have to reformat using either SQL Server 2012 Tools or Poor Man's T-SQL Formatter add-in for Notepad++)

    -- Henry Stinson, DBA

    --Purpose: Provide SQL Server Agent related job information

    SELECT DISTINCT substring(a.name,1,100) AS [Job Name],

    'Enabled'=case

    WHEN a.enabled = 0 THEN 'No'

    WHEN a.enabled = 1 THEN 'Yes'

    end,

    substring(b.name,1,30) AS [Name of the schedule],

    'Frequency of the schedule execution'=case

    WHEN b.freq_type = 1 THEN 'Once'

    WHEN b.freq_type = 4 THEN 'Daily'

    WHEN b.freq_type = 8 THEN 'Weekly'

    WHEN b.freq_type = 16 THEN 'Monthly'

    WHEN b.freq_type = 32 THEN 'Monthly relative'

    WHEN b.freq_type = 32 THEN 'Execute when SQL Server Agent starts'

    END,

    'Units for the freq_subday_interval'=case

    WHEN b.freq_subday_type = 1 THEN 'At the specified time'

    WHEN b.freq_subday_type = 2 THEN 'Seconds'

    WHEN b.freq_subday_type = 4 THEN 'Minutes'

    WHEN b.freq_subday_type = 8 THEN 'Hours'

    END,

    SUBSTRING(CAST(b.active_start_date AS VARCHAR(8)), 5, 2) + '-' + SUBSTRING(CAST(b.active_start_date AS VARCHAR(8)), 7, 2) + '-' + SUBSTRING(CAST(b.active_start_date AS VARCHAR(8)), 1, 4) As ActiveStartDate,

    --b.active_end_date,

    SUBSTRING(CAST(c.next_run_date AS VARCHAR(8)), 5, 2) + '-' + SUBSTRING(CAST(c.next_run_date AS VARCHAR(8)), 7, 2) + '-' + SUBSTRING(CAST(c.next_run_date AS VARCHAR(8)), 1, 4) As NextRunDate,

    --cast(cast(b.active_start_date as varchar(15)) as datetime) as active_start_date,

    --cast(cast(b.active_end_date as varchar(15)) as datetime) as active_end_date,

    --cast(cast(c.next_run_date as varchar(15)) as datetime) as next_run_date,

    Stuff(Stuff(right('000000'+Cast(c.next_run_time as Varchar),6),3,0,':'),6,0,':') as Run_Time,

    b.date_created

    FROM msdb..sysjobhistory d

    INNER JOIN msdb..sysjobs a

    ON a.job_id = d.job_id

    INNER JOIN msdb..sysJobschedules c

    ON a.job_id = c.job_id

    INNER JOIN msdb..SysSchedules b

    ON b.Schedule_id=c.Schedule_id

    ORDER BY [Frequency of the schedule execution],

    [NextRunDate],

    [Run_Time];

    GO