Compare commits

..
183 Commits
Author SHA1 Message Date
GitHub Actions 1e9f3a8060 chore: release v5.0.17
Post release / release (push) Canceled after 0s
2025-03-11 22:22:13 +00:00
Morgan bc1d73e9fe fix: broken metadata import from platform/types (#19986)
* fix: broken metadata import from platform/types

* fix: OAuthClientUsersService instead of this in oauth-clients-users.service.ts
2025-03-11 22:05:40 +00:00
GitHub Actions eca01be58c chore: release v5.0.16 2025-03-11 21:51:10 +00:00
4ad1127184 refactor: extract schedules from libraries barrel file (#19838)
* refactor: extract schedules from libraries barrel file

* cleanup: remove functions not being used by schedules

* fix tsconfig ]

* bump platform libs

* bump platform libs

---------

Co-authored-by: Morgan Vernay <morgan@cal.com>
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
2025-03-11 19:07:06 +00:00
Lauris SkraucisandMorgan Vernay 76b9b9b0fe fix: v2 rescheduled booking with confirmation (#19833)
* fix: old bookings controller

* fix: new bookings controller

* fix: BookerPlatformWrapper pass rescheduledBy to BookerComponent

* rescheduleBy email

* fix test

* remove log

* centralize getOAuthUserEmail, examples app rescheduledBy

* revert

* finalize

* fix: old bookings rescheduling

* unify email validation

* update input description

* chore: move booker platform wrapper types

---------

Co-authored-by: Morgan Vernay <morgan@cal.com>
2025-03-11 20:04:59 +01:00
Benny Joo ff5c6de5da chore: remove code not needed in defaultResponder (#19976)
* 1 line change

* fix test
2025-03-11 17:47:01 +00:00
Eunjae Lee eafb61f515 fix: apply standard pagination to /insights/routing (#19950)
* fix: apply standard pagination to /insights/routing

* fix type error

* max limit
2025-03-11 16:51:11 +00:00
Benny Joo d0ca0dab53 fix: do not export client components directly from RSC (#19971) 2025-03-11 16:11:30 +00:00
Lauris SkraucisandMorgan e6f561c3d7 fix: v2 team metadata (#19939)
* refactor: allow metadata to also receive numbers and booleans

* refactor: Team metadata

* refactor: Managed orgs metadata

* refactor: Team metadata

* test: organizations teams create team with metadata

---------

Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
2025-03-11 15:03:30 +00:00
Lauris Skraucis b7c5cfcf02 feat: v2 get managed users by email (#19526)
* feat: v2 get managed users by email

* docs

* fix: offset query param not showing up in docs

* finish merge main

* fix: check if each email in emails query param is email
2025-03-11 15:01:43 +00:00
Hariom BalharaandMorgan Vernay b1bcbe9dfb feat: calendar-links API (#19777)
* refactor: Remove intervalLimits from @calcom/lib and export directly (#19710)
* refactor: Remove intervalLimits from @calcom/lib and export directly

* Tackle other places that use parseBookingLimit/parseDurationLimit

* More type fixups that were hidden by previous fails

* Fixed up booking-limits file

* Remove server-only

## What does this PR do?

<!-- Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. -->

- Fixes #XXXX (GitHub issue number)
- Fixes CAL-XXXX (Linear issue number - should be visible at the bottom of the GitHub issue description)

## Visual Demo (For contributors especially)

A visual demonstration is strongly recommended, for both the original and new change **(video / image - any one)**.

#### Video Demo (if applicable):

- Show screen recordings of the issue or feature.
- Demonstrate how to reproduce the issue, the behavior before and after the change.

#### Image Demo (if applicable):

- Add side-by-side screenshots of the original and updated change.
- Highlight any significant change(s).

## 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](https://cal.com/docs). If N/A, write N/A here and check the checkbox.
- [ ] I confirm automated tests are in place that prove my fix is effective or that my feature works.

## How should this be tested?

<!-- Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration. Write details that help to start the tests -->

- Are there environment variables that should be set?
- What are the minimal test data to have?
- What is expected (happy path) to have (input and output)?
- Any other important info that could help to test that PR

## Checklist

<!-- Remove bullet points below that don't apply to you -->

- I haven't read the [contributing guide](https://github.com/calcom/cal.com/blob/main/CONTRIBUTING.md)
- My code doesn't follow the style guidelines of this project
- I haven't commented my code, particularly in hard-to-understand areas
- I haven't checked if my changes generate no new warnings

* Add unit tests and e2e

* fix ts errors

* Add comment

* bump platform libs

* fix: yarn-lock

* fix yarn.lock

* doc update

* Add isString

---------

Co-authored-by: Morgan Vernay <morgan@cal.com>
2025-03-11 17:01:32 +02:00
Steven Tey 19e1714794 Upgrade dub to latest version for dual-sided incentives (#19885) 2025-03-11 14:03:54 +00:00
Benny Joo e3e624464d fix: update wrong oauth tests and parseRequestData util (#19958)
* update oauth tests

* fix parseRequestData

* add logging

* add fallback

* use ??

* updates

* use parseUrlFormData in saml/callback

* update tests

* fix

* remove log

* update

* any -> unknown

* use HttpErrors

* addressed

* unknown -> any
2025-03-11 14:01:48 +00:00
amrit dc3c7b43bf fix: correct translation key for host and attendee emails (#19962) 2025-03-11 13:35:59 +00:00
Morgan 83736785b7 fix: catch error for getOwnerId with invalid token (#19949) 2025-03-11 13:27:20 +02:00
Rajiv Sahal 83b6b7caf9 chore: update hooks sections for platform docs (#19726)
* export custom hooks to create event types

* update hooks page

* separate hooks into their own files
2025-03-11 16:57:05 +05:30
GitHub Actions 6fc3ca539b chore: release v5.0.15
Post release / release (push) Canceled after 0s
2025-03-11 10:43:26 +00:00
Keith Williams 9d58d21e85 perf: Remove dayjs import from main constants.ts file (#19644) 2025-03-11 10:37:51 +00:00
Lauris Skraucis 43f6db194e test: managed org creator profiles (#19944) 2025-03-11 10:13:50 +00:00
Morgan 43156fa4d7 refactor: extract emails from libraries barrel file (#19836)
* refactor: extract emails from libraries barrel file

* fixup! Merge branch 'main' into refactor-libraries-barrel-emails

* fix: add missing configs

* add sendSignupToOrganizationEmail to barrel email file

* bump libs
2025-03-11 11:36:21 +02:00
Eunjae LeeandBenny Joo 7eee2728a2 feat: implement standard pagination for org member list (#19802)
* feat: implement standard pagination for org member list

* fix type error

* i18n for pagination

* add paginationMode

* apply the change to PlatformManagedUsersTable

* replace useInfiniteQuery with useQuery

* fix type error

* fix type error

* fix type error

* fix type error

* update comment

* remove optimistic update

* minor changes

* update usage on nuqs

---------

Co-authored-by: Benny Joo <sldisek783@gmail.com>
2025-03-11 09:55:41 +01:00
Somay Chauhan 861e3aa24f fix: extracted app-store and DWD platform-libraries imports to a /app-store barrel file (#19938)
* fix: platform libraries barrel file extract app-store

* extracted DWD to app-store barrel file

* removed getCalendar as not used in api/v2

* bump platform-libraries
2025-03-11 08:30:37 +00:00
Benny Joo 517d509321 fix: req.formData() should be used in some API routes (#19930) 2025-03-11 07:51:33 +00:00
Udit Takkar 2f9a853023 chore: pass metadata (#19712)
* chore: pass metadata

* fix: type error

* chore: pass videoCallUrl
2025-03-11 04:34:14 -03:00
Udit Takkar b0125e1a05 feat: sound on browser push notification (#18548)
* feat: sound on notification

* refactor: add load audio

* chore: remove

* fix: type error

* fix: notification

* fix: prevent multiple initialization
=

* feat: create notification page

* chore: update the mp3 file
2025-03-11 11:49:51 +05:30
Tushar Bhatt 4daad2ac08 fix/view (#19928) 2025-03-11 03:04:20 +00:00
Alex van Andel 9d28f5574d fix: Remove hardcoded Node version from engines 2025-03-10 23:35:00 +00:00
GitHub Actions be525a27df chore: release v5.0.14
Post release / release (push) Canceled after 0s
2025-03-10 22:44:00 +00:00
Calcom BotandLingo.dev df037b008f feat: update translations via @lingodotdev (#19927)
Co-authored-by: Lingo.dev <support@lingo.dev>
2025-03-10 21:12:15 +00:00
amritandUdit Takkar 8fb4df4b8c fix: duplicate value found in common.json error (#19693)
* fix: duplicate value found in common.json error

* Remove subteam invitation translation from locales

* verify_email_email_button to verify_email_button

---------

Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
2025-03-10 19:19:32 +00:00
6758654796 feat: round robin reset interval for teams (#19441)
* add component to set interval

* fix variable namings

* fetch data for given interval

* migration

* fix type errors in test

* test correct filtering for interval

* fix start end end times to interval

* fix type error

* pass rrResetInterval to getOrderedListOfLuckyUsers

* fix imports

* add translations

* add missing translation

* code clean up

* fix type errors

* fix type error

* fix import

* add translation

---------

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2025-03-10 17:34:47 +00:00
Alex van AndelandMorgan Vernay 1e86f1046b chore: Fix build failure due to trpc inference depth (#19884)
* chore: Fix build failure due to trpc inference depth

* Also bump platform libraries typescript version

* fix: e2e test using unassigned variable

* chore: bump libraries to 0.0.142

---------

Co-authored-by: Morgan Vernay <morgan@cal.com>
2025-03-10 17:06:05 +00:00
Eunjae LeeandAlex van Andel d3775cd920 fix: update filter styles on org member list (#19918)
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2025-03-10 17:01:37 +00:00
Benny JooandAnik Dhabal Babu 3ab053bf17 chore: migrate oauth APIs to app router (#19824)
* migrate api/auth/oauth/me

* migrate the rest

* fix

---------

Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
2025-03-10 17:56:53 +01:00
Benny Joo 4a4bee7140 chore: Remove typeform app (#19911)
* remove typeform app

* update yarn.lock
2025-03-10 16:54:20 +00:00
Benny Joo 9ba85ea0b2 chore: missing pieces to migrated apis (#19915)
* fix

* refactor
2025-03-10 15:24:03 +00:00
avnish100 d1d1472f3e fix: removed rounded top corners on webhook form (#19905) 2025-03-10 14:54:43 +00:00
Benny Jooandsean-brydon 8d18b3da38 chore: migrate saml/oidc APIs to App Router (#19515)
* migrate oidc

* migrate saml apis

* remove comment

* add force-dynamic

* fix

* fix

* refactor

---------

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
2025-03-10 14:36:11 +00:00
Benny Joo 631c5f7c53 migrate webhookTriggers and workflows apis (#19875) 2025-03-10 14:35:11 +00:00
f2ca2bdc83 fix: add badge for disabled workflow actions and templates in trial mode (#19675)
* add badge for trial mode

* fix tooltip issue

* fix typo

* add inactive team plan badge

* change to one salesforce request

* clean up

* fix type error

---------

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Bailey Pumfleet <bailey@pumfleet.co.uk>
2025-03-10 15:34:29 +01:00
Rajiv Sahal bb36807689 feat: update platform onboarding docs (#17941)
* update images

* restructure getting started for platform

* add steps on setting up a platform account

* PR feedback

* fixup

* add setup page

* move over setup to a separate page

* update images
2025-03-10 20:02:24 +05:30
Keith Williams 7ed32d3c77 perf: Reduce imports by moving bookings zod out of utils (#19869) 2025-03-10 13:54:05 +00:00
Morgan 5d84179345 refactor: circular dependencies platform packages (#19903)
* refactor: circular dependencies platform packages

* fixup! refactor: circular dependencies platform packages

* fixup! fixup! refactor: circular dependencies platform packages

* fix: circular deps in BaseCalProvider
2025-03-10 13:25:01 +00:00
cb437231ad fix: platform libraries barrel file extract event-types (#19846)
* fix: event-types

* chore: added "+ group link" tip (#19809)

* added + link tip

* nit

---------

Co-authored-by: amrit <iamamrit27@gmail.com>
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
Co-authored-by: Tushar Bhatt <95581504+TusharBhatt1@users.noreply.github.com>

* Added fix to solve the id TypeError (#19810)

Co-authored-by: amrit <iamamrit27@gmail.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
Co-authored-by: Tushar Bhatt <95581504+TusharBhatt1@users.noreply.github.com>

* Revert "fix: prevent background scroll on opening timezone select menu (#19789)" (#19814)

This reverts commit 1a96149ce3.

* fix: Calendar events attached to workflow emails are missing meeting link (#19790)

* fixup! fix: Calendar events attached to workflow emails are missing meeting link (#19790)

* chore: fix type errors

* fix: wrong import in e2e file

* fix: tsconfig api v2 for /event-types

* fix: import and refactor

* fixed remaning type issues

* undo extra changes

* bump platform libs

* Update event-types.controller.e2e-spec.ts

* fix: test with seats enabled

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: amrit <iamamrit27@gmail.com>
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
Co-authored-by: Tushar Bhatt <95581504+TusharBhatt1@users.noreply.github.com>
Co-authored-by: Harshit Singh <73997189+harshit078@users.noreply.github.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Morgan Vernay <morgan@cal.com>
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
2025-03-10 12:34:53 +00:00
Somay Chauhan d47a5be659 fix: add documentaion to blockUnconfirmedBookingsInBooker (#19894)
* fix: add documentaion to `blockUnconfirmedBookingsInBooker`

* fix documentation of ConfirmationPolicy.type

* Update confirmation-policy.input.ts
2025-03-10 09:31:49 -03:00
sean-brydon e89211782c fix: calcom trpc circle deps slots handlers (#19896)
* remove validator file and include inside handler

* fixes slots and handler circle dep

* fix type in tests
2025-03-10 11:29:51 +00:00
sean-brydon fd454061e7 fix profile circle dep (#19892) 2025-03-10 11:05:14 +00:00
Rajiv SahalandMorgan Vernay 277ce1c244 refactor: extract slots from libraries barrel file (#19895)
* refactor: extract slots fn from libraries barrel file

* bump platform libs

---------

Co-authored-by: Morgan Vernay <morgan@cal.com>
2025-03-10 10:33:29 +00:00
luzpaz 1848cd55b1 fix: fix playwright typos (#19794)
Found via `codespell -q 3 -S "*.svg,./apps/web/public/static/locales,./packages/app-store/stripepayment/lib/currencyOptions.ts,./packages/lib/freeEmailDomainCheck/freeEmailDomains.ts" -L afterall,atleast,datea,fo,incase,ist,nam,noone,notin,optionel,perview,pris,reccuring`
2025-03-10 07:39:58 +00:00
Anik Dhabal Babu b0e3cc4dd2 chore: add logs for debugging (#19851) 2025-03-10 03:34:52 +00:00
Morgan b3e344d226 chore: decouple calcom/ui/Tooltip from atoms (#19798)
* chore: decouple calcom/ui from atoms #1

* recover input from main

* fix: vite config dialog
2025-03-10 01:43:01 +00:00
Suyash Srivastava 810f3b834c fix:small typo with email (#19879) 2025-03-10 01:22:13 +00:00
Hariom Balhara bf1eacfd9b Ignore faulty org (#19825) 2025-03-10 00:58:48 +00:00
c5c654c879 feat: no-show confirmation does not pop up for single attendee (#19806)
* feat: no-show marking  confirmation does not pop up for single attendee bookings

* fix: Add toggle for no-show status

* simplify logic

* feat: Centralize no-show handling logic in BookingListItem

* Update BookingListItem.tsx

---------

Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Tushar Bhatt <95581504+TusharBhatt1@users.noreply.github.com>
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
2025-03-09 17:06:03 +00:00
sean-brydonandBenny Joo d1ce04edc1 chore: move miscellaneous small api pages to app dir api (#19699)
* version and verify-booking-token

* username route

* api/me

* logo route

* render email in dev

* link route

* future

* nope and geo location

* referal link and daily

* intercom route and dynamic variables

* intercom route and dynamic variables

* scim 2.0 and helpscout route

* app credentials

* api/book events

* fix daily import path in tests

* fix buildLegacyRequest generation

* fix type errors

* migrate the /teams/ routes

* move cron jobs

* fix daily import path in tests

* fix buildLegacyRequest generation

* fix type errors

* migrate the /teams/ routes

* move cron jobs

* Revert "api/book events"

This reverts commit 607a32fb5b754cad090c2d0cbf64a68f990e220e.

* mock next server NextResponse to fix daily video

* add default responder to teams api

* fix search params

* uses nextUrl.searchParams instead of new url

* uses nextUrl.searchParams instead of new url

* remove outdated api config

* remove app dir version of inbound dynamic variables

* restore pages version of inbound variables

* fix missing code from stupid cursor

---------

Co-authored-by: Benny Joo <sldisek783@gmail.com>
2025-03-09 11:56:56 -04:00
Benny JooandAnik Dhabal Babu 1f1862e526 chore: migrate two-factor APIs to app router (#19826)
* wip

* remove comment

* clean up

* clean up

---------

Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
2025-03-09 15:40:27 +00:00
Benny Joo 63dfc3376c chore: remove empty path from middleware matcher (#19860) 2025-03-09 15:38:04 +00:00
Adam BashaandKeith Williams 3166db9bcf chore: update robots.txt to disallow /settings and /my-account (#19867)
* chore: update robots.txt to disallow /settings and /my-account

* Update robots.txt

---------

Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2025-03-09 08:53:34 +00:00
Vijay f8af9dc17e fix: failing tests during DST transition (#19862)
* make the test dst transition proof

* fix other test similarly
2025-03-09 00:43:42 +00:00
Benny Joo ae659b5176 chore: migrate forgot-password, reset-password, auth/setup apis to App Router (#19512)
* chore: migrate /api/auth/changepw

* migrate forgot-password and reset-password

* remove unneeded export

* rename request to req for easier review

* migrate auth/setup

* remove setup

* refactor

* remove redundant code

* fix

* remove changepw api and unused ui
2025-03-07 14:43:36 -07:00
Eunjae Lee 33226f268d fix: date range on /bookings (#19785) 2025-03-07 21:54:49 +01:00
sean-brydonandAnik Dhabal Babu 7e2a0d1a1b fix: calcom UI circle dep (#19839)
* editor circle dep fix

* circle dep fix in select

* fix barrel export types

---------

Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
2025-03-07 09:26:26 -07:00
a385bd4d5f feat: team ooo read-only for non-admin (#19700)
* feat team ooo read-only for non-admin

* Update apps/web/playwright/out-of-office.e2e.ts

Co-authored-by: Younes Henni <youneshenniwrites@gmail.com>

* updated error msgs with t

* nit

* nit

---------

Co-authored-by: Younes Henni <youneshenniwrites@gmail.com>
Co-authored-by: Tushar Bhatt <95581504+TusharBhatt1@users.noreply.github.com>
2025-03-07 16:19:30 +00:00
Anik Dhabal Babu 4b4bc28f1d fix: Calendar events attached to workflow emails are missing meeting link (#19790) 2025-03-07 14:41:51 +00:00
Anik Dhabal Babu 316fba908b Revert "fix: prevent background scroll on opening timezone select menu (#19789)" (#19814)
This reverts commit 1a96149ce3.
2025-03-07 14:39:09 +00:00
d40d282912 Added fix to solve the id TypeError (#19810)
Co-authored-by: amrit <iamamrit27@gmail.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
Co-authored-by: Tushar Bhatt <95581504+TusharBhatt1@users.noreply.github.com>
2025-03-07 14:26:36 +00:00
e81df6fdeb chore: added "+ group link" tip (#19809)
* added + link tip

* nit

---------

Co-authored-by: amrit <iamamrit27@gmail.com>
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
Co-authored-by: Tushar Bhatt <95581504+TusharBhatt1@users.noreply.github.com>
2025-03-07 14:23:51 +00:00
Hariom Balhara 76420411b9 fix: fixes the crash when empty users or hosts array is passed to _getDelegationCredentialsMapPerUser (#19834)
* fix crash when no users are there

* typo fix
2025-03-07 13:11:07 +00:00
Keith Williams 7ec1617dc2 chore: Update CODEOWNERS for package.json files (#19831) 2025-03-07 11:02:33 +00:00
Rajiv Sahal 870cadd81f fix: dry run improvements for v2 (#19196)
* add dry run param for v2 getSlots

* fixup

* revert changes

* dont reserve a slot for booking dry run

* accept dry run prop as a parameter instead of computing

* fix merge conflicts

* fixup

* dont reserve slots for booking dry run
2025-03-07 14:49:54 +05:30
amrit 04c581a25e docs: Update README (#19815) 2025-03-07 10:32:33 +05:30
Syed Ali Shahbaz 5ef131333d update SAML guide (#19778) 2025-03-07 09:00:53 +05:30
GitHub Actions c262220f0f chore: release v5.0.13
Post release / release (push) Canceled after 0s
2025-03-07 00:38:07 +00:00
Morgan b5e08ea80f fix: api v2 create event-type with delegation credentials (#19797) 2025-03-06 19:46:46 +02:00
Joe Au-Yeung 00ee1ef441 refactor: Salesforce - account query based on website (#19799)
* Refactor account lookup to include website prefixes

* Type fix
2025-03-06 21:53:49 +05:30
Rajiv Sahal 6cdc9c9f59 fix invalid access token bug (#19793) 2025-03-06 14:51:39 +00:00
Pranav Rajveerandamrit 56d1998f0f chore: rename virtual-queue to router-position (#19774)
Co-authored-by: amrit <iamamrit27@gmail.com>
2025-03-06 19:32:30 +05:30
Udit Takkar d59fdf21fd feat: display country code from IP (#19788)
* feat: display country code from IP

* chore: remove

* fix: unit test
2025-03-06 19:16:41 +05:30
suraj 1a96149ce3 fix: prevent background scroll on opening timezone select menu (#19789) 2025-03-06 13:29:50 +00:00
Eunjae Lee d2bc81758c feat: add booking id & booking link columns to /insights/routing (#19697)
* feat: add booking id & booking link columns to /insights/routing

* update style

* update i18n

* update i18n keys

* update host

* useCopy instead of raw navigator.clipboard
2025-03-06 10:24:50 +00:00
Alex van Andel 0565e23818 refactor: Remove intervalLimits from @calcom/lib and export directly (#19710)
* refactor: Remove intervalLimits from @calcom/lib and export directly

* Tackle other places that use parseBookingLimit/parseDurationLimit

* More type fixups that were hidden by previous fails

* Fixed up booking-limits file

* Remove server-only
2025-03-05 19:32:53 +00:00
GitHub Actions 34cff214dd chore: release v5.0.12
Post release / release (push) Canceled after 0s
2025-03-05 18:40:35 +00:00
Alex van Andel f7af19b7cb chore: Bump node to 20 in APIv2 Dockerfile (#19770) 2025-03-05 18:19:29 +00:00
Bailey Pumfleetandsnyk-bot 6849638b1f fix: apps/api/v2/package.json & apps/api/v2/.snyk to reduce vulnerabilities (#19755)
The following vulnerabilities are fixed with a Snyk patch:
- https://snyk.io/vuln/npm:semver:20150403

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
2025-03-05 18:07:55 +00:00
Joe Au-Yeung 07969f5287 perf: Add CrmServiceMap (#19718)
* Generate crm apps map

* Remove .tsx file

* Use `CrmServiceMap` in `getCrm`

* Remove unused types

* Type fixes

* Type fixes
2025-03-05 14:58:02 -03:00
GitHub Actions 44a6ceff3f chore: release v5.0.12 2025-03-05 17:52:37 +00:00
Vijay 0e4309777b fix: make strict bottom position of DateRangePicker optional (#19768)
* make strictbottom optional

* chore
2025-03-05 17:26:10 +00:00
Keith Williams b8f0741923 chore: Update CODEOWNERS to have @calcom/Foundation on Platform line items (#19769) 2025-03-05 10:01:34 -07:00
nizzy ba1ede2e31 fix: plain z index (#19767) 2025-03-05 16:15:01 +00:00
Udit TakkarandBailey Pumfleet b74a49f31d fix: use impersonatedById (#19682)
Co-authored-by: Bailey Pumfleet <bailey@pumfleet.co.uk>
2025-03-05 15:43:25 +00:00
Tushar Bhatt 31cd77345d all changes (#19720) 2025-03-05 15:41:54 +00:00
Anik Dhabal Babu 2be9ff7622 fix: hubspot not working for team events (#19761) 2025-03-05 15:16:49 +00:00
Alex van Andel 96a5abe6c3 chore: Fix types of app-store to prevent type drilling (#19732) 2025-03-05 12:06:01 -03:00
sean-brydonandKeith Williams 4cdb8f3bae feat: make calcom UI dumb again (#19658)
* remove create button for teams from calcom ui

* migrate timezone select to features

* remove trpc from phone and storybook provider

* new-yarn.lock

* fix imports + test file for select

* fix platform timezone select to use Raw timezone select

* fix timezone type import

* use correct select in timezone-select.tsx - needs trpc version

* fix lock and remove test-utils

* fix log file

* Updated yarn.lock

* Fixed types

* Fixed tests

---------

Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2025-03-05 11:58:52 -03:00
Shivansh KumarandAnik Dhabal Babu 1b111c8add fix(payments): add return_url for Alipay PaymentIntent confirmation; fixes #19138 (#19153)
* Update README.md

* fix(payments): add return_url for Alipay PaymentIntent confirmation; fixes #19138

* Fix: update confirmPayment to use confirmParams and resolve TS errors

* Update Payment.tsx

* Update

* fix build error

---------

Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
2025-03-05 11:57:43 -03:00
luzpazandTushar Bhatt be1377e9af fix: typos in apps/api (#19762)
Found via codespell

Co-authored-by: Tushar Bhatt <95581504+TusharBhatt1@users.noreply.github.com>
2025-03-05 14:29:11 +00:00
Alex van Andel 7226370427 chore: Bump .nvmrc node version to node 20 (#19760) 2025-03-05 13:50:06 +00:00
Morgan 524c0d81a7 chore: rename DWD to DelegationCredential (#19744)
* Revert "Revert "chore: rename DWD to DelegationCredential (#19703)" (#19734)"

This reverts commit 340b5ab061.

* chore: fix schema and types for now

* fix: domainWideDelegationCredentialId error type
2025-03-05 10:42:20 -03:00
Udit TakkarandPeer Richelsen f008a28499 fix: open cal video url on new page when ready (#19683)
* fix: open cal video url on new page when ready

* fix: open on new tab

* chore: change logic

* chore: add condition for embed

* chore: simplify the code

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2025-03-05 18:27:06 +05:30
Keith Williams 381f2781a3 perf: remove atoms monorepo imports (#19688)
* perf: Remove atoms/monorepo barrel exports

* Removed more exports

* completely removed the monorepo file

* fixed types

* fixing tests

* fixing package errors

* Pushing latest

* Fixed atoms build

* hack to fix type

* Fixed web build
2025-03-05 09:49:13 -03:00
Alex van Andel 6f62c6ad5d refactor: Typescript fixes and updates for bumping ts version to 5.8.2 (#19690)
* Typescript fixes and updates for bumping ts version to 5.8.2

* Different TS versions do see an error, so @ts-ignore'ing

* Attempt this fix for ignoring createDecipher/createCipher fns

* Remove @ts-expect-error
2025-03-05 09:17:08 -03:00
Alex van Andel 1545a8ec82 chore: Upgrade to node v20 as v18 is EOL next month (#19733)
* chore: Upgrade to node v20 as v18 is EOL next month

* Run tests using node 20
2025-03-05 13:34:17 +02:00
Muhammad Aiman Sulaiman 58d7e59b38 feat: Updates to HitPay Payment App (#19737)
* feat: add hitpay embed feature for cal embed

feat: update hitpay app description

fix: fixed customers being able to exceed bookings in the same timeslot when using HitPay

fix: fixed callback issue in cal.com using hitpay app when not receiving payment responses

* fix: fixed type-check error
2025-03-05 11:29:38 +00:00
Eunjae Lee d79a5c3adf fix: search on team availiability (for non-org users) (#19738) 2025-03-05 10:56:03 +00:00
Morgan 340b5ab061 Revert "chore: rename DWD to DelegationCredential (#19703)" (#19734)
This reverts commit 7a9ddf2194.
2025-03-05 10:30:23 +00:00
Anik Dhabal Babu fa58fe6563 fix: tab item is not translated (#19735) 2025-03-05 09:28:45 +00:00
Benny Joo 251121a76f chore: write defaultResponder for App Router APIs (#19727)
* create defaultResponderForAppDir

* rename all usages

* finish

* fix
2025-03-05 09:12:07 +00:00
Rajiv Sahal 75627cb097 fix: booking fields not saving properly for team events (#19702) 2025-03-05 05:38:07 +00:00
amrit f9780fbbd2 fix: auto submission upon uploading photo (#19715)
* fix: auto submission upon uploading photo

* set image source from server response

* get rid of extra network request by removing refetch
2025-03-05 05:34:02 +00:00
luzpaz 13649d3bf3 fix: typos in packages directory (#19574)
Found via codespell
2025-03-05 05:12:40 +00:00
Benny Joo 65898f29eb perf: dynamic import for sentry CaptureException (#19730) 2025-03-04 23:07:20 +00:00
Calcom BotandLingo.dev 11267e9359 feat: update translations via @lingodotdev (#19729)
Co-authored-by: Lingo.dev <support@lingo.dev>
2025-03-04 21:40:29 +00:00
sean-brydonandBailey Pumfleet d38b35b626 chore: remove storybook (#19659)
* remove storybook

* remove storybook trpc provider

* add user-event

* fix lockk file

---------

Co-authored-by: Bailey Pumfleet <bailey@pumfleet.co.uk>
2025-03-04 14:14:56 -07:00
Lauris Skraucis fff521e171 fix: v2 managed user attendee bookings (#19716)
* Revert "Revert "fix: v2 managed user attendee bookings (#19612)" (#19635)"

This reverts commit 2600a6c3d5.

* fix: make guests optional
2025-03-04 18:08:21 +01:00
Vijay fd6666ebad feat: improved ooo search (#19704)
* improved ooo search

* chore
2025-03-04 13:45:00 +00:00
Anik Dhabal Babu f2fa1248eb fix (#19692) 2025-03-04 18:21:39 +05:30
Morgan 7a9ddf2194 chore: rename DWD to DelegationCredential (#19703)
* chore: rename DWD to DelegationCredential

* fixup! chore: rename DWD to DelegationCredential

* fixup! fixup! chore: rename DWD to DelegationCredential

* fixup! Merge branch 'main' into rename-domain-wide-delegation

* fixup! fixup! Merge branch 'main' into rename-domain-wide-delegation

* fixup! fixup! fixup! Merge branch 'main' into rename-domain-wide-delegation
2025-03-04 09:45:39 -03:00
Anik Dhabal Babu a39b5e47a7 fix: member filter fix (#19707) 2025-03-04 12:45:27 +00:00
Morgan ae8180e7c2 chore: improve validate hosts api v2 team event-types (#19696)
* chore: improve validate hosts api v2 team event-types

* fixup! chore: improve validate hosts api v2 team event-types
2025-03-04 08:55:40 +00:00
Morgan 72832354e6 fix: api v2 axiom logs exceed column size (#19636) 2025-03-04 05:40:36 +00:00
Vachmara df598bf281 feat: improve Intercom app (#19687)
* fix: don't POST to cal.com/[user]/[type]

* fix: return html with cal calendar embed

* fix: intercom app team events types

* feat: improve Intercom UX integration

* Merge branch 'main' of https://github.com/calcom/cal.com
2025-03-04 10:48:31 +05:30
GitHub Actions a3ce957f00 chore: release v5.0.11
Post release / release (push) Canceled after 0s
2025-03-03 23:30:41 +00:00
Keith Williams 7701edb0bb chore: TS config - ignore node_modules in subdirectories (#19680)
* chore: TS config - ignore node_modules in subdirectories

* Update tsconfig.json

* Applied the pattern to the entire monorepo
2025-03-03 15:53:28 -03:00
Benny Joo efd427831d chore: early return for next.js static assets (#19678) 2025-03-03 15:35:42 -03:00
bec83b2342 chore: remove TRPC barrel exports (#19598)
* remove barrel export for client

* fix more imports

* remove server barrel

* remove more barrel exporst and fix tssconfig

* fix types

* fix imports for removed barrels

* fig ssg createserverside helpers

* restore lock

* new yarn lock

* remove barel exports

* remove barrel

* replace client with react in tsconfig

* fix yarn lock

* Update exports for trpc to not be types

* add ENDPOINTS export to the correct location

* other exports fixes lost due to barrel

* fix client error export

* more imports

---------

Co-authored-by: hbjORbj <sldisek783@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2025-03-03 15:33:32 -03:00
Ash DavisandAnik Dhabal Babu 5a6a13b954 fix: allow cancelledBy query param to work on api v1 (#19268)
* fix: cancelledby to work on api v1

* fix: scheduleId to work with hosts in eventtype api v1

* Update event-type.ts

---------

Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
2025-03-03 18:19:09 +00:00
Ash Davisandamrit 340f15fea5 fix: scheduleId to work on event type host assignment via patch api v1 (#19546)
Co-authored-by: amrit <iamamrit27@gmail.com>
2025-03-03 18:18:06 +00:00
Anik Dhabal Babu f572a2b9c2 fix: some flaky e2e tests (#19648)
* fix: some flaky e2e tests

* update

* update
2025-03-03 21:55:21 +05:30
MorganandSomay Chauhan ee9c73476b chore: add docs to /v2/organizations/:orgId/organizations endpoints (#19668)
Co-authored-by: Somay Chauhan <somaychauhan98@gmail.com>
2025-03-03 16:03:32 +00:00
Keith Williams 78d06c6d01 refactor: Move classNames from @calcom/lib to @calcom/ui (#19674)
* refactor: Move classNames from @calcom/lib to @calcom/ui

* Import fix

* Removed extra import of classNames

* Removed tailwind-merge from @calcom/lib
2025-03-03 15:54:33 +00:00
Eunjae Lee 3d3a9c0dfb fix: use portal for DataTableSelectionBar (#19672) 2025-03-03 15:42:38 +00:00
Tushar Bhatt ed06050fda fix UI on mobile (#19673) 2025-03-03 15:24:37 +00:00
amrit fd6effa6ff feat: booking redirect page url is now has uid in it's parameters (#19522)
* feat: booking redirect page is now w UID

* refactor: use getBookingRedirectExtraParams

* refactor: remove uncessary const result

* uid isnt the first param anymore
2025-03-03 09:47:32 -05:00
Morgan 2889893804 refactor: import UseIsPlatform directly instead of barrel file (#19670)
* refactor: import useIsPlatform directly

* fixup! refactor: import useIsPlatform directly

* fixup! fixup! refactor: import useIsPlatform directly

* fixup! fixup! fixup! refactor: import useIsPlatform directly
2025-03-03 14:26:50 +00:00
Rajiv Sahal 3c035ab636 chore: add hooks section to v2 docs (#19651)
* add custom hooks page
2025-03-03 14:18:39 +00:00
sean-brydon c1ccd62f98 use profileUsername (#19667) 2025-03-03 12:28:40 +00:00
Eunjae Lee 0e5775a087 fix: adjust table height on /bookings (#19662) 2025-03-03 11:00:38 +00:00
amritandUdit Takkar 7e83f1a59a fix locale (#19665)
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
2025-03-03 10:52:31 +00:00
Eunjae LeeandUdit Takkar 12724ef894 fix: show selected filter values first in single- & multi-select filters (#19620)
* fix: show selected filter values first in single- & multi-select filters

* fix type errors

* fix type error

* fix type error

---------

Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
2025-03-03 10:28:45 +00:00
Somay ChauhanandPeer Richelsen 6244b5a2c0 feat: added Ability to set organizer's default app as a valid input location in api/v2 (#19549)
* feat: added Ability to set organizer's default app as a valid input location in api/v2

* only allow organizers default for team events

* fixed for atoms and added unit and e2e tests

* Update organizations-event-types.e2e-spec.ts

* Update transformApiEventTypeForAtom.ts

* published platform-libraries@0.0.124

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2025-03-03 09:01:24 +00:00
Anik Dhabal Babu 615ef93572 fix: remove ‘add guests’ from the dropdown if it’s disabled in the booking questions (#19649)
* fix: remove ‘add guests’ from the dropdown if it’s disabled in the booking questions

* fix: remove dd guests' from the dropdown if it's
disabled in the booking questions
2025-03-03 05:06:51 +00:00
Anik Dhabal Babu 22f1060ed6 fix: fix: Incorrect Attendee Shown When Cancelling a Seated Event (#19647) 2025-03-03 05:05:36 +00:00
amrit 51a39571aa fix height (#19656) 2025-03-03 04:38:56 +00:00
Keith Williams 7180eb067a refactor: Move @calcom/core to @calcom/lib (#19655)
* refactor: Move @calcom/core to @calcom/lib

* Merging imports

* Clean up

* Ignoreing type error for now
2025-03-02 23:02:35 -03:00
Alex van AndelandOmar López 1cfd94d293 fix: Re-instate new slot logic now it's A/B tested in production (#19605)
* fix: Re-instate new slot logic now it's well tested

* Fixup getAggregatedAvailability

* Changes to code-owners to reflect removed/moved code

* Move more files around.

* Fix failed type

---------

Co-authored-by: Omar López <zomars@me.com>
2025-03-02 23:32:31 +00:00
Calcom BotandLingo.dev 4bab8c2c32 feat: update translations via @lingodotdev (#19654)
Co-authored-by: Lingo.dev <support@lingo.dev>
2025-03-02 17:53:42 -05:00
GitHub Actions c4beef609b chore: release v5.0.10
Post release / release (push) Canceled after 0s
2025-03-02 20:07:08 +00:00
be77ac133c feat: Domain-wide delegation for Google Calendar and Google Meet (#16622)
* Add endpoints for testing the flow

* Add MVP

* new route

* Fixes

* Fixes

* Remove enable toggle support from domainWideDelegation

* Fixes

* Revert "Remove enable toggle support from domainWideDelegation"

This reverts commit c29e729206cd1fa063f9c9ce0cf148ef1577d60b.

* Revert yarn.lock

* More fixes

* Fix new workspace platform add

* refactor: improvements

* refactor: bug fixes and improvements

* fix: type errors

* fix: conflicts

* chore: update test

* fix: logic

* chore: improvements

* fix: toglle

* fix: bugs

* fix: type err

* chore: check number type

* fix: after conflicts

* chore: fix type err

* fix: type errors and tests

* fix: tets

* test

* chore: remove unused

* fix: google meet url on booking page and secondary calendar

* fix: add property

* fix: type err

* fix: re assingment bug

* fix: use getAllCredentials

* chore: fix import

* fix: installed count

* fix: pass event type

* fix: import

* fix: [Stacked PR] Review fixes (#17958)

* Review fixes

* fix: destination calendar bug

---------

Co-authored-by: Udit Takkar <udit222001@gmail.com>

* refactor: use repository

* chore: remove duplicate

* fix: More review fixes for domain wide delegation (#17969)

* Reuse buildCredentialPayloadForCalendar

* fixes

---------

Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>

* fix ts error

* Fix getSchedule not using dwd credentials (#17995)

* fix: Remove direct DWD table access from google-calendar and remove delegatedToId column from Credential (#18015)

* Remove fn rename to reduce number of files changed

* chore: check feature globally

* test: add unit tests

* chore: move function

* test: add booking test

* wip

* Remove domain-wide-delegation team feature flag

* Make sure duplicate calendars are not shown due to DWD. Show DWD when there is conflict

* Fix tests and their ts errors

* Fix more tests

* Move findUsersForAvailabilityCheck to separate file as it has AppStore dependency causing problem with Routing Forms. Build crashes

* fix: Multiple calendar connections from Google not showing up in apps/installed

* DestinationCalendar must have either credentialId or domainWideDeelgationId. Also handle the case when DWD is disabled and there was a non-dwd credential that could be used

* Disable deletetion of DWD as it is destructive and prefer disabling instead

* Show DWD credential calendars at the top

* Fixed tests

* Calendar Cache DWD support

* Self-Review: Verify email required and add more selectedCalendar tests

* Self Review: shorten names

* Self ReviewL Dead code removal

* Revert "Calendar Cache DWD support"

This reverts commit 009f236470fa21eba5986117d4f6e4d4c5e38c34.

* Some misc fixes

* fixes

* Performance improvememt in slots loading and booking

* More cases for handling dwd credentials

* simplify the logic. Ensure that EventManager and the modules below it in the flow have CredentialForCalendarService available

* Fix tests

* Fix installed/conferencing not showing gogole meet

* Shorten name

* Fix ApI v2 tests

* Add some more tests

* add getSchedule tests

* Improve tests

* Make Google Meet default when DWD for google is enabled

* Enable feature flagging for DWD

* chore: bump libraries

* Encrypt serviceaccount private key

* Fix ts errors

* bump platform libraries

* org add dwd

* org add dwd

* bump platform libraries

* fix selected calendars

* fix remove selected dwd calendar

* remove oauthclient id aliad in authedCalendar

* remove oauthclient id aliad in authedCalendar

* refactor: OrganizationsDwdController

* chore: export toggleDwdEnabled from platform-libraries

* feat: v2 update (enable / disable) dwd

* refactor: SelectedCalendarsController check if user belongs to dwd org & for not dwd use previous logic

* wip: DestinationCalendar send domainWideDelegationCredentialId from frontend to api

* try fix set destination calendar api v2

* fixup! try fix set destination calendar api v2

* setting google meet as default location working for dwd

* bump platform libraries version

* allow office 365 workspace slug

* allow office 365 workspace slug

* chore: v2 create dwd MS and Google service keys input

* fix: CreateDwdInput serviceAccountKey

* fix: CredentialForCalendarService type

* fix: check workspace slug

* feat: update serviceAccessKey of DWD

* testing

* fixup! testing

* fix: getAuthUtl bug

* fix: unit tests

* fix: type err and unit test

* fix: e2e test

* fix: credentials bug and failing unit tests

* Update CalendarService.ts

* chore: refactor office365 calendar service and add testDomainWideDelegationSetup

* fix: office365Calendar use correct clientId/Secret for DWD

* fix: office365Calendar dwd no need refresh token

* test: add unit test for outlook dwd and setup

* feat: added dwd support for office365 calendar

* feat: added dwd support for office365 video

* test: finish test for outlook dwd

* fix: create dialog bug

* chore: remove console logs

* fix: refreshToken bug

* bump version libraries

* refactor: fetch dwd credentials only in findQualifiedHosts

* fixup! refactor: fetch dwd credentials only in findQualifiedHosts

* fix: type err

* fix: type err

* fix: getUserDisplayName

* fix: unit test

* chore: bump platform lib

---------

Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Udit Takkar <udit222001@gmail.com>
Co-authored-by: Morgan Vernay <morgan@cal.com>
Co-authored-by: supalarry <laurisskraucis@gmail.com>
Co-authored-by: Somay Chauhan <somaychauhan98@gmail.com>
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
2025-03-02 16:52:57 -03:00
Nayan Bagale 2d915a1c51 fix: update toast type to ExternalToast in showToast function (#19650) 2025-03-02 18:45:22 +00:00
Utkarsh ba4986a333 fixes 6 character hash suffix in the username for a member of an organization when he sign in via google. (#19633) 2025-03-02 12:02:37 +05:30
Peer Richelsen a2cf9ef633 replaced submit to continue (#19641) 2025-03-01 12:06:30 -05:00
Hariom Balhara 610e6e8e88 enforce visibility (#19639) 2025-03-01 15:53:20 +05:30
Morgan cbd8525c39 fix: useAtomGetEventTypes pathname (#19637) 2025-03-01 03:04:16 +00:00
Omar LópezandMorgan 2600a6c3d5 Revert "fix: v2 managed user attendee bookings (#19612)" (#19635)
This reverts commit c0591f3cdb.

Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
2025-03-01 03:01:45 +00:00
Calcom BotandLingo.dev 5adbe4b570 feat: update translations via @lingodotdev (#19632)
Co-authored-by: Lingo.dev <support@lingo.dev>
2025-03-01 03:01:31 +00:00
Hariom Balhara 564c84dade fix: App theme being used in routing-form embed (#19489)
* fix wrong theme routing-form embed

* fix wrong theme routing-form embed
2025-02-28 23:50:46 +05:30
GitHub Actions 6068829d70 chore: release v5.0.9
Post release / release (push) Canceled after 0s
2025-02-28 17:49:22 +00:00
nizzy 1849fe7b74 feat: plain-thread-tier (#19463)
* tier select

* thread tier

* remove console logs

* requested changes to getting user tier

* test

* fix test error

* fix type errors on test

* pull latest

* route middleware fix

* double tierIdentifier

* updated test file

* build error

* plain cards fix up

* dayjs

* change orgs check to teams isOrgs check

* removed uneeded prisma calls and changed teams check
2025-02-28 17:42:34 +00:00
Anik Dhabal Babu c31b7eaaf1 fix: few ui issues (#19625) 2025-02-28 16:55:02 +00:00
sean-brydonandAlex van Andel be6f975d34 fix: update profile instead of username. Display p.username (#19621)
* update profile instead of username. Display p.username

* Update packages/trpc/server/routers/viewer/organizations/listMembers.handler.ts

Co-authored-by: Alex van Andel <me@alexvanandel.com>

* Update packages/trpc/server/routers/viewer/organizations/getUser.handler.ts

---------

Co-authored-by: Alex van Andel <me@alexvanandel.com>
2025-02-28 14:04:54 +00:00
Hariom Balhara dc8be81334 feat: Task createCRMEvent can retry at cutomizable fixed interval (#19571) 2025-02-28 06:59:54 -07:00
Rajiv Sahal 3f3bed52aa chore: update platform docs for teams setup (#19619)
* init teams setup doc

* update teams setup page
2025-02-28 10:27:25 +00:00
Peer Richelsen 7248ef86b2 chore: moved /help to github.com/calcom/help (#19554) 2025-02-28 10:23:19 +00:00
Anik Dhabal Babu fa79b7e993 fix: change the origin to webapp url (#19593) 2025-02-28 10:23:03 +00:00
Rajiv Sahal 258bc1d2b0 no need for platform users to complete onboarding (#19449) 2025-02-28 11:06:04 +01:00
Benny JooandHariom Balhara e3d1e998f2 chore: migrate /org and /team embed pages to App Router (#19148)
* migrate all /org embed pages to app router

* migrate all /team embed pages to app router

* remove /future routes

* move to (booking-page-wrapper) route group

---------

Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2025-02-28 11:04:19 +01:00
Anik Dhabal Babu 468cd2a3af fix: hubSpot doesn't work for paid team events (#19609) 2025-02-28 11:04:08 +01:00
Benny Joo 87f161d944 chore: migrate OG image generation API to App Router (#19568)
* migrate

* improve apiRouteMiddleware wrapper type

* refactor

* fix type check

* fix build

* fix

* Do not import stripe lib in getServerErrorFromUnknown

* address comment

* remove comment

* add url

* keep the location

* remove space

* add unit test for getServerErrorFromUnknown

* improve

* fix
2025-02-28 11:03:20 +01:00
Udit Takkar c1ef57e3c2 revert: country code (#19618) 2025-02-28 09:53:40 +00:00
Somay Chauhan 5b961f7d96 fix: added zoom, msTeams as valid locations in event-type, booker atoms (#19599) 2025-02-28 10:10:02 +02:00
Lauris Skraucis c0591f3cdb fix: v2 managed user attendee bookings (#19612)
* fix: CreateBookingInput_2024_04_15 stripping off responses

* fix: bi-directional managed user bookings

* test: bookings 2024-08-13 bi-directional managed user bookings

* test: bookings 2024-04-15 bi-directional managed user bookings

* test: bookings 2024-04-15 bi-directional managed user bookings
2025-02-28 10:08:24 +02:00
GitHub Actions 8ac584a325 chore: release v5.0.8
Post release / release (push) Canceled after 0s
2025-02-28 01:07:12 +00:00
Benny Joo 2cf76737d8 perf: dynamically import sentry lib in catch clause (#19607) 2025-02-27 18:17:45 +00:00
Hariom Balhara 0ad5770bb9 fix: Valid timeslot marked 'slot no longer available' (#19590)
* Handle date mismatch b/w schedule key and slot

* Add feature ollout support
2025-02-27 11:13:36 -07:00
Benny Joo b6caf866c9 perf: make irregular full page reload go away (#19588)
* chore: Remove PlainChat instance from pages router

* do not dynamically import plain chat
2025-02-27 10:29:00 -07:00
Eunjae Lee 5be2b5bbba fix: remove wrong conditions to fetch users on /bookings (#19580) 2025-02-27 11:58:13 -05:00
Anik Dhabal Babu 4d769d636c fix: updating attributes doenst happen in real-time (#19604) 2025-02-27 16:35:22 +00:00
Benny Joo 4d45aa1564 perf: Do not import Stripe lib in getServerErrorFromUnknown (#19578)
* Do not import stripe lib in getServerErrorFromUnknown

* address comment

* remove comment

* add url

* keep the location

* remove space

* add unit test for getServerErrorFromUnknown

* improve
2025-02-27 15:22:23 +00:00
amrit de642e32c5 two items in one row (#19602) 2025-02-27 15:03:21 +00:00
Pascal c1f33e0721 add flex-wrap to fix overflow (#19584) 2025-02-27 05:05:37 +00:00
Peer Richelsen 5534a32169 feat: eleven labs app (#19585)
* eleven labs app

* dark icon
2025-02-27 03:58:17 +00:00
Benny Joo d7960021aa perf: do not import from @calcom/lib/server barrel file (#19579)
* do not import from lib/server barrel file

* fix build
2025-02-26 18:10:52 -03:00
Alex van Andel 48b8afd8af fix: ics compat with older ical specced calendars (#19582)
* Migrate DURATION to DTEND + mark as busy

* Adjusted tests for DTEND support
2025-02-26 12:29:07 -07:00
1580 changed files with 24954 additions and 27427 deletions
+3 -1
View File
@@ -421,4 +421,6 @@ NEXT_PUBLIC_QUERY_RESERVATION_STALE_TIME_SECONDS=
# Query available slots interval - Should be kept high in minutes as it could cause significant load on the system
NEXT_PUBLIC_QUERY_AVAILABLE_SLOTS_INTERVAL_SECONDS=
# Used to invalidate available slots when navigating to booking form
NEXT_PUBLIC_INVALIDATE_AVAILABLE_SLOTS_ON_BOOKING_FORM=0
NEXT_PUBLIC_INVALIDATE_AVAILABLE_SLOTS_ON_BOOKING_FORM=0
# Used to enable quick availability checks for x% of all visitors
NEXT_PUBLIC_QUICK_AVAILABILITY_ROLLOUT=10
+5 -5
View File
@@ -1,4 +1,5 @@
/apps/api/**/* @calcom/Platform
/**/package.json @calcom/Foundation
/apps/api/**/* @calcom/Platform @calcom/Foundation
/deploy/**/* @calcom/Foundation
/infra/**/* @calcom/Foundation
/packages/app-store/applecalendar/**/* @calcom/Foundation
@@ -12,12 +13,11 @@
/packages/app-store/larkcalendar/**/* @calcom/Foundation
/packages/app-store/office365calendar/**/* @calcom/Foundation
/packages/app-store/zohocalendar/**/* @calcom/Foundation
/packages/core/getAggregatedAvailability/index.ts @calcom/Foundation
/packages/core/getAggregateWorkingHours.ts @calcom/Foundation
/packages/core/getUserAvailability.ts @calcom/Foundation
/packages/features/bookings/lib/**/* @calcom/Foundation
/packages/lib/getAggregatedAvailability.ts @calcom/Foundation
/packages/lib/getUserAvailability.ts @calcom/Foundation
/packages/lib/server/getLuckyUser.ts @calcom/Foundation
/packages/lib/slots.ts @calcom/Foundation
/packages/platform/**/* @calcom/Platform
/packages/platform/**/* @calcom/Platform @calcom/Foundation
/packages/prisma/**/* @calcom/Foundation
/packages/trpc/server/routers/viewer/slots/**/* @calcom/Foundation
+1 -1
View File
@@ -14,7 +14,7 @@ description: "Run yarn install with node_modules linker and cache enabled"
inputs:
node_version:
required: false
default: v18.x
default: v20.x
runs:
using: "composite"
+1 -1
View File
@@ -1 +1 @@
v18
20
+2
View File
@@ -0,0 +1,2 @@
undecided:
- "@calcom/prisma"
+2
View File
@@ -0,0 +1,2 @@
undecided:
- "@calcom/prisma"
View File
+8
View File
@@ -0,0 +1,8 @@
undecided:
- calcom-monorepo
- "@calcom/app-store-cli"
- "@calcom/platform-constants"
- "@calcom/platform-enums"
- "@calcom/platform-types"
- "@calcom/platform-utils"
- "@calcom/prisma"
+8
View File
@@ -0,0 +1,8 @@
undecided:
- calcom-monorepo
- "@calcom/app-store-cli"
- "@calcom/platform-constants"
- "@calcom/platform-enums"
- "@calcom/platform-types"
- "@calcom/platform-utils"
- "@calcom/prisma"
+8
View File
@@ -0,0 +1,8 @@
undecided:
- calcom-monorepo
- "@calcom/app-store-cli"
- "@calcom/platform-constants"
- "@calcom/platform-enums"
- "@calcom/platform-types"
- "@calcom/platform-utils"
- "@calcom/prisma"
+3
View File
@@ -0,0 +1,3 @@
undecided:
- calcom-monorepo
- "@calcom/prisma"
+8
View File
@@ -0,0 +1,8 @@
undecided:
- calcom-monorepo
- "@calcom/app-store-cli"
- "@calcom/platform-constants"
- "@calcom/platform-enums"
- "@calcom/platform-types"
- "@calcom/platform-utils"
- "@calcom/prisma"
View File
+8
View File
@@ -0,0 +1,8 @@
undecided:
- calcom-monorepo
- "@calcom/app-store-cli"
- "@calcom/platform-constants"
- "@calcom/platform-enums"
- "@calcom/platform-types"
- "@calcom/platform-utils"
- "@calcom/prisma"
+9
View File
@@ -0,0 +1,9 @@
undecided:
- calcom-monorepo
- "@calcom/api-v2"
- "@calcom/app-store-cli"
- "@calcom/platform-constants"
- "@calcom/platform-enums"
- "@calcom/platform-types"
- "@calcom/platform-utils"
- "@calcom/prisma"
+9
View File
@@ -0,0 +1,9 @@
- [x] Refactor individual calendar links functions to create the variables and just use the variables in the string literal instead of functions being called in the string literal
- [x] Must ensure during review that logically there is no change in the functionality of booking-single-view.tsx
- Testing
- [x] Verify Google Calendar, Ics, Office 365 - Compare with Production
- [x] Event Description, Booking title, Booking location, Start time, End time - All correct
- [x] Recurring event?
- [x] Dynamic Group booking?
+14 -13
View File
@@ -172,24 +172,25 @@ yarn dx
```
#### Development tip
1. Add `export NODE_OPTIONS=“--max-old-space-size=16384”` to your shell script to increase the memory limit for the node process. Alternatively, you can run this in your terminal before running the app. Replace 16384 with the amount of RAM you want to allocate to the node process.
Add `NEXT_PUBLIC_LOGGER_LEVEL={level}` to your .env file to control the logging verbosity for all tRPC queries and mutations.\
Where {level} can be one of the following:
2. Add `NEXT_PUBLIC_LOGGER_LEVEL={level}` to your .env file to control the logging verbosity for all tRPC queries and mutations.\
Where {level} can be one of the following:
`0` for silly \
`1` for trace \
`2` for debug \
`3` for info \
`4` for warn \
`5` for error \
`6` for fatal
`0` for silly \
`1` for trace \
`2` for debug \
`3` for info \
`4` for warn \
`5` for error \
`6` for fatal
When you set `NEXT_PUBLIC_LOGGER_LEVEL={level}` in your .env file, it enables logging at that level and higher. Here's how it works:
When you set `NEXT_PUBLIC_LOGGER_LEVEL={level}` in your .env file, it enables logging at that level and higher. Here's how it works:
The logger will include all logs that are at the specified level or higher. For example: \
The logger will include all logs that are at the specified level or higher. For example: \
- If you set `NEXT_PUBLIC_LOGGER_LEVEL=2`, it will log from level 2 (debug) upwards, meaning levels 2 (debug), 3 (info), 4 (warn), 5 (error), and (fatal) will be logged. \
- If you set `NEXT_PUBLIC_LOGGER_LEVEL=3`, it will log from level 3 (info) upwards, meaning levels 3 (info), 4 (warn), 5 (error), and 6 (fatal) will be logged, but level 2 (debug) and level 1 (trace) will be ignored. \
- If you set `NEXT_PUBLIC_LOGGER_LEVEL=2`, it will log from level 2 (debug) upwards, meaning levels 2 (debug), 3 (info), 4 (warn), 5 (error), and (fatal) will be logged. \
- If you set `NEXT_PUBLIC_LOGGER_LEVEL=3`, it will log from level 3 (info) upwards, meaning levels 3 (info), 4 (warn), 5 (error), and 6 (fatal) will be logged, but level 2 (debug) and level 1 (trace) will be ignored. \
```sh
echo 'NEXT_PUBLIC_LOGGER_LEVEL=3' >> .env
+2 -2
View File
@@ -113,7 +113,7 @@ We use it in several ways, but mainly, we first import the auto-generated schema
We have some shared validations which several resources require, like baseApiParams which parses apiKey in all requests, or querIdAsString or TransformParseInt which deal with the id's coming from req.query.
- **[*]BaseBodyParams** that omits any values from the model that are too sensitive or we don't want to pick when creating a new resource like id, userId, etc.. (those are gotten from context or elswhere)
- **[*]BaseBodyParams** that omits any values from the model that are too sensitive or we don't want to pick when creating a new resource like id, userId, etc.. (those are gotten from context or elsewhere)
- **[*]Public** that also omits any values that we don't want to expose when returning the model as a response, which we parse against before returning all resources.
@@ -208,7 +208,7 @@ Add this command: `./scripts/vercel-deploy.sh`
See `scripts/vercel-deploy.sh` for more info on how the deployment is done.
> _❗ IMORTANT: If you're forking the API repo you will need to update the URLs in both the main repo [`.gitmodules`](https://github.com/calcom/cal.com/blob/main/.gitmodules#L7) and this repo [`./scripts/vercel-deploy.sh`](https://github.com/calcom/api/blob/main/scripts/vercel-deploy.sh#L3) ❗_
> _❗ IMPORTANT: If you're forking the API repo you will need to update the URLs in both the main repo [`.gitmodules`](https://github.com/calcom/cal.com/blob/main/.gitmodules#L7) and this repo [`./scripts/vercel-deploy.sh`](https://github.com/calcom/api/blob/main/scripts/vercel-deploy.sh#L3) ❗_
## Environment variables
+2 -1
View File
@@ -8,7 +8,8 @@ import {
_TeamModel,
_UserModel,
} from "@calcom/prisma/zod";
import { extendedBookingCreateBody, iso8601 } from "@calcom/prisma/zod-utils";
import { iso8601 } from "@calcom/prisma/zod-utils";
import { extendedBookingCreateBody } from "@calcom/prisma/zod/custom/booking";
import { schemaQueryUserId } from "./shared/queryUserId";
@@ -22,6 +22,7 @@ const recurringEventInputSchema = z.object({
const hostSchema = _HostModel.pick({
isFixed: true,
userId: true,
scheduleId: true,
});
export const childrenSchema = z.object({
+2 -2
View File
@@ -113,7 +113,7 @@ const schemaUserEditParams = z.object({
});
// @note: These are the values that are editable via PATCH method on the user Model,
// merging both BaseBodyParams with RequiredParams, and omiting whatever we want at the end.
// merging both BaseBodyParams with RequiredParams, and omitting whatever we want at the end.
const schemaUserCreateParams = z.object({
email: emailSchema.toLowerCase(),
@@ -137,7 +137,7 @@ const schemaUserCreateParams = z.object({
});
// @note: These are the values that are editable via PATCH method on the user Model,
// merging both BaseBodyParams with RequiredParams, and omiting whatever we want at the end.
// merging both BaseBodyParams with RequiredParams, and omitting whatever we want at the end.
export const schemaUserEditBodyParams = schemaUserBaseBodyParams
.merge(schemaUserEditParams)
.omit({})
+1 -2
View File
@@ -10,7 +10,6 @@ const nextConfig = {
},
transpilePackages: [
"@calcom/app-store",
"@calcom/core",
"@calcom/dayjs",
"@calcom/emails",
"@calcom/features",
@@ -47,7 +46,7 @@ const nextConfig = {
async rewrites() {
return {
afterFiles: [
// This redirects requests recieved at / the root to the /api/ folder.
// This redirects requests received at / the root to the /api/ folder.
{
source: "/v:version/:rest*",
destination: "/api/v:version/:rest*",
-1
View File
@@ -24,7 +24,6 @@
},
"dependencies": {
"@calcom/app-store": "*",
"@calcom/core": "*",
"@calcom/dayjs": "*",
"@calcom/emails": "*",
"@calcom/features": "*",
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaQueryIdAsString } from "~/lib/validations/shared/queryIdString";
+1 -1
View File
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { apiKeyPublicSchema } from "~/lib/validations/api-key";
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { apiKeyEditBodySchema, apiKeyPublicSchema } from "~/lib/validations/api-key";
+2 -1
View File
@@ -1,6 +1,7 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
+1 -1
View File
@@ -1,7 +1,7 @@
import type { Prisma } from "@prisma/client";
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import type { Ensure } from "@calcom/types/utils";
+1 -1
View File
@@ -4,7 +4,7 @@ import { v4 } from "uuid";
import { generateUniqueAPIKey } from "@calcom/features/ee/api-keys/lib/apiKeys";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { apiKeyCreateBodySchema, apiKeyPublicSchema } from "~/lib/validations/api-key";
+1 -1
View File
@@ -1,4 +1,4 @@
import { defaultHandler } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt";
+1 -1
View File
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaAttendeeReadPublic } from "~/lib/validations/attendee";
@@ -2,7 +2,7 @@ import type { NextApiRequest } from "next";
import type { z } from "zod";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaAttendeeEditBodyParams, schemaAttendeeReadPublic } from "~/lib/validations/attendee";
@@ -1,6 +1,7 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
+1 -1
View File
@@ -2,7 +2,7 @@ import type { Prisma } from "@prisma/client";
import type { NextApiRequest } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaAttendeeReadPublic } from "~/lib/validations/attendee";
+1 -1
View File
@@ -1,7 +1,7 @@
import type { NextApiRequest } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaAttendeeCreateBodyParams, schemaAttendeeReadPublic } from "~/lib/validations/attendee";
+1 -1
View File
@@ -1,4 +1,4 @@
import { defaultHandler } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt";
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaAvailabilityReadPublic } from "~/lib/validations/availability";
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import {
@@ -1,6 +1,7 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
@@ -1,7 +1,7 @@
import type { NextApiRequest } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import {
@@ -1,4 +1,4 @@
import { defaultHandler } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
+2 -2
View File
@@ -1,9 +1,9 @@
import type { NextApiRequest } from "next";
import { z } from "zod";
import { getUserAvailability } from "@calcom/core/getUserAvailability";
import { getUserAvailability } from "@calcom/lib/getUserAvailability";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { availabilityUserSelect } from "@calcom/prisma";
import { MembershipRole } from "@calcom/prisma/enums";
+1 -1
View File
@@ -1,4 +1,4 @@
import { defaultHandler } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt";
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaBookingReferenceReadPublic } from "~/lib/validations/booking-reference";
@@ -1,7 +1,7 @@
import type { Prisma } from "@prisma/client";
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import {
@@ -1,6 +1,7 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
@@ -1,7 +1,7 @@
import type { Prisma } from "@prisma/client";
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaBookingReferenceReadPublic } from "~/lib/validations/booking-reference";
@@ -1,7 +1,7 @@
import type { Prisma } from "@prisma/client";
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import {
@@ -1,4 +1,4 @@
import { defaultHandler } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
+12 -4
View File
@@ -1,7 +1,7 @@
import type { NextApiRequest } from "next";
import handleCancelBooking from "@calcom/features/bookings/lib/handleCancelBooking";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import { bookingCancelSchema } from "~/lib/validations/booking";
import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt";
@@ -38,6 +38,12 @@ import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransform
* schema:
* type: string
* description: The reason for cancellation of the booking
* - in: query
* name: cancelledBy
* required: false
* schema:
* type: string
* description: The email of who cancelled the booking
* tags:
* - bookings
* responses:
@@ -64,15 +70,17 @@ import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransform
* description: User not found
*/
async function handler(req: NextApiRequest) {
const { id, allRemainingBookings, cancellationReason } = schemaQueryIdParseInt
.merge(bookingCancelSchema.pick({ allRemainingBookings: true, cancellationReason: true }))
const { id, allRemainingBookings, cancellationReason, cancelledBy } = schemaQueryIdParseInt
.merge(
bookingCancelSchema.pick({ allRemainingBookings: true, cancellationReason: true, cancelledBy: true })
)
.parse({
...req.query,
allRemainingBookings: req.query.allRemainingBookings === "true",
});
// Normalizing for universal handler
req.body = { id, allRemainingBookings, cancellationReason };
req.body = { id, allRemainingBookings, cancellationReason, cancelledBy };
return await handleCancelBooking(req);
}
+1 -1
View File
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaBookingReadPublic } from "~/lib/validations/booking";
@@ -2,7 +2,7 @@ import type { NextApiRequest } from "next";
import type { z } from "zod";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { getAccessibleUsers } from "~/lib/utils/retrieveScopedAccessibleUsers";
@@ -112,7 +112,7 @@ export async function patchHandler(req: NextApiRequest) {
async function checkPermissions(req: NextApiRequest, body: z.infer<typeof schemaBookingEditBodyParams>) {
const { userId, isSystemWideAdmin, isOrganizationOwnerOrAdmin } = req;
if (body.userId && !isSystemWideAdmin && !isOrganizationOwnerOrAdmin) {
// Organizer has to be a cal user and we can't allow a booking to be transfered to some other cal user's name
// Organizer has to be a cal user and we can't allow a booking to be transferred to some other cal user's name
throw new HttpError({
statusCode: 403,
message: "Only admin can change the organizer of a booking",
@@ -1,6 +1,6 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { defaultHandler } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
+2 -1
View File
@@ -1,6 +1,7 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
@@ -1,9 +1,11 @@
import type { NextApiRequest } from "next";
import { getRecordingsOfCalVideoByRoomName } from "@calcom/core/videoClient";
import { getDownloadLinkOfCalVideoByRecordingId } from "@calcom/core/videoClient";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import {
getRecordingsOfCalVideoByRoomName,
getDownloadLinkOfCalVideoByRecordingId,
} from "@calcom/lib/videoClient";
import prisma from "@calcom/prisma";
import type { RecordingItemSchema } from "@calcom/prisma/zod-utils";
import type { PartialReference } from "@calcom/types/EventManager";
@@ -1,6 +1,7 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
@@ -1,11 +1,11 @@
import type { NextApiRequest } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import {
getTranscriptsAccessLinkFromRecordingId,
checkIfRoomNameMatchesInRecording,
} from "@calcom/core/videoClient";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
} from "@calcom/lib/videoClient";
import prisma from "@calcom/prisma";
import type { PartialReference } from "@calcom/types/EventManager";
@@ -1,6 +1,7 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
@@ -1,8 +1,8 @@
import type { NextApiRequest } from "next";
import { getAllTranscriptsAccessLinkFromRoomName } from "@calcom/core/videoClient";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import { getAllTranscriptsAccessLinkFromRoomName } from "@calcom/lib/videoClient";
import prisma from "@calcom/prisma";
import type { PartialReference } from "@calcom/types/EventManager";
@@ -1,6 +1,7 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
+1 -1
View File
@@ -2,7 +2,7 @@ import type { Prisma } from "@prisma/client";
import type { NextApiRequest } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
+1 -1
View File
@@ -4,7 +4,7 @@ import getBookingDataSchemaForApi from "@calcom/features/bookings/lib/getBooking
import handleNewBooking from "@calcom/features/bookings/lib/handleNewBooking";
import { ErrorCode } from "@calcom/lib/errorCodes";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import { CreationSource } from "@calcom/prisma/enums";
import { getAccessibleUsers } from "~/lib/utils/retrieveScopedAccessibleUsers";
+1 -1
View File
@@ -1,4 +1,4 @@
import { defaultHandler } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
@@ -3,7 +3,7 @@ import type { NextApiRequest } from "next";
import type { UserWithCalendars } from "@calcom/lib/getConnectedDestinationCalendars";
import { getConnectedDestinationCalendarsAndEnsureDefaultsInDb } from "@calcom/lib/getConnectedDestinationCalendars";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import { UserRepository } from "@calcom/lib/server/repository/user";
import prisma from "@calcom/prisma";
@@ -1,4 +1,4 @@
import { defaultHandler } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaCredentialDeleteParams } from "~/lib/validations/credential-sync";
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaCredentialGetParams } from "~/lib/validations/credential-sync";
@@ -2,7 +2,7 @@ import type { NextApiRequest } from "next";
import { OAuth2UniversalSchema } from "@calcom/app-store/_utils/oauth/universalSchema";
import { symmetricDecrypt } from "@calcom/lib/crypto";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaCredentialPatchParams, schemaCredentialPatchBody } from "~/lib/validations/credential-sync";
@@ -5,7 +5,7 @@ import { OAuth2UniversalSchema } from "@calcom/app-store/_utils/oauth/universalS
import { appStoreMetadata } from "@calcom/app-store/appStoreMetaData";
import { symmetricDecrypt } from "@calcom/lib/crypto";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { credentialForCalendarServiceSelect } from "@calcom/prisma/selects/credential";
@@ -108,7 +108,7 @@ async function handler(req: NextApiRequest) {
// ^ Workaround for the select in `create` not working
if (createCalendarResources) {
const calendar = await getCalendar(credential);
const calendar = await getCalendar({ ...credential, delegatedTo: null });
if (!calendar) throw new HttpError({ message: "Calendar missing for credential", statusCode: 500 });
const calendars = await calendar.listCalendars();
const calendarToCreate = calendars.find((calendar) => calendar.primary) || calendars[0];
@@ -1,4 +1,4 @@
import { defaultHandler } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt";
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaEventTypeCustomInputPublic } from "~/lib/validations/event-type-custom-input";
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import {
@@ -1,6 +1,7 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
+1 -1
View File
@@ -1,7 +1,7 @@
import type { Prisma } from "@prisma/client";
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaEventTypeCustomInputPublic } from "~/lib/validations/event-type-custom-input";
+1 -1
View File
@@ -1,7 +1,7 @@
import type { NextApiRequest } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import {
+1 -1
View File
@@ -1,4 +1,4 @@
import { defaultHandler } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt";
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaDestinationCalendarReadPublic } from "~/lib/validations/destination-calendar";
@@ -2,9 +2,9 @@ import type { Prisma } from "@prisma/client";
import type { NextApiRequest } from "next";
import type { z } from "zod";
import { getCalendarCredentials, getConnectedCalendars } from "@calcom/core/CalendarManager";
import { getCalendarCredentialsWithoutDelegation, getConnectedCalendars } from "@calcom/lib/CalendarManager";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import type { PrismaClient } from "@calcom/prisma";
import { credentialForCalendarServiceSelect } from "@calcom/prisma/selects/credential";
@@ -185,7 +185,7 @@ async function verifyCredentialsAndGetId({
currentCredentialId: number | null;
}) {
if (parsedBody.integration && parsedBody.externalId) {
const calendarCredentials = getCalendarCredentials(userCredentials);
const calendarCredentials = getCalendarCredentialsWithoutDelegation(userCredentials);
const { connectedCalendars } = await getConnectedCalendars(
calendarCredentials,
@@ -1,6 +1,7 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
@@ -1,7 +1,7 @@
import type { NextApiRequest } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { extractUserIdsFromQuery } from "~/lib/utils/extractUserIdsFromQuery";
@@ -1,8 +1,8 @@
import type { NextApiRequest } from "next";
import { getCalendarCredentials, getConnectedCalendars } from "@calcom/core/CalendarManager";
import { getCalendarCredentialsWithoutDelegation, getConnectedCalendars } from "@calcom/lib/CalendarManager";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { credentialForCalendarServiceSelect } from "@calcom/prisma/selects/credential";
@@ -82,7 +82,7 @@ async function postHandler(req: NextApiRequest) {
message: "Bad request, credential id invalid",
});
const calendarCredentials = getCalendarCredentials(userCredentials);
const calendarCredentials = getCalendarCredentialsWithoutDelegation(userCredentials);
const { connectedCalendars } = await getConnectedCalendars(calendarCredentials, [], parsedBody.externalId);
@@ -1,4 +1,4 @@
import { defaultHandler } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
@@ -1,7 +1,7 @@
import type { NextApiRequest } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt";
@@ -1,7 +1,7 @@
import type { NextApiRequest } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { MembershipRole } from "@calcom/prisma/enums";
@@ -3,7 +3,7 @@ import type { NextApiRequest } from "next";
import type { z } from "zod";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { SchedulingType } from "@calcom/prisma/enums";
@@ -1,6 +1,7 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
+2 -2
View File
@@ -1,7 +1,7 @@
import type { NextApiRequest } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import type { PrismaClient } from "@calcom/prisma";
@@ -124,7 +124,7 @@ async function defaultScheduleId<T extends DefaultScheduleIdEventTypeBase>({
}, {} as { [x: number]: number | null });
return eventTypes.map((eventType) => {
// realistically never happens, userId should't be null on personal event types.
// realistically never happens, userId shouldn't be null on personal event types.
if (!eventType.userId) return eventType;
return {
...eventType,
+1 -1
View File
@@ -2,7 +2,7 @@ import { Prisma } from "@prisma/client";
import type { NextApiRequest } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { MembershipRole } from "@calcom/prisma/client";
+1 -1
View File
@@ -1,4 +1,4 @@
import { defaultHandler } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
+1 -1
View File
@@ -1,7 +1,7 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { CreationSource } from "@calcom/prisma/enums";
import { createContext } from "@calcom/trpc/server/createContext";
+1 -1
View File
@@ -1,4 +1,4 @@
import { defaultHandler } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
+1 -1
View File
@@ -1,6 +1,6 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { schemaUserReadPublic } from "~/lib/validations/user";
+1 -1
View File
@@ -1,4 +1,4 @@
import { defaultHandler } from "@calcom/lib/server";
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
@@ -1,7 +1,7 @@
import type { NextApiRequest } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { membershipIdSchema } from "~/lib/validations/membership";
@@ -28,7 +28,7 @@ import { membershipIdSchema } from "~/lib/validations/membership";
* - memberships
* responses:
* 201:
* description: OK, membership removed successfuly
* description: OK, membership removed successfully
* 400:
* description: Bad request. Membership id is invalid.
* 401:
@@ -1,7 +1,7 @@
import type { Prisma } from "@prisma/client";
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
import prisma from "@calcom/prisma";
import { membershipIdSchema, schemaMembershipPublic } from "~/lib/validations/membership";

Some files were not shown because too many files have changed in this diff Show More