Unfortunately, there are not any commands implemented in Notion for working with recurrent tasks, but on the internet, you can find some templates for working with tasks that have regular intervals ( For example: watering your plants every third day) as Allan Lecter´s template, but for the students or for the people who take or give courses, most of the time we deal with recurring tasks which occur in specifics days of the week (For example French classes every Monday, Wednesday and Friday) and they can not be implemented with these templates. This is why I set myself the task of creating an intuitive and easy-to-use code for Weekly Recurring Tasks.

How do I create a Weekly agenda?

The most common form of creating a sort of agenda in Notion is first making a DATABASE with all the activities for to-do (this is when the magic happens) after creating the DATABASE in other Page you create the agenda itself (use one of the thousands of templates for that) and for watching the activities only insert a link of the DATABASE and use the Filter options and the properties for only watch the activities you need to see in this part of the agenda (for that is useful add a column for tags like school, homework, etc).

Creating a database for a Weekly Task Agenda

This is properly the template itself, so for that ww make this small table as example below i going to put con codes to copy if it's the only thing you're looking for

Example

Example

Code to copy

daystoNumbers

if(not(empty(prop("Days of the week"))),replace(replace(replace(replace(replace(replace(replace(prop("Days of the week"), "Monday", "1"), "Friday", "5"), "Sunday", "0"), "Thursday", "4"), "Wednesday", "3"), "Tuesday", "2"), "Saturday", "6"), format(day(prop("Date1"))))

dateAdjust

dateAdd(dateAdd(dateSubtract(dateSubtract(now(), minute(now()), "minutes"), hour(now()), "hours"), minute(prop("Date1")), "minutes"), hour(prop("Date1")), "hours")

Date

if(prop("Type") == "One-Time", prop("Date1"), if(test(prop("daysToNumbers"), format(day(prop("dateAdjust")))), prop("dateAdjust"), if(test(prop("daysToNumbers"), format((day(prop("dateAdjust")) + 1) % 7)), dateAdd(prop("dateAdjust"), 1, "days"), if(test(prop("daysToNumbers"), format((day(prop("dateAdjust")) + 2) % 7)), dateAdd(prop("dateAdjust"), 2, "days"), if(test(prop("daysToNumbers"), format((day(prop("dateAdjust")) + 3) % 7)), dateAdd(prop("dateAdjust"), 3, "days"), if(test(prop("daysToNumbers"), format((day(prop("dateAdjust")) + 4) % 7)), dateAdd(prop("dateAdjust"), 4, "days"), if(test(prop("daysToNumbers"), format((day(prop("dateAdjust")) + 5) % 7)), dateAdd(prop("dateAdjust"), 5, "days"), if(test(prop("daysToNumbers"), format((day(prop("dateAdjust")) + 6) % 7)), dateAdd(prop("dateAdjust"), 6, "days"), now()))))))))

Explain of the code

Now we are writing the code of each of the formulas in a "elegant form" and and give brievely explanetion

Elegant code for "daystoNumbers" (not copy)

if(not(empty(prop("Days of the week"))),
	   replace(
		   replace(
			   replace(
				   replace(
					   replace(
						   replace(
							   replace(
								   prop("Days of the week"), "Monday", "1"
								  )
					  , "Friday", "5")
				   , "Sunday", "0")
			, "Thursday", "4")
		 , "Wednesday", "3")
	 , "Tuesday", "2")
, "Saturday", "6")

  , format(day(prop("Date1")))
  )