Time synchronization in a wireless sensor network is critical for accurate timestamping of events and fine-tuned coordination of wake/sleep duty cycles to reduce power consumption. This paper proposes TSync, a novel lightweight bidirectional time synchronization service for wireless sensor networks. TSync's bidirectional service offers both a push mechanism for accurate and low overhead global time synchronization as well as a pull mechanism for on-demand synchronization by individual sensor nodes. Multi-channel enhancements improve TSync's performance. We deploy a GPS-enabled framework in live sensor networks to evaluate the accuracy and overhead of TSync in comparison with other in-situ time synchronization algorithms.