Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: calcom/cal.com
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v5.5.9
Choose a base ref
...
head repository: calcom/cal.com
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v5.5.10
Choose a head ref
  • 9 commits
  • 74 files changed
  • 17 contributors

Commits on Jul 31, 2025

  1. include mobile layout (#22836)

    Co-authored-by: CarinaWolli <wollencarina@gmail.com>
    CarinaWolli and CarinaWolli authored Jul 31, 2025
    Configuration menu
    Copy the full SHA
    3601a9a View commit details
    Browse the repository at this point in the history
  2. feat: add optional startTime prop to BookerPlatformWrapper (#22731)

    * feat: add optional startTime prop to BookerPlatformWrapper
    
    - Add startTime prop to BookerPlatformWrapperAtomProps interface
    - Allow users to override calculated startTime from useTimesForSchedule
    - Maintain backward compatibility when prop is not provided
    - Add JSDoc documentation for proper usage
    
    Co-Authored-By: somay@cal.com <somay@cal.com>
    
    * feat: add custom start time support to Booker component with date object input
    
    * feat: update documentation and added changelog
    
    ---------
    
    Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
    Co-authored-by: somay@cal.com <somay@cal.com>
    Co-authored-by: Somay Chauhan <somaychauhan98@gmail.com>
    3 people authored Jul 31, 2025
    Configuration menu
    Copy the full SHA
    ef66187 View commit details
    Browse the repository at this point in the history
  3. test: add comprehensive unit tests for handleInstantMeeting (#22820)

    * fix: resolve username constraint violation in removeMember
    
    - Update username to - format when removing users from organizations
    - Fix unique constraint violation on (username, organizationId) when organizationId is null
    - Add test case to verify username format change and successful removal
    - Fix skipped test by adding proper imports and removing describe.skip
    
    Co-Authored-By: anik@cal.com <adhabal2002@gmail.com>
    
    * test: update removeMember test to verify constraint violation scenario
    
    - Create two users with same username (one with null orgId, one with orgId)
    - Verify removing org user updates username without unique constraint error
    - Test ensures username gets updated to - format
    
    Co-Authored-By: anik@cal.com <adhabal2002@gmail.com>
    
    * test: add comprehensive unit tests for handleInstantMeeting
    
    - Revert previous removeMember changes
    - Add full test coverage for instant meeting functionality
    - Test team validation, booking creation, token generation
    - Test webhook triggers and browser notifications
    - Mock external dependencies for isolated unit tests
    - Translation issue to be addressed in future iteration
    
    Co-Authored-By: anik@cal.com <adhabal2002@gmail.com>
    
    * update
    
    * Update handleInstantMeeting.test.ts
    
    * fix: redir parameter for connect atoms (#22815)
    
    * encode redirect url to make sure it has all parameters
    
    * add changesets
    
    * feat: Support an array response for a field when used as `Value of Field` (#22740)
    
    * Passing tests and fixed
    
    * self review addressed adn more tests
    
    * fix: flaky e2e (#22819)
    
    * fix: merge working hours when adjacent (#21912)
    
    * fix: Adjacency issue when working hours connect over multiple days
    
    * Add tests to validate the new merging of day end logic
    
    * Update to correct annotation.
    
    Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
    
    * Implement subsequent date ranges for date overrides also
    
    * The map needs to be updated on successful resolve.
    
    * test: add failing test for overlapping ranges with same end time
    
    Demonstrates bug where overlapping working hour ranges (6:00-10:00 and 8:00-10:00)
    lose the earlier portion (6:00-8:00), showing only 8:00 and 9:00 slots
    instead of all 4 slots (6:00, 7:00, 8:00, 9:00).
    
    Related to Carina's comment on PR #21912.
    
    Co-Authored-By: alex@cal.com <me@alexvanandel.com>
    
    * fix: properly merge overlapping ranges with same end time
    
    Fixes bug where overlapping working hour ranges with the same end time
    (e.g., 6:00-10:00 and 8:00-10:00) would lose the earlier portion of the
    first range. The merging logic now correctly preserves the earliest
    start time when ranges overlap and share the same end time.
    
    This ensures all expected time slots are available (6:00, 7:00, 8:00, 9:00)
    instead of losing the earlier slots (6:00, 7:00).
    
    Resolves the issue identified in Carina's comment on PR #21912.
    
    Co-Authored-By: alex@cal.com <me@alexvanandel.com>
    
    * perf: optimize overlapping range detection from O(n²) to O(n)
    
    Replaces Object.keys().find() with Map-based lookup for ranges with same end time.
    This optimization handles 2000+ date ranges efficiently, reducing complexity from
    4M operations to linear time while maintaining the same merging behavior.
    
    Performance improvement for high-volume event types with many availability ranges.
    
    Co-Authored-By: alex@cal.com <me@alexvanandel.com>
    
    ---------
    
    Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
    Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
    
    * feat: Improving Booking Visibility at Month-End (#22770)
    
    * remove first weeks and add last
    
    * fix added last week
    
    * prefetch availability of next month
    
    * don't switch month
    
    * On hover show month
    
    * only show new UI in monthly view
    
    * show month tooldtip only when needed
    
    * show month on first day of month
    
    * remove isFirstDayOfNextMonth
    
    * fix prefetching next month
    
    * fix datePicker tests
    
    * preventMonthSwitching in monthly view
    
    * add tests
    
    * code clean up
    
    * code clean up
    
    * code clena up for ooo days
    
    * push first day of month
    
    * remove bg color for the month badge
    
    * fix text colour
    
    * remove not needed
    
    * use object param
    
    * revert: use object param
    
    * use object param
    
    * fix DatePicker tests
    
    ---------
    
    Co-authored-by: CarinaWolli <wollencarina@gmail.com>
    Co-authored-by: Sean Brydon <sean@cal.com>
    Co-authored-by: Eunjae Lee <hey@eunjae.dev>
    
    * chore: Refactor logs (#22824)
    
    * Refactor logs
    
    * Add specific info to log
    
    * fix: Errors in org onboarding in some edge cases (#22711)
    
    * Automatically enable migration of a team that conflicts with Orgs slug
    
    * Allow changing the orgs slug and name if user goes back and changes it
    
    * avoid crashing on some scenarios
    
    * Revert "Allow changing the orgs slug and name if user goes back and changes it"
    
    This reverts commit f8872b0.
    
    * fix: handle unpublished teams gracefully in org migration
    
    - Change 'No oldSlug for team' from error to warning for unpublished teams
    - Keep 'No slug for team' as error since org onboarding ensures teams have names
    - Add test for migrating unpublished teams without oldSlug
    - Add clarifying comments about when each condition can occur
    
    * feat: enable PBAC checking on organization settings page (#22467)
    
    * refactor: convert checkBookingLimits to class service with dependency injection (#22768)
    
    * refactor: convert checkBookingLimits to class service with dependency injection
    
    - Create CheckBookingLimitsService class following AvailableSlotsService pattern
    - Add countBookingsByEventTypeAndDateRange method to BookingRepository
    - Move direct prisma calls from service to repository layer
    - Implement dependency injection with proper DI tokens and modules
    - Update all usage points to use the new service through DI
    - Maintain backward compatibility with error-throwing wrapper functions
    - Update tests to use the new service pattern
    - Resolve TODO comment in AvailableSlotsService for DI integration
    
    Co-Authored-By: morgan@cal.com <morgan@cal.com>
    
    * chore: DI CheckBookingLimitsService in v2 slots service
    
    * chore: bump libraries
    
    * chore: create getCheckBookingLimitsService
    
    * refactor: convert checkBookingAndDurationLimits to service class with DI
    
    - Create CheckBookingAndDurationLimitsService class following DI pattern
    - Add DI tokens and module for the new service
    - Update booking-limits container to provide the new service
    - Refactor handleNewBooking.ts to use service through DI
    - Maintain backward compatibility with deprecated function export
    - Preserve all existing functionality while improving code organization
    
    Co-Authored-By: morgan@cal.com <morgan@cal.com>
    
    * chore: CheckBookingAndDurationLimitsService
    
    * chore: bump platform libs
    
    ---------
    
    Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
    Co-authored-by: morgan@cal.com <morgan@cal.com>
    Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
    
    * fix: Return empty available days if error querying calendar (#22828)
    
    * Return a busy block placeholder if calendar throws an error
    
    * Refactor `getCalendarsEvents` to return an object with a success prop
    
    * Throw error in `getBusyTimes` if failed to fetch calendar availability
    
    * Return empty available days if error getting busy times
    
    * yeet.
    
    * Type fix
    
    * Fix type error in getLuckyUsers
    
    * Type fixes
    
    * Type fix
    
    * Type fix
    
    * Fix test
    
    * Fix test mocks
    
    * Refactor calendars.service to use new calendarBusyTimesQuery
    
    ---------
    
    Co-authored-by: Alex van Andel <me@alexvanandel.com>
    
    * chore: release v5.5.9
    
    * include mobile layout (#22836)
    
    Co-authored-by: CarinaWolli <wollencarina@gmail.com>
    
    * test: fix handleInstantMeeting test with setupAndTeardown and proper mocking
    
    - Add setupAndTeardown() for proper test environment setup
    - Use mockNoTranslations() to fix translation function mocking
    - Simplify NextApiRequest mock to resolve TypeScript errors
    - Both test cases now pass successfully
    
    Co-Authored-By: anik@cal.com <adhabal2002@gmail.com>
    
    * fix typo
    
    ---------
    
    Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
    Co-authored-by: Rajiv Sahal <sahalrajiv-extc@atharvacoe.ac.in>
    Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
    Co-authored-by: Alex van Andel <me@alexvanandel.com>
    Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
    Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
    Co-authored-by: CarinaWolli <wollencarina@gmail.com>
    Co-authored-by: Sean Brydon <sean@cal.com>
    Co-authored-by: Eunjae Lee <hey@eunjae.dev>
    Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
    Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
    Co-authored-by: morgan@cal.com <morgan@cal.com>
    Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
    14 people authored Jul 31, 2025
    Configuration menu
    Copy the full SHA
    2cc7827 View commit details
    Browse the repository at this point in the history
  4. fix: return rescheduledByEmail in V2 bookings (#22804)

    * Update output.service.ts
    
    * Update output.service.ts
    
    * Update output.service.ts
    
    * Update user-bookings.e2e-spec.ts
    
    * fix type err
    
    * Update failing test
    alishaz-polymath authored Jul 31, 2025
    Configuration menu
    Copy the full SHA
    ad4af64 View commit details
    Browse the repository at this point in the history
  5. refactor: convert getShouldServeCache to CacheService with dependency…

    … injection (#22814)
    
    * refactor: convert getShouldServeCache to CacheService with dependency injection
    
    - Create CacheService class following AvailableSlotsService DI pattern
    - Add FeaturesRepository and CacheService to DI tokens and modules
    - Create cache container with proper dependency injection setup
    - Update handleNewBooking.ts and slots/util.ts to use new service
    - Maintain backward compatibility with error-throwing wrapper function
    - Follow established service patterns for clean architecture
    
    Co-Authored-By: morgan@cal.com <morgan@cal.com>
    
    * feat: inject CacheService into AvailableSlotsService via dependency injection
    
    - Add cacheService to IAvailableSlotsService interface
    - Update available-slots container to load cache modules
    - Update available-slots module to inject CacheService dependency
    - Replace direct getShouldServeCache call with injected service method
    - Add CacheService import to util.ts for proper typing
    
    Co-Authored-By: morgan@cal.com <morgan@cal.com>
    
    * chore: DI api v2 cache service
    
    * refactor: convert FeaturesRepository to use factory pattern in DI
    
    - Change from constructor injection to factory pattern to avoid PRISMA_CLIENT binding issues in tests
    - FeaturesRepository now uses default prisma instance instead of DI injection
    - Resolves test failures while maintaining DI container compatibility
    - Tests reduced from 123+ failures to only 5 unrelated failures
    
    Co-Authored-By: morgan@cal.com <morgan@cal.com>
    
    * revert: use direct FeaturesRepository instantiation in most usage points
    
    - Revert getFeaturesRepository() calls back to new FeaturesRepository()
    - Tests require direct instantiation for mocking compatibility
    - Keep DI container for specific use cases that need dependency injection
    - Resolves test failures while maintaining both DI and direct usage patterns
    
    Co-Authored-By: morgan@cal.com <morgan@cal.com>
    
    * fix: resolve FeaturesRepository DI container issues
    
    - Update cache module to use factory pattern with proper ICacheService interface
    - Remove featuresModule loading from cache and available-slots containers
    - Use direct FeaturesRepository instantiation via getFeaturesRepository()
    - Resolves 'No binding found for key: Symbol(FeaturesRepository)' errors
    - Reduces test failures from 125 to 7 (remaining failures appear unrelated)
    
    Co-Authored-By: morgan@cal.com <morgan@cal.com>
    
    * fix: update all FeaturesRepository instantiations to include prisma parameter
    
    - Add prisma parameter to all new FeaturesRepository() calls across the codebase
    - Update API v2 services to match main repo interfaces
    - Fix PrismaFeaturesRepository to implement IFeaturesRepository directly
    - Update CacheService in API v2 to expose required dependencies and getShouldServeCache
    - Implement CheckBookingLimitsService in API v2 with proper interface
    - Resolves type assignment errors between API v2 and main repo implementations
    
    Co-Authored-By: morgan@cal.com <morgan@cal.com>
    
    * fix: add prisma parameter to remaining FeaturesRepository instantiations in apps/web/lib
    
    - Update getServerSideProps files to pass prisma parameter to FeaturesRepository
    - Ensures all FeaturesRepository instantiations follow the new constructor pattern
    - Completes the refactoring to use direct instantiation with prisma parameter
    
    Co-Authored-By: morgan@cal.com <morgan@cal.com>
    
    * refactor clean and fix devin issues
    
    * chore: bump platform libs
    
    * chore: bump platform libs
    
    * chore: bump platform libs
    
    * chore: bump platform libs
    
    * fix: missing di
    
    * fix workflow test
    
    * fix workflow test
    
    * fix integration test
    
    ---------
    
    Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
    Co-authored-by: morgan@cal.com <morgan@cal.com>
    Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
    3 people authored Jul 31, 2025
    Configuration menu
    Copy the full SHA
    1d1a242 View commit details
    Browse the repository at this point in the history
  6. fix: increment iCalSequence when changing booking location (#22847)

    * fix: increment iCalSequence when changing booking location
    
    - Add iCalSequence parameter to buildCalEventFromBooking function
    - Update editLocation handler to increment sequence by 1 in CalendarEvent
    - Update database with incremented iCalSequence when location changes
    - Update buildCalEventFromBooking test to include new fields
    - Ensures ICS files properly update existing calendar events instead of creating duplicates
    
    Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com>
    
    * `BookingRepository.updateLocationById` to accept responses and iCalSequence
    
    * `editLocation.handler` use `BookingRepository`
    
    * Update iCalSequence
    
    * Use iCalSequence from booking param
    
    * Add iCalUID to evt object
    
    * Clean up
    
    * Fix test
    
    * Fix test
    
    ---------
    
    Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
    joeauyeung and devin-ai-integration[bot] authored Jul 31, 2025
    Configuration menu
    Copy the full SHA
    f81bb92 View commit details
    Browse the repository at this point in the history
  7. fix: Cal Video sidebar not showing meeting time in timezone (#22821)

    * Pass params as object to `formatToLocalizedTime`
    
    * Refactor videos-single-view
    
    * Refactor bookings-single-view
    joeauyeung authored Jul 31, 2025
    Configuration menu
    Copy the full SHA
    9193221 View commit details
    Browse the repository at this point in the history

Commits on Aug 1, 2025

  1. Configuration menu
    Copy the full SHA
    c6b1920 View commit details
    Browse the repository at this point in the history
  2. chore: release v5.5.10

    emrysal committed Aug 1, 2025
    Configuration menu
    Copy the full SHA
    6e3de84 View commit details
    Browse the repository at this point in the history
Loading