Well you will need the following things
1) A panel or some suitable container with a grid layout
2) Labels to display the week days as well as the dates
3) GregorianCalendar has all the methods you will require to figure out stuff like leap year, number of days in a month, day on a particular date etc.
4) If you want to make the calendar more interactive (user clicks on some date and views say his appointments for that particular date, use buttons instead of labels.