Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Calendar Integration for Tasks #204

Merged
merged 1 commit into from
Oct 16, 2024

Conversation

sweep-ai[bot]
Copy link
Contributor

@sweep-ai sweep-ai bot commented Oct 16, 2024

This pull request was created by Sweep to resolve the following request by @curtisdelicata:

Original Request

Description: Integrate popular calendars (Google, Outlook) for scheduling meetings and follow-ups.

Tasks:
Set up calendar API integration.
Allow scheduling and syncing of events.
Acceptance Criteria:
Users can schedule and sync meetings with their calendars.
Follow-ups are integrated within the CRM.

Integrate Google Calendar and Outlook for Meeting Scheduling and Follow-ups

Description:

Enhance the existing Google Calendar integration and add support for Outlook Calendar to allow users to schedule meetings and follow-ups directly from the CRM. This integration will enable seamless synchronization between the CRM and popular calendar services.

Tasks:

  • Extend app/Services/GoogleCalendarService.php:

    • Add methods for fetching user's calendar events
    • Implement two-way sync for events
    • Handle recurring events
  • Create new app/Services/OutlookCalendarService.php:

    • Implement similar functionality as GoogleCalendarService
    • Set up OAuth aut...

Continue chatting at https://sweep-chat-demo.vercel.app/c/8b554a6f-dc98-4e6e-b988-8e6f24c1e1a1.

Purpose

This pull request adds the ability to sync tasks with Google Calendar and Outlook Calendar. Users can now choose to sync their tasks with either of these calendars, and the tasks will be automatically created, updated, and deleted in the respective calendars.

Description

The changes in this pull request include:

  1. Added new fields to the tasks table to store the calendar event IDs and the calendar type.
  2. Implemented the CalendarService interface and created the GoogleCalendarService and OutlookCalendarService classes to handle the integration with the respective calendar services.
  3. Updated the CreateTask page in the Filament admin to include a dropdown for selecting the calendar type.
  4. Implemented the logic to sync tasks with the selected calendar service when a task is created, updated, or deleted.
  5. Added unit tests for the GoogleCalendarService and OutlookCalendarService classes.
  6. Added feature tests to cover the calendar integration scenarios, including creating, updating, and deleting tasks with calendar sync, as well as switching between calendar services.

Summary

The key changes in this pull request are:

  • app/Filament/App/Resources/TaskResource/Pages/CreateTask.php: Updated the form to include a calendar type dropdown.
  • app/Models/Task.php: Added new fields for calendar event IDs and calendar type.
  • app/Services/CalendarService.php: Created the CalendarService interface.
  • app/Services/GoogleCalendarService.php: Implemented the Google Calendar integration.
  • app/Services/OutlookCalendarService.php: Implemented the Outlook Calendar integration.
  • config/services.php: Added configuration for the Google and Outlook calendar services.
  • database/migrations/2023_06_01_000000_add_calendar_fields_to_tasks_table.php: Added a migration to add the new calendar fields to the tasks table.
  • tests/Feature/CalendarIntegrationTest.php: Added feature tests for the calendar integration.
  • tests/Unit/GoogleCalendarServiceTest.php: Added unit tests for the GoogleCalendarService.
  • tests/Unit/OutlookCalendarServiceTest.php: Added unit tests for the OutlookCalendarService.

@curtisdelicata curtisdelicata merged commit d19ffbe into main Oct 16, 2024
1 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant