in the following description , for purposes of explanation , numerous specific details are set forth in order to provide a thorough understanding of the invention . it will be apparent , however , to one skilled in the art that the invention can be practiced without these specific details . in other instances , structures and devices are shown at block diagram form only in order to avoid obscuring the invention . reference in this specification to “ one embodiment ” or “ an embodiment ” means that a particular feature , structure , or characteristic described in connection with the embodiment is included in at least one embodiment of the invention . the appearances of the phrase “ in one embodiment ” in various places in the specification are not necessarily all referring to the same embodiment , nor are separate or alternative embodiments mutually exclusive of other embodiments . moreover , various features are described which may be exhibited by some embodiments and not by others . similarly , various requirements are described which may be requirements for some embodiments but not other embodiments . advantageously embodiments of the present invention disclose techniques to automatically schedule an activity between multiple participants so that the above - described problems associated with group scheduling are at least reduced . in one embodiment group scheduling is performed for a group of participants that define a virtual or online community , for example the online community 10 shown in fig1 of the drawings . referring to fig1 the online community 10 includes a number of members 12 who are able to communicate with each other via a communications fabric 14 . the communications fabric 14 defines a communications medium and a communications protocol by which the members can communicate . in accordance with different embodiments of the invention the communications medium may be a wired medium or it may be a wireless medium . for example , the communications fabric may be the internet in which case the fabric is defined by the hypertext transfer protocol ( http ) over the transmission control protocol / internet protocol ( tcp / ip ). in other examples , the communications fabric may be defined by a general packet radio service ( gprs ) network a code division multiple access ( coma ) network , the institute of electrical and electronics engineers ( ieee ) wireless standard known as 802 . 11 network , or structured query language ( sql )/ ethernet , etc . in one embodiment , the online community may be a social community defined to facilitate social interaction between its members 12 . examples of such social communities include the online community known as friendster , myspace , facebook , etc . each member 12 of the online community 10 has a member profile comprising profile information . generally the profile information is used to facilitate interaction between the members of the online community 10 , and in accordance with different embodiments of the invention may include such information as a member &# 39 ; s name , sex , age , picture , interests , contact information , birthday , etc . in one embodiment , a member &# 39 ; s profile also includes a friends / buddy list and sources of scheduling information ( hereinafter “ sources ”). based on the sources specified in a member &# 39 ; s profile , a scheduling server that implements a group scheduling technique in accordance with one embodiment of the invention ( as will be described later ), aggregates scheduling information . examples of sources include online social profiles , e . g . stored in myspace , facebook , etc ., an on - phone buddy list , a chat buddy list ( e . g . america online instant messaging , icq , microsoft network im , google talk . yahoo im , etc . ), a presence and location server , and a member &# 39 ; s personal calendar . in general , a source specifies a location of scheduling information , and access or login information in order to gain access to the location . in one embodiment , the scheduling information may include a member &# 39 ; s personal calendar , and availability . referring now to fig2 of the drawings , there is shown a server 16 that may be communicatively coupled to each of the members 12 of the online community 14 . more accurately , the server 16 can be communicatively coupled to a client device used by a member 12 to communicate with other members 12 via the communications fabric 14 as can be seen from fig2 of the drawings , the server 16 includes a processing component 18 which is coupled to a memory 20 . the server 16 also includes a communications component 22 to facilitate communications with the members 12 . such communications may be in accordance with the communications mediums and protocols supported by the communications fabric 14 . the memory 20 includes profile data 24 corresponding to the above - described member profiles . the memory 20 also includes a group scheduler 26 , in accordance with one embodiment of the invention . although the group scheduler 26 is described as implemented in software , in accordance with other embodiments of the invention the group scheduler 26 , or at least some components thereof may be implemented in hardware . in other words , the description of the group scheduler 26 as a software component is intended to be merely illustrative , and therefore non - limiting . referring now to fig3 of the drawings , there is shown a flowchart of operations performed by the group scheduler 26 , in accordance with one embodiment of the invention . as will be seen , at block 30 , the group scheduler 26 aggregates schedule data / information for the various members 12 of the online community 14 . in one embodiment , the particular operations performed at block 30 may be performed using an active procedure , or a passive procedure . for the active procedure , the group scheduler 26 actively establishes communications with the sources for each member 12 , and retrieves scheduling information for that member , from each source . the active procedure may be performed on a periodic basis . in accordance with the passive procedure , a client device for each member 12 of the online community 14 , establishes a communications session with the server 16 , and pushes or sends scheduling information from the various sources to the group scheduler 26 . for the passive procedure , the aggregation of the scheduling information from the various sources may be performed by the client device for a member 12 . referring again to fig3 of the drawings , at block 32 the group scheduler 26 discovers matches in the aggregated scheduling information . at block 34 , the group scheduler 26 notifies the members 12 of the matching activities , and at block 36 , the group scheduler 26 confirms each group activity in the group schedule based on input from the members 12 . as described above , each member 12 interacts with the online community 14 via a client device which may be a mobile phone , a personal digital assistant ( pda ), pocket pc , etc . an example of such a client device is shown in fig4 of the drawings , where it is indicated generally by reference numeral 40 . referring to fig4 , it will be seen that the client device 40 includes a processing component 42 which is coupled to a memory 44 . the client device 40 also includes a communications component 46 to facilitate communications with other client devices within the online community 14 . in one embodiment , the memory 44 may include a personal scheduling program which includes functionality to allow a member 12 to enter an activity , and to selectively upload that activity to the scheduling server 16 . in one embodiment , the scheduling program may be configured to automatically upload the activity to the scheduling server 16 , whereas in another embodiments the scheduling program may be configured to only upload the scheduled activity if a member 12 indicates that the activity is to be uploaded . for example , in one embodiment the scheduling program may include an “ upload button ” which a member 12 selects in order to cause the scheduling program to upload the scheduled activity to the scheduling server 16 . entering an activity into the scheduling program , as described may include entering activity attributes such as activity type , activity location , and activity time . in some embodiments , a member &# 39 ; s personal schedule may not be stored locally within the client device 40 , but may instead be stored on a server that is accessible by the client device 40 . in order to perform the operations at block 32 , described with reference to fig3 of the drawings , in one embodiment the group scheduler 26 may include a search engine . the search engine may be configured to search the schedules of all members 12 of the online community 14 to find or discover matching activities . in other embodiments , the search engine may be configured to search only the schedules of the members 12 who are included in the friends / buddy list of a particular member 12 who is an organizer of an activity . in yet a further case , the search engine may be configured to search the schedules of those members who are included in a custom activity partner list that the organizer defines on an ad - hoc basis , or the group scheduler 26 defines based on a history of previously scheduled activities . for example , the custom activity partner list may include sublists from the friends / buddy list for particular activities such as chess , basketball , movies , etc . thus , for example if the organizer wishes to schedule a basketball game , the organizer simply inputs the location and time of the basketball game , and uploads this information to the scheduling server 16 . the scheduling server 16 , more particularly , the group scheduler 26 of the scheduling server 16 , recognizes that the organizer ( based on the organizer &# 39 ; s profile ), has a custom activity partner list for baseball , and thus only searches the schedules of those activity partners to find a match . in the case of an activity partner list based on history , the group scheduler 26 identifies those members 12 of the online community 14 with whom the organizer has played a basketball game in the past , and then searches the schedules of those members in order to find a match . the search engine may be set to use different search / match criteria to identify matching activities . in one embodiment , the search criteria may be given different weights . for example , in one embodiment activity location is weighted more than activity time , and activity type is weighted more than activity place . further , the search criteria may be set to find only exact matches . for example , if an organizer enters golf in his / her schedule , then no match will be found in the case of another friend / buddy from the online community 14 having the activity “ sport ” indicated in his / her schedule . in some embodiments , the organizer may set the search engine to search based on an “ inexact match .” for this embodiment , if the organizers schedule indicates golf as an activity at a specified time and location , the search engine will match the activity “ golf ” with the activity “ sport ” discovered on the schedules of other members of the online community 14 . after the operations performed at block 32 , the group scheduler 26 has a group schedule which comprises the activity type , place , and location of the matched activities for the entire community 14 or for a selected subset of that community . the particular operations performed at block 34 , described with reference to fig3 of the drawings , includes , in one embodiment publishing the group schedule . publishing the group schedule may include sending the group schedule to each of the members 12 of the online community 14 or to a limited subset of the members 12 of the online communities 14 , as the case may be . in some cases , an invitation may be sent to a member 12 , whereby the member 12 is invited to participate in a matched activity . the operation of sending the invitation may be performed in the case of “ implicit ” scheduling , as opposed to “ explicit ” scheduling . explicit scheduling refers to the case where a member 12 has scheduled an activity at a particular time which the group scheduler 26 attempts to match , in accordance with the above - described technique . in contrast , implicit scheduling refers to the case where a member 12 has no activity scheduled at a time for which a match is sought by the group scheduler 26 . thus , in the case of implicit scheduling , it is appropriate to send an invitation to the member who has been implicitly scheduled in order invite that member to participate in the matched activity . in one embodiment , when a member 12 receives notification of the matched schedule , the member can confirm participation by sending a confirmation notification to the server 16 . the server 16 then confirms that member &# 39 ; s participation at block 36 by sending , for example , a confirmation notification to the member . in some cases , where the number of members that can participate in a particular activity is limited to a finite number , then once that particular finite number of members have confirmed the participation , the group scheduler 26 sends out a notification to the members of the online community 14 to indicate that that particular matching activity is now closed to further participation . referring to fig5 of the drawings , shows an example of hardware 50 that may be used to implement the server 16 or the client device 40 , in accordance with one embodiment of the invention . the hardware 50 typically includes at least one processor 52 coupled to a memory 54 . the processor 52 may represent one or more processors ( e . g ., microprocessors ), and the memory 54 may represent random access memory ( ram ) devices comprising a main storage of the hardware 50 , as well as any supplemental levels of memory e . g ., cache memories , non - volatile or backup memories ( e . g . programmable or flash memories ), read - only memories , etc . in addition , the memory 54 may be considered to include memory storage physically located elsewhere in the hardware 50 , e . g . any cache memory in the processor 52 , as well as any storage capacity used as a virtual memory , e . g ., as stored on a mass storage device 60 . the hardware 50 also typically receives a number of inputs and outputs for communicating information externally . for interface with a user or operator , the hardware 50 may include one or more user input devices 56 ( e . g ., a keyboard , a mouse , etc .) and a display 58 ( e . g ., a cathode ray lube ( crt ) monitor , a liquid crystal display ( lcd ) panel ). for additional storage , the hardware 50 may also include one or more mass storage devices 60 , e . g ., a floppy or other removable disk drive , a hard disk drive , a direct access storage device ( dasd ), an optical drive ( e . g . a compact disk ( cd ) drive , a digital versatile disk ( dvd ) drive , etc .) and / or a tape drive , among others . furthermore , the hardware 50 may include an interface with one or more networks 52 ( e . g ., a local area network ( lan ), a wide area network ( wan ), a wireless network , and / or the internet among others ) to permit the communication of information with other computers coupled to the networks . it should be appreciated that the hardware 50 typically includes suitable analog and / or digital interfaces between the processor 52 and each of the components 54 , 56 , 58 and 62 as is well known in the art . the hardware 50 operates under the control of an operating system 64 , and executes various computer software applications 66 , components , programs , objects , modules , etc . ( e . g . a program or module which performs operations described above ) to perform other operations described with reference to fig1 through 4 . moreover , various applications , components , programs , objects , etc . may also execute on one or more processors in another computer coupled to the hardware 50 via a network 62 , e . g . in a distributed computing environment , whereby the processing required to implement the functions of a computer program may be allocated to multiple computers over a network . in general , the routines executed to implement the embodiments of the invention , may be implemented as part of an operating system or a specific application , component , program , object , module or sequence of instructions referred to as “ computer programs .” the computer programs typically comprise one or more instructions set at various times in various memory and storage devices in a computer , and that , when read and executed by one or more processors in a computer , cause the computer to perform operations necessary to execute elements involving the various aspects of the invention . moreover while the invention has been described in the context of fully functioning computers and computer systems , those skilled in the art will appreciate that the various embodiments of the invention are capable of being distributed as a program product in a variety of forms , and that the invention applies equally regardless of the particular type of machine or computer - readable media used to actually effect the distribution . examples of computer - readable media include but are not limited to recordable type media such as volatile and non - volatile memory devices , floppy and other removable disks , hard disk drives , optical disks ( e . g ., compact disk read - only memory ( cd roms ), digital versatile disks , ( dvds ), etc . ), among others , and transmission type media such as digital and analog communication links .