Personalization is becoming increasingly important in agent programming, particularly as it relates to the Web. We propose to develop underspecified, task-specific agent programs, and to automatically personalize them to the preferences of individual users. To this end, we propose a framework for agent programming that integrates rich, non-Markovian, qualitative user preferences expressed in a linear temporal logic with quantitative Markovian reward functions. We begin with DTGOLOG, a first-order, decision-theoretic agent programming language in the situation calculus. We present an algorithm that compiles qualitative preferences into GOLOG programs and prove it sound and complete with respect to the space of solutions. To integrate these preferences into DTGOLOG we introduce the notion of multi-program synchronization and restate the semantics of the language as a transition semantics. We demonstrate the utility of this framework with an application to personalized travel planning over the Web. To the best of our knowledge this is the first work to combine qualitative and quantitative preferences for agent programming. Further, while the focus of this paper is on the integration of qualitative and quantitative preferences, a side effect of this work is realization of the simpler task of integrating qualitative preferences alone into agent programming as well as the generation of GOLOG programs from LTL formulae.