Create Calander using Sql server Store Procedure

In this Stored procedure pass year and month (numeric)

 CREATE      procedure [dbo].[CalMonthByYearMonth] (@YEAR INT, @MONTH INT) AS
DECLARE @INPUTDATE DATETIME
DECLARE @DATE DATETIME
DECLARE @LASTDATE DATETIME
DECLARE @MONTHDAYCOUNT INT
DECLARE @COUNT INT
DECLARE @DAY VARCHAR(10)
DECLARE @STARTWEEK INT
DECLARE @CURWEEK INT
DECLARE @STARTMONTH INT
SET @INPUTDATE='01/01/' + CAST(@YEAR AS CHAR(4))
PRINT @INPUTDATE
SET @STARTMONTH=@MONTH
SET @INPUTDATE=DATEADD(MM,@MONTH - 1,@INPUTDATE)

    SET @COUNT=1
    SET @DATE = DATEADD(d, -(DATEPART(dd, @INPUTDATE) - 1), @INPUTDATE)
    SET @LASTDATE=DATEADD(DD,-1,DATEADD(MM,1,@DATE))
    SET @MONTHDAYCOUNT=datediff(d, @date, dateadd(m, 1, @date))
    SET @STARTWEEK=DATEPART(WEEK,@INPUTDATE)
    DECLARE @CURRWEEK INT
    DECLARE @CUR INT
    CREATE TABLE #TEMP(
        WEEK VARCHAR(10),
        SUNDAY VARCHAR(10),
        MONDAY VARCHAR(10),
        TUESDAY VARCHAR(10),
        WEDNESDAY VARCHAR(10),
        THURSDAY VARCHAR(10),
        FRIDAY VARCHAR(10),
        SATURDAY VARCHAR(10),
        YEARWEEK VARCHAR(10))
    DECLARE @wkcount int
    DECLARE @weeksinmonth int
    DECLARE @EXEC NVARCHAR(2000)
    SET @WKCOUNT=1
    SET @weeksinmonth=datediff(week, @date, @lastdate) + 1
    WHILE @wkcount<= @weeksinmonth
        begin
        INSERT INTO #TEMP VALUES(@wkcount,'SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', @STARTWEEK + @WKCOUNT - 1)
        SET @WKCOUNT=@WKCOUNT + 1
    end
    WHILE @COUNT<=@MONTHDAYCOUNT
        BEGIN
                SET @DAY=DATENAME(WEEKDAY,@DATE)
                IF @STARTWEEK=DATENAME(WEEK,@DATE)
                        SET @CURRWEEK=1
                ELSE
                BEGIN
                        SET @CUR=DATENAME(WEEK,@DATE)
                        SET @CURRWEEK=(@CUR-@STARTWEEK)+1
                END

                SET @EXEC='UPDATE #TEMP SET ' + @DAY + ' =' + CAST(@COUNT AS CHAR(2)) + ' WHERE WEEK=' + CAST(@CURRWEEK AS CHAR(2))+ 'AND WEEK IS NOT NULL'
                EXEC SP_EXECUTESQL @EXEC
                SET @DATE=DATEADD(DD,1,@DATE)
                SET @COUNT=@COUNT + 1
    END
    UPDATE #TEMP SET SUNDAY=' ' WHERE SUNDAY='SUNDAY'
    UPDATE #TEMP SET MONDAY=' ' WHERE MONDAY='MONDAY'
    UPDATE #TEMP SET TUESDAY=' ' WHERE TUESDAY='TUESDAY'
    UPDATE #TEMP SET WEDNESDAY=' ' WHERE WEDNESDAY='WEDNESDAY'
    UPDATE #TEMP SET THURSDAY=' ' WHERE THURSDAY='THURSDAY'
    UPDATE #TEMP SET FRIDAY=' ' WHERE FRIDAY='FRIDAY'
    UPDATE #TEMP SET SATURDAY=' ' WHERE SATURDAY='SATURDAY'
    SELECT Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday --, YEARWEEK
    --SELECT Monday, Tuesday, Wednesday, Thursday, Friday, YEARWEEK
    FROM #TEMP order by week
    DROP TABLE #TEMP

Copy and paste this sp into your sql server then execeute stored procedure  for below criteria.

EXEC CalMonthByYearMonth pass year ,pass month
EXEC CalMonthByYearMonth 2012,1