We consider the question of how should a firm optimally set a sequence of prices in order to maximize its long-term average revenue given a continuous flow of strategic customers. In particular, customers arrive over time, are strategic in timing their purchases and are heterogeneous along two dimensions: their valuation for the firm's product and their willingness to wait before purchasing or leaving. The customers' patience and valuation may be correlated in an arbitrary fashion. For this general formulation, we prove that the firm may restrict attention to short cyclic pricing policies, which have length twice the maximum willingness to wait of the customer population. We further establish results on the suboptimality of monotone pricing policies in general, and illustrate the structure of optimal policies. These are, in a typical scenario, characterized by nested sales, where the firm offers partial discounts throughout each cycle, offers a significant discount halfway through the cycle, with the largest discount offered at the end of the cycle. From a computational perspective, we exploit the structure of the underlying problem to develop a novel dynamic programming formulation for the problem that computes an optimal pricing policy in polynomial time (in the maximum willingness-to-wait). We further establish a form of equivalence between the problem of pricing for a stream of heterogeneous strategic customers and pricing for a pool of heterogeneous customers who may stockpile units of the product.