* first implementation of verifying phone number
* add UI + logic for verifying phone number flow
* check if all phone numbers are verified before submit
* add numberVerification pending
* only send SMS to verified numbers
* fix design for mobile view
* check if phone number is verified before testing action
* add back message service id check
* add TWILIO_VERIFY_SID to .env.example
* code clean up
* add TWILIO_VERIFY_SID to README.md instructions
* save new verified numbers
* fix wrongly thrown error for new verified numbers
* use false as default value for isVerificationPending paramater
* add translations
* add migration file
* code clean up
* don't throw error if phone number is not needed
* Feedback
* Shows error when Twillio isn't properly setup
* Type fixes
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* small design fix for time unit select
* save video cal url to booking in metaData
* save video url when bookings are confirmed
* fix e2e tests
* remove not needed waitForNavigation
* add metadata to booking created webhook payload
* add migration
* fix type error
* adjust e2e tests
* add bookingMetadataSchema
* add missing change from merge
* add new line to expected test result
* update snapshot
* fix e2e tests
* Update confirm.ts
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: zomars <zomars@me.com>
* wip vimcal app
* added vimcal blog link
* todo: filter out external calendar apps
* Make it a non calendar type app with category and variant as calendar
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
* Abstract app category navigation
* Send key schema to frontend
Co-authored-by: Omar López <zomars@users.noreply.github.com>
* Render keys for apps on admin
* Add enabled col for apps
* Save app keys to DB
* Add checks for admin role
* Abstract setup components
* Add AdminAppsList to setup wizard
* Migrate to v10 tRPC
* Default hide keys
* Display enabled apps
* Merge branch 'main' into admin-apps-ui
* Toggle calendars
* WIP
* Add params and include AppCategoryNavigation
* Refactor getEnabledApps
* Add warning for disabling apps
* Fallback to cal video when a video app is disabled
* WIP send disabled email
* Send email to all users of event types with payment app
* Disable Stripe when app is disabled
* Disable apps in event types
* Send email to users on disabled apps
* Send email based on what app was disabled
* WIP type fix
* Disable navigation to apps list if already setup
* UI import fixes
* Waits for session data before redirecting
* Updates admin seeded password
To comply with admin password requirements
* Update yarn.lock
* Flex fixes
* Adds admin middleware
* Clean up
* WIP
* WIP
* NTS
* Add dirName to app metadata
* Upsert app if not in db
* Upsert app if not in db
* Add dirName to app metadata
* Add keys to app packages w/ keys
* Merge with main
* Toggle show keys & on enable
* Fix empty keys
* Fix lark calendar metadata
* Fix some type errors
* Fix Lark metadata & check for category when upserting
* More type fixes
* Fix types & add keys to google cal
* WIP
* WIP
* WIP
* More type fixes
* Fix type errors
* Fix type errors
* More type fixes
* More type fixes
* More type fixes
* Feedback
* Fixes default value
* Feedback
* Migrate credential invalid col default value "false"
* Upsert app on saving keys
* Clean up
* Validate app keys on frontend
* Add nonempty to app keys schemas
* Add web3
* Listlocale filter on categories / category
* Grab app metadata via category or categories
* Show empty screen if no apps are enabled
* Fix type checks
* Fix type checks
* Fix type checks
* Fix type checks
* Fix type checks
* Fix type checks
* Replace .nonempty() w/ .min(1)
* Fix type error
* Address feedback
* Added migration to keep current apps enabled
* Update apps.tsx
* Fix bug
* Add keys schema to Plausible app
* Add appKeysSchema to zod.ts template
* Update AdminAppsList.tsx
Co-authored-by: Omar López <zomars@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
* Removes user plan logic for stripe sub
* Update hardcoded price
* Removed checkoutSessionId metadata and fix for trpc query
* Remove or comment team billing unused code
* Add todo note
* Fix type checks
* Change function that was renamed
* Remove duplicated test
* remove plan when creating user on test
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* only show smsReminder number if event type has SMS_ATTENDEE action
* fix rescheduling bug
* Change array iteration to only run for best scenario
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* WIP
* warnings and errors, and working app
* Refresh token now usable
* Correcting env.appStore.example
* Reverting changes that will come from Sendgrid App PR
* Resetting with main
* Renaming all othercalendars
* Fixing types
* Renaming leftovers
* More renaming stuff
* Format readme
* Adds prettier override for website wordlist
* Omit salesforce app in this PR
* Revert "Omit salesforce app in this PR"
This reverts commit 22c09fe535.
* Update yarn.lock
Co-authored-by: Leo Giovanetti <hello@leog.me>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* WIP
* warnings and errors, and working app
* Refresh token now usable
* Correcting env.appStore.example
* Reverting changes that will come from Sendgrid App PR
* Resetting with main
* Renaming all othercalendars
* Fixing types
* Renaming leftovers
* More renaming stuff
* Format readme
* Adds prettier override for website wordlist
* Omit salesforce app in this PR
* Cleanup
* Update AppSettings.tsx
* Revert "Cleanup"
This reverts commit 41f94c52c3.
* Update yarn.lock
Co-authored-by: Leo Giovanetti <hello@leog.me>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* add sender id
* add sender to twilio from
* added missing sender
* add migration
* fix design of add action dialog
* add cal as sender when creating new workflow
* fix type errors
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* WIP teams billing page
* WIP
* Create settings page
* Remove unused imports
* Create stripe customer on team creation
* Add Stripe ids to team record
* Add Stripe price ids for team to .env
* Create & delete Stripe customers
* Add string
* Merge branch 'main' into v2/teams-billing
* Create checkout session when creating team
* Create webhook to update team with Stripe ids
* Add Stripe migration files
* Move deleting team from Stripe under ee
* Some cleanup
* Merge branch 'v2/teams-billing' of https://github.com/calcom/cal.com into v2/teams-billing
* Small clean up
* Link to team's portal page
* Fix types
* Fix type errors
* Fix type errors
* Fix type error
* Delete old files & type fixes
* Address feedback
* Fix type errors
* Removes team creation modal
* WIP
* Removed billing frequency from team creation
* Add Stripe check for delete team customer
* Merge branch 'v2/teams-billing' of https://github.com/calcom/cal.com into v2/teams-billing
* Add high level form to create new team
* WIP
* Add new team to form
* Validate for invited members
* Add translations
* WIP
* Add validation for team name
* Add validation to team slug
* Clean up
* Fix type error
* Fix type errors
* WIP
* Abstract invite members function
* Add subscription status column
* Hide pending teams from settings
* Send email on paid subscription
* WIP
* Sync packages
* Add team subscription cols to schema
* WIP
* Matches locks vite version to <3
* Removed subscriptionStatus
* WIP
* Fix warning
* Query optimizations
* WIP
* Cleanup
* Wip
* WIP
* Runtime error fixes
* Cancellation fixes
* Delete team fixes
* Cleanup
* Type fixes
* Allows to check memebership in getTeamWithMembers
* Adds team creation tests
* Cleanup
* Cleanup
* Restored change
* Updated copy
* Moved component
* Cleanup
* Fix team members view
* Cleanup
* Adds failsafe for skipping publishing on update
* Cleanup
* Feedback
* More feedback
* Cleanup
* Cleanup
* Feedback
* Feedback
* Feedback
* Adds edge-case for slug conflicts
* Feedback
* e2e fixes
Co-authored-by: Joe Au-Yeung <j.auyeung419@gmail.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* Sendgrid app and code simplification
* Applying app-store-cli + impl
* Fixing types
* Adding features to readme
* Fixing unit tests
* A few last tweaks regarding UX and env vars
* Applying feedback
* Using calcom icons
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* Improving recurring info in bookings
* Adding fixes to success page, it was invalid on custom tz
* Remove dead code
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Add Choose common schedule togglee
* Fix types
* Add translations
* Improve variable name
* Move setting to config so that all such lightweight boolean settings can exist here
* Update apps/web/public/static/locales/en/common.json
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Fixing types from handleErrorJson usage and Credential
* Replace credential prisma type for a better suitable
* Improvements on zoom video adapter
* Renamed extendedCredentialType and put it in a best suited file
* Frontend display invalid credential
* Fix styles and text
* Fix type required for fake daily credentials
* Structural fix to recurring times
* Remove conversion regression
* Revert current time -> startTime based utcOffset
* Fixing remaining events count
* Using user's preference for recurring tooltip
* Missing refactor
* Showing better datetime in booking page
Added an extra seeded example for recurring
Co-authored-by: Leo Giovanetti <hello@leog.me>
* added ga4 google analytics
* added ga4 script as TODO
* get analytics app working
* Remove stale comment
* Fix types
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
* Abstracting booking cancellation
* Tweaking to use id and not uid
* Standardizing http errors
* Moving schema to prisma zod-utils
* Update apps/web/pages/api/cancel.ts
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Cancel only for delete and post verbs
* Make cancellation work with uid, and id
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Add seatsHideAttendees to schema
* Add migration
* Add frontend option to hide attendees
* Pass hide attendees to email
* Hide attendee names on success email
* Add types for existing attendees
* Hide other attendees if hidden
* Pass seatsHideAttendees to Google Cal
* Add translation
* Reduce redundancy
* Fix type error
* Change toggle to show attendee information
* Minor text change
* Fix type errors
* Update snapshots
* Merge branch 'main' into seats-hide-attendees
* Add back email
* Add close.com specific types
* Add eslint ignore comments
* Merge branch 'seats-hide-attendees' of https://github.com/calcom/cal.com into seats-hide-attendees
* Simplify tests
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Standardize destination calendar selector
* Move DestinationCalendarSelector to feature package
* Render integration name
* Add custom components to label and selected
* Render destinationCalendar on page load
* Change name to just Outlook
* Small fixes
* Merge branch 'main' into hotfix/install-calendar-overflow
* Merge branch 'main' into hotfix/install-calendar-overflow
* Fix type errors
* Fix type errors
* Update apps/web/pages/settings/my-account/calendars.tsx
* More type fixes
Co-authored-by: Omar López <zomars@me.com>
* add phone number required checkbox
* make input required only if numberRequired is true
* fix error that smsReminderNumber is null
* code clean up
* fix typo
* save no input as null
* fix code change
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: alannnc <alannnc@gmail.com>
* wip added QR code app, needs settings
* added QR code settings, needs eventType.URL
* Make URL prop available to apps
* Add recurringEvent in available. It was missing earlier
* added autoAnimate to AppSettings
* Remove isSunrise demo prop
* Simplify schema even more
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
* added weather in calendar wrapper
* added textfield to weather app, needs GeneralSettings abstraction
* add automation cateogry for n8n and zapier
* fix border radius for seperated apps
* create app specific settings in installed apps
* Fixed design issues caused by app settings
* add first version of template cards with logos
* Add link to zapier template
* Add missing translations
* fix mobile view
* better readable app description in mobile view
* code clean up
* fix issue that lisItem was always expanded
* code clean up
* code clean up
* fix import
* fix typo
* code clean up
* Add AppStore General Settings support
* add missing alt to img
* use FiShare2 icon instead of FiZap
* Remove duplicate entries
* Add border to AppSettings consistently
Co-authored-by: Peer Richelsen <peer@cal.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Add OmniInstall button
* Make AppCards configurable by the app itself
* Make OmniInstallAppButton not redirect
* Fixes
* Add extendsFeature support to CLI
* Move to automatic file generation approach as dynamic import checking doesnt work correctly
* Use zod everywhere consistenly for metadata and fix all TS issues
* Fix viewer.eventTypes endpoint. Make prisma base select and _ prefixed models consistent in expecting scalars only
* Remove unnecessary zod parsing of event-types as it is making the scope of the PR huge
* Fix UI TS errors
* wip
* Add zod types support in EventTypeAppCard.tsx
* Fixes during PR review and other failing tests
* Remove unused app
* Fix stripe installation flow
* More fixes
* Fix apps and active apps count
* self review
* Add loading attribute to OmniInsall button
* Handle empty state
* Improve types
* Fix stripe app installation bug
* added fathom app (#4804)
* added fathom app wrapper, needs script injection to public booking page
* new logo
* Add Fathom script support on booking pages and add it as an eventTypeapp
* Add automation and analytics apps
* Add missing pieces for analytics category
* Rename BookingPageScripts to BookingPageTagManager
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
* Fix lint error
* Fix runtime error with legayAppData being undefined
* Remove duplicate automation key
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* Add db relevant stuff
* Basic UI there still buggy
* This UI is hard - some progress
* Fix awful state mangament
* Fix re-ordering
* Working UI logic!
* Partical working minMax function
* Fix min max
* bookingLImits api + tests
* Moved checkBookingLimits to backend only code
* Fix httperror import
* Return busy times
* Remove avaliablity calc
* Working for everything but year
* Remove redundant + fix async forloop
* Add compatible type
* Future proof with evenTypeId filter
* Fix commonjson
* Sorting + validation + tests + passing
* Add empty test
* Move validation check to backend
* Add bookinglimits in trpc
* Add test for undefined
* Apply suggestions from code review
Co-authored-by: Jeroen Reumkens <hello@jeroenreumkens.nl>
* Update apps/web/components/v2/eventtype/EventLimitsTab.tsx
Co-authored-by: Jeroen Reumkens <hello@jeroenreumkens.nl>
* Rename value for eligiability
* Rename keyof type
* status code
* Fix toggle not toggling off
* Update apps/web/pages/v2/event-types/[type]/index.tsx
Co-authored-by: Omar López <zomars@me.com>
* Update apps/web/pages/v2/event-types/[type]/index.tsx
Co-authored-by: Omar López <zomars@me.com>
* Change back to undefined as it is working for sean. See if it fails on testapp
* Fixing test builder
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Jeroen Reumkens <hello@jeroenreumkens.nl>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Leo Giovanetti <hello@leog.me>
* add after event ends workflow trigger to enum
* add after meetings ends trigger
* fix label for time span
* add deleted label for message template
* add lost changes from merge conflict
* set reminder for already existing bookings
* fix label 'How long before event starts/ends'
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
* feat: update forms procedure to match getServerSideProps
* feat: init react query and use prefetched data
* feat: invalidate onSettled while creating a form
* feat: use optimistic updates when deleting
* fix: add optional chaining
* feat: add server-side translation
* feat: add correct translation key
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Animate fields list and routes list
* Rename routing_forms slug to routing-forms
* Add comments
* Fixtypo
* Add dropdown separator for consistency
* Fix missing occurences of routing_forms and improve types for webhooks
* Fix weird error about title child is an array
* Fix webhook issues
* Fix webhook tests and issues found during fixing them
* Fix lint errors and warnings
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* added n8n app to app store, gave padding to sticky app store header
* nit
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* fix: use json.parse to get id
* fix: type error
* fix: add zod parse
* chore: remove type
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* 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>