Skip to content

Comments

fix: disable cal branding for user, team, organisation#24375

Closed
dhairyashiil wants to merge 90 commits intocalcom:mainfrom
dhairyashiil:fix/disable-cal-branding-user-team-organisation
Closed

fix: disable cal branding for user, team, organisation#24375
dhairyashiil wants to merge 90 commits intocalcom:mainfrom
dhairyashiil:fix/disable-cal-branding-user-team-organisation

Conversation

@dhairyashiil
Copy link
Member

@dhairyashiil dhairyashiil commented Oct 8, 2025

What does this PR do?

This PR implements the ability to hide Cal.com branding at the user, team, and organization levels. The branding visibility is determined hierarchically - if an organization has branding hidden, all teams and users under it inherit that setting.

Key Changes

The implementation adds a shouldHideBrandingForEvent function that checks branding settings in this priority order:

  1. Organization's hideBranding setting (if applicable)
  2. Team's hideBranding setting (if applicable)
  3. Event owner's hideBranding setting

Email functions now use a CalendarEventWithBranding type to ensure branding state is explicitly passed. A withHideBranding helper wraps calendar events with the branding flag.

Files Modified

  • Added hideBranding field to CalendarEvent type
  • Updated email-manager.ts with branding-aware function signatures
  • Added repository methods for fetching branding data (TeamRepository, UserRepository, EventTypeRepository)
  • Updated booking handlers, payment handlers, and cron jobs to calculate and pass branding state

Visual Demo (For contributors especially)

User:

hide.branding.normal.user.mov

Team:

hide.branding.team.user.mov

Organisation:

hide.branding.organisation.user.mov

Mandatory Tasks (DO NOT REMOVE)

  • I have self-reviewed the code (A decent size PR without self-review might be rejected).
  • I have updated the developer docs in /docs if this PR makes changes that would require a documentation change. N/A - no docs changes needed.
  • I confirm automated tests are in place that prove my fix is effective or that my feature works.

How should this be tested?

  1. Set up a user with hideBranding: true in their profile

  2. Create a booking with that user as the organizer

  3. Verify the confirmation email does not show Cal.com branding

  4. Set up a team with hideBranding: true

  5. Create a booking for a team event type

  6. Verify the confirmation email does not show Cal.com branding

  7. Set up an organization with hideBranding: true

  8. Create bookings for users/teams under that organization

  9. Verify branding is hidden for all bookings under the organization

Human Review Checklist

  • Verify shouldHideBrandingForEvent logic correctly handles all edge cases (null team, null owner, etc.)
  • Check that all email sending paths correctly pass hideBranding
  • Verify type assertions in addGuests.handler.ts and confirm.handler.ts are safe
  • Confirm repository queries include all necessary hideBranding fields

@dhairyashiil dhairyashiil requested a review from a team as a code owner October 8, 2025 22:00
@vercel
Copy link

vercel bot commented Oct 8, 2025

@dhairyashiil is attempting to deploy a commit to the cal Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions bot added consumer emails area: emails, cancellation email, reschedule email, inbox, spam folder, not getting email High priority Created by Linear-GitHub Sync 🐛 bug Something isn't working labels Oct 8, 2025
@graphite-app graphite-app bot added the community Created by Linear-GitHub Sync label Oct 8, 2025
@graphite-app graphite-app bot requested a review from a team October 8, 2025 22:01
@keithwillcode keithwillcode added the community-interns The team responsible for reviewing, testing and shipping low/medium community PRs label Oct 8, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 8, 2025

Walkthrough

Adds an optional hideLogo prop to V2BaseEmailHtml and conditionally renders the logo. Extends calendar/event shapes with hideBranding?: boolean and adds builder/helper support (withBranding, withHideBranding, CalendarEventWithBranding). Threads branding decisions by calling shouldHideBrandingForEvent across booking, confirmation, cancellation, reschedule, payment, round‑robin, and reminder flows, includes team.hideBranding and team.parent.hideBranding in DB selects, and updates many email/sms senders to accept and propagate the branding flag. BaseScheduledEmail now hides branding when hideBranding is true or platformClientId is present.

