# id.sifa.profile.presentationDelivery

> Published by [sifa.id](https://lexicon.garden/identity/did:plc:2f2ahswozqy4v5lvu676375y)

✓ This is the authoritative definition for this NSID.

## Description

An occasion on which a person delivered a presentation: a specific talk, panel, workshop, or demo at an event. References the reusable id.sifa.profile.presentation content and, optionally, the calendar event.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:2f2ahswozqy4v5lvu676375y/id.sifa.profile.presentationDelivery)
- [Documentation](https://lexicon.garden/lexicon/did:plc:2f2ahswozqy4v5lvu676375y/id.sifa.profile.presentationDelivery/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:2f2ahswozqy4v5lvu676375y/id.sifa.profile.presentationDelivery/examples)

## Definitions

### `id.sifa.profile.presentationDelivery`

**Type**: `record`

Record representing a single occasion on which a presentation was delivered. This is the entry shown on a profile's activity timeline. At least one of presentationRef, title, or eventName is expected, enforced at the app layer.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `date` | `string` | No | Calendar date of this delivery as YYYY-MM-DD (day only, no time). Future dates are allowed for upcoming deliveries. The day-only shape is enforced at the app layer. On the linked branch, derived from the event's startsAt in the event's own offset. |
| `mode` | `string` | No | Whether this delivery was in person, virtual, or hybrid. Stores the full community.lexicon.calendar.event mode token; absent means in person. |
| `role` | `string` | No | The presenter's role in this delivery. Open set; see id.sifa.defs#presentationRole. |
| `links` | `array` | No | Links specific to this delivery, such as the recording of this occasion. |
| `title` | `string` | No | Fallback title for this delivery, used when no presentationRef is set. |
| `status` | `string` | No | Scheduling status of this delivery, typically hydrated from a linked calendar event. Stores the full community.lexicon.calendar.event status token. Consumers should surface cancelled and postponed states. |
| `eventRef` | `ref` → `id.sifa.defs#externalRecordRef` | No | Optional reference to a community.lexicon.calendar.event for this occasion. Display fields are hydrated live from the target by AT-URI, with the stored fields as a fallback when the target is unavailable. |
| `location` | `string` | No | Display location (city, country, or venue). On the linked branch, composed from the calendar event's structured locations. |
| `createdAt` | `string` (datetime) | Yes | Client-declared timestamp when this record was originally created. |
| `eventName` | `string` | No | Name of the event or venue. On the linked branch, hydrated from the calendar event's name. |
| `presentationRef` | `ref` → `id.sifa.defs#externalRecordRef` | No | Optional reference to the id.sifa.profile.presentation (the content) delivered here. When set, title, duration, and audiences are taken from it. |

## Raw Schema

```json
{
  "id": "id.sifa.profile.presentationDelivery",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "createdAt"
        ],
        "properties": {
          "date": {
            "type": "string",
            "maxLength": 10,
            "description": "Calendar date of this delivery as YYYY-MM-DD (day only, no time). Future dates are allowed for upcoming deliveries. The day-only shape is enforced at the app layer. On the linked branch, derived from the event's startsAt in the event's own offset."
          },
          "mode": {
            "type": "string",
            "description": "Whether this delivery was in person, virtual, or hybrid. Stores the full community.lexicon.calendar.event mode token; absent means in person.",
            "knownValues": [
              "community.lexicon.calendar.event#inperson",
              "community.lexicon.calendar.event#virtual",
              "community.lexicon.calendar.event#hybrid"
            ]
          },
          "role": {
            "type": "string",
            "maxLength": 640,
            "description": "The presenter's role in this delivery. Open set; see id.sifa.defs#presentationRole.",
            "knownValues": [
              "id.sifa.defs#presenter",
              "id.sifa.defs#panelist",
              "id.sifa.defs#keynote",
              "id.sifa.defs#workshop",
              "id.sifa.defs#host"
            ],
            "maxGraphemes": 64
          },
          "links": {
            "type": "array",
            "items": {
              "ref": "id.sifa.defs#presentationLink",
              "type": "ref"
            },
            "maxLength": 20,
            "description": "Links specific to this delivery, such as the recording of this occasion."
          },
          "title": {
            "type": "string",
            "maxLength": 3000,
            "description": "Fallback title for this delivery, used when no presentationRef is set.",
            "maxGraphemes": 300
          },
          "status": {
            "type": "string",
            "description": "Scheduling status of this delivery, typically hydrated from a linked calendar event. Stores the full community.lexicon.calendar.event status token. Consumers should surface cancelled and postponed states.",
            "knownValues": [
              "community.lexicon.calendar.event#scheduled",
              "community.lexicon.calendar.event#cancelled",
              "community.lexicon.calendar.event#postponed",
              "community.lexicon.calendar.event#rescheduled",
              "community.lexicon.calendar.event#planned"
            ]
          },
          "eventRef": {
            "ref": "id.sifa.defs#externalRecordRef",
            "type": "ref",
            "description": "Optional reference to a community.lexicon.calendar.event for this occasion. Display fields are hydrated live from the target by AT-URI, with the stored fields as a fallback when the target is unavailable."
          },
          "location": {
            "type": "string",
            "maxLength": 2560,
            "description": "Display location (city, country, or venue). On the linked branch, composed from the calendar event's structured locations.",
            "maxGraphemes": 256
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "Client-declared timestamp when this record was originally created."
          },
          "eventName": {
            "type": "string",
            "maxLength": 3000,
            "description": "Name of the event or venue. On the linked branch, hydrated from the calendar event's name.",
            "maxGraphemes": 300
          },
          "presentationRef": {
            "ref": "id.sifa.defs#externalRecordRef",
            "type": "ref",
            "description": "Optional reference to the id.sifa.profile.presentation (the content) delivered here. When set, title, duration, and audiences are taken from it."
          }
        }
      },
      "description": "Record representing a single occasion on which a presentation was delivered. This is the entry shown on a profile's activity timeline. At least one of presentationRef, title, or eventName is expected, enforced at the app layer."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "description": "An occasion on which a person delivered a presentation: a specific talk, panel, workshop, or demo at an event. References the reusable id.sifa.profile.presentation content and, optionally, the calendar event."
}
```
