A method of scheduling radar tasks for example surveillance search, radar tracking or BITE that need to be carried out based on radar availability in a radar apparatus comprising the steps of: receiving one or more tasks to schedule, the task having a desired time for execution; calculating a time based urgency function for before the desired time for each said task and a time based urgency function for after the desired time for each said task, wherein each urgency function has a desired time for completion and is a linear function with different gradients before and after said desired time; identifying for each said task, from before desired time lists and after desired time lists where each respective list stores tasks having urgency functions of the same gradient value, a before desired time list and an after desired time list matching the respective gradient values of the computed urgency functions for each said task; and storing, in a memory device, each said task, the associated urgency function for before the desired time, and the associated urgency function for after the desired time, the storing including placing each said task in the identified before desired time list and place each said task in the identified after desired time list, wherein the placing compromises ordering each said task in the same list based on increasing desired time for execution of the tasks; and locating, when a task is to be performed, the task having the highest urgency value, the locating comprising calculating the urgency value of the first executable task in each of the plurality of before desired time lists and the plurality of after desired time lists; and passing to a radar for execution the located task having the highest urgency value. receiving one or more tasks to schedule, the task having a desired time for execution; calculating a time based urgency function for before the desired time for each said task and a time based urgency function for after the desired time for each said task, wherein each urgency function has a desired time for completion and is a linear function with different gradients before and after said desired time; identifying for each said task, from before desired time lists and after desired time lists where each respective list stores tasks having urgency functions of the same gradient value, a before desired time list and an after desired time list matching the respective gradient values of the computed urgency functions for each said task; and storing, in a memory device, each said task, the associated urgency function for before the desired time, and the associated urgency function for after the desired time, the storing including placing each said task in the identified before desired time list and place each said task in the identified after desired time list, wherein the placing compromises ordering each said task in the same list based on increasing desired time for execution of the tasks; and locating, when a task is to be performed, the task having the highest urgency value, the locating comprising calculating the urgency value of the first executable task in each of the plurality of before desired time lists and the plurality of after desired time lists; and passing to a radar for execution the located task having the highest urgency value.