town.chalky.task

chalky.town

Documentation

A single task in a chalky.town weekly planner. Stored in the author's repo. Field names mirror app.attodo.task where the concept is shared (title/description/completed/completedAt and the rec* recurrence fields); chalky-specific fields (day, order, color, subtasks, updatedAt) extend it. A recurring task is a template that projects occurrences onto later matching days; per-occurrence state (done/skipped) lives in separate town.chalky.occurrence records that reference this one.

main record

A single task in a chalky.town weekly planner. Stored in the author's repo. Field names mirror app.attodo.task where the concept is shared (title/description/completed/completedAt and the rec* recurrence fields); chalky-specific fields (day, order, color, subtasks, updatedAt) extend it. A recurring task is a template that projects occurrences onto later matching days; per-occurrence state (done/skipped) lives in separate town.chalky.occurrence records that reference this one.

Record Key tid Timestamp-based ID

Properties

color string Optional

No description available.

Known values: salmon, chardonnay, witch-haze, mint-green, melrose
completed boolean Required

No description available.

Default: false
completedAt string datetime Optional

When `completed` last flipped to true (non-recurring tasks only; recurring tasks track per-occurrence completion in completedDates).

createdAt string datetime Required

An RFC 3339 formatted timestamp.

day string Optional

Local calendar day the task sits on, as YYYY-MM-DD. Omit for the Someday bucket.

description string Optional

Optional longer notes. May contain block-level Markdown (headings, lists, links, code, etc.); clients that don't render Markdown can show it as plain text.

maxLength: 3000 bytes
isRecurring boolean Optional

Whether this task is a recurring template.

Default: false
order integer Required

Fractional-ish sort key within a day; lower sorts higher.

recByMonth integer Optional

Yearly only: the month (1=January … 12=December). Omitted means the anchor's month.

minimum: 1maximum: 12
recByMonthDay integer Optional

Monthly & yearly "day" mode: the date-of-month. Omitted means the anchor's date. Months without this day are skipped.

minimum: 1maximum: 31
recByWeekday array of integer Optional

Weekly only: weekdays the series lands on (0=Sunday … 6=Saturday). Omitted means just the anchor day's weekday.

recCount integer Optional

Optional: end the series after this many occurrences, counted from the anchor (inclusive).

minimum: 1
recFrequency string Optional

How often the task recurs.

Allowed: daily, weekly, monthly, yearly
recInterval integer Optional

Recur every N frequency units (e.g. every 2 weeks).

minimum: 1
recMonthly string Optional

Monthly & yearly: land on the calendar date-of-month ("day") or the anchor's nth weekday ("weekday", e.g. the 2nd Friday). Omitted means "day".

Allowed: day, weekday
recUntil string Optional

Optional last occurrence day (YYYY-MM-DD), inclusive. Set directly or kept in sync as the concrete stop date when recCount is used.

subtasks array of ref #subtask Optional

No description available.

title string Required

The task title. May contain inline Markdown (links and emphasis); clients that don't render Markdown can show it as plain text.

maxLength: 500 bytes
updatedAt string datetime Required

Last local edit; used as the last-write-wins clock during sync.

View raw schema
{
  "key": "tid",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "title",
      "completed",
      "order",
      "createdAt",
      "updatedAt"
    ],
    "properties": {
      "day": {
        "type": "string",
        "description": "Local calendar day the task sits on, as YYYY-MM-DD. Omit for the Someday bucket."
      },
      "color": {
        "type": "string",
        "knownValues": [
          "salmon",
          "chardonnay",
          "witch-haze",
          "mint-green",
          "melrose"
        ]
      },
      "order": {
        "type": "integer",
        "description": "Fractional-ish sort key within a day; lower sorts higher."
      },
      "title": {
        "type": "string",
        "maxLength": 500,
        "description": "The task title. May contain inline Markdown (links and emphasis); clients that don't render Markdown can show it as plain text."
      },
      "recCount": {
        "type": "integer",
        "minimum": 1,
        "description": "Optional: end the series after this many occurrences, counted from the anchor (inclusive)."
      },
      "recUntil": {
        "type": "string",
        "description": "Optional last occurrence day (YYYY-MM-DD), inclusive. Set directly or kept in sync as the concrete stop date when recCount is used."
      },
      "subtasks": {
        "type": "array",
        "items": {
          "ref": "#subtask",
          "type": "ref"
        }
      },
      "completed": {
        "type": "boolean",
        "default": false
      },
      "createdAt": {
        "type": "string",
        "format": "datetime"
      },
      "updatedAt": {
        "type": "string",
        "format": "datetime",
        "description": "Last local edit; used as the last-write-wins clock during sync."
      },
      "recByMonth": {
        "type": "integer",
        "maximum": 12,
        "minimum": 1,
        "description": "Yearly only: the month (1=January … 12=December). Omitted means the anchor's month."
      },
      "recMonthly": {
        "enum": [
          "day",
          "weekday"
        ],
        "type": "string",
        "description": "Monthly & yearly: land on the calendar date-of-month (\"day\") or the anchor's nth weekday (\"weekday\", e.g. the 2nd Friday). Omitted means \"day\"."
      },
      "completedAt": {
        "type": "string",
        "format": "datetime",
        "description": "When `completed` last flipped to true (non-recurring tasks only; recurring tasks track per-occurrence completion in completedDates)."
      },
      "description": {
        "type": "string",
        "maxLength": 3000,
        "description": "Optional longer notes. May contain block-level Markdown (headings, lists, links, code, etc.); clients that don't render Markdown can show it as plain text."
      },
      "isRecurring": {
        "type": "boolean",
        "default": false,
        "description": "Whether this task is a recurring template."
      },
      "recInterval": {
        "type": "integer",
        "minimum": 1,
        "description": "Recur every N frequency units (e.g. every 2 weeks)."
      },
      "recByWeekday": {
        "type": "array",
        "items": {
          "type": "integer",
          "maximum": 6,
          "minimum": 0
        },
        "description": "Weekly only: weekdays the series lands on (0=Sunday … 6=Saturday). Omitted means just the anchor day's weekday."
      },
      "recFrequency": {
        "enum": [
          "daily",
          "weekly",
          "monthly",
          "yearly"
        ],
        "type": "string",
        "description": "How often the task recurs."
      },
      "recByMonthDay": {
        "type": "integer",
        "maximum": 31,
        "minimum": 1,
        "description": "Monthly & yearly \"day\" mode: the date-of-month. Omitted means the anchor's date. Months without this day are skipped."
      }
    }
  },
  "description": "A single task in a chalky.town weekly planner. Stored in the author's repo. Field names mirror app.attodo.task where the concept is shared (title/description/completed/completedAt and the rec* recurrence fields); chalky-specific fields (day, order, color, subtasks, updatedAt) extend it. A recurring task is a template that projects occurrences onto later matching days; per-occurrence state (done/skipped) lives in separate town.chalky.occurrence records that reference this one."
}
subtask object

No description available.

Properties

completedAt string datetime Optional

When `done` last flipped to true. Used to order completed subtasks by completion time.

done boolean Required

No description available.

id string Required

No description available.

text string Required

No description available.

maxLength: 500 bytes
View raw schema
{
  "type": "object",
  "required": [
    "id",
    "text",
    "done"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "done": {
      "type": "boolean",
      "default": false
    },
    "text": {
      "type": "string",
      "maxLength": 500
    },
    "completedAt": {
      "type": "string",
      "format": "datetime",
      "description": "When `done` last flipped to true. Used to order completed subtasks by completion time."
    }
  }
}

Lexicon Garden

@