End-user programming, particularly trigger-action programming (TAP), is a popular method of letting users express their intent for how smart devices and cloud services interact. Unfortunately, in some situations it can be challenging for users to correctly express their desires through TAP. This paper presents AutoTap, a system that lets novice users easily specify desired properties for devices and services. AutoTap translates these properties to linear temporal logic (LTL) and both automatically synthesizes property-satisfying TAP rules from scratch and repairs existing TAP rules. We designed AutoTap based on a user study mapping the properties users wish to express. Through a second user study, we show that novice users are significantly more likely to express some desired behaviors correctly using AutoTap than using TAP rules. From our benchmarks and experiments, we find AutoTap is a simple and effective option for correct and expressive end-user programming.