local eventsfile = {}

--[[-------------------------< Holiday and Event configuration data > ------------------------------------

 Entries take the form:

 [NAME] {             - Name of holiday or event in all-capital letters
   name = ''          - Name of the holiday or event as it would normally appear with mixed case 
   description = ''   - Short description of the holiday
   days = ''          - Number of days (string)
   df = ''            - Default date format (mdy,dmy,iso) - can be overridden by "|df=" in the template 
   datatype = ''      - Where the date is obtained, "calculator" or "localfile"
   datasource = ''    - The data calculator; or a link to the local file 
   source = ''        - Describe the source, used in creating citations.
 }

 If datatype = 'localfile' then addition entries should be added:

   citeurl = ''       - URL where data was obtained
   accessdate = ''    - Date the data was generated

 Some regional holidays may have their own additional custom options as detailed below.

		Blank template:
		[''] = {
				name = '',
				description = '',
				days = ''
				df = '',
				source = '',
				datatype = '',
				datasource = ''
		},

  ]]

--[[-------------------------< Hebrew calendar > ------------------------------------

  Custom options for Hebrew calendar:

    prepend1 = ''     - Prepend text before the first (or only) date eg. "Sunset, <date>"
    prepend2 = ''     - Prepend before the last date eg. "Sunset, <date> - nightfall, <date>"
    startoffset = ''  - Offset the start day by this number (help account for 25hr cycle that starts at Sunset)
    endoffset = ''    - Offset the end day by this number
    endoutoffset = '' - Offset the end day by this number, when the end day occurs outside of Israel

	CAUTION:	{{Hebrew year}} is only accurate for holidays between 1 Adar (or 1 Adar II in leap year) and 
				29 Cheshvan. It is not accurate for holidays in Kislev, Tevet and Shevat. It is also not 
				accurate for holidays that are moveable within the Hebrew calendar such as all Fast Days, or
				a holiday that moves when it falls on Sabbath. 

  ]]

