town.laugh.db.event

laugh.town

{
  "id": "town.laugh.db.event",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "venue",
          "slug",
          "title",
          "startAt",
          "timezone",
          "origin",
          "createdAt"
        ],
        "properties": {
          "slug": {
            "type": "string",
            "description": "URL routing slug (mutable)"
          },
          "title": {
            "type": "string",
            "description": "Canonical event title"
          },
          "venue": {
            "type": "string",
            "format": "at-uri",
            "description": "AT-URI reference to the town.laugh.db.venue record"
          },
          "isFree": {
            "type": "boolean",
            "description": "Whether entry is free"
          },
          "origin": {
            "type": "string",
            "description": "Where this record came from",
            "knownValues": [
              "scraped",
              "native",
              "atproto"
            ]
          },
          "poster": {
            "type": "string",
            "format": "uri",
            "description": "Event flyer/poster image URL"
          },
          "doorsAt": {
            "type": "string",
            "format": "datetime",
            "description": "Offset-qualified doors-open datetime, interpreted in the same timezone"
          },
          "roomRef": {
            "type": "string",
            "format": "at-uri",
            "description": "AT-URI reference to the town.laugh.db.room record"
          },
          "startAt": {
            "type": "string",
            "format": "datetime",
            "description": "Offset-qualified RFC-3339 start datetime; combine with timezone for Temporal.ZonedDateTime"
          },
          "currency": {
            "type": "string",
            "description": "ISO 4217 currency code for priceMin/priceMax, e.g. USD; required if either is set"
          },
          "priceMax": {
            "type": "integer",
            "description": "Highest ticket price in minor units for tiered pricing; same currency"
          },
          "priceMin": {
            "type": "integer",
            "description": "Lowest ticket price in minor units (e.g. cents); requires currency"
          },
          "timezone": {
            "type": "string",
            "description": "IANA timezone name for startAt/doorsAt, e.g. America/Los_Angeles"
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "Timestamp of record creation"
          },
          "eventType": {
            "type": "string",
            "description": "Kind of comedy event; absent when unclassified",
            "knownValues": [
              "openMic",
              "showcase",
              "standup",
              "improv",
              "sketch"
            ]
          },
          "languages": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "language"
            },
            "description": "BCP-47 languages of the show"
          },
          "sourceUrl": {
            "type": "string",
            "format": "uri",
            "description": "Source listing URL"
          },
          "ticketUrl": {
            "type": "string",
            "format": "uri",
            "description": "Ticket purchase URL"
          },
          "performers": {
            "type": "array",
            "items": {
              "ref": "town.laugh.db.defs#performer",
              "type": "ref"
            },
            "description": "Billed performers"
          },
          "description": {
            "type": "array",
            "items": {
              "ref": "town.laugh.db.defs#localizedText",
              "type": "ref"
            },
            "description": "Event description, one entry per language"
          },
          "posterWidth": {
            "type": "integer",
            "description": "Poster image width in pixels"
          },
          "presentedBy": {
            "type": "string",
            "description": "Presenting promoter/organizer"
          },
          "drinkMinimum": {
            "type": "string",
            "description": "Drink/purchase minimum, e.g. 2-drink minimum"
          },
          "posterHeight": {
            "type": "integer",
            "description": "Poster image height in pixels"
          },
          "ticketStatus": {
            "type": "string",
            "description": "Availability label, e.g. Sold Out / 3 left"
          },
          "ageRestriction": {
            "type": "string",
            "description": "Age policy, e.g. 21+ / All Ages"
          },
          "titleLocalized": {
            "type": "array",
            "items": {
              "ref": "town.laugh.db.defs#localizedText",
              "type": "ref"
            },
            "description": "Title in other languages/scripts; title is the canonical fallback"
          }
        }
      },
      "description": "A comedy show at a venue"
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against town.laugh.db.event

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:k6owgpe2rkkchoiivxhzp2t4
CID
bafyreicoruhm2a6qxd4tmngefatkg6fagi3n6rk6syxitphkt5scxpallu
Indexed At
2026-06-24 17:22 UTC
AT-URI
at://did:plc:k6owgpe2rkkchoiivxhzp2t4/com.atproto.lexicon.schema/town.laugh.db.event

Version History (2 versions)

Referenced Schemas (2)

  • town.laugh.db.defs#localizedText
  • town.laugh.db.defs#performer

Lexicon Garden

@