We build and study dynamic versions of epistemic logic. We study languages parameterized by an action signature that allows one to express epistemic actions such as (truthful) public announcements, completely private announcements to groups of agents, and more. The language 𝓛(Σ) is modeled on dynamic logic. Its sentence-building operations include modalities for the execution of programs, and for knowledge and common knowledge. Its program-building operations include action execution, composition, repetition, and choice. We consider two fragments of 𝓛(Σ). In 𝓛1(Σ), we drop action repetition; in 𝓛0(Σ), we also drop common knowledge. We present the syntax and semantics of these languages and sound proof systems for the validities in them. We prove the strong completeness of a logical system for 𝓛0(Σ) and the weak completeness of one for 𝓛1(Σ). We show the finite model property and, hence, decidability of 𝓛1(Σ). We translate 𝓛1(Σ) into PDL, obtaining a second proof of decidability. We prove results on expressive power, comparing 𝓛1(Σ) with modal logic together with transitive closure operators. We prove that a logical language with operators for private announcements is more expressive than one for public announcements.