skillfed

APScheduler

In-process task scheduler with Cron-like capabilities

apscheduler Permissive license MIT Active 7,605 v3.11.3 released

Install

apscheduler on PyPI

pip

pip install apscheduler

uv

uv add apscheduler

poetry

poetry add apscheduler

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.8)
Install friction low — pure-Python wheel
Runtime dependencies 2 — tzlocal, backports.zoneinfo
Maintenance actively maintained — 46 days since the last release
Last repo commit
First released
Popularity one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13)
Known vulnerabilities none known (OSV.dev, checked 2026-08-13)

Evidence: apscheduler-3.11.3-py3-none-any.whl

Keywords: scheduling, cron

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

About APScheduler

from the package's own PyPI description — quoted content, verbatim

.. image:: https://github.com/agronholm/apscheduler/workflows/Python%20codeqa/test/badge.svg?branch=3.x :target: https://github.com/agronholm/apscheduler/actions?query=workflow%3A%22Python+codeqa%2Ftest%22+branch%3A3.x :alt: Build Status .. image:: https://coveralls.io/repos/github/agronholm/apscheduler/badge.svg?branch=3.x :target: https://coveralls.io/github/agronholm/apscheduler?branch=3.x :alt: Code Coverage .. image:: https://readthedocs.org/projects/apscheduler/badge/?version=3.x :target: https://apscheduler.readthedocs.io/en/master/?badge=3.x :alt: Documentation

Advanced Python Scheduler (APScheduler) is a Python library that lets you schedule your Python code to be executed later, either just once or periodically. You can add new jobs or remove old ones on the fly as you please. If you store your jobs in a database, they will also survive scheduler restarts and maintain their state. When the scheduler is restarted, it will then run all the jobs it should have run while it was offline [#f1]_.

Among other things, APScheduler can be used as a cross-platform, application specific replacement to platform specific schedulers, such as the cron daemon or the...

Read as markdown · JSON record · Source repository · Docs

AI interpretation — verify before relying

AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page

APScheduler is an in-process task scheduler that lets you run Python code on a schedule—once, at intervals, or using cron expressions—with support for persistent job storage and multiple execution frameworks.

Low friction: pure Python wheel with only two lightweight runtime dependencies (tzlocal and backports.zoneinfo). Actively maintained with recent releases and strong community engagement (7605 GitHub stars).

MIT license permits commercial and private use with minimal restrictions—you may use, modify, and distribute APScheduler freely provided you include the original license notice.

Usage

from apscheduler.schedulers.background import BackgroundScheduler
import atexit

sched = BackgroundScheduler()
sched.add_job(lambda: print('Job'), 'interval', seconds=10)
sched.start()
atexit.register(sched.shutdown)

Python 3.8 or later required; tzlocal and backports.zoneinfo must be installed (pulled in automatically).

Verdict: APScheduler is a mature, well-maintained production-grade scheduler with no known vulnerabilities, minimal dependencies, and broad framework integration. Its permissive MIT license and active development make it a reliable choice for embedding scheduling into Python applications.

Needs verification

  • Whether the scheduler persists jobs across restarts without explicit database configuration.
  • Performance characteristics under high job volume or with large job queues.
  • Compatibility guarantees with Python 3.14 (listed in classifiers but may be pre-release).
python task schedulercron scheduling libraryjob scheduling frameworkrecurring task executionbackground job schedulerinterval-based task runnerpersistent job storage

Similar packages