* add Add Group button
* add host groups to schema
* UI for host groups
* raname groups to hostGroups
* schema update
* show groups in assignment tab
* add no group hosts to Group 1
* add dummy group for non group hosts
* fix type errors
* use two dimensional array for luckyUserPools
* fix empty array
* group RR hosts in handleNewBooking
* improve logic for grouping lucky users
* find all lucky users of all groups
* allow several RR hosts on booking
* clean up migrations
* create helper function
* group hosts for slots logic
* add group logic to loading available slots
* adding hosts to groups
* add groupId to hostSchema
* disable hosts from other groups
* handle groups in checkedTeamSelect
* fix adding hosts to groups
* remove and add groups
* show hosts if there are no groups
* fixing adding first group with existing hosts
* show groups empty groups correctly
* UI upddate fixes
* fix adding hosts to existing first host group
* small fixes + code clean up
* add availability fix with test
* create new round-robin test file
* disable reassignment
* fix losing fixed hosts
* fix updating weights and priorities
* disable load balancing with Round Robin Groups
* automatically disable load balancing in update handler
* allRRHosts should only include hosts from same group
* fix type errors
* fix type error
* fix tests
* fix type error
* remove undefined from groupId type
* type changes
* add tests for hostGroups
* add tests for host groups
* fixes
* fix type errors with undefined groupId
* remove seperate host groups prop
* fix editing weights
* remove console.log
* code clean up
* improve getAggregatedAvailability tests
* throw error when no available hosts in a group
* add fixme comment
* create constant for DEFAULT_GROUP_ID
* clean up code
* mock default_group_id for unit tests
* don't show fixed hosts in edit weights side bar
* add DEFAULT_GROUP_ID to mock test-setup
* remove unused index variable
* code clean up
* fix updating host groups
* fix imports
* add default_group_id to mocks
* add uuid() to zod schema
* remove unused code
* fix singular translation key
* remove unnessary !!
* Revert formatting changes
* add additional tests for bookingActions
* use createMany
* import DEFAULT_GROUP_ID for mocks
* fix mocks
* clean up EventTeamAssignmentTab
* fix type errors in tests
* fix mocks
* remove constants.example.test.ts
* fix type error
* add missing groupId
* fix margin
* clean up empty host groups
* fix constants mock
* useCalback
* use reduce
* extract handlers into seperate functions
* fix handler functions
* fix border radius
* fix type error in CheckForEmptyAssignment
* fix type error
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
* feat: add auto recording setting in API v2
* test: add e2e test
* test: add tests
* chore: save progress
* chore: update zod
2025-07-25 18:43:27 +00:00
Hariom BalharaGitHubClaudecoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* chore: remove unnecessary logs and fix documentation
* refactor: extract GetSlotsInputWithRouting type and eliminate code duplication
- Move GetSlotsInputWithRouting_2024_09_04 type to platform-types package for reuse
- Refactor slots service to eliminate duplicate error handling logic
- Fix TypeScript errors in slots service tests by adding missing type property
- Update test expectations to match new implementation
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* refactor: improve type safety in slots service
- Export explicit types from slots-input.service for transformed queries
- Replace 'any' type with proper TransformedSlotsQuery union type
- Re-implement fetchAndFormatSlots abstraction to eliminate code duplication
- Revert unrelated console.log in router.controller.ts
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* refactor: simplify slots service implementation
- Remove intermediate variable assignment in getAvailableSlotsWithRouting
- Update test to match simplified routing parameters structure
* test: add comprehensive error handling and edge case tests for slots service
- Add error scenario tests for NotFoundException, invalid time range, and generic errors
- Add edge case tests for null/undefined parameters and empty arrays
- Improve test coverage for getAvailableSlotsWithRouting method
- Mock SlotsInputService properly to enable isolated unit testing
* 📝 CodeRabbit Chat: Rename TransformedGetSlotsQuery types to InternalGetSlotsQuery in slot services
* fix: correct import path for AvailableSlotsService in slots service test
- Fix import path from '@/lib/services/AvailableSlots' to '@/lib/services/available-slots.service'
- Resolves unit test failure due to case sensitivity/naming mismatch
- All API v2 tests now pass (9 test suites, 142 tests)
Co-Authored-By: hariom@cal.com <hariombalhara@gmail.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* Revert "revert: "fix: Add new route to create team routing-form response (#22347)" (#22399)"
This reverts commit e6c36af3b4.
* Update the documentation
* Remove versioning
* feat: Add routing-forms record response endpoint with available slots
* fix: resolve TypeScript error in handleResponse.test.ts
- Fix type mismatch where mockResponse was passed as identifierKeyedResponse
- identifierKeyedResponse expects Record<string, string | string[]> structure
- Updated test to pass correct data structure for type compatibility
Co-Authored-By: hariom@cal.com <hariom@cal.com>
* fix: correct POST endpoint parameter handling and request body parsing in routing forms responses controller
- Change @Query() to @Body() decorator for POST request data in controller
- Update service method to accept parsed body data directly
- Remove incorrect URLSearchParams parsing of request.body object
- Fix getRoutingUrl method to use form response data parameter
This resolves API v2 test failures by following proper NestJS patterns for POST request handling.
Co-Authored-By: hariom@cal.com <hariom@cal.com>
* Pass teamMemberEmail as well
* Devin fixes reverted
* Keep all routing related props together in both endpoints
* Remove newly added slots props from Slots documentation as they are used through internal fn call only
* fix test
* Pass skipContactOwner
* Pass crmAppSlug and crmOwnerRecordGType and add more tests
* handle external redirect case and form not found case
* hide props
* chore: bump platform libs
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: hariom@cal.com <hariom@cal.com>
Co-authored-by: cal.com <morgan@cal.com>
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
2025-07-04 12:33:13 +00:00
Keith WilliamsGitHubDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* docs: improve English naturalness in API v2 documentation
- Fix awkward API summary 'Find out when is an event type ready to be booked' to 'Get available time slots for an event type'
- Correct 'setup' vs 'set up' usage throughout documentation
- Fix OAuth capitalization consistency
- Improve 'api' to 'API' capitalization in v2 docs
- Enhance readability while preserving technical accuracy
Fixes unnatural English phrasing in titles, headers, descriptions, and summaries across API v2 documentation files.
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* docs: add missing articles 'the' in API v2 documentation
- Fix 'How to Set Up API' to 'How to Set Up the API' in titles
- Add 'the' before 'API' in descriptions and summaries
- Fix grammar error 'all you need to is' to 'all you need to do is'
- Improve naturalness while maintaining technical accuracy
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* docs: fix unnatural English in API v2 @ApiOperation summaries
- Fix grammatically incorrect 'conferencing apps oauths callback' to 'Conferencing app OAuth callback'
- Replace 'ooo' with 'out-of-office' in user-facing summaries for clarity
- Ensure consistent sentence case capitalization (only first letter capitalized)
- Remove trailing periods from summaries for consistency
- Fix awkward phrasing like 'Get by attribute id all of...' to more natural English
- Revert 'Introduction to the API v2' back to 'Introduction to API v2'
- Improve naturalness while maintaining technical accuracy
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* Update apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/slots.controller.ts
* Update docs/api-reference/v2/openapi.json
* docs: fix setup/set up usage - use 'backend setup' (noun) not 'backend set up' (verb)
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* docs: fix setup/set up verb usage - use 'set up' (verb) not 'setup' (verb)
- Fix 'You have to setup' → 'You have to set up' in quickstart.mdx
- Fix 'Setup environment variables' → 'Set up environment variables'
- Fix 'Setup root of your app' → 'Set up root of your app'
- Fix 'prompted to setup' → 'prompted to set up' in setup.mdx
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* Ran v2 locally to regen the doc json files
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* fix: getBookings for team admins within orgs
* fixup! fix: getBookings for team admins within orgs
* chore: update getUserIdsAndEmailsWhereUserIsAdminOrOwner and remove unused orgId
---------
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
* feat: add api v2 endpoints for cal video
* feat: add endpoint for fetching transcripts
* chore: fetch only references
* feat: add cal video and transcript
* chore: undp open api
* chore: move it to service
* chore: bump libraries
---------
Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com>
Co-authored-by: supalarry <laurisskraucis@gmail.com>
* feat: support updating cal video settings in API v2
* chore: update descriptio
* feat: support create event type
* test: add test for updating event type
* test: add test for create event type
* chore: undo openapi
* chore: bump libraries
* Revert "chore: bump libraries"
This reverts commit bdf36d09b021fc531497a7b7ea66ab9c52b7d136.
* chore: bump libraries
---------
Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com>
Co-authored-by: supalarry <laurisskraucis@gmail.com>
* feat: add API endpoint to fetch Google Calendar meeting details and metrics
* refactor: rename eventId to eventUid and update calendar event details endpoint
* feat: implement Google Calendar service account delegation for event details
* refactor: simplify Google Calendar event response
* refactor: simplify calendar event details endpoint
* feat: add calendar event details endpoint with schema and controller implementation
* chore: reset platform libraries package version to 0.0.0
* refactor: migrate calendar event details to unified calendars module
* Update gcal.service.ts
* refactor: update calendar event schema with title and locations fields replacing summary and conferenceData
* feat: update calendar event source to use enum type for better validation
* update api description
* refactor: make Google Calendar service methods private
* refactor: remove location field from unified calendar event output
* fix: update Google Calendar event location type property to match unified schema
* feat: add CalendarEventStatus enum and map Google Calendar statuses to standardized values
* docs: add property descriptions to calendar event schema and remove organizer field
* fix: change calendar event locations type from null to empty array in unified calendar API
* feat: make calendar source field required
* refactor: replace organizer field with hosts array in Google calendar event mapping
* feat: enhance calendar event location API documentation with detailed property descriptions
* feat: add calendar event details endpoint documentation
* fix: typo
* docs: update calendar event details API description to remove reschedule history reference
* refactor: rename uri to url in calendar event location interfaces and mappings
* refactor: improve calendar event response status handling and code organization
* Update get-unified-calendar-event.ts
* update docs
* chore: update @calcom/platform-libraries to version 0.0.215
* fix: Cannot read properties of undefined (reading 'id')
* docs: managed users dont have cal.com page
* docs: reassign works only for round robin bookings
* refactor: put OAuthClientWebhooksController behind ApiAuthGuard
* fix: tests
* fix: typo
* refactor: rename office365-video to msteams across API and platform code
* Revert "refactor: rename office365-video to msteams across API and platform code"
This reverts commit 7a823ab6aa7ecd739da941d3b315735220bd99de.
* Fix: inconsistency in default location values for create and update event-types
* feat: add `type` filter for booking references API endpointa
* Update openapi.json
* feat: add enum validation for booking reference types in filter input
* refactor: rename externalUid to eventUid and add destinationCalendarId in booking references
* refactor: replace enum with const array for BookingReferenceType
* fix: type safety for booking references where clause using Prisma types
* refactor: rename BookingReferenceType to BookingReferences
* feat: Add booking references API endpoints
* refactor: Implement booking-reference service and repositories
* Add description and reorder properties in BookingReference schema
* Refactor booking references service to separate output service
* fix: Only Team Event Types are supported for Instant Meeting
* refactor: Cannot read properties of undefined (reading 'timeZone')
* fix: Cannot read properties of undefined (reading 'map')
* refactor: rearrange function order
* refactor: booking_seats_full_error
* fix: invalid_round_robin_host
* refactor: booking_time_out_of_bounds_error
* refactor: Attempting to book a meeting in the past.
* fix: obj.phoneNumber.trim is not a function
* fix: Cannot use 'in' operator to search for 'disabled' in 1
* feat: add guards to stripe teams controller
* remove logs and comments
* fix return type status
* refactor: move PlatformSubscription to a dedicated module
* reroute to `organizations/stripe/save` for teams
* fix: type errors
* feat: fixed it for conferencing apps
* feat: Add error handling and fallback URL support in Stripe callback
* Refactor OAuth callback handling and move token validation to service layer
* Add documentation for OAuth callback proxying in conferencing and stripe controllers
* Move OAuthCallbackState type from organizations to stripe service module
* feat: allow teamSlug + eventTypeSlug + optional organizationSlug as input
* feat: return team event slots
* test: get slots using teamSlug + eventTypeSlug + optional organizationalSlug
* docs: how to get team event slots