--- id: schedule version: "1.2.2" license: MIT License license_treatment: permissive maintenance: dormant --- # schedule — Job scheduling for humans. License: permissive · Maintenance: dormant · Downloads: 9.6M/mo ## 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 above — 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 pip install schedule uv add schedule 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_current - Install friction: low - Maintenance: dormant - Downloads: 9.6M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags job scheduling python, periodic task runner, cron alternative python, in-process scheduler, run function at interval, schedule jobs human syntax, lightweight task scheduling, job-scheduling, periodic-tasks, in-process [View on SkillFed](https://skillfed.io/packages/schedule) · [View on PyPI](https://pypi.org/project/schedule/)