# boo.sky.convene.booking

> Published by [convene.sky.boo](https://lexicon.garden/identity/did:plc:4fkl3oj4b76mmprq5yor4shn)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:4fkl3oj4b76mmprq5yor4shn/boo.sky.convene.booking)
- [Documentation](https://lexicon.garden/lexicon/did:plc:4fkl3oj4b76mmprq5yor4shn/boo.sky.convene.booking/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:4fkl3oj4b76mmprq5yor4shn/boo.sky.convene.booking/examples)

## Definitions

### `boo.sky.convene.booking`

**Type**: `record`

One appointment, written into the invitee's own repo and linked back to the host's meeting type. The invitee owns the record (and may cancel it); the host aggregates bookings through the back-link index on `eventType.uri`.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `contact` | `string` | No | Optional free-text contact the invitee chose to share, e.g. an email address. |
| `createdAt` | `string` (datetime) | Yes | When the booking was created. |
| `endAt` | `string` (datetime) | Yes | Appointment end instant (UTC); startAt + the event type's duration. |
| `eventType` | `object` | Yes | Strong link to the booked meeting type. Its author is the host. |
| `host` | `string` (did) | Yes | DID of the host who owns the event type. |
| `inviteeName` | `string` | No | Optional name the invitee gave the host. |
| `note` | `string` | No | Optional message from the invitee. |
| `startAt` | `string` (datetime) | Yes | Appointment start instant (UTC). |
| `status` | `string` | Yes | Current state of the appointment; only 'confirmed' bookings occupy a slot. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "One appointment, written into the invitee's own repo and linked back to the host's meeting type. The invitee owns the record (and may cancel it); the host aggregates bookings through the back-link index on `eventType.uri`.",
      "key": "tid",
      "record": {
        "properties": {
          "contact": {
            "description": "Optional free-text contact the invitee chose to share, e.g. an email address.",
            "maxLength": 300,
            "type": "string"
          },
          "createdAt": {
            "description": "When the booking was created.",
            "format": "datetime",
            "type": "string"
          },
          "endAt": {
            "description": "Appointment end instant (UTC); startAt + the event type's duration.",
            "format": "datetime",
            "type": "string"
          },
          "eventType": {
            "description": "Strong link to the booked meeting type. Its author is the host.",
            "properties": {
              "cid": {
                "description": "Optional CID of the event type record version.",
                "format": "cid",
                "type": "string"
              },
              "uri": {
                "description": "The event type record's at-uri.",
                "format": "at-uri",
                "type": "string"
              }
            },
            "required": [
              "uri"
            ],
            "type": "object"
          },
          "host": {
            "description": "DID of the host who owns the event type.",
            "format": "did",
            "type": "string"
          },
          "inviteeName": {
            "description": "Optional name the invitee gave the host.",
            "maxLength": 200,
            "type": "string"
          },
          "note": {
            "description": "Optional message from the invitee.",
            "maxLength": 500,
            "type": "string"
          },
          "startAt": {
            "description": "Appointment start instant (UTC).",
            "format": "datetime",
            "type": "string"
          },
          "status": {
            "description": "Current state of the appointment; only 'confirmed' bookings occupy a slot.",
            "knownValues": [
              "confirmed",
              "cancelled"
            ],
            "type": "string"
          }
        },
        "required": [
          "eventType",
          "host",
          "startAt",
          "endAt",
          "status",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "boo.sky.convene.booking",
  "lexicon": 1
}
```
