Schedular Events

can anyone demo how we can write simple schedular events in ERPNext Cloud Hosted in server Script.

thanks in advance.

are you talking about crons ? a code that runs in a specific datetime ?

yes based on time.

open your custom app ( or open frappe if you don’t have a custom app).
the same folder where the file hooks.py is . create a python file , with any function you want .
next, open hooks.p . find a dict name “scheduler_events” . and add the path of your function to any of the events you want (all,hourly,weekly…) or create a cron event (if you dont already have it) . this way :

scheduler_events = {
          "cron": {
                   "0 0 * * *": [
                        "frappe.file_name.function_name",
                ]
        },
       "all": [ ...

The above function will be triggered every 00:00 (midnight) . (check the website ‘crontab guri’ to learn how to write crons )
that’s it

1 Like

i think we cannot write hooks.py on cloud hosted erpnext.i am using cloud hosted erpnext. i want to run scheduler events on cloud hosted erpnext

can’t you just open the server and write codes in the server side ?

no in cloud hosted erpnext we cannot on developer mode.


are you talking about this.


this schedular event i want to write.

just chose the frequency and write your script there

can your share one simple example.
i want to trigger it at 6 PM every evening everyday.
can we do that??

you can make it hourly , and check the time if it’s 6 run the code .
however the server script has very limited resources . you can’t write much code here .
try to open the server and write it in the hooks.py

if you had done this type of code can you share?

I’ve done many . I just told you how to write it . just open the server . there is no way you installed erpnext without access to the back server . how can you upgrade ? switch branches if you don’t have access ?

okay will do

i run the schedular event but after execute it is complete but mail not send. and it is not in Email Queue also.

what is the issue?

indent preformatted text by 4 spaces

def send_mail_custom(recipient,content):
frappe.sendmail(recipients=[‘rehan@test.com’],
sender="notifications@test.com",
subject=“Purchase Order Alert”, content=content)

this is the code.