Here something to start you up
#include <Constants.au3>
#include <GUIConstants.au3>
Opt("MustDeclareVars", 1)
MsgBox ($MB_SYSTEMMODAL,"",MonthCalendar())
Func MonthCalendar($iLeft = -1, $iTop = -1)
Local Const $asMonth[12] = ["Jan", "Fév", "Mar", "Avr", "Mai", "Juin", "Juil", "Août", "Sep", "Oct", "Nov", "Déc"]
Local Const $cHighlight = 0xD6E0FF
Local $hGUI = GUICreate("", 250, 150, $iLeft, $iTop, $WS_POPUP + $WS_BORDER)
Local $iPrev = GUICtrlCreateLabel(ChrW(0x25C0), 25, 15, 25, 25, $SS_CENTER)
GUICtrlSetFont(-1, 16)
Local $iNext = GUICtrlCreateLabel(ChrW(0x25B6), 205, 15, 25, 25, $SS_CENTER)
GUICtrlSetFont(-1, 16)
Local $iYear = GUICtrlCreateLabel(@YEAR, 100, 21, 50, 25, $SS_CENTER)
Local $aiMonth[12], $i = 0
For $y = 0 To 2
For $x = 0 To 3
$aiMonth[$i] = GUICtrlCreateLabel($asMonth[$i], 50 * $x + 38, 30 * $y + 50, 30, 20, $SS_LEFT + $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 10)
$i += 1
Next
Next
$i = Int(@MON) - 1
GUICtrlSetBkColor($aiMonth[$i], $cHighlight)
Local $iOK = GUICtrlCreateDummy ()
Local $aAccelKeys[1][2] = [["{ENTER}", $iOK]]
GUISetAccelerators($aAccelKeys)
GUISetState(@SW_SHOW)
Local $nMsg
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
GUIDelete ()
Return ("")
Case $iPrev
GUICtrlSetData($iYear, GUICtrlRead($iYear) - 1)
Case $iNext
GUICtrlSetData($iYear, GUICtrlRead($iYear) + 1)
Case $aiMonth[0] To $aiMonth[11]
If $i = $nMsg - $aiMonth[0] Then ContinueLoop
GUICtrlSetBkColor($nMsg, $cHighlight)
GUICtrlSetBkColor($aiMonth[$i], Default)
$i = $nMsg - $aiMonth[0]
Case $iOK
Local $sReturn = GUICtrlRead($iYear) & "|" & $i + 1
GUIDelete()
Return $sReturn
EndSwitch
WEnd
EndFunc ;==>MonthCalendar