Schedule Module
A reusable, production-grade scheduling capability module designed for both human developers and AI agents. It provides a robust scheduling system that allows projects to create, manage, and query events, routines, and time-based records across systems using a strictly structured PostgreSQL database.
Architecture & Principles
- Installability: Can be initialized easily via
make initial. - Backward Compatibility: Migrations are versioned and immutable.
- Agent-First Design: Includes MCP integration and YAML action definitions for native AI consumption.
- Human Usability: Clean API, strongly typed Pydantic models.
Usage
1. Installation
To initialize the database locally via Docker Compose, simply run:
make initial
This will:
- Spin up a PostgreSQL container using
docker-compose.yml. - Apply the initial schema and tables (
/db/ddl). - Run all pending migrations (
/db/migrations).
2. Python API
Use the Schedule service to interact with your data:
from datetime import datetime, timezone
import asyncio
from uuid import uuid4
from src import Schedule, ScheduledRoutineCreate, RecurrencyType
async def main():
async with Schedule() as schedule_service:
routine = ScheduledRoutineCreate(
name="Daily Standup",
start_date_time=datetime.now(timezone.utc),
end_date_time=datetime.now(timezone.utc),
recurrency=RecurrencyType.daily
)
created_routine = await schedule_service.add_schedule(routine)
print("Created Routine ID:", created_routine.id)
if __name__ == "__main__":
asyncio.run(main())
3. Agent Integration
Refer to agent/mcp.yaml and agent/actions.yaml for using this module as a tool in AI workflows via MCP (Model Context Protocol).
Infrastructure
We include boilerplate configurations for deployments:
infra/docker-compose.yml: For local deploymentsinfra/terraform: Example Terraform modules for AWS RDS Postgres deployments
Publishing
The module includes a .github/workflows/publish.yml that automatically publishes to npm and PyPI whenever changes are merged into the main branch.
Metadata
Release files for schedule-module 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| schedule_module-0.1.2.tar.gz | 5.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| schedule_module-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.5 kB
Release files / schedule_module-0.1.2.tar.gz
| Download URL | schedule_module-0.1.2.tar.gz |
|---|---|
| Size | 5.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ffe03da9edbf8b673d3a775051ba22700fec875d922df87aef68ea2c0ab2cd36
|
|
BLAKE2b-256 checksum How to use checksums |
897025080a7d392ca1b23e946d091b3bfb74283c2a18d3bde588dba6e56b3f06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / schedule_module-0.1.2-py3-none-any.whl
| Download URL | schedule_module-0.1.2-py3-none-any.whl |
|---|---|
| Size | 8.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
363ea3a1df162772ed93bafdfb232cbb56cba074cfa256d33a71d62b88af9e13
|
|
BLAKE2b-256 checksum How to use checksums |
004c91f9673aff70f5b5190bec0f99774246986ae16c2a1c30c91f9f5be71cc2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Security for schedule-module 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.