{
  "version": "2",
  "generatedAt": "2026-11-03T22:49:39.280Z",
  "listing": {
    "slug": "tkrebs--ep3-bs",
    "name": "ep-3 Bookingsystem",
    "tagline": "MIT court and facility booking calendar used by sports clubs, configured through PHP config files.",
    "shortTagline": "Court booking calendar",
    "description": "ep-3 Bookingsystem lets members check and book free slots of a facility (originally tennis courts) on one large calendar, with billing statuses, concurrent-booking limits, custom translations and a responsive layout. It is a LAMP application on Zend Framework 2; installation is renaming and editing config/init.php and config/autoload/local.php, then running the setup tool. No API is documented.",
    "capabilities": [
      "adaptable"
    ],
    "vertical": "scheduling-staffing",
    "alternativeTo": [
      "Skedda",
      "Playtomic"
    ],
    "shape": "business-app",
    "formFactor": "web-app",
    "executionModel": "deterministic",
    "provenance": "human-written",
    "codeStack": {
      "languages": [
        "PHP",
        "JavaScript"
      ],
      "frameworks": [
        "Zend Framework 2"
      ],
      "packageManager": "composer",
      "database": [
        "MySQL",
        "MariaDB"
      ],
      "hostingTarget": [
        "apache",
        "lamp"
      ]
    },
    "modelStack": null,
    "repos": [
      {
        "url": "https://github.com/tkrebs/ep3-bs",
        "owner": "tkrebs",
        "name": "ep3-bs",
        "license": "MIT",
        "stars": 216,
        "lastCommit": "2026-08-15"
      }
    ],
    "interface": null,
    "operability": null,
    "recommendedWrapper": null,
    "reach": null,
    "editions": [
      {
        "name": "Free",
        "price": null,
        "open": true,
        "distributions": [
          {
            "kind": "source",
            "url": "https://github.com/tkrebs/ep3-bs"
          },
          {
            "kind": "binary",
            "url": "http://bs.hbsys.de/"
          }
        ]
      }
    ],
    "skills": {
      "kind": "none",
      "paths": [],
      "install": null,
      "note": "No SKILL.md, Claude Code plugin, or published skill found in the repo."
    },
    "customization": {
      "summary": "Rename config/init.php.dist to init.php and config/autoload/local.php.dist to local.php; local.php carries the database credentials, the mail transport (sendmail, smtp, smtp-tls or file), the language choices, currency and fallback locale. Run public/setup.php once, then delete it. Booking rules, squares, prices and billing statuses are set in the backend UI. Branding is css-client/default.css, imgs-client/layout/logo.png and the favicon; custom modules drop into the modulex directory.",
      "envVars": [],
      "configFiles": [
        "config/init.php.dist",
        "config/autoload/local.php.dist",
        "config/autoload/global.php",
        "public/css-client/default.css",
        "public/imgs-client/layout/logo.png"
      ],
      "promptFiles": [],
      "effort": "config-only",
      "editCount": 5
    },
    "useWhen": [
      "our club needs members to reserve courts or rooms online and pay per slot, on cheap shared PHP hosting",
      "I want a booking calendar I can hand to a volunteer admin, with rules in a backend rather than in code"
    ],
    "accounts": [],
    "active": true,
    "lastActivity": "2026-08-15",
    "gotchas": [
      "Zend Framework 2 with hand-patched components for PHP 8; composer install needs --ignore-platform-reqs",
      "Apache with mod_rewrite is assumed; the document root must be the public directory",
      "No API: an agent can only drive it through the browser",
      "Configuration behavior changed in 1.6.2; follow data/docs/update.txt when upgrading"
    ],
    "fit": {
      "adaptable": 3,
      "operable": 0
    },
    "evidence": {
      "formFactor": "README: web application on LAMP, Zend Framework 2, responsive layout",
      "executionModel": "no model SDK or AI feature",
      "operability": "no API, MCP or CLI in README, INSTALL.md or data/docs",
      "effort": "INSTALL.md names config/init.php.dist and config/autoload/local.php.dist; local.php.dist read this run",
      "editions": "README: MIT; website offers pre-made packages",
      "active": "shortlist pushedAt 2026-08-15; README: version 1.9.1 from August 2026"
    },
    "confidence": {
      "formFactor": 0.95,
      "executionModel": 0.95,
      "operability": 0.85,
      "effort": 0.9,
      "reach": 0,
      "editions": 0.9
    },
    "openQuestions": [
      "Does the 'pre-made package' on bs.hbsys.de differ from the GitHub tree?",
      "Is there an iCal or JSON export of bookings that an agent could read?"
    ],
    "sources": [
      {
        "url": "https://github.com/tkrebs/ep3-bs",
        "foundBy": "sourcing:scheduling-staffing:github"
      },
      {
        "url": "https://github.com/tkrebs/ep3-bs/blob/master/INSTALL.md",
        "foundBy": "analysis:scheduling-staffing"
      }
    ],
    "research": {
      "stage": "verified",
      "verdict": "unverified",
      "reason": "Adaptable only: named config files under MIT with active club users (248 open issues); legacy framework is the cost. No agent interface.",
      "disputed": []
    },
    "url": "apps/tkrebs--ep3-bs.html",
    "coverage": null,
    "paid": false,
    "source": "research/verified/tkrebs--ep3-bs.json"
  }
}
