# dev.skytick.recurrence

> Published by [skytick.dev](https://lexicon.garden/identity/did:plc:65owgqsbcpgn4utqkd5vwfw3)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:65owgqsbcpgn4utqkd5vwfw3/dev.skytick.recurrence)
- [Documentation](https://lexicon.garden/lexicon/did:plc:65owgqsbcpgn4utqkd5vwfw3/dev.skytick.recurrence/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:65owgqsbcpgn4utqkd5vwfw3/dev.skytick.recurrence/examples)

## Definitions

### `dev.skytick.recurrence`

**Type**: `record`

A rule that adds a task to a list again and again.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `createdAt` | `string` (datetime) | Yes |  |
| `endOn` | `string` | No | Local date (YYYY-MM-DD) after which no tasks are added. |
| `freq` | `string` | Yes |  |
| `interval` | `integer` | Yes | Repeat every N days, weeks, months or years. |
| `lastGeneratedOn` | `string` | No | Local date (YYYY-MM-DD) of the newest occurrence that was already turned into a task. |
| `list` | `string` | Yes | Record key (rkey) of the list the tasks are added to. |
| `monthDay` | `integer` | No | Day of the month for monthly rules; absent means the day of startOn. Short months use their last day. |
| `paused` | `boolean` | No |  |
| `remindHour` | `integer` | No | Local hour (0-23) at which each generated task sends a reminder; absent means no reminder. |
| `startOn` | `string` | Yes | Local date (YYYY-MM-DD) of the first occurrence. |
| `text` | `string` | Yes |  |
| `updatedAt` | `string` (datetime) | No |  |
| `weekdays` | `array` | No | Weekdays 0-6 (Sun-Sat) for weekly rules; absent means the weekday of startOn. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A rule that adds a task to a list again and again.",
      "key": "tid",
      "record": {
        "properties": {
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "endOn": {
            "description": "Local date (YYYY-MM-DD) after which no tasks are added.",
            "maxGraphemes": 10,
            "maxLength": 100,
            "type": "string"
          },
          "freq": {
            "enum": [
              "daily",
              "weekly",
              "monthly",
              "yearly"
            ],
            "type": "string"
          },
          "interval": {
            "description": "Repeat every N days, weeks, months or years.",
            "maximum": 999,
            "minimum": 1,
            "type": "integer"
          },
          "lastGeneratedOn": {
            "description": "Local date (YYYY-MM-DD) of the newest occurrence that was already turned into a task.",
            "maxGraphemes": 10,
            "maxLength": 100,
            "type": "string"
          },
          "list": {
            "description": "Record key (rkey) of the list the tasks are added to.",
            "maxGraphemes": 64,
            "maxLength": 640,
            "type": "string"
          },
          "monthDay": {
            "description": "Day of the month for monthly rules; absent means the day of startOn. Short months use their last day.",
            "maximum": 31,
            "minimum": 1,
            "type": "integer"
          },
          "paused": {
            "type": "boolean"
          },
          "remindHour": {
            "description": "Local hour (0-23) at which each generated task sends a reminder; absent means no reminder.",
            "maximum": 23,
            "minimum": 0,
            "type": "integer"
          },
          "startOn": {
            "description": "Local date (YYYY-MM-DD) of the first occurrence.",
            "maxGraphemes": 10,
            "maxLength": 100,
            "type": "string"
          },
          "text": {
            "maxGraphemes": 500,
            "maxLength": 5000,
            "type": "string"
          },
          "updatedAt": {
            "format": "datetime",
            "type": "string"
          },
          "weekdays": {
            "description": "Weekdays 0-6 (Sun-Sat) for weekly rules; absent means the weekday of startOn.",
            "items": {
              "maximum": 6,
              "minimum": 0,
              "type": "integer"
            },
            "maxLength": 7,
            "type": "array"
          }
        },
        "required": [
          "list",
          "text",
          "freq",
          "interval",
          "startOn",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "dev.skytick.recurrence",
  "lexicon": 1
}
```
