A task in the context of airflow is the basic unit of execution. They are arranged into [[Airflow Dags]] and then have upstream and downstream dependencies set between them in order to express the order in which they should be run. There are three kinds of tasks: 1. Operators: they are predefined task templates that you can string together quickly. 2. Sensors: special subclass of operators, which are entirely about waiting for an external event to happen. 3. A Taskflow-decorated @task, which is a custom python function packaged as a task. [See this](https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/tasks.html)