local hebrew_calendar = {
		['ROSH HASHANAH'] = {
				name = 'Rosh Hashanah',
				description = 'The Jewish New Year',                  
				days = '3',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}-1 days}}'
		},
		['ROSH HASHANAH LABEHEMAH'] = {
				name = 'Rosh Hashanah LaBehemah',
				description = 'A day on which shepherds determined which of their mature animals were to be tithed',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}-30 days}}'
		},
		['HANUKKAH'] = {
				name = 'Hanukkah',
				description = 'The Jewish festival of rededication, also known as the Festival of Lights',
				days = '9',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				citeurl = 'https://www.hebcal.com/holidays/chanukah',
				accessdate = '2018-08-26',
				source = 'Hebcal.com by Danny Sadinoff and Michael J. Radwin (CC-BY-3.0)',
				datatype = 'localfile',
				datasource = 'Module:Calendar date/localfiles/Hanukkah'
		},
		['PASSOVER'] = {
				name = 'Passover',
				description = 'Liberation by God from slavery in ancient Egypt and freedom as a nation ',
				days = '9',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				startoffset = '-1',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}-163 days}}'
		},
		['PASSOVER SEDER'] = {
				name = 'Passover Seder',
				description = 'To retell the story of the Exodus from Egypt',
				days = '1',
				df = 'dmy',
				prepend1 = 'Evening',
				prepend2 = 'none',
				startoffset = '-1',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}-163 days}}' 
		},
		['YOM HAALIYAH'] = {
				name = 'Yom HaAliyah',
				description = 'To commemorate the Biblical events of the Jewish People entering the Land of Israel (historic)',
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}-169 days}}' 
		},
		['YOM HAALIYAH (OBSERVED)'] = {
				name = 'Yom HaAliyah (observed)',
				description = 'To commemorate the Biblical events of the Jewish People entering the Land of Israel (observed)',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}+35 days}}'
		},
		['COUNTING OF THE OMER'] = {
				name = 'Counting of the Omer',
				description = 'Verbal counting of the forty-nine days between Passover and Shavuot',
				days = '50',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				startoffset = '-1',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}-162 days}}'
		},
		['YOM KIPPUR'] = {
				name = 'Yom Kippur',
				description = 'Day of Atonement',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}+8 days}}'
		},
		['SUKKOT'] = {
				name = 'Sukkot',
				description = 'Feast of Tabernacles',                  
				days = '8',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				endoutoffset = '1',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}+13 days}}'
		},
		['HOSHANA RABBAH'] = {
				name = 'Hoshana Rabbah',
				description = 'The seventh day of Sukkot',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				endoutoffset = '1',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}+19 days}}'
		},
		['PURIM'] = {
				name = 'Purim',
				description = 'Purim celebrated in Jerusalem and walled cities',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}-194 days}}'
		},
		['SIMCHAT TORAH'] = {
				name = 'Simchat Torah',
				description = 'Day of Celebrating the Torah',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				startoffset = '-1',
				endoutoffset = '1',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}+21 days}}'
		},
		['SHEMINI ATZERET'] = {
				name = 'Shemini Atzeret',
				description = 'Eighth Day of Assembly',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				startoffset = '-1',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}+21 days}}'
		},
		['ISRAELI INDEPENDENCE DAY'] = {
				name = 'Israeli Independence Day',
				description = 'Israeli Independence Day or Yom HaAtzma\'ut',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				citeurl = 'https://www.hebcal.com/holidays/yom-haatzmaut',
				accessdate = '2018-08-26',
				source = 'Hebcal.com by Danny Sadinoff and Michael J. Radwin (CC-BY-3.0)',
				startoffset = "-1",
				datatype = 'localfile',
				datasource = 'Module:Calendar date/localfiles/Israeli Independence Day' -- shared file
		},
		['YOM HAZIKARON'] = {
				name = 'Yom Hazikaron',
				description = 'Memorial Day',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				citeurl = 'https://www.hebcal.com/holidays/yom-hazikaron',
				accessdate = '2018-08-26',
				source = 'Hebcal.com by Danny Sadinoff and Michael J. Radwin (CC-BY-3.0)',
				startoffset = "-2",
				datatype = 'localfile',
				datasource = 'Module:Calendar date/localfiles/Israeli Independence Day' -- shared file
		},
		['YOM HASHOAH'] = {
				name = 'Yom HaShoah',
				description = 'Holocaust Remembrance Day, or Holocaust Day',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				citeurl = 'https://www.hebcal.com/holidays/yom-hashoah',
				accessdate = '2018-08-26',
				source = 'Hebcal.com by Danny Sadinoff and Michael J. Radwin (CC-BY-3.0)',
				startoffset = "-1",
				datatype = 'localfile',
				datasource = 'Module:Calendar date/localfiles/Yom HaShoah'
		},
		['TU BISHVAT'] = {
				name = 'Tu BiShvat',
				description = 'New Year for Trees',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				citeurl = 'https://www.hebcal.com/holidays/tu-bishvat',
				accessdate = '2018-08-26',
				source = 'Hebcal.com by Danny Sadinoff and Michael J. Radwin (CC-BY-3.0)',
				datatype = 'localfile',
				datasource = 'Module:Calendar date/localfiles/Tu BiShvat'
		},
		['LEIL SELICHOT'] = {
				name = 'Leil Selichot',
				description = 'Prayer',                  
				days = '1',
				df = 'dmy',
				prepend1 = 'Evening',
				prepend2 = 'none',
				citeurl = 'https://www.hebcal.com/holidays/leil-selichot',
				accessdate = '2018-08-26',
				source = 'Hebcal.com by Danny Sadinoff and Michael J. Radwin (CC-BY-3.0)',
				datatype = 'localfile',
				datasource = 'Module:Calendar date/localfiles/Leil Selichot'
		},
		['LAG BAOMER'] = {
				name = 'Lag BaOmer',
				description = '33rd day of counting the Omer',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}-131 days}}'
		},
		['SHAVUOT'] = {
				name = 'Shavuot',
				description = 'Festival of Weeks, commemorates the giving of the Torah at Mount Sinai',                  
				days = '3',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}-114 days}}'
		},
		['TISHA B\'AV'] = {
				name = 'Tisha B\'Av',
				description = 'The Ninth of Av, fast commemorating the destruction of the two Temples',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				citeurl = 'https://www.hebcal.com/holidays/tisha-bav',
				accessdate = '2018-08-26',
				source = 'Hebcal.com by Danny Sadinoff and Michael J. Radwin (CC-BY-3.0)',
				datatype = 'localfile',
				datasource = 'Module:Calendar date/localfiles/Tisha B\'Av'
		},
		['PESACH SHENI'] = {
				name = 'Pesach Sheni',
				description = 'Second Passover, one month after Passover',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}-135 days}}'
		},
		['MIMOUNA'] = {
				name = 'Mimouna',
				description = 'North African Jewish celebration related to the ancient Seharane',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}-156 days}}'
		},
		['TU B\'AV'] = {
				name = 'Tu B\'Av',
				description = 'Celebrated as a holiday of love, similar to Valentines Day',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}-46 days}}'
		},
		['SIGD'] = {
				name = 'Sigd',
				description = 'Beta Israel (Ethiopian Jewish) community Yom Kipper',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}+57 days}}'
		},
		['JERUSALEM DAY'] = {
				name = 'Jerusalem Day',
				description = 'Israeli national holiday commemorating the reunification of Jerusalem',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}-121 days}}'
		},
		['SEVENTEENTH OF TAMMUZ'] = {
				name = 'Tzom Tammuz',
				description = 'Fast commemorating the breach of the walls of Jerusalem before the destruction of the Second Temple',                  
				days = '1',
				df = 'dmy',
				citeurl = 'https://www.hebcal.com/holidays/tzom-tammuz',
				accessdate = '2018-08-26',
				source = 'Hebcal.com by Danny Sadinoff and Michael J. Radwin (CC-BY-3.0)',
				datatype = 'localfile',
				datasource = 'Module:Calendar date/localfiles/Tzom Tammuz'
		},
		['TWENTIETH OF SIVAN'] = {
				name = 'Twentieth of Sivan',
				description = 'Established by the United States Congress in honor of the Rebbe, Rabbi Menachem Mendel Schneerson',                  
				days = '1',
				df = 'dmy',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-20-3}}}}-167 days}}'
		},
		['EDUCATION AND SHARING DAY'] = {
				name = 'Education and Sharing Day',
				description = 'Established by the United States Congress in honor of the Rebbe, Rabbi Menachem Mendel Schneerson',                  
				days = '1',
				df = 'dmy',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}-167 days}}'
		},
		['YUD ALEPH NISSAN'] = {
				name = 'Yud Aleph Nissan',
				description = 'The birthday of Rabbi Menachem Mendel Schneerson on 11 Nissan',                  
				days = '2',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}-168 days}}'
		},
		['YUD BEIS–YUD GIMMEL TAMMUZ'] = {
				name = 'Yud Beis–Yud Gimmel Tammuz',
				description = 'Commemorates the liberation of Rabbi Yosef Yitzchak Schneersohn',                  
				days = '3',
				df = 'dmy',
				prepend1 = 'Sunset',
				prepend2 = 'nightfall',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|@{{Hebrew year/rhdatum|{{#timel:xjY|YYYY-11-1}}}}-78 days}}'	    	
	    },
	}

--[[-------------------------< Christian calendar > ------------------------------------

  ]]
  
local christian_events = {
	    ['SEPTUAGESIMA'] = {
				name = 'Septuagesima',
				description = 'The ninth Sunday before Easter',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=Septuagesima|format=Y-m-d}}'
		},
	    ['SEXAGESIMA'] = {
				name = 'Sexagesima',
				description = 'Second Sunday before Ash Wednesday',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-56|format=Y-m-d}}'
		},
	    ['FAT THURSDAY'] = {
				name = 'Fat Thursday',
				description = 'Christian feast marking the last Thursday before Lent',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-52|format=Y-m-d}}'
		},
		['QUINQUAGESIMA'] = {
				name = 'Quinquagesima',
				description = 'Sunday before Ash Wednesday',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-49|format=Y-m-d}}'
		},
		['SHROVE MONDAY'] = {
				name = 'Shrove Monday',
				description = 'The Monday before Ash Wednesday',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-48|format=Y-m-d}}'
		},
		['CLEAN MONDAY'] = {
				name = 'Clean Monday',
				description = 'First day of Lent (Eastern)',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-48|format=Y-m-d|method=Eastern}}'
		},
		['SHROVE TUESDAY'] = {
				name = 'Shrove Tuesday',
				description = 'The day before Ash Wednesday',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-47|format=Y-m-d}}'
		},
		['MARDI GRAS'] = {
				name = 'Mardi Gras',
				description = 'Celebration period before fasting season of Lent',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-47|format=Y-m-d}}'
		},
		['ASH WEDNESDAY'] = {
				name = 'Ash Wednesday',
				description = 'First day of Lent (Western)',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-46|format=Y-m-d}}'
		},
		['MOTHERING SUNDAY'] = {
				name = 'Mothering Sunday',
				description = 'Honouring one\'s mother',                  
				days = '1',
				df = 'dmy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-21|format=Y-m-d}}'
		},
		['LAETARE SUNDAY'] = {
				name = 'Laetare Sunday',
				description = 'Fourth Sunday of Lent',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-21|format=Y-m-d}}'
		},
		['LAZARUS FRIDAY'] = {
				name = 'Lazarus Friday',
				description = 'Last day of Lent (Eastern)',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-9|format=Y-m-d|method=Eastern}}'
		},
		['LAZARUS SATURDAY'] = {
				name = 'Lazarus Saturday',
				description = 'Last day of Lent (Eastern)',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-8|format=Y-m-d|method=Eastern}}'
		},
		['HOLY WEEK'] = {
				name = 'Holy Week',
				description = 'Last week of Lent',                  
				days = '7',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-7|format=Y-m-d}}'
		},
		['HOLY WEEK (EASTERN)'] = {
				name = 'Holy Week (Eastern)',
				description = 'Week preceding Easter',                  
				days = '7',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-7|format=Y-m-d|method=Eastern}}'
		},
		['PALM SUNDAY'] = {
				name = 'Palm Sunday',
				description = 'Feast commemorating Jesus\'s triumphal entry into Jerusalem',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-7|format=Y-m-d}}'
		},
		['PALM SUNDAY (EASTERN)'] = {
				name = 'Palm Sunday (Eastern)',
				description = 'Feast commemorating Jesus\'s triumphal entry into Jerusalem',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-7|format=Y-m-d|method=Eastern}}'
		},
		['HOLY MONDAY'] = {
				name = 'Holy Monday',
				description = 'Monday of Holy Week',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-6|format=Y-m-d}}'
		},
		['HOLY MONDAY (EASTERN)'] = {
				name = 'Holy Monday (Eastern)',
				description = 'Monday of Holy Week',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-6|format=Y-m-d|method=Eastern}}'
		},
		['HOLY TUESDAY'] = {
				name = 'Holy Tuesday',
				description = 'Tuesday of Holy Week',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-5|format=Y-m-d}}'
		},
		['HOLY TUESDAY (EASTERN)'] = {
				name = 'Holy Tuesday (Eastern)',
				description = 'Tuesday of Holy Week',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-5|format=Y-m-d|method=Eastern}}'
		},
		['HOLY WEDNESDAY'] = {
				name = 'Holy Wednesday',
				description = 'Wednesday of Holy Week',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-4|format=Y-m-d}}'
		},
		['HOLY WEDNESDAY (EASTERN)'] = {
				name = 'Holy Wednesday (Eastern)',
				description = 'Wednesday of Holy Week',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-4|format=Y-m-d|method=Eastern}}'
		},
		['MAUNDY THURSDAY'] = {
				name = 'Maundy Thursday',
				description = 'Thursday before Easter',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-3|format=Y-m-d}}'
		},
		['MAUNDY THURSDAY (EASTERN)'] = {
				name = 'Maundy Thursday (Eastern)',
				description = 'Thursday before Easter',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-3|format=Y-m-d|method=Eastern}}'
		},
		['GOOD FRIDAY'] = {
				name = 'Good Friday',
				description = 'Friday before Easter',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-2|format=Y-m-d}}'
		},
		['GOOD FRIDAY (EASTERN)'] = {
				name = 'Good Friday (Eastern)',
				description = 'Friday before Easter',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-2|format=Y-m-d|method=Eastern}}'
		},
		['HOLY SATURDAY'] = {
				name = 'Holy Saturday',
				description = 'Day before Easter',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-1|format=Y-m-d}}'
		},
		['HOLY SATURDAY (EASTERN)'] = {
				name = 'Holy Saturday (Eastern)',
				description = 'Day before Easter',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-1|format=Y-m-d|method=Eastern}}'
		},
		['EASTER'] = {
				name = 'Easter',
				description = 'Celebrates the resurrection of Jesus',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|format=Y-m-d}}'
		},
		['EASTER (EASTERN)'] = {
				name = 'Easter (Eastern)',
				description = 'Celebrates the resurrection of Jesus',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|format=Y-m-d|method=Eastern}}'
		},
		['EASTER MONDAY'] = {
				name = 'Easter Monday',
				description = 'Day after Easter',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+1|format=Y-m-d}}'
		},
		['EASTER MONDAY (EASTERN)'] = {
				name = 'Easter Monday (Eastern)',
				description = 'Day after Easter',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+1|format=Y-m-d|method=Eastern}}'
		},
		['EASTER TUESDAY'] = {
				name = 'Easter Tuesday',
				description = 'Tuesday after Easter',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+2|format=Y-m-d}}'
		},
		['EASTER TUESDAY (EASTERN)'] = {
				name = 'Easter Tuesday (Eastern)',
				description = 'Tuesday after Easter',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+2|format=Y-m-d|method=Eastern}}'
		},
		['EASTER FRIDAY'] = {
				name = 'Easter Friday',
				description = 'Friday after Easter',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+5|format=Y-m-d}}'
		},
		['EASTER FRIDAY (EASTERN)'] = {
				name = 'Easter Friday (Eastern)',
				description = 'Friday after Easter',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+5|format=Y-m-d|method=Eastern}}'
		},
		['ASCENSION THURSDAY'] = {
				name = 'Ascension Thursday',
				description = 'Commemorates the Ascension of Jesus into Heavan',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+39|format=Y-m-d}}'
		},
		['ASCENSION THURSDAY (EASTERN)'] = {
				name = 'Ascension Thursday (Eastern)',
				description = 'Commemorates the Ascension of Jesus into Heavan',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+39|format=Y-m-d|method=Eastern}}'
		},
		['PENTECOST'] = {
				name = 'Pentecost',
				description = 'Celebrates the descent of the Holy Spirit',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+49|format=Y-m-d}}'
		},
		['PENTECOST (EASTERN)'] = {
				name = 'Pentecost (Eastern)',
				description = 'Celebrates the descent of the Holy Spirit',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+49|format=Y-m-d|method=Eastern}}'
		},
		['WHIT MONDAY'] = {
				name = 'Whit Monday',
				description = 'Celebrates the Monday after Pentecost',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+50|format=Y-m-d}}'
		},
		['WHIT MONDAY (EASTERN)'] = {
				name = 'Whit Monday (Eastern)',
				description = 'Celebrates the Monday after Pentecost',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+50|format=Y-m-d|method=Eastern}}'
		},
		['WHIT TUESDAY'] = {
				name = 'Whit Tuesday',
				description = 'Celebrates the Tuesday after Pentecost',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+51|format=Y-m-d}}'
		},
		['WHIT TUESDAY (EASTERN)'] = {
				name = 'Whit Tuesday (Eastern)',
				description = 'Celebrates the Tuesday after Pentecost',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+51|format=Y-m-d|method=Eastern}}'
		},
		['WHIT FRIDAY'] = {
				name = 'Whit Friday',
				description = 'Celebrates the Friday after Pentecost',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+54|format=Y-m-d}}'
		},
		['TRINITY SUNDAY'] = {
				name = 'Trinity Sunday',
				description = 'First Sunday after Pentecost',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+56|format=Y-m-d}}'
		},
		['TRINITY SUNDAY (EASTERN)'] = {
				name = 'Trinity Sunday (Eastern)',
				description = 'First Sunday after Pentecost',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+49|format=Y-m-d|method=Eastern}}'
		},
		['CORPUS CHRISTI'] = {
				name = 'Corpus Christi',
				description = 'Feast celebrating the transubstantiation',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+60|format=Y-m-d}}'
		},
		['FEAST OF THE SACRED HEART'] = {
				name = 'Feast of the Sacred Heart',
				description = 'Honoring Jesus Christ\'s physical heart',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=+68|format=Y-m-d}}'
		},
	}
	
