Skip to content

Instantly share code, notes, and snippets.

@suhr
Last active November 23, 2019 02:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save suhr/39dcf9ef042e07a80fe288ed76f2aca8 to your computer and use it in GitHub Desktop.
Save suhr/39dcf9ef042e07a80fe288ed76f2aca8 to your computer and use it in GitHub Desktop.
{
PendingTask | EndedTask | WaitingTask | RecurringParrentTask | RecurringChildTask
...
}
Task :: {
status: Status
uuid: Uuid
entry: Date
description: string
start?: Date
due?: Date
until?: Date
modified: Date
scheduled?: Date
project?: string
priority?: Priority
depends?: string
tags: [...Word]
annotations?: [...Annotation]
}
Active :: {
end?: _|_
wait?: _|_
}
NonRecurring :: {
recur?: _|_
mask?: _|_
imask?: _|_
parrent?: _|_
}
PendingTask :: {
Task
Active
NonRecurring
}
EndedTask :: {
Task
status: "deleted" | "completed"
end: Date
wait?: _|_
NonRecurring
}
WaitingTask :: {
Task
status: "waiting"
wait: Date
end?: _|_
NonRecurring
}
RecurringTask :: {
Task
status: "recurring"
recur: Duration
Active
}
RecurringParrentTask :: {
RecurringTask
due: Date
mask: Mask
imask?: _|_
parrent?: _|_
}
RecurringChildTask :: {
RecurringTask
imask: int
parrent: Uuid
mask?: _|_
}
Annotation :: {
entry: Date
description: string
}
Status :: "pending" | "deleted" | "completed" | "waiting" | "recurring"
Mask :: =~ "[-+XW]{4}"
Word :: =~ "[^ ]+"
Priority :: "H" | "M" | "L"
Uuid :: =~ "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
Date :: =~ "[0-9]{8}T[0-9]{6}Z"
Duration :: string
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment