A single occurrence of a recurring town.chalky.task that has diverged from its series' default. A recurring task is a template that projects occurrences onto later matching days; an occurrence stays a pure projection until the user acts on one day (marks it done, or removes it), at which point this record materializes to carry that per-day state. It exists only while it differs from the default — reverting an occurrence to not-done and not-skipped deletes the record. Replaces the older completedDates/skipDates string arrays that used to live on the task.
tid
Timestamp-based ID
Properties
completed
boolean
Required
No description available.
falsecompletedAt
string
datetime
Optional
When `completed` last flipped to true.
createdAt
string
datetime
Required
An RFC 3339 formatted timestamp.
date
string
Required
The occurrence day as YYYY-MM-DD. (series, date) uniquely identifies an occurrence within a repo.
series
string
Required
The rkey of the recurring town.chalky.task this occurrence belongs to. A weak reference: the full at-uri is derived from the author's repo and the town.chalky.task collection.
skipped
boolean
Required
Whether this occurrence was removed from the series (hidden without ending the whole series).
falsestamps
object
Optional
Hybrid-logical-clock stamps mirroring town.chalky.task's stamps field (see its description; approach borrowed from the CRDT ideas behind automerge.org). An occurrence is one decision, so it carries a single group.
updatedAt
string
datetime
Required
Last local edit; used as the whole-record last-write-wins clock during sync. The physical component of a hybrid logical clock, so it is monotonic per device.
View raw schema
{
"description": "A single occurrence of a recurring town.chalky.task that has diverged from its series' default. A recurring task is a template that projects occurrences onto later matching days; an occurrence stays a pure projection until the user acts on one day (marks it done, or removes it), at which point this record materializes to carry that per-day state. It exists only while it differs from the default — reverting an occurrence to not-done and not-skipped deletes the record. Replaces the older completedDates/skipDates string arrays that used to live on the task.",
"key": "tid",
"record": {
"properties": {
"completed": {
"default": false,
"type": "boolean"
},
"completedAt": {
"description": "When `completed` last flipped to true.",
"format": "datetime",
"type": "string"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"date": {
"description": "The occurrence day as YYYY-MM-DD. (series, date) uniquely identifies an occurrence within a repo.",
"type": "string"
},
"series": {
"description": "The rkey of the recurring town.chalky.task this occurrence belongs to. A weak reference: the full at-uri is derived from the author's repo and the town.chalky.task collection.",
"type": "string"
},
"skipped": {
"default": false,
"description": "Whether this occurrence was removed from the series (hidden without ending the whole series).",
"type": "boolean"
},
"stamps": {
"description": "Hybrid-logical-clock stamps mirroring town.chalky.task's stamps field (see its description; approach borrowed from the CRDT ideas behind automerge.org). An occurrence is one decision, so it carries a single group.",
"properties": {
"state": {
"description": "Covers completed, completedAt and skipped.",
"type": "string"
}
},
"type": "object"
},
"updatedAt": {
"description": "Last local edit; used as the whole-record last-write-wins clock during sync. The physical component of a hybrid logical clock, so it is monotonic per device.",
"format": "datetime",
"type": "string"
}
},
"required": [
"series",
"date",
"completed",
"skipped",
"createdAt",
"updatedAt"
],
"type": "object"
},
"type": "record"
}