Which Rules event can I use to send a weekly mail to all users using Rules?
Below is a blue print of how I would resolve this challenge, without any custom code needed ...

Step 1: Enable the 'Rules Once per Day' module

Have a look at the "Rules Once per Day" module. Here is how it works (as per the comment in issue 2495775, from the module owner):


You specify a trigger hour on the administration settings page for this module.
The Rule trigger will then run when cron tasks are first run after the start of that hour. The actual run time will depend on your cron task timings.


So this is another way to understand/Read this:


The "Event" will only be triggered when a cron job is run.
And that event will only be triggered 1 time / day, i.e. "next time cron runs after the trigger hour has passed".


On top of that, also note what's mentioned on its project page, ie:


  The module also provides a "Day of the week is a" Rules condition, to further restrict actions to being run on specific day(s) of the week, on working days only, or at weekends only.


With that, you should be able to adapt any rule to perform its rules actions only once a week.

Step 2: Create your custom rule

As per your "mail to all users" requirement (for which you want to use the Rules module), just create some custom rule to do so. The most straight forward Rules Action to use for this, seems to be "Send an eMail to all users of a selected role", whereas role is just authenticated users.

If however you want more granularity in the set of users to be selected, you could use the Views Rules module instead. for more details on such approach, refer to the Plan b part of my answer to "What&#39;s wrong in my rule for sending e-mails using VBO?".