Simple test

Ensure your device works with this simple test.

examples/uschedule_simpletest.py
 1# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
 2# SPDX-FileCopyrightText: Copyright (c) 2021 Nathan Byrd
 3
 4# SPDX-License-Identifier: MIT
 5
 6import time
 7import uschedule as schedule
 8
 9
10def greet():
11    print("Hello, world!")
12
13
14# Note: pass functions, not function calls - i.e. "greet", not "greet()"
15
16# schedule every 10 seconds
17schedule.every(10).seconds.do(greet)
18
19# schedule every 10 minutes
20schedule.every(10).minutes.do(greet)
21
22# schedule once a day
23schedule.every().day.at("10:30").do(greet)
24
25# schedule from 5 to 10 minutes
26schedule.every(5).to(10).minutes.do(greet)
27
28# schedule on a particular day
29schedule.every().monday.do(greet)
30
31# schedule day and time
32schedule.every().wednesday.at("13:15").do(greet)
33
34# schedule once a minute at seventeen seconds
35schedule.every().minute.at(":17").do(greet)
36
37
38while True:
39    # Run any pending jobs
40    schedule.run_pending()
41    time.sleep(1)

Additional utilities

Additional utilities that are available

examples/uschedule_util.py
 1# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
 2# SPDX-FileCopyrightText: Copyright (c) 2021 Nathan Byrd
 3
 4# SPDX-License-Identifier: MIT
 5
 6import time
 7import uschedule as schedule
 8
 9
10def greet():
11    print("Hello, world!")
12
13
14# schedule every 10 seconds
15schedule.every(10).seconds.do(greet)
16
17# Get the datetime of next run
18next_run_datetime = schedule.next_run()
19
20# Get the number of seconds until the next run
21next_run_seconds = schedule.idle_seconds()
22
23# cancel all jobs
24schedule.clear()
25
26# schedule every 1 second
27schedule.every(1).second.do(greet)
28
29while True:
30    # Run any pending jobs
31    schedule.run_pending()
32    time.sleep(1)

Real Time Clock

This module works great in combination with a Real Time Clock (RTC), if one is available on your device. For example:

examples/uschedule_rtc.py
 1# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
 2# SPDX-FileCopyrightText: Copyright (c) 2021 Nathan Byrd
 3
 4# SPDX-License-Identifier: MIT
 5
 6import time
 7import rtc
 8import busio
 9import board
10import adafruit_pcf8523
11import uschedule as schedule
12
13
14def greet():
15    print("Hello, world!")
16
17
18i2c = busio.I2C(board.SCL, board.SDA)
19rtc_device = adafruit_pcf8523.PCF8523(i2c)
20rtc.RTC().datetime = rtc_device.datetime
21
22# schedule every 10 seconds
23schedule.every(10).seconds.do(greet)
24
25# schedule every 10 minutes
26schedule.every(10).minutes.do(greet)
27
28# schedule once a day
29schedule.every().day.at("10:30").do(greet)
30
31# schedule from 5 to 10 minutes
32schedule.every(5).to(10).minutes.do(greet)
33
34# schedule on a particular day
35schedule.every().monday.do(greet)
36
37# schedule day and time
38schedule.every().wednesday.at("13:15").do(greet)
39
40# schedule once a minute at seventeen seconds
41schedule.every().minute.at(":17").do(greet)
42
43
44while True:
45    # Run any pending jobs
46    schedule.run_pending()
47    time.sleep(1)