* WIP
* Consolidates jest deps
* Test fixes
* Moves jest to root
* Test fixes
* Update CalendarService.test.ts
* Cleanup
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* fix: add team model in prisma middleware
* refactor: move to getParsedResults function
* fix: add eventtype
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* add new trigger with first simple job scheduling
* fix DB update
* use array to save scheduled jobs in booking
* cancel scheduled jobs when zap disabled or zapier disconnected
* schedule jobs only for confirmed bookings
* schedule jobs for already existing bookings
* fix bug to create workflow reminders when confirming recurring events
* delete remove all zapier webhooks when api key is deleted
* schedule job for all confirmed recurring bookings
* fix zapier trigger and workflow reminders when cancelling recurring events
* code clean up
* code clean up
* add migration
* add type package for node-schedule
* remove nodescheduler
* add updated nodescheduler
* move code to app-store
* add meeting ended to webhook constants
* udpate zapier README.md
* implement QA suggestions
* add default handler and fix imports
* Type fix
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
* wip commit
* Finished new algorithm for fetching the least recently booked user
* ROUND_ROBIN fix
* Removed redundant import
* Prisma dependency turned getLuckyUser into a server-only function
* DRY avatars
* Properly passThrough
* name can be undefined.
* Remove debug artefact
* Add Embed ModalBox for routing forms
* Add duplicate form support
* Fix duplication logic
* Change to feathericons everywhere and other fixes
* Dont allow routes for fallback route
* Fix all TS issues
* Fix tests
* Support routing using query params
* Support multiselect in router endpoint
* Fix the issue where app goes in embed mode after viewing embed once
* Add router url tests
* Add Responses download and form toggling tests
* Add required validation test
* Change Icons everywhere
* App typeform app
* Improvements in cli
* Add typeform how-to-use page
* Add typeform how-to-use page and screenshots
* Fix TS error
* Add missing image
* Update CliApp.tsx
* Revert unexpected zapier change
* Revert yarn.lock, not sure why it was modified
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* -re init dynamic links
* typing fix 001
* added missing div closing tag
* added necessary DB column pull to satisfy Type errors
* further type fixes
* WIP
* removed console logs
* some revert
* WIP
* another approach
* enabled dynamic links availability fetch
* Added users to eventTypeObject for consistency
* WIP: Moving user and changing map item name
* Fix user list call
* Removed explicit User type in map
* modify default user attributes
* adds explicit users to EventTypeObject in teams
* Updated availability page
* Updates Availability
* Futher availability change
* Remove explicit user type from slot router
* more fixes
* more fixes WIP
* cleaning up more errors WIP
* object assign used for typesafety
* added check if dynamic booking is allowed by all users
* cleaned up console logs
* clean up
* Improvement
* resolving suggestions by alex
* changes requested by Omar
* Filter out empty usernames instead of accepting null
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
* refactor: use BookingReference instead of DailyEventReference
* refactor: migrate DailyEventReference records to BookingReference
* refactor: drop DailyEventReference table
* fix linting
* Daily Video API adapter fixes
Co-authored-by: zomars <zomars@me.com>
* fix: remove duplicate button in textusernamefield
* feat: adds username if not present in getting-started first onboarding step
* fix: credentials
* fix: typo
* fix: user type
* fix: type errors
* Validates successRedirectUrl earlier with zod
* Removes deprecated api endpoint
* Reduces the data needed for the frontend on onboarding
Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
* Support dark theme in routing form
* Fix Embed detection
* Add routing form embed example
* Better rendering support in dark mode for react-select
* Fix more theme issues
* Added test for Routing Form Embed
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* add html format to email template
* remove workflow reminder email
* fix that text was used instead of html
* fixes that email subject was used instead of body
* remove \n\n from text template
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Add Routing logic to Query builder
* Make a working redirect
* Make it an app
* Move pages and components to App
* Integrate all pages in the app
* Integrate prisma everywhere
* Fix Routing Link
* Add routing preview
* Fixes
* Get deplouyed on preview with ts disabled
* Fix case
* add reordering for routes
* Move away from react DnD
* Add sidebar
* Add sidebar support and select support
* Various fixes and improvements
* Ignore eslint temporarly
* Route might be falsy
* Make CalNumber support required validation
* Loader improvements
* Add SSR support
* Fix few typescript issues
* More typesafety, download csv, bug fiees
* Add seo friendly link
* Avoid seding credebtials to frontend
* Self review fixes
* Improvements in app-store
* Cahnge Form layout
* Add scaffolding for app tests
* Add playwright tests and add user check in serving data
* Add CI tests
* Add route builder test
* Styling
* Apply suggestions from code review
Co-authored-by: Agusti Fernandez Pardo <6601142+agustif@users.noreply.github.com>
* Changes as per loom feedback
* Increase time for tests
* Fix PR suggestions
* Import CSS only in the module
* Fix codacy issues
* Move the codebbase to ee and add PRO and license check
* Add Badge
* Avoid lodash import
* Fix TS error
* Fix lint errors
* Fix bug to merge conflicts resolution - me query shouldnt cause the Shell to go in loading state
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Agusti Fernandez Pardo <6601142+agustif@users.noreply.github.com>
* build basic database structure and basic design
* create simple workflow list
* add editing dots to list
* add mutation to create workflows
* add createMutation on submit + redirect to editing page
* redirect to edit page when clicking on row
* add functionality to delete workflow
* add timeUnit + input validation
* add empty screen view
* add time before it triggers to description
* add multi select with checkboxes
* remove getServerSideProps
* set default time period to 24
* fetch eventypes and display in dropdown
* add functionality to update workflows + many-to-many relationship
* fix all checked event types
* add SMS reminders
* fix bug with trigger + relocate sms template
* clean code
* add model for unscheduled reminders
* fix selected eventTypes
* fixing value to show how many event types selected
* fix plural of event types in select
* add onDelete cascade for all relations
* fix errors
* add functionality to send SMS to specific number
* fix type error for timeUnit
* set default value for time unit + fix type issues
* remove console.logs
* fix error in checking if scheduled date is more than 1h in advance
* fix build errors
* add migration for workflows
* add basic UI for editing workflow steps
* add formSchema
* improve functionality to update a step
* remove console logs
* fix issue with active event types
* allow null value for time and timeUnit
* sort steps asc step number
* add action to workflow (frontend)
* add phone number input for SMS to specific number
* use PhoneInput for number input + input validation
* improve invalid input for phone number
* improve UI of phoneInput
* Improve design and validation
* fix undefined error
* set default action when adding action
* include all team event types
* fix phone number input for editing steps
* fix update muation to add steps
* remove console logs
* fix order of steps
* functionality to delete steps
* add trigger when event is cancelled
* add custom email body
* sms and email reminder updates
* add custom emails
* add custom email subject
* send reminder email to all attendees
* update migration
* fix default value for time and timeUnit
* save email reminders to database
* clean code
* add custom template to SMS actions
* schedule emails with sendgrid
* clean code
* add workflow templates
* keep custom template saved when changing templates
* create reminder template for email
* add dot at the end of sentace for email template
* fix merge error
* fix issue that template was not saved
* include sending emails for when event is cancelled
* fix bug that email was always sent
* add templates to sms reminders
* add info that sending sms to attendees won't trigger for already exisitng bookings
* only schedule sms for attendees when smsReminderNumber exists
* only schedule sms for attendees when smsReminderNumber exists
* set scheduled of workflow reminder to false when longer than 72 hours
* add cron for email scheduling + fixes for for sms an email scheduling
* adjust step number when deleting a step
* cast to boolean with !!
* update cron job for email reminders
* update sms template
* send reminder email not to guests
* remove sendTo from workflow reminder
* fixes sending sms without name + removing sendTo everywhere
* fix undefined name in sms template
* set user name to undefined for sending sms to a specific number
* fix singular and plural for time unit
* set to edit mode when changing action and custom template is selected
* delete reminders when booking cancelled or not active anymore
* fix type errors
* fix error that deleted reminders twice
* create booking reminders for existing bookings when eventType is set active
* improve email and sms templates
* use BookingInfo type instead of calendarEvent for reminder emails
* schedule emails for already existing bookings
* add and remove reminders for new active event types and cancelled events
* connect add action button with last step
* fix step container width for mobile view
* helper functions that return options for select
* fix typo and remove comment
* clean code
* add/improve error messages for forms
* fix typo
* clean code
* improve email template
* clean code
* fix missing prop
* save reference id when scheduling reminder
* fix step not added because of changed id for new steps
* small fixes + code cleanup
* code cleanup
* show error message when number is invalid
* fix typo
* fix phone number input when location is already phone
* set multi select checkbox to read only
* change email scheduling in cron job from 7 days to 72 hours
* show active event types in workflow list
* fix trigger information for workflow list
* improve layout for small screens in workflow list
* remove optional from zod type for workflow name
* order workflows by id
* use link icon to show active event types
* fix plural and add translation for showing nr of active eventtypes
* fix text for sms reminder template
* add reminders for added steps
* remove optional for activeOn
* improve reminder templates
* improve design of custom input fields
* set edit mode to false when phone number isn't needed anymore
* set sendTo in workflow step only for SMS_NUMBER action
* set email body and subject only when custom template
* only delete reminders that belong to workflow steps
* improve text for new event book trigger
* move reminders folder to workflows
* fix issue that save button was sometimes enabled in edit mode
* fix form issues for send to
* delete all scheduled reminders when workflow is deleted
* use enum for method
* fix imports for workflow methods
* add missing import
* fix edit mode
* create reminders when event is confirmed
* add reminderScheduler to reduce duplicate code
* make workflow enterprise and pro only feature
* move all files to /ee/ folder
* move package.json change to /ee/ folder
* add pro badge to shell
* set to edit mode to true if email subject is missing when action changes
* fix loading bug
* add migration
* fix old imports
* don't schedule reminders for opt-ins
* fix style of email body
* code clean up
* Update yarn.lock
* fix isLoading for active on dropdown
* update import for prisma
Co-authored-by: Omar López <zomars@me.com>
* update imports
* remove console
* use session to check if user has valid license
* use defaultHandler
* clean up code
* Create db-staging-snapshot.yml
* move LisenceRequired inside shell
* update import for FormValues
* fix phone input design
* fix disabled save button for edit mode
* squah all migration into a single one
* use isAfter and isBefore instead of isBetween
* import dayjs from @calcom
* validate phone number for sms reminders when booking event
* Allows auto approvals for crowdin
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
* WIP feature/settings-username-update
* WIP username change
* WIP downgrade stripe
* stripe downgrade and prorate preview
* new UI for username premium component
* Fix server side props
* Remove migration, changed field to metadata user
* WIP for update subscriptions
* WIP intent username table
* WIP saving and updating username via hooks
* WIP saving working username sub update
* WIP, update html to work with tests
* Added stripe test for username update go to stripe
* WIP username change test
* Working test for username change
* Fix timeout for flaky test
* Review changes, remove logs
* Move input username as a self contained component
* Self review changes
* Removing unnecesary arrow function
* Removed intentUsername table and now using user metadata
* Update website
* Update turbo.json
* Update e2e.yml
* Update yarn.lock
* Fixes for self host username update
* Revert yarn lock from main branch
* E2E fixes
* Centralizes username check
* Improvements
* WIP separate logic between premium and save username button
* WIP refactor username premium update
* Saving WIP
* WIP redo of username check
* WIP obtain action normal, update or downgrade
* Update username change components
* Fix test for change-username self host or cal server
* Fix user type for premiumTextfield
* Using now a global unique const to know if is selfhosted, css fixes
* Remove unused import
* Using dynamic import for username textfield, prevent submit on enter
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* includedDates would always disable excludedDates due to empty array
* Added migration to add all userids into _user_eventtype
Co-authored-by: Omar López <zomars@me.com>
* feat: customPrisma for hosted API access
* fix: 24h not 24 days for expiry cache in customPrisma calls
* fix: move PRISMA_CLIENT_CACHING_TIME to API
Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Incorporates recurringEvent into calEvent
* Recurrent event fixes
* Update event.ts
* type fixes
* Update zod-utils.ts
* Adding more recurringEvent to calEvent and other fixes
* Moving away from heavy 3rd party enum
* Fixing test
* Renaming as suggested and fixes
Co-authored-by: Leo Giovanetti <hello@leog.me>
* Seperate help menu item and contact menu item
* Add menu items
* Install react-popover
* Render contact only if support keys are present
* Adjust contact support links
* Add translations
* Add embed changes
* Adjust menu if helped is pressed
* Add items to help menu
* Change button color on selection
* Create endpoint
* Create feedback table
* Create migration file
* Write feedback to db
* Remove logs
* Add response message
* Send feedback email
* Disable submit if no rating and after submit
* Add translations
* Fix padding
* Clean up
* Clean up
* Add user feedback email to .env example
* Lint fixes and styles
* Changed onClick function to a named function and fix style
* Fix ids order
* Removed commented code and changed textarea id and name
* Fix id orders
* Change to AND operator
Co-authored-by: Omar López <zomars@me.com>
* Add user relation to feedback
Co-authored-by: Omar López <zomars@me.com>
* Add migration files
* Change rating to strings
* Change rating to strings
* Fix type errors
* WIP success & error messages
* Change success and error to boolans
* Style messages
* Add await
Co-authored-by: Omar López <zomars@me.com>
* Remove duplicate string
* Refactor import statement
Co-authored-by: Omar López <zomars@me.com>
* Change opacity of emojis
* added support@cal.com email for feedback
* Add success toast
* Update .env.example
Co-authored-by: Omar López <zomars@me.com>
* Add tCRP route
* tCRP send email
* tCRP send email
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* Set google cal event id to use our uid
* Save calendar external id to bookingRef
* Pass external calendar ids to update and delete
* Create migration
* Fix type errors
* Fix prisma url
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
* add invite link and toaster to zapier setup page
* create env variable for invite link and save in database
* fetch invite link form getStaticProps
* add getStaticPath method
* clean code
* Moves app setup and index page
* Moves Loader to ui
* Trying new way to handle dynamic app store pages
* Cleanup
* Update tailwind.config.js
* zapier invite link fixes
* Tests fixes
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
* Add vital integration
* Tidy up client_user_id creation
* Rename vital app to vitalother to follow name rules
* Added env var
* App vital reschedule
* Fix on app structure and api calls
* Implemented user identification from webhook
* WIP fix api call and read me
* Save vital settings via api
* Now saving userVitalSettings and trigger reschedule on selected param
* Added translations
* Fix type for vitalSettings
* Using api to get env vars required for url, fix display of vital settings
* Fix hours placeholder, translation not working
* Renames vital app
* Update seed-app-store.ts
* Update package.json
* Update yarn.lock
* Refactored env variables
* Update README.md
* Migrates to api_keys
* Extracts AppConfiguration
* vitalClient fixes
* Update index.ts
* Update metadata.ts
* Update index.ts
* Update metadata.ts
* Added namespace vital for translations
Co-authored-by: Maitham <maithamdib@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* fix: adds servers in openapi, remove hack in snippets, update deps, make dynamic import to use latests swagger ui deps
* fix: remove unneded import
* fix: adds yarn dev commands for api and swagger
* fix: prisma not web before api
* fix: improve mobile docs api
* fix request snippets
* fix: custom more visible scrollbar for snippets in moible
* fix: remove comments and ugly scrollbar
* fix: types and remove lib url
* fix: install iframe-react-resizer in docs
* fix: remove web scope from yarn dev:api
* fix: remove json-schema autogenerated as wont be used
* fix: apiKeyAuth
* fix: swagger patch thx hariom
* fix: add api to env/example
Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
* disposable link model added
* disposable model updated
* added disposable slug availability page
* added disposable book page
* added disposable slug hook
* added disposable link booking flow
* updated schema
* checktype fix
* added checkfix and schema generated
* create link API added
* added one time link view on event type list
* adjusted schema
* fixed disposable visual indicator
* expired check and visual indicator added
* updated slug for disposable event type
* revised schema
* WIP
* revert desc
* revert --WIP
* rework based on change of plans
* further adjustments
* added eventtype option for hashed link
* added refresh and delete on update
* fixed update call conditions
* cleanup
* code improvement
* clean up
* Potential fix for 404
* backward compat for booking page
* fixes regular booking for user and team
* typefix
* updated path for Booking import
* checkfix
* e2e wip
* link err fix
* workaround for banner issue in event type update-test
* added regenerate hash check
* fixed test according to new testID
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
* manual migration to rename verificationtoken, maybe it could be dropped and create a new table instead if we're not using it, will consult @zomars
* feat: rename verificationRequest --> verificationToken in schema.prisma
* fix: rename verificationRequest -> verificationToken in the codebase
* feat: add default cookies for next-auth
* fix: moves @lib/serverConfig to @calcom/lib so it can be called by website too
* fix: make self-certificate work in dev env by not rejecting tls in serverConfig
* fix verificationTokenToken typo
Co-authored-by: Omar López <zomars@me.com>
* Adds domain: .cal.com if not dev env in cookies
* Adds default-cookies to apps/web, and nextauth_domain to turbo website build deps"a
* update NEXTAUTH_DOMAIN to NEXTAUTH_COOKIE_DOMAIN
* Updates website submodule
* Removes deprecated env vars
* Consolidates auth logic in one place
* Updates website module
* Signup fixes
* Build fixes
* Updates example
* Updates example
* Fixes
* Fix Email Verification
* fix: move csrf-token cookiePrefix from __Host -> __Secure
* Removes console log
* Fixes link in email template
* Removed irrelevant coment
* Testing with a 32 bit secret
* Fixes for cookien in E2E
* E2E fixes
* Fixes Stripe tests locally
* Temp fix for E2E
Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
* feat: add ApiKey model for new Api auth, owned by a user
* fix: remove metadata:Json and add note:String instead in new apiKey model
* fix: rename apiKey to apiKeys in moder User relation in schema.prisma
* feat: add hashedKey to apiKey and lastUsedAt datetime to keep track of usage of keys and makiung them securely stored in db
* fix 30 day -> 30 days in expiresAt
* feat: api keys frontend in security page
* adds hashedKey to api key model, add frontend api keys in security page
* Make frontend work to create api keys with or without expiry, note, defaults to 1 month expiry
* remove migration for now, add env.example to swagger, sync api
* feat: hashed api keys
* fix: minor refactor and cleanup in apiKeys generator
* add api key success modal
* sync apps/api
* feat: We have API Keys in Security =)
* remove swagger env from pr
* apps api sync
* remove comments in password section
* feat: migration for api keys schema
* sync api w main
* delete apps/api
* add back apps/api
* make min date and disabled optional props in datepicker
* feat fix type check errors
* fix : types
* fix: rmeove renaming of verificationrequest token indexes in migration
* fix: remove extra div
* Fixes for feedback in PR
* fix button />
* fix: rename weird naming of translation for you_will_only_view_it_once
* fix: remove ternary and use && to avoid null for false
* fix sync apps/api with main not old commit
* fix empty className
* fix: remove unused imports
* fix remove commented jsx fragment close
* fix rename editing
* improve translations
* feat: adds beta tag in security tab under api keys
* fix: use api keys everywhere
* fix: cleanup code in api keys
* fix: use watch and controller for neverexpires/datepicker
* Fixes: improve api key never expires
* add back change password h2 title section in security page
* fix update env API_KEY_ prefix default to cal_
* fix: improve eidt api keys modal
* fix: update edit mutation in viewer.apiKeys
* Update apps/web/ee/components/apiKeys/ApiKeyListItem.tsx
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* fix: item: any to pass build
Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>