--[[ -------------------------< World Carnivals > ------------------------------------

		See: Category:Carnivals by country

  ]]

local carnivals = {
		['BAHIAN CARNIVAL'] = {
				name = 'Bahian Carnival',
				description = 'Brazilian Carnival in the state of Bahia',                  
				days = '7',
				df = 'mdy',
				prepend1 = "Afternoon",
				prepend2 = "midday",
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-52|format=Y-m-d}}'
		},
	    ['BRAZILIAN CARNIVAL'] = {
				name = 'Brazilian Carnival',
				description = 'Brazilian Carnival',                  
				days = '6',
				df = 'mdy',
				prepend1 = "Afternoon",
				prepend2 = "midday",
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-51|format=Y-m-d}}'
		},
	    ['GOA CARNIVAL'] = {
				name = 'Goa Carnival',
				description = 'Carnival in Goa',                  
				days = '4',
				df = 'mdy',
				prepend1 = "Afternoon",
				prepend2 = "midday",
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-50|format=Y-m-d}}'
		},
		['ORURO CARNIVAL'] = {
				name = 'Oruro Carnival',
				description = 'Carnival in Oruro, Bolivia',                  
				days = '10',
				df = 'mdy',
				prepend1 = "Afternoon",
				prepend2 = "midday",
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-55|format=Y-m-d}}'
		},
		['ROSENMONTAG'] = {
				name = 'Rosenmontag',
				description = 'Event of the German Carnival',                  
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-48|format=Y-m-d}}'
		},
		['BARRANQUILLA\'S CARNIVAL'] = {
				name = 'Barranquilla\'s Carnival',
				description = 'Columbian Carnival',                  
				days = '4',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-50|format=Y-m-d}}'
		},
		['CARNAVAL DE PONCE'] = {
				name = 'Carnaval de Ponce',
				description = 'Ponce, Puerto Rico Carnival',                  
				days = '7',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Easter|Calculate|YYYY|day=-53|format=Y-m-d}}'
		},
	}


