Documentation

Welcome to the Task Tracker documentation.

This documentation covers how scheduling works and how to use the API and Webhooks to automate your tasks.

  • API Reference: Learn how to authenticate and interact with your tasks programmatically.
  • Webhooks: Set up automated notifications when tasks are triggered or completed.

How the Scheduler Works

A background job runs every minute, finds all active tasks that are due, and creates an occurrence for each one.

Frequencies

Each scheduled task has a recurrence rule that controls when it fires.

  • Daily — every N days
  • Weekly — every N weeks on a chosen day
  • Every N Days — a fixed day interval (e.g. every 10 days)
  • Monthly (day of month) — same date each month (e.g. the 15th)
  • Monthly (nth weekday) — a specific weekday each month (e.g. 3rd Tuesday, or last Friday)

Schedule Options

  • Interval — how many periods between fires (e.g. every 2 weeks)
  • Time of day — when the task fires each day
  • Timezone — all times are evaluated in your chosen timezone
  • End date — stop scheduling after this date (optional)
  • Run limit — stop after a set number of occurrences (optional)

Occurrences

Every time a task fires, an occurrence record is created. Each occurrence has a status:

  • Pending — waiting to be completed or skipped
  • Completed — marked done by a user or the API
  • Skipped — dismissed without completing
  • Missed — older pending occurrences are auto-skipped when a new one fires
  • Notification Cooldown — created during a cooldown period (no webhook sent)

Pending occurrences can be completed or skipped from the task detail page or via the API.

Notification Cooldown

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.

Catch-up Behavior

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.

Task Status

  • Active — runs on schedule
  • Paused — the scheduler skips this task until it is reactivated
  • Archived — the scheduler skips this task permanently

Manual Trigger

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.

Real-time Updates

The dashboard and task detail pages update in real time when occurrences are created or completed. No page refresh needed.

Webhooks

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.