Possibly related PRs

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (4 passed)
Check name Status Explanation
Title Check ✅ Passed The pull request title "fix: disable cal branding for user, team, organisation" is concise, specific, and directly summarizes the primary objective of the changeset. It clearly communicates that this PR implements functionality to disable Cal.com branding at multiple scope levels (user, team, and organisation), which aligns with the main changes throughout the codebase. The title is unambiguous and sufficient for a developer scanning the commit history to understand the purpose of the changes.
Linked Issues Check ✅ Passed The code changes directly implement the requirements from the linked issues #23850 and CAL-6414. The PR introduces a comprehensive branding-disable feature by: adding a hideBranding property to the CalendarEvent type, implementing shouldHideBrandingForEvent logic to compute branding visibility across user/team/organisation contexts, propagating this flag through all email-sending functions and booking workflows, and updating email templates (V2BaseEmailHtml.tsx, BaseScheduledEmail.tsx) to conditionally hide the Cal.com logo based on the branding setting. These changes directly address the core issue that Cal.com branding still appears in emails even when disabled in settings, resolving the complaints documented in both linked issues.
Out of Scope Changes Check ✅ Passed All changes in the pull request are directly scoped to implementing the "disable Cal.com branding" feature. The modifications span consistently across email components, booking handlers, database query selections, type definitions, and email-sending infrastructure—all working together to compute and propagate the branding-disable setting through booking workflows and email dispatch paths. The addition of the organizerUser field in seated booking types is necessary to support branding computation logic in those flows. No unrelated changes or feature creep is evident; every file modified contributes to the core objective of letting users, teams, and organisations disable Cal.com branding in their communications.
Description Check ✅ Passed The pull request description is clearly related to the changeset. It references the specific issues being fixed (#23850 and CAL-6414), provides visual demonstrations of the feature working at user, team, and organisation levels, and explains what the PR accomplishes. The description gives meaningful context about the changes without being overly vague or generic, making it easy to understand the scope and impact of the work.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@dosubot dosubot bot added the bookings area: bookings, availability, timezones, double booking label Oct 8, 2025
@pull-request-size pull-request-size bot added size/M and removed size/S labels Oct 8, 2025
@dhairyashiil dhairyashiil marked this pull request as draft October 8, 2025 22:59
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
packages/features/bookings/lib/handleCancelBooking.ts (1)

233-256: Drop the second profile fetch and reuse ownerProfile.

We already load the organizer’s profile at Line 233, so this second profile.findFirst call just repeats that lookup and adds latency for every cancellation (especially inside hot paths like bulk cancellations). Reuse the existing ownerProfile?.organizationId instead of issuing another query.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 63712df and 9ab52db.

📒 Files selected for processing (2)
  • packages/features/bookings/lib/getBookingToDelete.ts (2 hunks)
  • packages/features/bookings/lib/handleCancelBooking.ts (6 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/*.ts

📄 CodeRabbit inference engine (.cursor/rules/review.mdc)

**/*.ts: For Prisma queries, only select data you need; never use include, always use select
Ensure the credential.key field is never returned from tRPC endpoints or APIs

Files:

  • packages/features/bookings/lib/getBookingToDelete.ts
  • packages/features/bookings/lib/handleCancelBooking.ts
**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/review.mdc)

Flag excessive Day.js use in performance-critical code; prefer native Date or Day.js .utc() in hot paths like loops

Files:

  • packages/features/bookings/lib/getBookingToDelete.ts
  • packages/features/bookings/lib/handleCancelBooking.ts
**/*.{ts,tsx,js,jsx}

⚙️ CodeRabbit configuration file

Flag default exports and encourage named exports. Named exports provide better tree-shaking, easier refactoring, and clearer imports. Exempt main components like pages, layouts, and components that serve as the primary export of a module.

Files:

  • packages/features/bookings/lib/getBookingToDelete.ts
  • packages/features/bookings/lib/handleCancelBooking.ts
🧠 Learnings (2)
📚 Learning: 2025-08-21T13:44:06.805Z
Learnt from: supalarry
PR: calcom/cal.com#23217
File: apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/output-event-types.service.ts:93-94
Timestamp: 2025-08-21T13:44:06.805Z
Learning: In apps/api/v2/src/ee/event-types/event-types_2024_06_14/event-types.repository.ts, repository functions that use explicit Prisma select clauses (like getEventTypeWithSeats) are used for specific purposes and don't need to include all EventType fields like bookingRequiresAuthentication. These methods don't feed into the general OutputEventTypesService_2024_06_14 flow.

Applied to files:

  • packages/features/bookings/lib/getBookingToDelete.ts
📚 Learning: 2025-08-27T13:32:46.887Z
Learnt from: supalarry
PR: calcom/cal.com#23364
File: apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/internal-to-api.spec.ts:295-296
Timestamp: 2025-08-27T13:32:46.887Z
Learning: In calcom/cal.com, when transforming booking fields from internal to API format, tests in organizations-event-types.e2e-spec.ts already expect name field label and placeholder to be empty strings ("") rather than undefined. PR changes that set these to explicit empty strings are typically fixing implementation to match existing test expectations rather than breaking changes.

Applied to files:

  • packages/features/bookings/lib/getBookingToDelete.ts
🧬 Code graph analysis (1)
packages/features/bookings/lib/handleCancelBooking.ts (2)
packages/lib/hideBranding.ts (1)
  • shouldHideBrandingForEvent (76-113)
packages/emails/email-manager.ts (1)
  • sendCancelledEmailsAndSMS (476-534)

@dhairyashiil
Copy link
Member Author

For cancelation emails:

hide.branding.for.cancelation.mov

@pull-request-size pull-request-size bot added size/L and removed size/M labels Oct 8, 2025
@dhairyashiil
Copy link
Member Author

For confirmation booking email:

hide.branding.for.confirmation.mov

@dhairyashiil
Copy link
Member Author

for seated bookings:

Screen.Recording.2025-10-09.at.9.48.25.PM.mov

@dhairyashiil dhairyashiil marked this pull request as ready for review October 9, 2025 16:24
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (2)
packages/features/bookings/lib/handleSeats/reschedule/owner/moveSeatedBookingToNewTimeSlot.ts (1)

34-62: Defer branding lookups until email actually sends

We always compute teamForBranding, profile, and hideBranding even when noEmail === true or isConfirmedByDefault is false. That path ends up skipping the send, so we burn two extra DB roundtrips for nothing. Please hoist this block inside the email gate so we only hit Prisma when we truly need the branding decision.

packages/features/bookings/lib/handleSeats/reschedule/owner/combineTwoSeatedBookings.ts (1)

138-178: Factor shared branding lookup into a helper

This teamForBranding + shouldHideBrandingForEvent block is now copy/pasted across multiple reschedule flows. Please extract it into a shared helper so we have a single place to evolve the branding heuristics (team parent, org profile lookup, etc.) and avoid subtle drift the next time we tweak it.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 9ab52db and 80aa753.

📒 Files selected for processing (5)
  • packages/features/bookings/lib/handleBookingRequested.ts (3 hunks)
  • packages/features/bookings/lib/handleConfirmation.ts (6 hunks)
  • packages/features/bookings/lib/handleSeats/reschedule/attendee/attendeeRescheduleSeatedBooking.ts (4 hunks)
  • packages/features/bookings/lib/handleSeats/reschedule/owner/combineTwoSeatedBookings.ts (3 hunks)
  • packages/features/bookings/lib/handleSeats/reschedule/owner/moveSeatedBookingToNewTimeSlot.ts (3 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/*.ts

📄 CodeRabbit inference engine (.cursor/rules/review.mdc)

**/*.ts: For Prisma queries, only select data you need; never use include, always use select
Ensure the credential.key field is never returned from tRPC endpoints or APIs

Files:

  • packages/features/bookings/lib/handleConfirmation.ts
  • packages/features/bookings/lib/handleBookingRequested.ts
  • packages/features/bookings/lib/handleSeats/reschedule/attendee/attendeeRescheduleSeatedBooking.ts
  • packages/features/bookings/lib/handleSeats/reschedule/owner/combineTwoSeatedBookings.ts
  • packages/features/bookings/lib/handleSeats/reschedule/owner/moveSeatedBookingToNewTimeSlot.ts
**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/review.mdc)

