agronholm/apscheduler

Task scheduling library for Python

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 55 minutes ago
Added to GitGenius on September 8th, 2026
Created on March 27th, 2016
Open Issues & Pull Requests: 53 (+0)
GitHub issues: Enabled
Number of forks: 782
Total Stargazers: 7,627 (+0)
Total Subscribers: 128 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 2.0 hours
Mean response time: 38.6 days
90th percentile: 83.6 days
Tracked items: 80

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 91% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 6% of issues opened in the past year have been closed. Three people close 91% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 23
New in 7 days: 0
Closed in 7 days: 1
Avg open age: 651 days
Stale 30+ days: 23
Stale 90+ days: 20

Recent activity

Opened in 7 days: 0
Closed in 7 days: 1
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (57)
  • enhancement (20)
  • question (1)

Detailed Description

APScheduler is a task scheduling library for Python that handles both job queuing and task scheduling across single-process and distributed deployments.

The tool addresses the need to execute tasks at specific times or intervals, whether as one-off jobs, recurring schedules, or queued work. It provides multiple scheduling mechanisms including cron-style patterns, fixed intervals, calendar-based scheduling at consistent times of day, and one-off execution. The library supports both synchronous and asynchronous execution models, making it compatible with traditional thread-based applications as well as asyncio and Trio-based systems. For distributed scenarios, multiple scheduler and worker instances can share a persistent data store and coordinate through an event broker, enabling horizontal scaling and high availability.

The tool suits projects ranging from simple single-process applications to large multi-node deployments. It works with WSGI and ASGI web frameworks. Persistent storage backends include PostgreSQL, MySQL, SQLite, and MongoDB. Event brokers for multi-instance coordination support PostgreSQL, Redis, and MQTT. Beyond basic scheduling, the tool offers job concurrency limits per task, maximum lateness constraints, and jitter to spread load. Custom scheduling logic can be implemented through user-defined trigger classes.

The project maintains active test coverage and documentation. Development follows a structured release process with pre-release versions clearly marked as unsuitable for production use. The codebase supports multiple Python async frameworks and integrates with common web application patterns, indicating ongoing attention to compatibility across the Python ecosystem.