skillfed

schedule

Job scheduling for humans.

schedule v1.2.2 9.6M downloads/30d#1,517 on PyPI12,258
Permissive license MIT License DORMANT released

What it is and what it does

Schedule is a lightweight, in-process job scheduler that lets you define periodic tasks using a natural, chainable API. Instead of writing cron expressions or managing separate daemon processes, you call methods like `schedule.every(10).seconds.do(job)` or `schedule.every().monday.do(job)` to register functions, then repeatedly call `schedule.run_pending()` in your main loop to execute them on time. It has no external dependencies and works entirely within your Python process.

The package is designed for simple, synchronous periodic tasks—background jobs, polling, cleanup routines, or monitoring checks that fit naturally into an existing application. It is not a distributed task queue or a replacement for systems like Celery; it is meant for tasks you want to run locally and repeatedly on a predictable schedule. With no active development since mid-2024 but stable production status and broad Python version support (3.7–3.12), it remains a reliable choice for straightforward scheduling needs.

Use it for:

  • Run database cleanup or maintenance tasks at fixed intervals within a long-running application.
  • Poll an external API or service periodically and process the results.
  • Send periodic status reports, notifications, or reminders at specific times of day.
  • Execute background health checks or monitoring tasks on a recurring schedule.
  • Trigger data synchronization or cache refresh jobs at regular intervals.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Schedule provides a human-friendly API for running Python functions periodically at specified intervals or times without requiring external processes or dependencies.

Yes. Schedule is a mature, zero-dependency library with proven stability (12258 stars, Production/Stable status) and broad Python version support. Install friction is minimal and there are no known security vulnerabilities. The dormant maintenance status is not a concern given the package's simplicity and stability. It is the right choice if you need lightweight in-process job scheduling; avoid it only if you need distributed task execution, complex retry logic, or integration with external job queues.

Install

schedule on PyPI

pip

pip install schedule

uv

uv add schedule

poetry

poetry add schedule

Installing schedule

Before you install

Installation is straightforward with no external dependencies. The package is dormant (last release 2024-05-25, 811 days ago) but marked Production/Stable and carries 12258 repository stars, suggesting it is mature and widely used rather than actively developed.

License in practice

MIT License (permissive) places no restrictions on use, modification, or distribution in commercial or private projects.

Quickstart

pip install schedule

import schedule
import time

def job():
    print("Working...")

schedule.every(10).seconds.do(job)
while True:
    schedule.run_pending()
    time.sleep(1)

Requires Python 3.7 or later. The scheduler runs in the main thread and blocks on the while loop; integration with async frameworks or other event loops requires additional coordination.

Verify before relying

  • Whether the package handles daylight saving time transitions correctly across timezones.
  • Performance characteristics when managing hundreds or thousands of scheduled jobs simultaneously.
  • How the scheduler behaves if system time is adjusted backward or forward.

Package facts

License MIT License (permissive)
Python support supports the current Python release (>=3.7)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance dormant — 811 days since the last release
Last repo commit
First released
Downloads 9,614,282/month — #1,517 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: schedule-1.2.2-py3-none-any.whl

Keywords: schedule, periodic, jobs, scheduling, clockwork, cron, scheduler, job scheduling

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Tags

job scheduling pythonperiodic task runnercron alternative pythonin-process schedulerrun function at intervalschedule jobs human syntaxlightweight task scheduling
job-schedulingperiodic-tasksin-process

More Software Development packages