ld1 = {^2003-1-1} lnTop = -12 lnLeftOffset = 0 do while ld1 < {^2003-12-31} if ( ld1 = {^2003-7-1} ) lnLeftOffset = 320 lnTop = -12 endif if ( day( ld1 ) = 1 ) lnTop = lnTop + 13 endif lnDayOfWeek = dow( ld1 ) lnLeft = lnLeftOffset + ( lnDayOfWeek - 1 ) * 40 if ( lnDayOfWeek = 1 ) lnTop = lnTop + 13 endif lcObjName = "lbl" + dtos( ld1 ) this.AddObject( lcObjName, "label" ) with evaluate( "this." + lcObjName ) .Top = lnTop .Left = lnLeft .Caption = transform( day( ld1 ) ) .FontBold = ( rand() > 0.95 ) && simulate a booking .Visible = .t. endwith ld1 = ld1 + 1 enddo this.Height = lnTop + 30 this.Width = 640If a class of your own is used you can do things like enable the click to display the actual booking record for that date etc.