Skip to main content

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:

  1. Spin up a PostgreSQL container using docker-compose.yml.
  2. Apply the initial schema and tables (/db/ddl).
  3. 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 deployments
  • infra/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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

schedule_module-0.1.1.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

schedule_module-0.1.1-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

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

Hashes for schedule_module-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2cec38dd99d2a7e3fa950ee1509a7ffde82ec37340e078e029b57ae84cfeb6bf
MD5 ac71919da6f1aeee775b70d20e44da52
BLAKE2b-256 f3f2f230cdc3a3002ff9fcc898b6bd4a406ec7a6695b0c4aeb12863011a89ece

See more details on using hashes here.

File details

Details for the file schedule_module-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for schedule_module-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dfebcdbbdc0906c96ee09c8f1f2fa351ab2c0b54b810d4f4a4a20da6b322c7ef
MD5 3814cb528457f185fbcc020730b6ef79
BLAKE2b-256 a8f6d89e63c2314bfaa1ba164d5b2861ad222d969eec656a0e649592603575d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page