# dev.roe.talk

> Published by [danielroe.dev](https://lexicon.garden/identity/did:plc:jbeaa5kdaladzwq3r7f5xgwe)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:jbeaa5kdaladzwq3r7f5xgwe/dev.roe.talk)
- [Documentation](https://lexicon.garden/lexicon/did:plc:jbeaa5kdaladzwq3r7f5xgwe/dev.roe.talk/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:jbeaa5kdaladzwq3r7f5xgwe/dev.roe.talk/examples)

## Definitions

### `dev.roe.talk`

**Type**: `record`

A talk, podcast appearance, workshop, stream, or similar event.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `date` | `string` (datetime) | Yes | Start date of the talk/event. Date-only values are stored as midnight UTC. |
| `demo` | `string` (uri) | No |  |
| `link` | `string` (uri) | No | Event page, podcast episode URL, etc. |
| `repo` | `string` (uri) | No |  |
| `tags` | `array` | No |  |
| `type` | `string` | Yes |  |
| `group` | `ref` → `com.atproto.repo.strongRef` | No | Strong-ref to a dev.roe.talkGroup record. |
| `image` | `ref` → `community.lexicon.app.defs#image` | No | Event or conference logo, shown on the home page carousel. |
| `title` | `string` | No | Optional for upcoming events with no announced title. Required for past talks unless the talk is part of a group. |
| `video` | `string` (uri) | No |  |
| `slides` | `string` | No | Identifier for slides; historically a GitHub release tag from danielroe/slides. |
| `source` | `string` | Yes | Conference name, meetup, podcast title, etc. |
| `endDate` | `string` (datetime) | No | End date for multi-day events. Optional. |
| `location` | `string` | No | Free-form: city, country, or 'Online'. |
| `createdAt` | `string` (datetime) | Yes |  |
| `description` | `string` | No |  |

## Raw Schema

```json
{
  "id": "dev.roe.talk",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "source",
          "date",
          "type",
          "createdAt"
        ],
        "properties": {
          "date": {
            "type": "string",
            "format": "datetime",
            "description": "Start date of the talk/event. Date-only values are stored as midnight UTC."
          },
          "demo": {
            "type": "string",
            "format": "uri"
          },
          "link": {
            "type": "string",
            "format": "uri",
            "description": "Event page, podcast episode URL, etc."
          },
          "repo": {
            "type": "string",
            "format": "uri"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 640,
              "maxGraphemes": 64
            },
            "maxLength": 32
          },
          "type": {
            "type": "string",
            "knownValues": [
              "conference",
              "meetup",
              "podcast",
              "workshop",
              "stream",
              "talk"
            ]
          },
          "group": {
            "ref": "com.atproto.repo.strongRef",
            "type": "ref",
            "description": "Strong-ref to a dev.roe.talkGroup record."
          },
          "image": {
            "ref": "community.lexicon.app.defs#image",
            "type": "ref",
            "description": "Event or conference logo, shown on the home page carousel."
          },
          "title": {
            "type": "string",
            "maxLength": 5120,
            "description": "Optional for upcoming events with no announced title. Required for past talks unless the talk is part of a group.",
            "maxGraphemes": 512
          },
          "video": {
            "type": "string",
            "format": "uri"
          },
          "slides": {
            "type": "string",
            "maxLength": 512,
            "description": "Identifier for slides; historically a GitHub release tag from danielroe/slides."
          },
          "source": {
            "type": "string",
            "maxLength": 5120,
            "description": "Conference name, meetup, podcast title, etc.",
            "maxGraphemes": 512
          },
          "endDate": {
            "type": "string",
            "format": "datetime",
            "description": "End date for multi-day events. Optional."
          },
          "location": {
            "type": "string",
            "maxLength": 5120,
            "description": "Free-form: city, country, or 'Online'.",
            "maxGraphemes": 512
          },
          "createdAt": {
            "type": "string",
            "format": "datetime"
          },
          "description": {
            "type": "string",
            "maxLength": 50000,
            "maxGraphemes": 5000
          }
        }
      },
      "description": "A talk, podcast appearance, workshop, stream, or similar event."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
