One solution with the event system would be as follows:
Let's say you have 2 chests that you want to reset each week. Suppose the switches are "Chest1" and "Chest2".
Create a player variable. I'll call it "Reset Chests". First it is set to 0.
Now let's say a week passes and you want to reset all those switches for every player.
Create a Common Event. Trigger: "Autorun". Execution condition: player variable "Reset Chests" does not equal to 1.
In this event you set "chest1", "chest2" to false. Also, you set the "Reset Chests" variable to 1, so the reset won't happen again for that player.
Let's say one more week passes, what do you do now? Easy, you just go to the same common event and change the execution condition to player variable "Reset Chests" does not equal to 2. Then, instead of setting
that same variable to 1, you set it to 2.
The only problem here is that you still have to manually change those two values each week, although it's a lot easier than manually changing the switches from the database (unless you have a script that automatically does that).
It's not possible at the moment since there's no event command to force the player to cast a spell, so by calling a common event you'll be able to take an item from the player but you won't be able to cast any additional spell.