Welcome to the Task Tracker documentation.
This documentation covers how scheduling works and how to use the API and Webhooks to automate your tasks.
A background job runs every minute, finds all active tasks that are due, and creates an occurrence for each one.
Each scheduled task has a recurrence rule that controls when it fires.
Every time a task fires, an occurrence record is created. Each occurrence has a status:
Pending occurrences can be completed or skipped from the task detail page or via the API.
Each task can have an optional cooldown period (e.g. 6 hours). If the task was completed recently within that window, the next occurrence is still created but no webhook is dispatched. This prevents repeated notifications for tasks you just finished.
If the scheduler falls behind (e.g. downtime), it creates one occurrence at the originally scheduled time, then advances to the next future slot. It does not flood you with missed occurrences.
Any task can be triggered on demand from the UI or the API, whether or not it has a schedule. This creates a new pending occurrence and dispatches webhooks.
The dashboard and task detail pages update in real time when occurrences are created or completed. No page refresh needed.
When an occurrence fires and cooldown is not active, all configured webhooks are dispatched. See the Webhooks page for payload format, HMAC validation, and retry details.