Skip to main content
Tasks follow the JMAP Tasks draft (urn:oximail:params:jmap:tasks alongside the standard shape), with tasks as JSTask objects (RFC 8984 family). The same items are served as VTODOs over CalDAV.

Objects and methods

Behaviours worth knowing

  • Create without taskListIds files the task into the account’s default list — resolved before the write transaction, so it is fast even under load.
  • Recurrence and progress follow JSTask: recurring tasks expand through the same occurrence authority as calendar events; per-occurrence completion is representable.
  • Alerts support offset and absolute triggers; an absolute alert does not require a due date. Firing is server-side with per-occurrence deduplication.
  • null patches erase. A JMAP update patch setting a property to null clears it (RFC 8620 §5.3) — description and priority included.
  • Dependencies and time tracking (dependsOn, time fields) are modelled on the task object.
  • VTODO round-trip: CalDAV clients see task lists as collections; VTODO VALARMs (including absolute TRIGGER;VALUE=DATE-TIME) import into alerts and re-emit on GET; ETags are content hashes, so concurrent edits from two protocols conflict loudly (412) instead of overwriting silently. Duplicate rows from repeated imports are repaired with oximail account dedupe-tasks (migration).
Task-to-content links (tasklinks) and templates are advertised as OxiMail capability objects, so a generic JMAP client can feature-detect them. Strictness rules are identical to the mail surface.