* add event end time as variable
* add timezone as new variable
* add first version of template prefill
* set template body when template is updated
* set reminder template body and subject when creating workflow
* set email subject when changes templates
* save emailBody and emailsubject for all templates + fix duplicate template text
* add more flexibility for templates
* remove console.log
* fix {ORAGANIZER} and {ATTENDEE} variable
* make sure to always send reminder body and not default template
* fix import
* remove email body text and match variables in templates
* handle translations of formatted variables
* fix email reminder template
* add cancel and reschedule link as variable
* add cancel and reschedule link for scheduled emails/sms
* make sure empty empty body and subject are set for reminder template
* add info message for testing workflow
* fix typo
* add sms template
* add migration to remove reminderBody and emailSubject
* add branding
* code clean up
* add hide branding everywhere
* fix sms reminder template
* set sms reminder template if sms body is empty
* fix custom inputs variables everywhere
* fix variable translations + other small fixes
* fix some type errors
* fix more type errors
* fix everything missing around cron job scheduling
* make sure to always use custom template for sms messages
* fix type error
* code clean up
* rename link to url
* Add debug logs
* Update handleNewBooking.ts
* Add debug logs
* removed unneded responses
* fix booking questions + UI improvements
* remove html email body when changing to sms action
* code clean up + comments
* code clean up
* code clean up
* remove comment
* more clear info message for timezone variable
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: alannnc <alannnc@gmail.com>
* Reserving slot picked up on cache
* change memory-cache to database table to block slots while reservation completes
* remove memory-cache
* update realeaseAt field when same user change te selected Slot
* Change default time to book
Co-authored-by: alannnc <alannnc@gmail.com>
* remove ip field and renews the session when the user remains in the booking form
* Remove duplicate router
* types fixes
* nit picks
* Update turbo.json
* Revert unrelated change
* Uses constant
* Constant already has a fallback
* Update slots.ts
* Unit test fixes
* slot reservation on user level and support seats
* types fixes and reserve slots on click
* Fix nit var name
---------
Co-authored-by: Efraín Rochín <roae.85@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* Add payment option to schema
* Add payment option to Stripe zod
* Set payment option on event type
* Create manual payment intent in Stripe
* Set payment option from Stripe app
* Add payment option to DB
* Pass React.ReactNode to checkbox
* Create uncaptured payment intent
* WIP
* Capture card in setup intent
* Show charge card option
* Charge card from booking page
* Bug fixes
* Clean up
* Clean up app card
* Add no-show fee messaging on booking page
* Send payment email on payment & add price
* Fix messaging
* Create no show fee charged email
* Send charge fee collected email
* Disable submit on card failure
* Clean up
* Serverside prevent charging card again if already charged
* Only confirm booking if paid for
* Type fixes
* More type fixes
* More type fixes
* Type fix
* Type fixes
* UI changes
* Payment component rework
* Update apps/web/public/static/locales/en/common.json
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Update apps/web/public/static/locales/en/common.json
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Update apps/web/components/dialog/ChargeCardDialog.tsx
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Update packages/trpc/server/routers/viewer/payments.tsx
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Revert GTM config
* Adjust payment option dropdown
* Show alert when seats are set
* Small bug fixes
* Create collect card method
* clean up
* Prevent seats & charge no-show fee to be enabled together
* Do not charge no-show fee on unconfirmed bookings
* Add check to collect card method
* Webhook send request emails
* Fix some dark mode colours
* Change awaiting payment language
* Type fixes
* Set height of Select and TextField both to 38px to fix alignment
* Fix message seats & payment error message
* Type fix
---------
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* init page
* init insights frontend
* nit
* nit
* nit
* merge
* fixed icons
* i18n, needs features
* Init insights trpc
* Using trpc on client
* Added events timeline
* Seed analytics script
* connect ui with trpc
* Added and fixed event time lines
* WIP popular days and avg time duration event type
* added new metric graphs
* improved upgrade tip
* always show upgrade screen
* upgrade tremor.so and select inputs for page
* Remove log
* Move everything to components and add context
* Fix select types using calcom ui one
* Adding translations
* Add missing translations
* Add more translations
* min fix
* Fixes for date select
* Prefer early return and mobile design fixes
* Fix style for mobile
* Fix data with userId filter from popular events
* add user id to average time duration
* fix types for select-react
* Removed submodules
* Delete website
* Update yarn.lock
* Code organization and type fixes
* trpc fixes
* Builds are now passing
* Relocates server code
* Add url state in insights
* Update FiltersProvider.tsx
* Cleanup
* Update embed-iframe.ts
* Update FilterType.tsx
* Update seed-app-store.config.json
* Update index.tsx
* Renamed seeder
* Update FiltersProvider.tsx
* Fix for query params
* no wrap on lg screen
* Fix shadow borders from tremor components, fix title font
* Add ring-gray to match filters
* add cursor pointer
* copy improvements
* blue to black
* fixed date select focus
* text right for table
* Adds missing translation strings
* Fix url state for filter type
* more layout improvements
* more padding improvements
* more UI fixes (padding, sizes) requested by ciaran
* Apply suggestions from code review
* WIP user without team metrics
* yarn
* Adds loading state for graphs and tables
* fix average render when no data
* Multiple fixes in insights
* Fix most and least booked members querys
* More fix for clear filters
---------
Co-authored-by: Peer Richelsen <peer@cal.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
* Add calendar UID to calendar event
* Add iCalUID to booking event
* On reschedule write to evt the iCalUID
* Add uid to ics file
* Remove console logs
* Pass iCalUID if available
* Remove generated app store files
* Rename product id to calcom
* Add UID to ics on reschedule
* Type fixes
* Type fixes
* Type fixes
* Remove comment
* Remove console.log
* Removed serverConfig block from this branch
---------
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* init page
* init insights frontend
* nit
* nit
* nit
* merge
* fixed icons
* i18n, needs features
* Init insights trpc
* Using trpc on client
* Added events timeline
* Seed analytics script
* connect ui with trpc
* Added and fixed event time lines
* WIP popular days and avg time duration event type
* added new metric graphs
* improved upgrade tip
* always show upgrade screen
* upgrade tremor.so and select inputs for page
* Remove log
* Move everything to components and add context
* Fix select types using calcom ui one
* Adding translations
* Add missing translations
* Add more translations
* min fix
* Fixes for date select
* Prefer early return and mobile design fixes
* Fix style for mobile
* Fix data with userId filter from popular events
* add user id to average time duration
* fix types for select-react
* Removed submodules
* Delete website
* Update yarn.lock
* Code organization and type fixes
* trpc fixes
* Builds are now passing
* Relocates server code
* Add url state in insights
* Update FiltersProvider.tsx
* Cleanup
* Update embed-iframe.ts
* Update FilterType.tsx
* Update seed-app-store.config.json
* Update index.tsx
* Renamed seeder
* Update FiltersProvider.tsx
* Fix for query params
* no wrap on lg screen
* Fix shadow borders from tremor components, fix title font
* Add ring-gray to match filters
* add cursor pointer
* copy improvements
* blue to black
* fixed date select focus
* Adds missing translation strings
* Fix url state for filter type
* Apply suggestions from code review
* Updated yarn lock
* Adds feature flag
* Type fix
---------
Co-authored-by: Peer Richelsen <peer@cal.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
* use sanitize-html instead
* add list formatting
* add lost changes from merging main
* fixes caused by merge
* remove dompurify
* Revert "remove dompurify"
This reverts commit 583bb623c7.
* sanitize already done in editor
* Update yarn.lock
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* init page
* init insights frontend
* nit
* nit
* nit
* merge
* fixed icons
* i18n, needs features
* Init insights trpc
* Using trpc on client
* Added events timeline
* Seed analytics script
* connect ui with trpc
* Added and fixed event time lines
* WIP popular days and avg time duration event type
* added new metric graphs
* improved upgrade tip
* always show upgrade screen
* upgrade tremor.so and select inputs for page
* Remove log
* Move everything to components and add context
* Fix select types using calcom ui one
* Adding translations
* Add missing translations
* Add more translations
* min fix
* Fixes for date select
* Prefer early return and mobile design fixes
* Fix style for mobile
* Fix data with userId filter from popular events
* add user id to average time duration
* Removed submodules
* Delete website
* Update yarn.lock
* Code organization and type fixes
* trpc fixes
* Builds are now passing
* Relocates server code
* Cleanup
* Medium size screen fixes
* Added TODO
---------
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: zomars <zomars@me.com>
* fix description in email
* add styling for lists
* sanitize editor input before saving
* sanitize eventTypeDescription
* santize html when used dangerouslySetInnerHTML
* fix server side sanitation
* add missing formatting and sanitation
* move @ts-expect-error to correct line
* fix type error and add yarn.lock
* fix build error
* sanitize description for booking page and availability page
* rename to markdownAndSanitize
* always add list formatting
* handle empty description in markdownAndSanitize for cleaner code
* create function for clientside markdown rendering and sanitizing
* fix type error
* code clean up
* Now that eventType.descriptionAsSafeHTML is added at all the missing places, we can do away with ts-ignore and get type safety
* Remove unused variable
* Remove one more ts-expect-error
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* WIP-already-reschedule-success-emails-missing
* WIP now saving bookingSeatsReferences and identifyin on reschedule/book page
* Remove logs and created test
* WIP saving progress
* Select second slot to pass test
* Delete attendee from event
* Clean up
* Update with main changes
* Fix emails not being sent
* Changed test end url from success to booking
* Remove unused pkg
* Fix new booking reschedule
* remove log
* Renable test
* remove unused pkg
* rename table name
* review changes
* Fix and and other test to reschedule with seats
* Fix api for cancel booking
* Typings
* Update [uid].tsx
* Abstracted common pattern
into maybeGetBookingUidFromSeat
* Reverts
* Nitpicks
* Update handleCancelBooking.ts
* Adds missing cascades
* Improve booking seats changes (#6858)
* Create sendCancelledSeatEmails
* Draft attendee cancelled seat email
* Send no longer attendee email to attendee
* Send email to organizer when attendee cancels
* Pass cloned event data to emails
* Send booked email for first seat
* Add seat reference uid from email link
* Query for seatReferenceUId and add to cancel & reschedule links
* WIP
* Display proper attendee when rescheduling seats
* Remove console.logs
* Only check for already invited when not rescheduling
* WIP sending reschedule email to just single attendee and owner
* Merge branch 'main' into send-email-on-seats-attendee-changes
* Remove console.logs
* Add cloned event to seat emails
* Do not show manage link for calendar event
* First seat, have both attendees on calendar
* WIP refactor booking seats reschedule logic
* WIP Refactor handleSeats
* Change relation of attendee & seat reference to a one-to-one
* Migration with relationship change
* Booking page handling unique seat references
* Abstract to handleSeats
* Remove console.logs and clean up
* New migration file, delete on cascade
* Check if attendee is already a part of the booking
* Move deleting booking logic to `handleSeats`
* When owner reschedule, move whole booking
* Prevent owner from rescheduling if not enough seats
* Add owner reschedule
* Send reschedule email when moving to new timeslot
* Add event data to reschedule email for seats
* Remove DB changes from event manager
* When a booking has no attendees then delete
* Update calendar when merging bookings
* Move both attendees and seat references when merging
* Remove guest list from seats booking page
* Update original booking when moving an attendee
* Delete calendar and video events if no more attendees
* Update or delete integrations when attendees cancel
* Show no longer attendee if a single attendee cancels
* Change booking to accepted if an attendee books on an empty booking
* If booking in same slot then just return the booking
* Clean up
* Clean up
* Remove booking select
* Typos
---------
Co-authored-by: zomars <zomars@me.com>
* Fix migration table name
* Add missing trpc import
* Rename bookingSeatReferences to bookingSeat
* Change relationship between Attendee & BookingSeat to one to one
* Fix some merge conflicts
* Minor merge artifact fixup
* Add the right 'Person' type
* Check on email, less (although still) editable than name
* Removed calEvent.attendeeUniqueId
* rename referenceUId -> referenceUid
* Squashes migrations
* Run cached installs
Should still be faster. Ensures prisma client is up to date.
* Solve attendee form on booking page
* Remove unused code
* Some type fixes
* Squash migrations
* Type fixes
* Fix for reschedule/[uid] redirect
* Fix e2e test
* Solve double declaration of host
* Solve lint errors
* Drop constraint only if exists
* Renamed UId to Uid
* Explicit vs. implicit
* Attempt to work around text flakiness by adding a little break between animations
* Various bugfixes
* Persistently apply seatReferenceUid (#7545)
* Persistently apply seatReferenceUid
* Small ts fix
* Setup guards correctly
* Type fixes
* Fix render 0 in conditional
* Test refactoring
* Fix type on handleSeats
* Fix handle seats conditional
* Fix type inference
* Update packages/features/bookings/lib/handleNewBooking.ts
* Update apps/web/components/booking/pages/BookingPage.tsx
* Fix type and missing logic for reschedule
* Fix delete of calendar event and booking
* Add handleSeats return type
* Fix seats booking creation
* Fall through normal booking for initial booking, handleSeats for secondary/reschedule
* Simplification of fetching booking
* Enable seats for round-robin events
* A lot harder than I expected
* ignore-owner-if-seat-reference-given
* Return seatReferenceUid when second seat
* negate userIsOwner
* Fix booking seats with a link without bookingUid
* Needed a time check otherwise the attendee will be in the older booking
* Can't open dialog twice in test..
* Allow passing the booking ID from the server
* Fixed isCancelled check, fixed test
* Delete through cascade instead of multiple deletes
---------
Co-authored-by: Joe Au-Yeung <j.auyeung419@gmail.com>
Co-authored-by: Peer Richelsen <peer@cal.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Efraín Rochín <roae.85@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* Localized booking date
* re add space
* Add locale per format call due to lambda dayjs instance share between users
---------
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* feat(web): improve session retrieval performance
Switch to using `getServerSession` which avoids a HTTP round trip to retrieve session details.
Additionally, migrate deprecated `app/lib/auth` calls to to `@calcom/lib` package.
* fix: update failing test and lint
* Consolidates auth code in features
* Update yarn.lock
* Update packages/trpc/server/createContext.ts
* Oopsie
---------
Co-authored-by: zomars <zomars@me.com>
* fix ul and ol in editor
* fix imports
* disable list for team about section
* fix event type description in list
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* add editor for event type description
* enable same things for markdownIt
* show links in blue
* fix placeholder design
* format description for event list
* limit event descript ot 4 lines in list
* shorten event-type description whenever needed
* add editor to create event type dialog
* fix link title in event type list
* Fix overwriting users column when saving event types (#7445)
* Only overwrite user column when present
* Clean up
* Merge branch 'main' into feat/editor-event-type-description
* Merge branch 'main' into feat/editor-event-type-description
# Conflicts:
# apps/web/pages/settings/my-account/profile.tsx
* Linting
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
* WIP
* Create Booking Questions builder
* Renaming things
* wip
* wip
* Implement Add Guests and other fixes
* Fixes after testing
* Fix wrong status code 404
* Fixes
* Lint fixes
* Self review comments addressed
* More self review comments addressed
* Feedback from zomars
* BugFixes after testing
* More fixes discovered during review
* Update packages/lib/hooks/useHasPaidPlan.ts
Co-authored-by: Omar López <zomars@me.com>
* More fixes discovered during review
* Update packages/ui/components/form/inputs/Input.tsx
Co-authored-by: Omar López <zomars@me.com>
* More fixes discovered during review
* Update packages/features/bookings/lib/getBookingFields.ts
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
* More PR review fixes
* Hide label using labelSrOnly
* Fix Carinas feedback and implement 2 workflows thingy
* Misc fixes
* Fixes from Loom comments and PR
* Fix a lint errr
* Fix cancellation reason
* Fix regression in edit due to name conflict check
* Update packages/features/form-builder/FormBuilder.tsx
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
* Fix options not set when default value is used
* Restoring reqBody to avoid uneeded conflicts with main
* Type fix
* Update apps/web/components/booking/pages/BookingPage.tsx
Co-authored-by: Omar López <zomars@me.com>
* Update packages/features/form-builder/FormBuilder.tsx
Co-authored-by: Omar López <zomars@me.com>
* Update apps/web/components/booking/pages/BookingPage.tsx
Co-authored-by: Omar López <zomars@me.com>
* Apply suggestions from code review
Co-authored-by: Omar López <zomars@me.com>
* Show fields but mark them disabled
* Apply suggestions from code review
Co-authored-by: Omar López <zomars@me.com>
* More comments
* Fix booking success page crash when a booking doesnt have newly added required fields response
* Dark theme asterisk not visible
* Make location required in zodSchema as was there in production
* Linting
* Remove _metadata.ts files for apps that have config.json
* Revert "Remove _metadata.ts files for apps that have config.json"
This reverts commit d79bdd336c.
* Fix lint error
* Fix missing condition for samlSPConfig
* Delete unexpectedly added file
* yarn.lock change not required
* fix types
* Make checkboxes rounded
* Fix defaultLabel being stored as label due to SSR rendering
* Shaved 16kb from booking page
* Explicit types for profile
* Show payment value only if price is greater than 0
* Fix type error
* Add back inferred types as they are failing
* Fix duplicate label on number
---------
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: Efraín Rochín <roae.85@gmail.com>
* feat(app-store): add facetime app to app-store
Add the facetime app to the app-store allowing for facetime web links and facetime app link schemes.
fixes#6965
* Update packages/app-store/facetime/config.json
* Remove unneeded files and make app follow the new app rules
* fix(app-store): update facetime app config
Update the regex and placeholder for the facetime app to reflect the decisions to only accept https://facetime.apple.com links. This was decided as it means that all participants can join a meeting even in the event that they don't have an Apple device.
---------
Co-authored-by: Peer Richelsen <peer@cal.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
* Add queries to fetch metadata and update default
* Add to zod schema
* Change default rules on settings page
* Update query
* Initall override on create event type
* Working default
* Change schema to save locationLink too
* Update default conferncing to include link
* Rename tsx to ts. Fix metadata keys
* WIP on refactoring appstore installed
* Add this to appstore installed apps too
* Display only on conferencing apps
* Add i18n strings
* Change order in dropdown menu so delete is bottom
* Refactor query to not expose all of metadata
* Fix mr type checker
* Possible e2e fix
* Refactor metadata to use ctx
* Refactor back to query cell
* Alias schema
* Adding comment for more info
* Remove constant for clarity
* Update nextjs-bundle-analysis.yml
---------
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: zomars <zomars@me.com>
* Implementation
* Unifying UI to password screen
* Tweaks for session in password section
* Update apps/web/pages/settings/security/password.tsx
Co-authored-by: Omar López <zomars@me.com>
* Update packages/features/kbar/Kbar.tsx
Co-authored-by: Omar López <zomars@me.com>
* Update packages/features/settings/layouts/SettingsLayout.tsx
Co-authored-by: Omar López <zomars@me.com>
* Relying on extra db query
* Upgrades typescript
* Update yarn lock
* Typings
* Hotfix: ping,riverside,whereby and around not showing up in list (#6712)
* Hotfix: ping,riverside,whereby and around not showing up in list (#6712) (#6713)
* Adds deployment settings to DB (#6706)
* WIP
* Adds DeploymentTheme
* Add missing migrations
* Adds client extensions for deployment
* Cleanup
* Using same version as other deps
* Reverting prisma changes and fixing things
* Uneeded tx-expect-error
* Fixing default value
* Update apps/web/public/static/locales/en/common.json
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
---------
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>