master
Евгений Кучерук
feat: implement UID-based synchronization and CalSync metadata - Replace unreliable title+time matching with industry-standard UID-based approach - Add calendar:UID field support in Exchange SOAP requests - Implement CalSync Extended Properties with unified PropertySetId - Fix duplicate event creation when events are moved or renamed - Add comprehensive documentation for UID-based synchronization - Update spec.md and README.md with technical details and user benefits
mark disposable
Implement ICS calendar download and parsing functionality - CalendarEvent model with comprehensive properties - IcsDownloader service with webcal:// protocol support - IcsParser service with RFC 5545 compliance - Real iCloud calendar integration and testing - Console application for manual testing - Integration tests with real calendar data - Successfully finds test event on June 19, 2025 at 10:15 MSK - Handles 314+ events from real calendar - 33/35 tests passing
feat: Add Exchange Web Services integration with comprehensive testing infrastructure - Add ExchangeService with full EWS API integration - Add MockEwsServer and EwsRequestRecorder for testing - Add comprehensive test suite with security measures - All real credentials masked, only mock data in tests
docs: update README.md with latest UID-based synchronization documentation - Sync documentation with spec.md changes - Include comprehensive UID-based approach explanation - Add CalSync Extended Properties details - Update technical benefits and implementation notes
Fix Exchange event creation and timezone handling - Replace Microsoft.Exchange.WebServices with HTTP/SOAP - Implement proper timezone conversion (Europe/Moscow->UTC) - Add ExchangeHttpService for .NET 8 compatibility - Events now created in real Exchange with correct time
Initial commit: CalSync project with comprehensive test suite - Created .NET 9.0 console application for calendar synchronization - Added comprehensive technical specification (spec.md) - Added user documentation (README.md) - Created test suite with 31 tests covering all functional requirements - Added test summary documentation (TestSummary.md) - Configured xUnit testing framework - Set up proper project structure with solution file - Added comprehensive .gitignore for .NET projects - Test results: 29/31 tests passing (2 expected failures for unimplemented features)