--[[ -------------------------< Chinese calendar > ------------------------------------

		See: Category:Chinese traditional festival templates

  ]]

local chinese_events = {
		['BUDDHA\'S BIRTHDAY'] = {
				name = 'Buddha\'s Birthday',
				description = 'Birthday of Buddha',
				days = '1',
				df = 'dmy',
				datatype = 'calculator',
				datasource = '{{ctime:x|YYYY|4|8}}'
		},
		['CHINESE NEW YEAR'] = {
				name = 'Chinese New Year',
				description = 'Chinese New Year',
				days = '1',
				df = 'dmy',
				datatype = 'calculator',
				datasource = '{{ctime:x|YYYY|1|1}}'
		},
		['CHINESE NEW YEAR\'S EVE'] = {
				name = 'Chinese New Year\'s Eve',
				description = 'the day before Chinese New Year',
				days = '1',
				df = 'dmy',
				datatype = 'calculator',
				datasource = '{{#time:Y-m-d|{{ctime:x|YYYY|1|1}}-1 days}}'
		},
		['CHUSEOK'] = {
				name = 'Chuseok',
				description = 'Chuseok',
				days = '3',
				df = 'dmy',
				datatype = 'calculator',
				datasource = '{{ctime:x|YYYY|8|14}}'
		},
		['DONGZHI FESTIVAL'] = {
				name = 'Dongzhi Festival',
				description = 'Dongzhi Festival',
				days = '1',
				df = 'dmy',
				source = '',
				datatype = 'localfile',
				datasource = 'Module:Calendar date/localfiles/Dongzhi Festival'
		},
		['DOUBLE NINTH FESTIVAL'] = {
				name = 'Double Ninth Festival',
				description = 'Double Ninth Festival',
				days = '1',
				df = 'dmy',
				datatype = 'calculator',
				datasource = '{{ctime:x|YYYY|9|9}}'
		},
		['DOUBLE THIRD FESTIVAL'] = {
				name = 'Double Third Festival',
				description = 'Double Third Festival',
				days = '1',
				df = 'dmy',
				source = '',
				datatype = 'calculator',
				datasource = '{{ctime:x|YYYY|3|3}}'
		},
		['DRAGON BOAT FESTIVAL'] = {
				name = 'Dragon Boat Festival',
				description = 'Dragon Boat Festival',
				days = '1',
				df = 'dmy',
				datatype = 'calculator',
				datasource = '{{ctime:x|YYYY|5|5}}'
		},
		['GHOST FESTIVAL'] = {
				name = 'Ghost Festival',
				description = 'Ghost Festival',
				days = '1',
				df = 'dmy',
				datatype = 'calculator',
				datasource = '{{ctime:x|YYYY|7|15}}'
		},
		['GUANYIN\'S BIRTHDAY'] = {
				name = 'Guanyin\'s Birthday',
				description = 'Birthday of Guanyin',
				days = '1',
				df = 'dmy',
				datatype = 'calculator',
				datasource = '{{ctime:x|YYYY|2|19}}'
		},
		['LABA FESTIVAL'] = {
				name = 'Laba Festival',
				description = 'Laba Festival',
				days = '1',
				df = 'dmy',
				source = '',
				datatype = 'calculator',
				datasource = '{{ctime:x|YYYY|12|8}}'
		},
		['LANTERN FESTIVAL'] = {
				name = 'Lantern Festival',
				description = 'Lantern Festival',
				days = '1',
				df = 'dmy',
				datatype = 'calculator',
				datasource = '{{ctime:x|YYYY|1|15}}'
		},
		['LONGTAITOU FESTIVAL'] = {
				name = 'Longtaitou Festival',
				description = 'Longtaitou Festival',
				days = '1',
				df = 'dmy',
				datatype = 'calculator',
				datasource = '{{ctime:x|YYYY|2|2}}'
		},
		['MID-AUTUMN FESTIVAL'] = {
				name = 'Mid-Autumn Festival',
				description = 'Mid-Autumn Festival',
				days = '1',
				df = 'dmy',
				datatype = 'calculator',
				datasource = '{{ctime:x|YYYY|8|15}}'
		},
		['QIXI FESTIVAL'] = {
				name = 'Qixi Festival',
				description = 'Qixi Festival',
				days = '1',
				df = 'dmy',
				datatype = 'calculator',
				datasource = '{{ctime:x|YYYY|7|7}}'
		},
		['TSUKIMI'] = {
				name = 'Tsukimi',
				description = 'Tsukimi',
				days = '4',
				df = 'dmy',
				datatype = 'calculator',
				datasource = '{{ctime:x|YYYY|8|15}}'
		},
		['WEIYA'] = {
				name = 'Weiya',
				description = 'Weiya',
				days = '1',
				df = 'dmy',
				source = '',
				datatype = 'calculator',
				datasource = '{{ctime:x|YYYY|12|16}}'
		},
	}

