diff --git a/apps/web/modules/bookings/components/AvailableTimeSlots.tsx b/apps/web/modules/bookings/components/AvailableTimeSlots.tsx
index dec0b6c91d..73724d7cc9 100644
--- a/apps/web/modules/bookings/components/AvailableTimeSlots.tsx
+++ b/apps/web/modules/bookings/components/AvailableTimeSlots.tsx
@@ -8,9 +8,9 @@ import {
import { useBookerStoreContext } from "@calcom/features/bookings/Booker/BookerStoreProvider";
import type { IUseBookingLoadingStates } from "../hooks/useBookings";
import type { BookerEvent } from "@calcom/features/bookings/types";
-import type { Slot } from "@calcom/features/schedules/lib/use-schedule/types";
-import { useNonEmptyScheduleDays } from "@calcom/features/schedules/lib/use-schedule/useNonEmptyScheduleDays";
-import { useSlotsForAvailableDates } from "@calcom/features/schedules/lib/use-schedule/useSlotsForDate";
+import type { Slot } from "~/schedules/lib/types";
+import { useNonEmptyScheduleDays } from "@calcom/web/modules/schedules/hooks/useNonEmptyScheduleDays";
+import { useSlotsForAvailableDates } from "@calcom/web/modules/schedules/hooks/useSlotsForDate";
import { PUBLIC_INVALIDATE_AVAILABLE_SLOTS_ON_BOOKING_FORM } from "@calcom/lib/constants";
import { localStorage } from "@calcom/lib/webstorage";
import { BookerLayouts } from "@calcom/prisma/zod-utils";
diff --git a/apps/web/modules/bookings/components/AvailableTimes.tsx b/apps/web/modules/bookings/components/AvailableTimes.tsx
index 87f5745385..2d606daf5b 100644
--- a/apps/web/modules/bookings/components/AvailableTimes.tsx
+++ b/apps/web/modules/bookings/components/AvailableTimes.tsx
@@ -11,7 +11,7 @@ import { useBookerStoreContext } from "@calcom/features/bookings/Booker/BookerSt
import { OutOfOfficeInSlots } from "./OutOfOfficeInSlots";
import type { IUseBookingLoadingStates } from "../hooks/useBookings";
import type { BookerEvent } from "@calcom/features/bookings/types";
-import type { Slot } from "@calcom/features/schedules/lib/use-schedule/types";
+import type { Slot } from "~/schedules/lib/types";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { localStorage } from "@calcom/lib/webstorage";
import classNames from "@calcom/ui/classNames";
diff --git a/apps/web/modules/bookings/components/Booker.tsx b/apps/web/modules/bookings/components/Booker.tsx
index fa16517c32..8b001763e1 100644
--- a/apps/web/modules/bookings/components/Booker.tsx
+++ b/apps/web/modules/bookings/components/Booker.tsx
@@ -20,7 +20,7 @@ import { isBookingDryRun } from "@calcom/features/bookings/Booker/utils/isBookin
import { isTimeSlotAvailable } from "@calcom/features/bookings/Booker/utils/isTimeslotAvailable";
import { getQueryParam } from "@calcom/features/bookings/Booker/utils/query-param";
import { Dialog } from "@calcom/features/components/controlled-dialog";
-import { useNonEmptyScheduleDays } from "@calcom/features/schedules/lib/use-schedule/useNonEmptyScheduleDays";
+import { useNonEmptyScheduleDays } from "@calcom/web/modules/schedules/hooks/useNonEmptyScheduleDays";
import { scrollIntoViewSmooth } from "@calcom/lib/browser/browser.utils";
import {
CLOUDFLARE_SITE_ID,
diff --git a/apps/web/modules/bookings/components/DatePicker.tsx b/apps/web/modules/bookings/components/DatePicker.tsx
index 8d49835b51..928b06a473 100644
--- a/apps/web/modules/bookings/components/DatePicker.tsx
+++ b/apps/web/modules/bookings/components/DatePicker.tsx
@@ -5,7 +5,7 @@ import dayjs from "@calcom/dayjs";
import { useBookerStoreContext } from "@calcom/features/bookings/Booker/BookerStoreProvider";
import type { DatePickerClassNames } from "@calcom/features/bookings/Booker/types";
import { DatePicker as DatePickerComponent } from "@calcom/features/calendars/components/DatePicker";
-import { useNonEmptyScheduleDays } from "@calcom/features/schedules/lib/use-schedule/useNonEmptyScheduleDays";
+import { useNonEmptyScheduleDays } from "@calcom/web/modules/schedules/hooks/useNonEmptyScheduleDays";
import { weekdayToWeekIndex } from "@calcom/lib/dayjs";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import type { User } from "@calcom/prisma/client";
diff --git a/apps/web/modules/bookings/views/bookings-view.tsx b/apps/web/modules/bookings/views/bookings-view.tsx
index 180d620259..4c7546f1f4 100644
--- a/apps/web/modules/bookings/views/bookings-view.tsx
+++ b/apps/web/modules/bookings/views/bookings-view.tsx
@@ -1,8 +1,8 @@
"use client";
import { ColumnFilterType, DataTableProvider, type SystemFilterSegment } from "@calcom/features/data-table";
-import { useSegments } from "@calcom/features/data-table/hooks/useSegments";
-import FeatureOptInBannerWrapper from "@calcom/features/feature-opt-in/components/FeatureOptInBannerWrapper";
+import { useSegments } from "~/data-table/hooks/useSegments";
+import FeatureOptInBannerWrapper from "~/feature-opt-in/components/FeatureOptInBannerWrapper";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import classNames from "@calcom/ui/classNames";
import dynamic from "next/dynamic";
diff --git a/packages/features/data-table/hooks/useSegments.ts b/apps/web/modules/data-table/hooks/useSegments.ts
similarity index 87%
rename from packages/features/data-table/hooks/useSegments.ts
rename to apps/web/modules/data-table/hooks/useSegments.ts
index ae67293f7c..be31342408 100644
--- a/packages/features/data-table/hooks/useSegments.ts
+++ b/apps/web/modules/data-table/hooks/useSegments.ts
@@ -2,9 +2,9 @@ import { useMemo } from "react";
import { trpc } from "@calcom/trpc/react";
-import { recalculateDateRange } from "../lib/dateRange";
-import { type UseSegments, SYSTEM_SEGMENT_PREFIX } from "../lib/types";
-import { isDateRangeFilterValue } from "../lib/utils";
+import { recalculateDateRange } from "@calcom/features/data-table/lib/dateRange";
+import { type UseSegments, SYSTEM_SEGMENT_PREFIX } from "@calcom/features/data-table/lib/types";
+import { isDateRangeFilterValue } from "@calcom/features/data-table/lib/utils";
export const useSegments: UseSegments = ({ tableIdentifier, providedSegments, systemSegments }) => {
const { data: rawSegments, isSuccess } = trpc.viewer.filterSegments.list.useQuery(
diff --git a/apps/web/modules/ee/organizations/features-view.tsx b/apps/web/modules/ee/organizations/features-view.tsx
index aa12f18722..70dcda8dc8 100644
--- a/apps/web/modules/ee/organizations/features-view.tsx
+++ b/apps/web/modules/ee/organizations/features-view.tsx
@@ -1,6 +1,6 @@
"use client";
-import { FeaturesSettings } from "@calcom/features/feature-opt-in/components/FeaturesSettings";
+import { FeaturesSettings } from "~/feature-opt-in/components/FeaturesSettings";
import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import type { ReactElement } from "react";
diff --git a/apps/web/modules/ee/organizations/privacy.tsx b/apps/web/modules/ee/organizations/privacy.tsx
index 4c992581ea..00700b1efd 100644
--- a/apps/web/modules/ee/organizations/privacy.tsx
+++ b/apps/web/modules/ee/organizations/privacy.tsx
@@ -3,7 +3,7 @@
import { usePathname } from "next/navigation";
import { DataTableProvider } from "@calcom/features/data-table";
-import { useSegments } from "@calcom/features/data-table/hooks/useSegments";
+import { useSegments } from "~/data-table/hooks/useSegments";
import LicenseRequired from "~/ee/common/components/LicenseRequired";
import OrgAutoJoinSetting from "~/ee/organizations/components/OrgAutoJoinSetting";
import { useLocale } from "@calcom/lib/hooks/useLocale";
diff --git a/apps/web/modules/ee/workflows/components/VoiceSelectionDialog.tsx b/apps/web/modules/ee/workflows/components/VoiceSelectionDialog.tsx
index 7a372357bc..5b80329497 100644
--- a/apps/web/modules/ee/workflows/components/VoiceSelectionDialog.tsx
+++ b/apps/web/modules/ee/workflows/components/VoiceSelectionDialog.tsx
@@ -4,7 +4,7 @@ import { useMemo, useState, useCallback } from "react";
import { DataTableProvider } from "@calcom/features/data-table";
import { DataTableWrapper } from "~/data-table/components";
-import { useSegments } from "@calcom/features/data-table/hooks/useSegments";
+import { useSegments } from "~/data-table/hooks/useSegments";
import { useVoicePreview } from "@calcom/features/ee/workflows/hooks/useVoicePreview";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
diff --git a/apps/web/modules/embed/components/Embed.tsx b/apps/web/modules/embed/components/Embed.tsx
index bd79788fd4..982d27a904 100644
--- a/apps/web/modules/embed/components/Embed.tsx
+++ b/apps/web/modules/embed/components/Embed.tsx
@@ -25,9 +25,9 @@ import {
import DatePicker from "@calcom/features/calendars/components/DatePicker";
import { Dialog } from "@calcom/features/components/controlled-dialog";
import { TimezoneSelect } from "@calcom/web/modules/timezone/components/TimezoneSelect";
-import type { Slot } from "@calcom/features/schedules/lib/use-schedule/types";
-import { useNonEmptyScheduleDays } from "@calcom/features/schedules/lib/use-schedule/useNonEmptyScheduleDays";
-import { useSlotsForDate } from "@calcom/features/schedules/lib/use-schedule/useSlotsForDate";
+import type { Slot } from "~/schedules/lib/types";
+import { useNonEmptyScheduleDays } from "@calcom/web/modules/schedules/hooks/useNonEmptyScheduleDays";
+import { useSlotsForDate } from "@calcom/web/modules/schedules/hooks/useSlotsForDate";
import {
APP_NAME,
DEFAULT_LIGHT_BRAND_COLOR,
diff --git a/apps/web/modules/event-types/components/AddMembersWithSwitch.tsx b/apps/web/modules/event-types/components/AddMembersWithSwitch.tsx
index 68b82fe87e..c0938e7a28 100644
--- a/apps/web/modules/event-types/components/AddMembersWithSwitch.tsx
+++ b/apps/web/modules/event-types/components/AddMembersWithSwitch.tsx
@@ -6,7 +6,7 @@ import type {
SettingsToggleClassNames,
TeamMember,
} from "@calcom/features/eventtypes/lib/types";
-import { Segment } from "@calcom/features/Segment";
+import { Segment } from "./Segment";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import type { AttributesQueryValue } from "@calcom/lib/raqb/types";
import { Label, SettingsToggle } from "@calcom/ui/components/form";
diff --git a/packages/features/Segment.test.tsx b/apps/web/modules/event-types/components/Segment.test.tsx
similarity index 99%
rename from packages/features/Segment.test.tsx
rename to apps/web/modules/event-types/components/Segment.test.tsx
index 85fae73b6d..81e1d0df33 100644
--- a/packages/features/Segment.test.tsx
+++ b/apps/web/modules/event-types/components/Segment.test.tsx
@@ -3,7 +3,7 @@ import React from "react";
import { describe, expect, it, vi, beforeEach } from "vitest";
import type { Mock } from "vitest";
-import { Segment } from "@calcom/features/Segment";
+import { Segment } from "./Segment";
import type { AttributesQueryValue } from "@calcom/lib/raqb/types";
import { AttributeType } from "@calcom/prisma/enums";
import { trpc, type RouterOutputs } from "@calcom/trpc/react";
diff --git a/packages/features/Segment.tsx b/apps/web/modules/event-types/components/Segment.tsx
similarity index 100%
rename from packages/features/Segment.tsx
rename to apps/web/modules/event-types/components/Segment.tsx
diff --git a/apps/web/modules/event-types/components/__tests__/AddMembersWithSwitch.test.tsx b/apps/web/modules/event-types/components/__tests__/AddMembersWithSwitch.test.tsx
index a7e7a4ba07..1e72b81705 100644
--- a/apps/web/modules/event-types/components/__tests__/AddMembersWithSwitch.test.tsx
+++ b/apps/web/modules/event-types/components/__tests__/AddMembersWithSwitch.test.tsx
@@ -14,7 +14,7 @@ vi.mock("@formkit/auto-animate/react", () => ({
}));
// Mock Segment component
-vi.mock("@calcom/features/Segment", () => ({
+vi.mock("@calcom/web/modules/event-types/components/Segment", () => ({
Segment: vi.fn().mockImplementation(({ onQueryValueChange }) => (
diff --git a/apps/web/modules/event-types/components/tabs/advanced/EventAdvancedTab.tsx b/apps/web/modules/event-types/components/tabs/advanced/EventAdvancedTab.tsx
index c8359e6007..bc03d6e71d 100644
--- a/apps/web/modules/event-types/components/tabs/advanced/EventAdvancedTab.tsx
+++ b/apps/web/modules/event-types/components/tabs/advanced/EventAdvancedTab.tsx
@@ -34,7 +34,7 @@ import type {
SettingsToggleClassNames,
} from "@calcom/features/eventtypes/lib/types";
import { FormBuilder } from "./FormBuilder";
-import { BookerLayoutSelector } from "@calcom/features/settings/BookerLayoutSelector";
+import { BookerLayoutSelector } from "~/settings/components/BookerLayoutSelector";
import {
DEFAULT_LIGHT_BRAND_COLOR,
DEFAULT_DARK_BRAND_COLOR,
diff --git a/packages/features/feature-opt-in/components/FeatureOptInBanner.tsx b/apps/web/modules/feature-opt-in/components/FeatureOptInBanner.tsx
similarity index 100%
rename from packages/features/feature-opt-in/components/FeatureOptInBanner.tsx
rename to apps/web/modules/feature-opt-in/components/FeatureOptInBanner.tsx
diff --git a/packages/features/feature-opt-in/components/FeatureOptInBannerWrapper.tsx b/apps/web/modules/feature-opt-in/components/FeatureOptInBannerWrapper.tsx
similarity index 97%
rename from packages/features/feature-opt-in/components/FeatureOptInBannerWrapper.tsx
rename to apps/web/modules/feature-opt-in/components/FeatureOptInBannerWrapper.tsx
index 9dc20582cc..9f55dd3baf 100644
--- a/packages/features/feature-opt-in/components/FeatureOptInBannerWrapper.tsx
+++ b/apps/web/modules/feature-opt-in/components/FeatureOptInBannerWrapper.tsx
@@ -1,7 +1,7 @@
"use client";
import type { OptInFeatureConfig } from "@calcom/features/feature-opt-in/config";
-import { FeedbackDialog } from "@calcom/features/feedback/components/FeedbackDialog";
+import { FeedbackDialog } from "./FeedbackDialog";
import type { ReactElement } from "react";
import { createPortal } from "react-dom";
import { FeatureOptInBanner } from "./FeatureOptInBanner";
diff --git a/packages/features/feature-opt-in/components/FeatureOptInConfirmDialog.tsx b/apps/web/modules/feature-opt-in/components/FeatureOptInConfirmDialog.tsx
similarity index 100%
rename from packages/features/feature-opt-in/components/FeatureOptInConfirmDialog.tsx
rename to apps/web/modules/feature-opt-in/components/FeatureOptInConfirmDialog.tsx
diff --git a/packages/features/feature-opt-in/components/FeatureOptInSuccessDialog.tsx b/apps/web/modules/feature-opt-in/components/FeatureOptInSuccessDialog.tsx
similarity index 100%
rename from packages/features/feature-opt-in/components/FeatureOptInSuccessDialog.tsx
rename to apps/web/modules/feature-opt-in/components/FeatureOptInSuccessDialog.tsx
diff --git a/packages/features/feature-opt-in/components/FeaturesSettings.tsx b/apps/web/modules/feature-opt-in/components/FeaturesSettings.tsx
similarity index 97%
rename from packages/features/feature-opt-in/components/FeaturesSettings.tsx
rename to apps/web/modules/feature-opt-in/components/FeaturesSettings.tsx
index 3e5e4eb983..466e7b0d69 100644
--- a/packages/features/feature-opt-in/components/FeaturesSettings.tsx
+++ b/apps/web/modules/feature-opt-in/components/FeaturesSettings.tsx
@@ -11,8 +11,8 @@ import { Tooltip } from "@calcom/ui/components/tooltip";
import type { ReactElement } from "react";
import { useMemo } from "react";
-import { getOptInFeatureConfig } from "../config";
-import type { NormalizedFeature, UseFeatureOptInResult } from "../types";
+import { getOptInFeatureConfig } from "@calcom/features/feature-opt-in/config";
+import type { NormalizedFeature, UseFeatureOptInResult } from "@calcom/features/feature-opt-in/types";
interface FeaturesSettingsProps {
/** The hook result - can be from useUserFeatureOptIn, useTeamFeatureOptIn, or useOrganizationFeatureOptIn */
diff --git a/packages/features/feedback/components/FeedbackDialog.tsx b/apps/web/modules/feature-opt-in/components/FeedbackDialog.tsx
similarity index 98%
rename from packages/features/feedback/components/FeedbackDialog.tsx
rename to apps/web/modules/feature-opt-in/components/FeedbackDialog.tsx
index 21b31c9d76..5e088c2694 100644
--- a/packages/features/feedback/components/FeedbackDialog.tsx
+++ b/apps/web/modules/feature-opt-in/components/FeedbackDialog.tsx
@@ -9,7 +9,7 @@ import { cn } from "@coss/ui/lib/utils";
import { XIcon } from "lucide-react";
import type { ReactElement } from "react";
import { useState } from "react";
-import { RATING_OPTIONS } from "../../bookings/lib/rating";
+import { RATING_OPTIONS } from "@calcom/features/bookings/lib/rating";
export interface FeedbackDialogProps {
isOpen: boolean;
diff --git a/apps/web/modules/insights/views/insights-call-history-view.tsx b/apps/web/modules/insights/views/insights-call-history-view.tsx
index dcdb42f617..eb306d637c 100644
--- a/apps/web/modules/insights/views/insights-call-history-view.tsx
+++ b/apps/web/modules/insights/views/insights-call-history-view.tsx
@@ -20,7 +20,7 @@ import {
DataTableToolbar,
DataTableFilters,
} from "~/data-table/components";
-import { useSegments } from "@calcom/features/data-table/hooks/useSegments";
+import { useSegments } from "~/data-table/hooks/useSegments";
import { useOrgBranding } from "@calcom/features/ee/organizations/context/provider";
import type {
CallDetailsState,
diff --git a/apps/web/modules/insights/views/insights-routing-view.tsx b/apps/web/modules/insights/views/insights-routing-view.tsx
index d5bc54df79..ac9b1aebf2 100644
--- a/apps/web/modules/insights/views/insights-routing-view.tsx
+++ b/apps/web/modules/insights/views/insights-routing-view.tsx
@@ -3,7 +3,7 @@
import { usePathname } from "next/navigation";
import { DataTableProvider } from "@calcom/features/data-table/DataTableProvider";
-import { useSegments } from "@calcom/features/data-table/hooks/useSegments";
+import { useSegments } from "~/data-table/hooks/useSegments";
import {
RoutingFormResponsesTable,
FailedBookingsByField,
diff --git a/apps/web/modules/insights/views/insights-view.tsx b/apps/web/modules/insights/views/insights-view.tsx
index fbc99f8338..7b01419f04 100644
--- a/apps/web/modules/insights/views/insights-view.tsx
+++ b/apps/web/modules/insights/views/insights-view.tsx
@@ -11,7 +11,7 @@ import {
import { DataTableFilters, DateRangeFilter } from "~/data-table/components";
import type { FilterType } from "@calcom/types/data-table";
import { useDataTable } from "@calcom/features/data-table/hooks/useDataTable";
-import { useSegments } from "@calcom/features/data-table/hooks/useSegments";
+import { useSegments } from "~/data-table/hooks/useSegments";
import {
AverageEventDurationChart,
BookingKPICards,
diff --git a/packages/features/schedules/lib/use-schedule/useApiV2AvailableSlots.ts b/apps/web/modules/schedules/hooks/useApiV2AvailableSlots.ts
similarity index 100%
rename from packages/features/schedules/lib/use-schedule/useApiV2AvailableSlots.ts
rename to apps/web/modules/schedules/hooks/useApiV2AvailableSlots.ts
diff --git a/packages/features/schedules/lib/use-schedule/useNonEmptyScheduleDays.ts b/apps/web/modules/schedules/hooks/useNonEmptyScheduleDays.ts
similarity index 81%
rename from packages/features/schedules/lib/use-schedule/useNonEmptyScheduleDays.ts
rename to apps/web/modules/schedules/hooks/useNonEmptyScheduleDays.ts
index 883dab758a..7771e665bc 100644
--- a/packages/features/schedules/lib/use-schedule/useNonEmptyScheduleDays.ts
+++ b/apps/web/modules/schedules/hooks/useNonEmptyScheduleDays.ts
@@ -1,8 +1,8 @@
import { useMemo } from "react";
-import type { Slots } from "../use-schedule/types";
+import type { Slots } from "../lib/types";
-export const getNonEmptyScheduleDays = (slots?: Slots) => {
+const getNonEmptyScheduleDays = (slots?: Slots) => {
if (typeof slots === "undefined") return [];
const nonEmptyDays: string[] = [];
diff --git a/packages/features/schedules/lib/use-schedule/useSchedule.ts b/apps/web/modules/schedules/hooks/useSchedule.ts
similarity index 99%
rename from packages/features/schedules/lib/use-schedule/useSchedule.ts
rename to apps/web/modules/schedules/hooks/useSchedule.ts
index ef1958838d..e89a58471b 100644
--- a/packages/features/schedules/lib/use-schedule/useSchedule.ts
+++ b/apps/web/modules/schedules/hooks/useSchedule.ts
@@ -5,7 +5,7 @@ import { sdkActionManager } from "@calcom/embed-core/src/sdk-event";
import { useBookerStore } from "@calcom/features/bookings/Booker/store";
import { isBookingDryRun } from "@calcom/features/bookings/Booker/utils/isBookingDryRun";
import { getUsernameList } from "@calcom/features/eventtypes/lib/defaultEvents";
-import { useTimesForSchedule } from "@calcom/features/schedules/lib/use-schedule/useTimesForSchedule";
+import { useTimesForSchedule } from "@calcom/features/schedules/hooks/useTimesForSchedule";
import { getRoutedTeamMemberIdsFromSearchParams } from "@calcom/lib/bookings/getRoutedTeamMemberIdsFromSearchParams";
import { PUBLIC_QUERY_AVAILABLE_SLOTS_INTERVAL_SECONDS } from "@calcom/lib/constants";
import { trpc } from "@calcom/trpc/react";
diff --git a/packages/features/schedules/lib/use-schedule/useSlotsForDate.ts b/apps/web/modules/schedules/hooks/useSlotsForDate.ts
similarity index 96%
rename from packages/features/schedules/lib/use-schedule/useSlotsForDate.ts
rename to apps/web/modules/schedules/hooks/useSlotsForDate.ts
index ff22adb3cd..2a905b5e16 100644
--- a/packages/features/schedules/lib/use-schedule/useSlotsForDate.ts
+++ b/apps/web/modules/schedules/hooks/useSlotsForDate.ts
@@ -1,6 +1,6 @@
import { useCallback, useEffect, useMemo, useState } from "react";
-import type { Slots, Slot } from "./types";
+import type { Slots, Slot } from "../lib/types";
/**
* Gets slots for a specific date from the schedule cache.
diff --git a/packages/features/schedules/lib/use-schedule/types.ts b/apps/web/modules/schedules/lib/types.ts
similarity index 100%
rename from packages/features/schedules/lib/use-schedule/types.ts
rename to apps/web/modules/schedules/lib/types.ts
diff --git a/apps/web/modules/settings/billing/components/InvoicesTable.tsx b/apps/web/modules/settings/billing/components/InvoicesTable.tsx
index f6500a49d3..b061ca4438 100644
--- a/apps/web/modules/settings/billing/components/InvoicesTable.tsx
+++ b/apps/web/modules/settings/billing/components/InvoicesTable.tsx
@@ -13,7 +13,7 @@ import {
ZDateRangeFilterValue,
type FilterableColumn,
} from "@calcom/features/data-table";
-import { useSegments } from "@calcom/features/data-table/hooks/useSegments";
+import { useSegments } from "~/data-table/hooks/useSegments";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
import type { FilterType } from "@calcom/types/data-table";
diff --git a/packages/features/settings/BookerLayoutSelector.tsx b/apps/web/modules/settings/components/BookerLayoutSelector.tsx
similarity index 99%
rename from packages/features/settings/BookerLayoutSelector.tsx
rename to apps/web/modules/settings/components/BookerLayoutSelector.tsx
index ed491a806b..b3220e7c5a 100644
--- a/packages/features/settings/BookerLayoutSelector.tsx
+++ b/apps/web/modules/settings/components/BookerLayoutSelector.tsx
@@ -13,7 +13,7 @@ import { Button } from "@calcom/ui/components/button";
import { Label } from "@calcom/ui/components/form";
import { CheckboxField } from "@calcom/ui/components/form";
-import SectionBottomActions from "./SectionBottomActions";
+import SectionBottomActions from "@calcom/features/settings/SectionBottomActions";
type BookerLayoutSelectorProps = {
title?: string;
diff --git a/apps/web/modules/settings/my-account/appearance-view.tsx b/apps/web/modules/settings/my-account/appearance-view.tsx
index 2fe7831078..dcd1748bfe 100644
--- a/apps/web/modules/settings/my-account/appearance-view.tsx
+++ b/apps/web/modules/settings/my-account/appearance-view.tsx
@@ -7,7 +7,7 @@ import { useState } from "react";
import { Controller, useForm } from "react-hook-form";
import type { z } from "zod";
-import { BookerLayoutSelector } from "@calcom/features/settings/BookerLayoutSelector";
+import { BookerLayoutSelector } from "~/settings/components/BookerLayoutSelector";
import SectionBottomActions from "@calcom/features/settings/SectionBottomActions";
import ThemeLabel from "@calcom/features/settings/ThemeLabel";
import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader";
diff --git a/apps/web/modules/settings/my-account/features-view.tsx b/apps/web/modules/settings/my-account/features-view.tsx
index 117a86f32a..4ec6c92cc8 100644
--- a/apps/web/modules/settings/my-account/features-view.tsx
+++ b/apps/web/modules/settings/my-account/features-view.tsx
@@ -1,6 +1,6 @@
"use client";
-import { FeaturesSettings } from "@calcom/features/feature-opt-in/components/FeaturesSettings";
+import { FeaturesSettings } from "~/feature-opt-in/components/FeaturesSettings";
import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import type { ReactElement } from "react";
diff --git a/apps/web/modules/settings/outOfOffice/OutOfOfficeEntriesList.tsx b/apps/web/modules/settings/outOfOffice/OutOfOfficeEntriesList.tsx
index 5a7d5af71a..c7e5f052b7 100644
--- a/apps/web/modules/settings/outOfOffice/OutOfOfficeEntriesList.tsx
+++ b/apps/web/modules/settings/outOfOffice/OutOfOfficeEntriesList.tsx
@@ -19,7 +19,7 @@ import {
ZDateRangeFilterValue,
} from "@calcom/features/data-table";
import { DataTableWrapper, DataTableToolbar, DataTableFilters, DataTableSegment } from "~/data-table/components";
-import { useSegments } from "@calcom/features/data-table/hooks/useSegments";
+import { useSegments } from "~/data-table/hooks/useSegments";
import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader";
import ServerTrans from "@calcom/lib/components/ServerTrans";
import { getUserAvatarUrl } from "@calcom/lib/getAvatarUrl";
diff --git a/apps/web/modules/settings/teams/[id]/features-view.tsx b/apps/web/modules/settings/teams/[id]/features-view.tsx
index c8fb5df99e..4e76473203 100644
--- a/apps/web/modules/settings/teams/[id]/features-view.tsx
+++ b/apps/web/modules/settings/teams/[id]/features-view.tsx
@@ -1,6 +1,6 @@
"use client";
-import { FeaturesSettings } from "@calcom/features/feature-opt-in/components/FeaturesSettings";
+import { FeaturesSettings } from "~/feature-opt-in/components/FeaturesSettings";
import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import type { ReactElement } from "react";
diff --git a/apps/web/modules/troubleshooter/components/LargeCalendar.tsx b/apps/web/modules/troubleshooter/components/LargeCalendar.tsx
index 8e2253f701..b5e96f17e4 100644
--- a/apps/web/modules/troubleshooter/components/LargeCalendar.tsx
+++ b/apps/web/modules/troubleshooter/components/LargeCalendar.tsx
@@ -1,7 +1,7 @@
import dayjs from "@calcom/dayjs";
import { useAvailableTimeSlots } from "@calcom/features/bookings/Booker/hooks/useAvailableTimeSlots";
import { useTimePreferences } from "@calcom/features/bookings/lib/timePreferences";
-import { useSchedule } from "@calcom/features/schedules/lib/use-schedule/useSchedule";
+import { useSchedule } from "~/schedules/hooks/useSchedule";
import { useTroubleshooterStore } from "@calcom/features/troubleshooter/store";
import { BookingStatus } from "@calcom/prisma/enums";
import { trpc } from "@calcom/trpc/react";
diff --git a/apps/web/modules/users/components/UserTable/PlatformManagedUsersTable.tsx b/apps/web/modules/users/components/UserTable/PlatformManagedUsersTable.tsx
index 57bd6b1139..e99281eff3 100644
--- a/apps/web/modules/users/components/UserTable/PlatformManagedUsersTable.tsx
+++ b/apps/web/modules/users/components/UserTable/PlatformManagedUsersTable.tsx
@@ -10,7 +10,7 @@ import {
useDataTable,
} from "@calcom/features/data-table";
import { DataTableWrapper, DataTableToolbar, DataTableFilters, DataTableSegment, DataTableSelectionBar } from "~/data-table/components";
-import { useSegments } from "@calcom/features/data-table/hooks/useSegments";
+import { useSegments } from "~/data-table/hooks/useSegments";
import { getUserAvatarUrl } from "@calcom/lib/getAvatarUrl";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
diff --git a/apps/web/modules/users/components/UserTable/UserListTable.tsx b/apps/web/modules/users/components/UserTable/UserListTable.tsx
index af7fdd0c5c..adebe5c965 100644
--- a/apps/web/modules/users/components/UserTable/UserListTable.tsx
+++ b/apps/web/modules/users/components/UserTable/UserListTable.tsx
@@ -9,7 +9,7 @@ import {
useColumnFilters,
useDataTable,
} from "@calcom/features/data-table";
-import { useSegments } from "@calcom/features/data-table/hooks/useSegments";
+import { useSegments } from "~/data-table/hooks/useSegments";
import { useOrgBranding } from "@calcom/features/ee/organizations/context/provider";
import type { MemberPermissions } from "@calcom/features/pbac/lib/team-member-permissions";
import { WEBAPP_URL } from "@calcom/lib/constants";
diff --git a/packages/features/bookings/Booker/utils/event.ts b/packages/features/bookings/Booker/utils/event.ts
index a9dc76c176..0b86b7d4fd 100644
--- a/packages/features/bookings/Booker/utils/event.ts
+++ b/packages/features/bookings/Booker/utils/event.ts
@@ -1,7 +1,7 @@
import { shallow } from "zustand/shallow";
import { useBookerStoreContext } from "@calcom/features/bookings/Booker/BookerStoreProvider";
-import { useSchedule } from "@calcom/features/schedules/lib/use-schedule/useSchedule";
+import { useSchedule } from "~/schedules/hooks/useSchedule";
import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams";
import { trpc } from "@calcom/trpc/react";
diff --git a/packages/features/schedules/lib/use-schedule/useTimesForSchedule.timezone.test.ts b/packages/features/schedules/hooks/useTimesForSchedule.timezone.test.ts
similarity index 100%
rename from packages/features/schedules/lib/use-schedule/useTimesForSchedule.timezone.test.ts
rename to packages/features/schedules/hooks/useTimesForSchedule.timezone.test.ts
diff --git a/packages/features/schedules/lib/use-schedule/useTimesForSchedule.ts b/packages/features/schedules/hooks/useTimesForSchedule.ts
similarity index 84%
rename from packages/features/schedules/lib/use-schedule/useTimesForSchedule.ts
rename to packages/features/schedules/hooks/useTimesForSchedule.ts
index 243c1e5891..6a499a622d 100644
--- a/packages/features/schedules/lib/use-schedule/useTimesForSchedule.ts
+++ b/packages/features/schedules/hooks/useTimesForSchedule.ts
@@ -6,7 +6,30 @@ import type { BookerState } from "@calcom/features/bookings/Booker/types";
import { getPrefetchMonthCount } from "@calcom/features/bookings/Booker/utils/getPrefetchMonthCount";
import { isPrefetchNextMonthEnabled } from "@calcom/features/bookings/Booker/utils/isPrefetchNextMonthEnabled";
-import type { UseScheduleWithCacheArgs } from "./useSchedule";
+type UseScheduleWithCacheArgs = {
+ username?: string | null;
+ eventSlug?: string | null;
+ eventId?: number | null;
+ month?: string | null;
+ timezone?: string | null;
+ selectedDate?: string | null;
+ duration?: number | null;
+ dayCount?: number | null;
+ rescheduleUid?: string | null;
+ isTeamEvent?: boolean;
+ orgSlug?: string;
+ teamMemberEmail?: string | null;
+ useApiV2?: boolean;
+ enabled?: boolean;
+ /***
+ * Required when prefetching is needed
+ */
+ bookerLayout?: {
+ layout: string;
+ extraDays: number;
+ columnViewExtraDays: { current: number };
+ };
+};
type UseTimesForScheduleProps = Pick<
UseScheduleWithCacheArgs,
diff --git a/packages/platform/atoms/booker/BookerPlatformWrapper.tsx b/packages/platform/atoms/booker/BookerPlatformWrapper.tsx
index 5cef210ebf..7fc1bf16d3 100644
--- a/packages/platform/atoms/booker/BookerPlatformWrapper.tsx
+++ b/packages/platform/atoms/booker/BookerPlatformWrapper.tsx
@@ -14,7 +14,7 @@ import { useInitializeBookerStore } from "@calcom/features/bookings/Booker/store
import { useTimePreferences } from "@calcom/features/bookings/lib";
import type { ConnectedDestinationCalendars } from "@calcom/features/calendars/lib/getConnectedDestinationCalendars";
import { getUsernameList } from "@calcom/features/eventtypes/lib/defaultEvents";
-import { useTimesForSchedule } from "@calcom/features/schedules/lib/use-schedule/useTimesForSchedule";
+import { useTimesForSchedule } from "@calcom/features/schedules/hooks/useTimesForSchedule";
import { getRoutedTeamMemberIdsFromSearchParams } from "@calcom/lib/bookings/getRoutedTeamMemberIdsFromSearchParams";
import { localStorage } from "@calcom/lib/webstorage";
import { BookerLayouts } from "@calcom/prisma/zod-utils";
diff --git a/packages/platform/atoms/calendar-view/EventTypeCalendarViewComponent.tsx b/packages/platform/atoms/calendar-view/EventTypeCalendarViewComponent.tsx
index f681ce8c34..7aac1f45ae 100644
--- a/packages/platform/atoms/calendar-view/EventTypeCalendarViewComponent.tsx
+++ b/packages/platform/atoms/calendar-view/EventTypeCalendarViewComponent.tsx
@@ -12,7 +12,7 @@ import { useBookerLayout } from "@calcom/features/bookings/Booker/hooks/useBooke
import { useTimePreferences } from "@calcom/features/bookings/lib";
import { LargeCalendar } from "@calcom/web/modules/calendar-view/components/LargeCalendar";
import { getUsernameList } from "@calcom/features/eventtypes/lib/defaultEvents";
-import { useTimesForSchedule } from "@calcom/features/schedules/lib/use-schedule/useTimesForSchedule";
+import { useTimesForSchedule } from "@calcom/features/schedules/hooks/useTimesForSchedule";
import { formatUsername } from "../booker/BookerPlatformWrapper";
import type {