Flag excessive Day.js use in performance-critical code; prefer native Date or Day.js .utc() in hot paths like loops

Files:

  • packages/features/bookings/lib/handleConfirmation.ts
  • packages/features/bookings/lib/handleBookingRequested.ts
  • packages/features/bookings/lib/handleSeats/reschedule/attendee/attendeeRescheduleSeatedBooking.ts
  • packages/features/bookings/lib/handleSeats/reschedule/owner/combineTwoSeatedBookings.ts
  • packages/features/bookings/lib/handleSeats/reschedule/owner/moveSeatedBookingToNewTimeSlot.ts
**/*.{ts,tsx,js,jsx}

⚙️ CodeRabbit configuration file

Flag default exports and encourage named exports. Named exports provide better tree-shaking, easier refactoring, and clearer imports. Exempt main components like pages, layouts, and components that serve as the primary export of a module.

Files:

  • packages/features/bookings/lib/handleConfirmation.ts
  • packages/features/bookings/lib/handleBookingRequested.ts
  • packages/features/bookings/lib/handleSeats/reschedule/attendee/attendeeRescheduleSeatedBooking.ts
  • packages/features/bookings/lib/handleSeats/reschedule/owner/combineTwoSeatedBookings.ts
  • packages/features/bookings/lib/handleSeats/reschedule/owner/moveSeatedBookingToNewTimeSlot.ts
🧬 Code graph analysis (5)
packages/features/bookings/lib/handleConfirmation.ts (3)
packages/lib/getTeamIdFromEventType.ts (1)
  • getTeamIdFromEventType (3-29)
packages/lib/getOrgIdFromMemberOrTeamId.ts (1)
  • getOrgIdFromMemberOrTeamId (47-58)
packages/lib/hideBranding.ts (1)
  • shouldHideBrandingForEvent (76-113)
packages/features/bookings/lib/handleBookingRequested.ts (3)
packages/lib/hideBranding.ts (1)
  • shouldHideBrandingForEvent (76-113)
packages/emails/email-manager.ts (2)
  • sendOrganizerRequestEmail (433-436)
  • sendAttendeeRequestEmailAndSMS (451-454)
packages/prisma/zod-utils.ts (1)
  • EventTypeMetadata (135-135)
packages/features/bookings/lib/handleSeats/reschedule/attendee/attendeeRescheduleSeatedBooking.ts (2)
packages/lib/hideBranding.ts (1)
  • shouldHideBrandingForEvent (76-113)
packages/emails/email-manager.ts (1)
  • sendRescheduledSeatEmailAndSMS (323-342)
packages/features/bookings/lib/handleSeats/reschedule/owner/combineTwoSeatedBookings.ts (2)
packages/lib/hideBranding.ts (1)
  • shouldHideBrandingForEvent (76-113)
packages/emails/email-manager.ts (1)
  • sendRescheduledEmailsAndSMS (318-321)
packages/features/bookings/lib/handleSeats/reschedule/owner/moveSeatedBookingToNewTimeSlot.ts (1)
packages/lib/hideBranding.ts (1)
  • shouldHideBrandingForEvent (76-113)
⏰ Context from checks skipped due to timeout of 180000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Linters / lint
  • GitHub Check: Tests / Unit

@dhairyashiil
Copy link
Member Author

For declined bookings:

Screen.Recording.2025-10-10.at.12.41.24.AM.mov

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 80aa753 and fff5d0c.

📒 Files selected for processing (3)
  • packages/features/bookings/lib/handleBookingRequested.ts (3 hunks)
  • packages/features/bookings/lib/handleConfirmation.ts (6 hunks)
  • packages/trpc/server/routers/viewer/bookings/confirm.handler.ts (2 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/*.ts

📄 CodeRabbit inference engine (.cursor/rules/review.mdc)

**/*.ts: For Prisma queries, only select data you need; never use include, always use select
Ensure the credential.key field is never returned from tRPC endpoints or APIs

Files:

  • packages/features/bookings/lib/handleBookingRequested.ts
  • packages/trpc/server/routers/viewer/bookings/confirm.handler.ts
  • packages/features/bookings/lib/handleConfirmation.ts
**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/review.mdc)

Flag excessive Day.js use in performance-critical code; prefer native Date or Day.js .utc() in hot paths like loops

Files:

  • packages/features/bookings/lib/handleBookingRequested.ts
  • packages/trpc/server/routers/viewer/bookings/confirm.handler.ts
  • packages/features/bookings/lib/handleConfirmation.ts
**/*.{ts,tsx,js,jsx}

⚙️ CodeRabbit configuration file

Flag default exports and encourage named exports. Named exports provide better tree-shaking, easier refactoring, and clearer imports. Exempt main components like pages, layouts, and components that serve as the primary export of a module.

Files:

  • packages/features/bookings/lib/handleBookingRequested.ts
  • packages/trpc/server/routers/viewer/bookings/confirm.handler.ts
  • packages/features/bookings/lib/handleConfirmation.ts
🧠 Learnings (2)
📚 Learning: 2025-08-27T13:32:46.887Z
Learnt from: supalarry
PR: calcom/cal.com#23364
File: apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/internal-to-api.spec.ts:295-296
Timestamp: 2025-08-27T13:32:46.887Z
Learning: In calcom/cal.com, when transforming booking fields from internal to API format, tests in organizations-event-types.e2e-spec.ts already expect name field label and placeholder to be empty strings ("") rather than undefined. PR changes that set these to explicit empty strings are typically fixing implementation to match existing test expectations rather than breaking changes.

Applied to files:

  • packages/features/bookings/lib/handleConfirmation.ts
📚 Learning: 2025-08-21T13:44:06.805Z
Learnt from: supalarry
PR: calcom/cal.com#23217
File: apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/output-event-types.service.ts:93-94
Timestamp: 2025-08-21T13:44:06.805Z
Learning: In apps/api/v2/src/ee/event-types/event-types_2024_06_14/event-types.repository.ts, repository functions that use explicit Prisma select clauses (like getEventTypeWithSeats) are used for specific purposes and don't need to include all EventType fields like bookingRequiresAuthentication. These methods don't feed into the general OutputEventTypesService_2024_06_14 flow.

Applied to files:

  • packages/features/bookings/lib/handleConfirmation.ts
🧬 Code graph analysis (3)
packages/features/bookings/lib/handleBookingRequested.ts (3)
packages/lib/hideBranding.ts (1)
  • shouldHideBrandingForEvent (76-113)
packages/emails/email-manager.ts (2)
  • sendOrganizerRequestEmail (433-436)
  • sendAttendeeRequestEmailAndSMS (451-454)
packages/prisma/zod-utils.ts (1)
  • EventTypeMetadata (135-135)
packages/trpc/server/routers/viewer/bookings/confirm.handler.ts (3)
packages/lib/hideBranding.ts (1)
  • shouldHideBrandingForEvent (76-113)
packages/emails/email-manager.ts (1)
  • sendDeclinedEmailsAndSMS (456-474)
packages/prisma/zod-utils.ts (1)
  • EventTypeMetadata (135-135)
packages/features/bookings/lib/handleConfirmation.ts (3)
packages/lib/getTeamIdFromEventType.ts (1)
  • getTeamIdFromEventType (3-29)
packages/lib/getOrgIdFromMemberOrTeamId.ts (1)
  • getOrgIdFromMemberOrTeamId (47-58)
packages/lib/hideBranding.ts (1)
  • shouldHideBrandingForEvent (76-113)

@Ryukemeister Ryukemeister marked this pull request as ready for review January 19, 2026 09:18
@Ryukemeister
Copy link
Contributor

@hbjORbj the tests were just flaky, all passing when I merge latest main into this branch

@Ryukemeister Ryukemeister enabled auto-merge (squash) January 19, 2026 09:21
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 61 files

Copy link
Contributor

@hbjORbj hbjORbj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see lots of formatting changes in this PR, making the review quite difficult. I suggest using Devin or some AI to revert the formatting changes so it's easy to spot the actual changes this PR brings


async function getBooking(bookingId: number) {
const bookingRepository = new BookingRepository(prisma);
const booking = await bookingRepository.findByIdIncludeDestinationCalendar(bookingId);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so, now can we remove findByIdIncludeDestinationCalendar?

Copy link
Contributor

@Ryukemeister Ryukemeister Jan 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah I think so, doesnt seem to be used anywhere

@github-actions github-actions bot marked this pull request as draft January 19, 2026 09:45
auto-merge was automatically disabled January 19, 2026 09:45

Pull request was converted to draft

@github-actions
Copy link
Contributor

Devin AI is resolving merge conflicts

This PR has merge conflicts with the main branch. The existing Devin session has been notified to resolve them.

View Devin Session

Devin will:

  1. Merge the latest main into this branch
  2. Resolve any conflicts intelligently
  3. Run lint/type checks to ensure validity
  4. Push the resolved changes

If you prefer to resolve conflicts manually, you can close the Devin session and handle it yourself.

Co-Authored-By: rajiv@cal.com <sahalrajiv6900@gmail.com>
devin-ai-integration bot and others added 2 commits January 21, 2026 10:14
Co-Authored-By: rajiv@cal.com <sahalrajiv6900@gmail.com>
Co-Authored-By: rajiv@cal.com <sahalrajiv6900@gmail.com>
@devin-ai-integration
Copy link
Contributor

Done! I've removed the unused findByIdIncludeDestinationCalendar method since it's no longer used anywhere in the codebase (the PR replaced its usage with findByIdIncludeDestinationCalendarAndBranding).

Commit: 489f077

@Ryukemeister Ryukemeister marked this pull request as ready for review January 21, 2026 10:29
@Ryukemeister Ryukemeister dismissed hbjORbj’s stale review January 21, 2026 10:29

implemented feedback

@Ryukemeister
Copy link
Contributor

@hbjORbj I gave Devin a task to remove linting changes, can you please have a look once again now

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 61 files

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them.


<file name="packages/features/ee/managed-event-types/reassignment/services/ManagedEventManualReassignmentService.ts">

<violation number="1" location="packages/features/ee/managed-event-types/reassignment/services/ManagedEventManualReassignmentService.ts:735">
P2: `withHideBranding(calEvent)` defaults hideBranding to false because this method never sets calEvent.hideBranding or passes an explicit value. As a result, branding suppression from org/team/user settings won’t apply to reassignment emails. Compute hideBranding (e.g., via shouldHideBrandingForEventUsingProfile) and pass it into withHideBranding or set it on the builder.</violation>
</file>

<file name="packages/trpc/server/routers/viewer/bookings/editLocation.handler.ts">

<violation number="1" location="packages/trpc/server/routers/viewer/bookings/editLocation.handler.ts:314">
P2: When eventTypeId is null, this forces hideBranding to false and skips user/organization checks, so bookings without eventTypeId can incorrectly display branding even if the organizer/org hides branding. Consider still resolving hideBranding using owner/team data and only log a warning for missing eventTypeId.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

@Ryukemeister Ryukemeister added ready-for-e2e run-ci Approve CI to run for external contributors and removed ready-for-e2e run-ci Approve CI to run for external contributors labels Jan 21, 2026
@Ryukemeister Ryukemeister requested a review from hbjORbj January 21, 2026 12:15
Copy link
Contributor

@Ryukemeister Ryukemeister left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hey @dhairyashiil, as discussed we should move this into multiple smaller PRs. this is insanely large and has a higher chance of breaking. i'll create follow up PRs for this. for now we can close this, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bookings area: bookings, availability, timezones, double booking 🐛 bug Something isn't working community Created by Linear-GitHub Sync community-interns The team responsible for reviewing, testing and shipping low/medium community PRs consumer emails area: emails, cancellation email, reschedule email, inbox, spam folder, not getting email High priority Created by Linear-GitHub Sync ready-for-e2e run-ci Approve CI to run for external contributors size/XXL teams area: teams, round robin, collective, managed event-types

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cal.com branding disabled in settings: Cal.com branding still occurs in emails

8 participants