1. A method performed by at least one processor of a communication device, the method comprising: determining, by the communication device, that a call has been answered, missed, or terminated by the communication device; generating, at a graphical user interface associated with the communication device, an indication of the call being answered, missed, or terminated; responsive to determining that the call has been answered, missed, or terminated by the communication device, automatically: determining, by the communication device, one or more contextual identifiers associated with the call, wherein the one or more contextual identifiers are based on a geographic location of the communication device at a time of the call, and storing the one or more contextual identifiers in association with the indication of the call in at least one data structure that includes other contextual identifiers associated with other indications of other calls, wherein the one or more contextual identifiers and the other contextual identifiers included in the at least one data structure are searchable; and determining that the one or more contextual identifiers satisfy a search query based at least in part on a second input received at the graphical user interface, wherein the one or more contextual identifiers and the indication of the call are determined in response to the search query.