{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/craftingeventfinder-com/json-schema/craftingeventfinder-com-admin-event-schema.json",
  "title": "AdminEvent",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/craftingeventfinder-com-openapi.yml#/components/schemas/AdminEvent",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "summary": {
      "type": [
        "string",
        "null"
      ]
    },
    "start_date": {
      "type": "string"
    },
    "end_date": {
      "type": [
        "string",
        "null"
      ]
    },
    "start_time": {
      "type": [
        "string",
        "null"
      ]
    },
    "end_time": {
      "type": [
        "string",
        "null"
      ]
    },
    "timezone": {
      "type": [
        "string",
        "null"
      ]
    },
    "recurrence": {
      "type": [
        "string",
        "null"
      ]
    },
    "city": {
      "type": "string"
    },
    "state": {
      "type": "string"
    },
    "venue": {
      "type": [
        "string",
        "null"
      ]
    },
    "lat": {
      "type": [
        "number",
        "null"
      ]
    },
    "lng": {
      "type": [
        "number",
        "null"
      ]
    },
    "location_kind": {
      "type": "string",
      "enum": [
        "venue",
        "online",
        "hybrid",
        "multi"
      ]
    },
    "street_address": {
      "type": [
        "string",
        "null"
      ]
    },
    "postal_code": {
      "type": [
        "string",
        "null"
      ]
    },
    "signup_note": {
      "type": [
        "string",
        "null"
      ]
    },
    "languages": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "hosted_by": {
      "type": [
        "string",
        "null"
      ]
    },
    "join_platform": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "zoom",
        "meet",
        "teams",
        "webex",
        "facebook",
        "youtube",
        "other",
        null
      ]
    },
    "join_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "join_meeting_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "join_passcode": {
      "type": [
        "string",
        "null"
      ]
    },
    "join_phone": {
      "type": [
        "string",
        "null"
      ]
    },
    "contact_name": {
      "type": [
        "string",
        "null"
      ]
    },
    "contact_email": {
      "type": [
        "string",
        "null"
      ]
    },
    "contact_phone": {
      "type": [
        "string",
        "null"
      ]
    },
    "craft_types": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "event_type": {
      "type": [
        "string",
        "null"
      ]
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "url": {
      "type": [
        "string",
        "null"
      ]
    },
    "organizer_name": {
      "type": [
        "string",
        "null"
      ]
    },
    "price_note": {
      "type": [
        "string",
        "null"
      ]
    },
    "is_free": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "origin": {
      "type": "string",
      "enum": [
        "public",
        "scrape",
        "organizer"
      ]
    },
    "source_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "source_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "confidence": {
      "type": [
        "number",
        "null"
      ]
    },
    "source_key": {
      "type": [
        "string",
        "null"
      ]
    },
    "organizer_email": {
      "type": [
        "string",
        "null"
      ]
    },
    "series_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "published",
        "cancelled",
        "hidden"
      ]
    },
    "last_verified_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "auto_published": {
      "type": "boolean"
    },
    "published_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "created_at": {
      "type": "string"
    },
    "updated_at": {
      "type": "string"
    },
    "owner_user_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "The organizer who manages this event, or null"
    },
    "schedule_change": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "postponed",
        "rescheduled",
        "moved_online",
        null
      ],
      "description": "postponed, rescheduled or moved_online; null when it runs as listed"
    },
    "previous_start_date": {
      "type": [
        "string",
        "null"
      ],
      "description": "The start date a rescheduled event had before"
    }
  },
  "required": [
    "id",
    "slug",
    "title",
    "description",
    "summary",
    "start_date",
    "end_date",
    "start_time",
    "end_time",
    "timezone",
    "recurrence",
    "city",
    "state",
    "venue",
    "lat",
    "lng",
    "location_kind",
    "street_address",
    "postal_code",
    "signup_note",
    "join_platform",
    "join_url",
    "join_meeting_id",
    "join_passcode",
    "join_phone",
    "contact_name",
    "contact_email",
    "contact_phone",
    "craft_types",
    "event_type",
    "tags",
    "url",
    "organizer_name",
    "price_note",
    "is_free",
    "origin",
    "source_id",
    "source_url",
    "confidence",
    "source_key",
    "organizer_email",
    "series_id",
    "status",
    "last_verified_at",
    "auto_published",
    "published_at",
    "created_at",
    "updated_at",
    "owner_user_id"
  ]
}