Below is a full script that you can use to create your Calendar table.
'DateKey' is the column from the next Table you can customize by just replacing it with yours or easy part is load your column name as 'DateKey'
MasterCalendar: Load TempDate AS DateKey, week(TempDate) As Week, Year(TempDate) As Year, Month(TempDate) As Month, Day(TempDate) As Day, 'Q' & ceil(month(TempDate) / 3) AS Quarter, Week(weekstart(TempDate)) & '-' & WeekYear(TempDate) as WeekYear, WeekDay(TempDate) as WeekDay, if(Month(TempDate) >= 7, Year(TempDate) + 1, Year(TempDate)) as FY, // Create a calculated field for the Month-Year combination Left(Month(TempDate), 3) & '-' & Right(Year(TempDate), 2) as MonthYear, // Create a calculated field for the Month-Year combination Left(Month(TempDate), 3) & '-' & Right(if(Month(TempDate) >= 7, Year(TempDate) + 1, Year(TempDate)), 2) as MonthFY, Date(TempDate) as SortDate ;
//=== Generate a temp table of dates === LOAD date(mindate + IterNo()) AS TempDate ,maxdate // Used in InYearToDate() above, but not kept WHILE mindate + IterNo() <= maxdate;
//=== Get min/max dates from Field ===/ LOAD min(FieldValue('DateKey', recno()))-1 as mindate, max(FieldValue('DateKey', recno())) as maxdate AUTOGENERATE FieldValueCount('DateKey');