1. A method, in a data processing system, of sharing tasks among a plurality of individuals in a share group, comprising: maintaining a current task list data structure having task entries for tasks created by the user of the data processing system or shared with the user of the data processing system, wherein each task entry in the current task list data structure has a unique identifier; receiving, by the data processing system, a task message distributed to computing devices associated with the plurality of individuals, wherein the task message identifies a task to be shared among the plurality of individuals; outputting, by the data processing system, an indicator of the task to a user of the data processing system requesting whether the user wishes to accept the task; generating, by the data processing system, an acceptance message in response to the user accepting the task, wherein the acceptance message indicates the user's intent to complete the task; generating a task entry for the accepted task in the current task list data structure; distributing, by the data processing system, the acceptance message to computing devices associated with each of the plurality of individuals; and responsive to receiving a request from a computing device associated with an individual in the share group requesting that the user of the data processing system relinquish the task, relinquishing the task back to the share group such that any individual in the share group may accept the task for completion.