# email.atmos.calendar.policy

> ALPHA. Append-only Calendar membership policy. Host validates identity, permissions and causal history before accepting records.

- Kind: record
- Record key: any
- Authority: calendar.atmos.email
- Lexicon: 1
- Published by [comail.at](https://lexicon.garden/identity/did:plc:yu6rmwoemqfnmsdkljyvmuhg), the NSID's authority

## Links

- [Documentation](https://lexicon.garden/lexicon/did:plc:yu6rmwoemqfnmsdkljyvmuhg/email.atmos.calendar.policy)
- [Schema JSON](https://lexicon.garden/lexicon/did:plc:yu6rmwoemqfnmsdkljyvmuhg/email.atmos.calendar.policy/schema.json)
- [Analytics](https://lexicon.garden/lexicon/did:plc:yu6rmwoemqfnmsdkljyvmuhg/email.atmos.calendar.policy/analytics)

## Record (`email.atmos.calendar.policy`)

Type: record · key any

### Properties

- `payload` (ref, required)
  - Reference: `#payload`

## #member (`email.atmos.calendar.policy#member`)

Type: object

### Properties

- `did` (string · did, required)
- `role` (string, required)
  - Constraints: knownValues: owner | editor | viewer

## #payload (`email.atmos.calendar.policy#payload`)

Type: object

### Properties

- `id` (string, required)
  - Constraints: minLength: 1, maxLength: 256
- `members` (array, required)
  - Constraints: minLength: 1, maxLength: 100
  - `items` (ref)
    - Reference: `#member`
- `parent` (string)
  - Constraints: minLength: 1, maxLength: 256, nullable

## Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "ALPHA. Append-only Calendar membership policy. Host validates identity, permissions and causal history before accepting records.",
      "key": "any",
      "record": {
        "properties": {
          "payload": {
            "ref": "#payload",
            "type": "ref"
          }
        },
        "required": [
          "payload"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "member": {
      "properties": {
        "did": {
          "format": "did",
          "type": "string"
        },
        "role": {
          "knownValues": [
            "owner",
            "editor",
            "viewer"
          ],
          "type": "string"
        }
      },
      "required": [
        "did",
        "role"
      ],
      "type": "object"
    },
    "payload": {
      "nullable": [
        "parent"
      ],
      "properties": {
        "id": {
          "maxLength": 256,
          "minLength": 1,
          "type": "string"
        },
        "members": {
          "items": {
            "ref": "#member",
            "type": "ref"
          },
          "maxLength": 100,
          "minLength": 1,
          "type": "array"
        },
        "parent": {
          "maxLength": 256,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "id",
        "members"
      ],
      "type": "object"
    }
  },
  "id": "email.atmos.calendar.policy",
  "lexicon": 1
}
```
