# town.laugh.calendar.series

> Published by [laugh.town](https://lexicon.garden/identity/did:plc:k6owgpe2rkkchoiivxhzp2t4)

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:k6owgpe2rkkchoiivxhzp2t4/town.laugh.calendar.series)
- [Documentation](https://lexicon.garden/lexicon/did:plc:k6owgpe2rkkchoiivxhzp2t4/town.laugh.calendar.series/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:k6owgpe2rkkchoiivxhzp2t4/town.laugh.calendar.series/examples)

## Definitions

### `town.laugh.calendar.series`

**Type**: `record`

A named, recurring show series at a venue (e.g. "Roast Battle" at The Comedy Store). A label that community.lexicon.calendar.event records point at via town.laugh.calendar.defs#eventExtras.series; NOT a recurrence rule (authored recurring events use eventExtras.recurrence and may additionally point at a series). Derived facts (cadence, upcoming count, next date, active/dormant) are deliberately NOT stored in the record; they are computed from the events that reference it. Series records are never deleted when a series goes dormant.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `createdAt` | `string` (datetime) | Yes | Timestamp of when the series record was created |
| `description` | `string` | No | Optional description of the series |
| `languages` | `array` | No | BCP-47 languages of the series |
| `name` | `string` | Yes | Display name of the series (mutable) |
| `nameLocalized` | `array` | No | Name in other languages/scripts; name is the canonical fallback |
| `origin` | `string` | No | Where this record came from; central-repo records only |
| `slug` | `string` | Yes | Lowercase alphanumeric with single-hyphen separators. Frozen at creation; unique per venue. Together with venue it is the identity of the series. |
| `venue` | `string` (at-uri) | Yes | AT-URI reference to the town.laugh.db.venue record the series runs at |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A named, recurring show series at a venue (e.g. \"Roast Battle\" at The Comedy Store). A label that community.lexicon.calendar.event records point at via town.laugh.calendar.defs#eventExtras.series; NOT a recurrence rule (authored recurring events use eventExtras.recurrence and may additionally point at a series). Derived facts (cadence, upcoming count, next date, active/dormant) are deliberately NOT stored in the record; they are computed from the events that reference it. Series records are never deleted when a series goes dormant.",
      "key": "tid",
      "record": {
        "properties": {
          "createdAt": {
            "description": "Timestamp of when the series record was created",
            "format": "datetime",
            "type": "string"
          },
          "description": {
            "description": "Optional description of the series",
            "maxLength": 2048,
            "type": "string"
          },
          "languages": {
            "description": "BCP-47 languages of the series",
            "items": {
              "format": "language",
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "Display name of the series (mutable)",
            "maxLength": 256,
            "type": "string"
          },
          "nameLocalized": {
            "description": "Name in other languages/scripts; name is the canonical fallback",
            "items": {
              "ref": "town.laugh.db.defs#localizedText",
              "type": "ref"
            },
            "type": "array"
          },
          "origin": {
            "description": "Where this record came from; central-repo records only",
            "knownValues": [
              "scraped",
              "native"
            ],
            "type": "string"
          },
          "slug": {
            "description": "Lowercase alphanumeric with single-hyphen separators. Frozen at creation; unique per venue. Together with venue it is the identity of the series.",
            "maxLength": 64,
            "type": "string"
          },
          "venue": {
            "description": "AT-URI reference to the town.laugh.db.venue record the series runs at",
            "format": "at-uri",
            "type": "string"
          }
        },
        "required": [
          "name",
          "slug",
          "venue",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "town.laugh.calendar.series",
  "lexicon": 1
}
```
