Last modified: Mar 27, 2025 By Alexander Williams

Install APScheduler in Python Step by Step

APScheduler is a powerful Python library for scheduling tasks. It helps automate jobs at specific times or intervals. This guide will walk you through the installation and basic usage.

What Is APScheduler?

APScheduler is a lightweight but feature-rich task scheduler for Python. It supports multiple scheduling methods. These include cron-like schedules and interval-based execution.

Common use cases include sending emails, running backups, or updating data. It works well for both small and large applications.

Prerequisites

Before installing APScheduler, ensure you have Python installed. You can check by running:


python --version

If you get a ModuleNotFoundError, refer to our guide on solving Python module errors.

Step 1: Install APScheduler

Use pip to install APScheduler. Run this command in your terminal:


pip install apscheduler

This will download and install the latest version. For specific versions, add ==version_number after the package name.

Step 2: Verify Installation

After installation, verify it works. Open a Python shell and try importing it:

 
import apscheduler
print(apscheduler.__version__)

If no errors appear, the installation was successful.

Step 3: Basic Usage Example

Here's a simple example to schedule a function:

 
from apscheduler.schedulers.blocking import BlockingScheduler

def my_job():
    print("This job runs every 5 seconds!")

scheduler = BlockingScheduler()
scheduler.add_job(my_job, 'interval', seconds=5)
scheduler.start()

This code creates a job that runs every 5 seconds. The BlockingScheduler keeps the program running.

Step 4: Schedule Types

APScheduler offers three main scheduling methods:

1. Interval: Runs at fixed time intervals.

2. Date: Runs once at a specific time.

3. Cron: Runs at specific times like UNIX cron.

Step 5: Cron Scheduling Example

Here's how to use cron-like scheduling:

 
from apscheduler.schedulers.blocking import BlockingScheduler

def cron_job():
    print("This runs at 8:30 AM every weekday")

scheduler = BlockingScheduler()
scheduler.add_job(cron_job, 'cron', day_of_week='mon-fri', hour=8, minute=30)
scheduler.start()

This job runs at 8:30 AM from Monday to Friday.

Step 6: Job Stores

APScheduler can store jobs in different backends. These include memory, SQL databases, or MongoDB. Here's an SQLite example:

 
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore

jobstores = {
    'default': SQLAlchemyJobStore(url='sqlite:///jobs.sqlite')
}

scheduler = BlockingScheduler(jobstores=jobstores)
# Add jobs as before

This persists jobs between program restarts.

Common Issues

If you encounter import errors, check your Python environment. Sometimes virtual environments can cause issues.

For timezone problems, always specify timezones in your jobs. APScheduler uses UTC by default.

Conclusion

APScheduler is a versatile tool for task automation in Python. With this guide, you can now install and start using it. Experiment with different schedulers and job stores for your needs.

Remember to handle exceptions and log job outputs. This ensures your scheduled tasks run smoothly. For more complex setups, check the official APScheduler documentation.