Dates1582France= Join[ DateRange[DateObject[{1582,1,1},CalendarType->"Julian"],DateObject[{1582,10,4},CalendarType->"Julian"],CalendarType->"Julian"], DateRange[DateObject[{1582,10,15}],DateObject[{1582,12,31}]]]; Data1582France=GroupBy[Dates1582France,DateValue[#,"MonthName"]&]; InitialOffset1582France= QuantityMagnitude[DateDifference[ PreviousDate[CalendarConvert[DateObject[{1582,1,1},CalendarType->"Julian"],"Gregorian"],Sunday], CalendarConvert[DateObject[{1582,1,1},CalendarType->"Julian"],"Gregorian"]]]; MonthLengths1582France=Length/@Values[Data1582France]; DatesByMonth1582France=Map[DateString[#,"DayShort"]&,Values[Data1582France],{2}]; Offsets1582France=Offsets[7,InitialOffset1582France,MonthLengths1582France]; MonthNames1582France=Keys@Data1582France; With[ {yearBanner=BannerGrid[{0,0},{{1,1},{0,0}},<|"border"->"X"|>,DataGrid[{1,1},{1,1},{{1,1},{5,5}},<||>,#]&,13,"1582"], monthNameGridder=DataGrid[{1,Length@#},{0,1},{{1,1},{0,0}},<||>,ToUpperCase@#]&, dayNameGridder=DataGrid[{1},{2},{0,0},{{0,0},{0,0}},<|"alignment"->{0,-1}|>,#]&, dayGridder=DataGrid[{1},{2},{0,0},{{0,0},{0,0}},<|"alignment"->{-1,1}|>,#]&}, With[ {monthGridder=MonthGrid[{0,0},{{0,0},{0,0}},<||>,monthNameGridder,#1,{0,1},{{0,0},{0,0}},<||>,dayNameGridder,WeekdayNames[],dayGridder,#2,#3]&}, With[ {monthCells=MapThread[monthGridder,{MonthNames1582France,Offsets1582France,Map[ToString,Range/@MonthLengths1582France,{2}]}], octoberCells=DataGrid[{1},{2},{0,0},Switch[#,"4"|"15",{{1,1},{1,1}},_,{{0,0},{0,0}}],<|"alignment"->{-1,1},"border"->"|","background"->Switch[#,"4"|"15","|",_," "]|>,{{Characters[#]}}]&/@ArrayPad[DatesByMonth1582France[[10]],{Offsets1582France[[10]],0},""]}, With[ {octoberGrid= DataGrid[{2,1},{0,0},{{1,1},{1,1}},<|"border"->"*"|>, {monthNameGridder[{{Characters[MonthNames1582France[[10]]]}}], DataGrid[{1+Ceiling[Length@octoberCells/7],7},{0,1},{{0,0},{0,0}},<|"alignment"->{0,0}|>,octoberCells]}]}, DataGrid[{2,1},{2,0},{{0,0},{0,0}},<||>,{yearBanner,DataGrid[{3,4},{2,4},{{0,0},{0,0}},<|"alignment"->{-1,0}|>,ReplacePart[monthCells,10->octoberGrid]]}]]]]]//AsString