The promise of Web services is centered around standard and interoperable means for integrating loosely coupled Web based components that expose well-defined interfaces, while abstracting the implementation and platform specific details. The current and more mature core Web services standards SOAP, WSDL and UDDI provide a solid foundation to accomplish this. However, these specifications primarily enable development of simple Web services whereas the ultimate goal of Web services is to facilitate and automate business process collaborations both inside and outside enterprize boundaries. Useful business applications of Web services in B2B, B2C, and enterprize application integration environments will require the ability to compose complex and distributed Web services and the ability to formally describe the relationships between the constituent low-level services. This paper advocates an event-based approach for Web services coordination. We focused on reasoning about events to capture the semantics of complex Web service combinations. Then we present a formal language to specifying composite events for managing complex interactions amongst services, and detecting inconsistencies that may arise at run-time.