Skip to content

Add macOS Compatibility #1

@DavidJayMartin

Description

@DavidJayMartin

Issue Description

Currently, the Outlook Events Plugin only works on Windows machines due to its dependency on the Windows COM interface (win32com.client) to access Outlook data. This limits the plugin's usability for macOS users who also use Microsoft Outlook.

Current Limitations

  • Python API Service: Uses win32com.client which is Windows-specific
  • Outlook Access: Relies on Windows COM interface to read from Outlook OST files
  • Platform Lock-in: Cannot be used by macOS users running Outlook for Mac

Proposed Solution

Implement cross-platform compatibility by creating a hybrid approach that detects the operating system at runtime and uses the appropriate local API:

  • Windows: Continue using the existing COM interface (win32com.client)
  • macOS: Implement AppleScript integration to interface with Outlook for Mac
  • Single Codebase: Maintain one Python service that automatically chooses the correct method based on the detected platform
  • Local-Only: Both implementations maintain local-only data access with no external API dependencies

##Technical Considerations

  • Platform Detection: Use Python's platform module to detect OS at runtime
  • Permissions: AppleScript might require additional macOS permissions for Outlook access
  • Dependencies: Platform-specific requirements in requirements.txt (e.g., pyobjc for AppleScript on macOS)
  • Error Handling: Graceful fallback when Outlook is not available or accessible on either platform
  • Data Format: Ensure consistent event data structure across both Windows COM and macOS AppleScript implementations
  • Code Organization: Separate platform-specific code into modules while maintaining a unified API interface

User Impact

  • Enable macOS users to use the plugin with Outlook for Mac
  • Maintain backward compatibility with existing Windows installations
  • Keep all data processing local (no cloud dependencies)
  • Seamless experience regardless of platform

Acceptance Criteria

  • Plugin automatically detects Windows vs macOS at runtime
  • Plugin works on macOS with Outlook for Mac using AppleScript
  • Maintains existing Windows functionality using COM interface
  • Consistent event data format across both platforms
  • Clear documentation for setup on both platforms
  • Error handling for unsupported platforms and missing Outlook installations
  • Updated README with macOS installation instructions
  • All calendar data remains local (no external API calls)
  • Platform-specific dependencies properly managed in requirements

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions