Methods for automatically scheduling and rescheduling tasks based on
predictable, observable, or measurable events, and on conditions
occurring in the vicinity of the user's location. A plurality of tasks
are defined by the user. Events or conditions depending on the user's
location and affecting the opportunity or the feasibility of the tasks
are associated with these tasks. Task schedules are assigned, merged, or
permuted to dynamically provide the user with a feasible and convenient
agenda.