{
  "$schema_doc": "https://gtmstacker.com/registry/schema/entry.schema.json",
  "stability": "emerging",
  "generator": "agentic-media-registry",
  "generated_at": "2026-09-08T00:00:00Z",
  "category": "meetings-scheduling",
  "name": "Meetings Scheduling",
  "count": 7,
  "html": "https://gtmstacker.com/registry/category/meetings-scheduling/",
  "items": [
    {
      "id": "com.gtmstacker.registry/tool/caldav-python-caldav",
      "type": "tool",
      "slug": "caldav-python-caldav",
      "url": "https://gtmstacker.com/registry/tool/caldav-python-caldav/",
      "title": "caldav (python-caldav)",
      "description": "~411 stars; complements vdirsyncer, khal; Open-protocol CalDAV client (works with Nextcloud, iCloud, Google via CalDAV). Auth via basic/app-password/OAuth per server. Open standard — no ToS/ban risk. Dual GPL-3.0/Apache-2.0.",
      "one_liner": "~411 stars; complements vdirsyncer, khal; Open-protocol CalDAV client (works with Nextcloud, iCloud, Google via CalDAV). Auth via basic/app-password/OAuth per…",
      "category": "meetings-scheduling",
      "tags": [
        "meetings-scheduling",
        "calendar-scheduling"
      ],
      "open_source": "yes",
      "self_hostable": "yes",
      "pricing_model": "free",
      "status": "active",
      "revision": 1,
      "content_hash": "d6499a7d6b1c60dc610fb7d614df40f9d83cbc93f360939aa8f26756b926a1ab",
      "date_published": "2026-09-03T12:00:00Z",
      "date_modified": "2026-09-03T12:00:00Z",
      "json": "https://gtmstacker.com/registry/tool/caldav-python-caldav/index.json",
      "markdown": "https://gtmstacker.com/registry/tool/caldav-python-caldav/index.md"
    },
    {
      "id": "com.gtmstacker.registry/tool/easyappointments",
      "type": "tool",
      "slug": "easyappointments",
      "url": "https://gtmstacker.com/registry/tool/easyappointments/",
      "title": "Easy!Appointments",
      "description": "Longest-lived booking; dated PHP; no routing",
      "one_liner": "Longest-lived booking; dated PHP; no routing",
      "category": "meetings-scheduling",
      "tags": [
        "meetings-scheduling"
      ],
      "open_source": "yes",
      "self_hostable": "yes",
      "pricing_model": "freemium",
      "status": "active",
      "revision": 1,
      "content_hash": "f41198e344119cc330903f7365ebb3b9a236295022fd5083640aee9f5333f257",
      "date_published": "2026-09-03T12:00:00Z",
      "date_modified": "2026-09-03T12:00:00Z",
      "json": "https://gtmstacker.com/registry/tool/easyappointments/index.json",
      "markdown": "https://gtmstacker.com/registry/tool/easyappointments/index.md"
    },
    {
      "id": "com.gtmstacker.registry/tool/gcalcli",
      "type": "tool",
      "slug": "gcalcli",
      "url": "https://gtmstacker.com/registry/tool/gcalcli/",
      "title": "gcalcli",
      "description": "~3800 stars; complements google-api-python-client (official-api); CLI over the sanctioned Google Calendar API. Auth via Google OAuth (own client credentials). No ToS risk.",
      "one_liner": "~3800 stars; complements google-api-python-client (official-api); CLI over the sanctioned Google Calendar API. Auth via Google OAuth (own client credentials).…",
      "category": "meetings-scheduling",
      "tags": [
        "meetings-scheduling",
        "calendar-scheduling"
      ],
      "open_source": "yes",
      "self_hostable": "yes",
      "pricing_model": "free",
      "status": "active",
      "revision": 1,
      "content_hash": "adcdf217fcfe8a4b50019e0047a6920d4b293643de1f3f68077c279c5c828ea5",
      "date_published": "2026-09-03T12:00:00Z",
      "date_modified": "2026-09-03T12:00:00Z",
      "json": "https://gtmstacker.com/registry/tool/gcalcli/index.json",
      "markdown": "https://gtmstacker.com/registry/tool/gcalcli/index.md"
    },
    {
      "id": "com.gtmstacker.registry/tool/khal",
      "type": "tool",
      "slug": "khal",
      "url": "https://gtmstacker.com/registry/tool/khal/",
      "title": "khal",
      "description": "~3000 stars; complements caldav, vdirsyncer; Standards-based terminal calendar; syncs to CalDAV servers via vdirsyncer. Open protocol — no ToS/ban risk.",
      "one_liner": "~3000 stars; complements caldav, vdirsyncer; Standards-based terminal calendar; syncs to CalDAV servers via vdirsyncer. Open protocol — no ToS/ban risk.",
      "category": "meetings-scheduling",
      "tags": [
        "meetings-scheduling",
        "calendar-scheduling"
      ],
      "open_source": "yes",
      "self_hostable": "yes",
      "pricing_model": "free",
      "status": "active",
      "revision": 1,
      "content_hash": "d7dd9b8b6809a5d5843622fc39e4e672d26e77a7713a959b1faca04e88741955",
      "date_published": "2026-09-03T12:00:00Z",
      "date_modified": "2026-09-03T12:00:00Z",
      "json": "https://gtmstacker.com/registry/tool/khal/index.json",
      "markdown": "https://gtmstacker.com/registry/tool/khal/index.md"
    },
    {
      "id": "com.gtmstacker.registry/tool/rallly",
      "type": "tool",
      "slug": "rallly",
      "url": "https://gtmstacker.com/registry/tool/rallly/",
      "title": "Rallly",
      "description": "Group availability polling; no lead routing",
      "one_liner": "Group availability polling; no lead routing",
      "category": "meetings-scheduling",
      "tags": [
        "meetings-scheduling"
      ],
      "open_source": "yes",
      "self_hostable": "yes",
      "pricing_model": "freemium",
      "status": "active",
      "revision": 1,
      "content_hash": "fe897a1f15c9a53c28555aa077fa224425bd155e15131b173d61287b384d3cf3",
      "date_published": "2026-09-03T12:00:00Z",
      "date_modified": "2026-09-03T12:00:00Z",
      "json": "https://gtmstacker.com/registry/tool/rallly/index.json",
      "markdown": "https://gtmstacker.com/registry/tool/rallly/index.md"
    },
    {
      "id": "com.gtmstacker.registry/tool/vdirsyncer",
      "type": "tool",
      "slug": "vdirsyncer",
      "url": "https://gtmstacker.com/registry/tool/vdirsyncer/",
      "title": "vdirsyncer",
      "description": "~1900 stars; complements caldav, khal; Open-protocol CalDAV/CardDAV sync CLI. Auth per server (basic/app-password). No ToS/ban risk.",
      "one_liner": "~1900 stars; complements caldav, khal; Open-protocol CalDAV/CardDAV sync CLI. Auth per server (basic/app-password). No ToS/ban risk.",
      "category": "meetings-scheduling",
      "tags": [
        "meetings-scheduling",
        "calendar-scheduling"
      ],
      "open_source": "yes",
      "self_hostable": "yes",
      "pricing_model": "free",
      "status": "active",
      "revision": 1,
      "content_hash": "6cd0b1a77b9b63e0da01fcb4c1d6c330d638ff0f2ffa12a9d70483f740870de4",
      "date_published": "2026-09-03T12:00:00Z",
      "date_modified": "2026-09-03T12:00:00Z",
      "json": "https://gtmstacker.com/registry/tool/vdirsyncer/index.json",
      "markdown": "https://gtmstacker.com/registry/tool/vdirsyncer/index.md"
    },
    {
      "id": "com.gtmstacker.registry/tool/vexa",
      "type": "tool",
      "slug": "vexa",
      "url": "https://gtmstacker.com/registry/tool/vexa/",
      "title": "Vexa",
      "description": "Bot-joins Meet/Teams/Zoom; 2 patched advisories; consent law caveat",
      "one_liner": "Bot-joins Meet/Teams/Zoom; 2 patched advisories; consent law caveat",
      "category": "meetings-scheduling",
      "tags": [
        "meetings-scheduling"
      ],
      "open_source": "yes",
      "self_hostable": "yes",
      "pricing_model": "freemium",
      "status": "active",
      "revision": 1,
      "content_hash": "1956a6e453dcd5b12722e970119efadd1f9772051e0138c44f17f0903d065703",
      "date_published": "2026-09-03T12:00:00Z",
      "date_modified": "2026-09-03T12:00:00Z",
      "json": "https://gtmstacker.com/registry/tool/vexa/index.json",
      "markdown": "https://gtmstacker.com/registry/tool/vexa/index.md"
    }
  ]
}