--- -------------------------< Misc holidays and events > ------------------------------------

local misc_events = {
		['MEMORIAL DAY'] = {
				name = 'Memorial Day',
				description = 'Memorial Day in the United States',
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Calendar date/recurring|calculate|year=YYYY|month=5|weeknumber=-1|dayofweek=2}}'
		},
		['LABOR DAY'] = {
				name = 'Labor Day',
				description = 'Labor Day in the United States',
				days = '1',
				df = 'mdy',
				citeurl = 'https://www.timeanddate.com/holidays/us/labor-day',
				accessdate = '2018-08-27',
				source = 'Public Domain information from timeanddate.com',
				datatype = 'localfile',
				datasource = 'Module:Calendar date/localfiles/Labor Day'
		},
		['THANKSGIVING'] = {
				name = 'Thanksgiving',
				description = 'Thanksgiving in the United States',
				days = '1',
				df = 'mdy',
				datatype = 'calculator',
				datasource = '{{#invoke:Calendar date/recurring|calculate|year=YYYY|month=11|weeknumber=4|dayofweek=5}}'
		},
			['MIDSUMMER'] = {
				name = 'Midsummer',
				description = 'Midsummer in Sweden',
				days = '1',
				df = 'dmy',
				citeurl = 'https://sweden.se/culture/celebrations/midsummer',
				accessdate = '2022-05-31', 
				source = 'Saturday between June 20-26',
				datatype = 'localfile',
				datasource = 'Module:Calendar date/localfiles/Midsummer'
		},
			['ALLSAINTS'] = {
				name = 'All Saints Day',
				description = 'All Saints Day in Sweden',
				days = '1',
				df = 'dmy',
				citeurl = 'https://sweden.se/culture/celebrations/all-saints-day-in-sweden',
				accessdate = '2022-05-31', 
				source = 'Saturday between October 31-November 6',
				datatype = 'localfile',
				datasource = 'Module:Calendar date/localfiles/All Saints Day'
		},		
	}

return {hebrew_calendar=hebrew_calendar, christian_events=christian_events, carnivals=carnivals, chinese_events=chinese_events, misc_events=misc_events}