A reusable scheduling capability module
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file schedule_module-0.1.1.tar.gz.
File metadata
- Download URL: schedule_module-0.1.1.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cec38dd99d2a7e3fa950ee1509a7ffde82ec37340e078e029b57ae84cfeb6bf
|
|
| MD5 |
ac71919da6f1aeee775b70d20e44da52
|
|
| BLAKE2b-256 |
f3f2f230cdc3a3002ff9fcc898b6bd4a406ec7a6695b0c4aeb12863011a89ece
|
File details
Details for the file schedule_module-0.1.1-py3-none-any.whl.
File metadata
- Download URL: schedule_module-0.1.1-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dfebcdbbdc0906c96ee09c8f1f2fa351ab2c0b54b810d4f4a4a20da6b322c7ef
|
|
| MD5 |
3814cb528457f185fbcc020730b6ef79
|
|
| BLAKE2b-256 |
a8f6d89e63c2314bfaa1ba164d5b2861ad222d969eec656a0e649592603575d8
|