feat(googlecalendar): optional custom reminder minutes#24328
feat(googlecalendar): optional custom reminder minutes#24328antcybersec wants to merge 2 commits intocalcom:mainfrom
Conversation
|
@antcybersec is attempting to deploy a commit to the cal Team on Vercel. A member of the Team first needs to authorize it. |
|
|
WalkthroughThis change adds optional per-event reminder overrides to the Google Calendar integration. createEvent and updateEvent now read customReminderMinutes from the event or a matching destination calendar (by credentialId or externalId) and set popup reminder overrides when finite; otherwise reminders use defaults. guestsCanSeeOtherGuests is now derived from seatsPerTimeSlot. isGaxiosResponse now checks property existence using Object.prototype.hasOwnProperty.call. A non-functional ESLint/comment cleanup was applied near GOOGLE_WEBHOOK_URL. packages/types/Calendar.d.ts adds customReminderMinutes?: number to CalendarEvent and CalendarServiceEvent. Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Disabled knowledge base sources:
📒 Files selected for processing (1)
🧰 Additional context used📓 Path-based instructions (4)**/*Service.ts📄 CodeRabbit inference engine (.cursor/rules/review.mdc)
Files:
**/*.ts📄 CodeRabbit inference engine (.cursor/rules/review.mdc)
Files:
**/*.{ts,tsx}📄 CodeRabbit inference engine (.cursor/rules/review.mdc)
Files:
**/*.{ts,tsx,js,jsx}⚙️ CodeRabbit configuration file
Files:
⏰ Context from checks skipped due to timeout of 180000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (2)
packages/app-store/googlecalendar/lib/CalendarService.ts(5 hunks)packages/types/Calendar.d.ts(3 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
**/*.ts
📄 CodeRabbit inference engine (.cursor/rules/review.mdc)
**/*.ts: For Prisma queries, only select data you need; never useinclude, always useselect
Ensure thecredential.keyfield is never returned from tRPC endpoints or APIs
Files:
packages/types/Calendar.d.tspackages/app-store/googlecalendar/lib/CalendarService.ts
**/*.{ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/review.mdc)
Flag excessive Day.js use in performance-critical code; prefer native Date or Day.js
.utc()in hot paths like loops
Files:
packages/types/Calendar.d.tspackages/app-store/googlecalendar/lib/CalendarService.ts
**/*.{ts,tsx,js,jsx}
⚙️ CodeRabbit configuration file
Flag default exports and encourage named exports. Named exports provide better tree-shaking, easier refactoring, and clearer imports. Exempt main components like pages, layouts, and components that serve as the primary export of a module.
Files:
packages/types/Calendar.d.tspackages/app-store/googlecalendar/lib/CalendarService.ts
**/*Service.ts
📄 CodeRabbit inference engine (.cursor/rules/review.mdc)
Service files must include
Servicesuffix, use PascalCase matching exported class, and avoid generic names (e.g.,MembershipService.ts)
Files:
packages/app-store/googlecalendar/lib/CalendarService.ts
⏰ Context from checks skipped due to timeout of 180000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Install dependencies / Yarn install & cache
|
we will handle it in this pr:- #23638. Thanks |
Adds an optional field customReminderMinutes to CalendarEvent and CalendarServiceEvent.
Updates GoogleCalendarService to use a single popup reminder when customReminderMinutes is provided; otherwise, keeps Google defaults (useDefault = true).
No DB or UI changes — fully backward-compatible.
Aligns with the direction discussed in the prior feature PR for custom reminders (#23638).
Why
Allow users and integrations to specify a per-calendar reminder value without introducing schema or UI changes — enabling incremental rollout and easy testing.
What Changed
packages/app-store/googlecalendar/lib/CalendarService.ts
→ Apply popup reminder override when customReminderMinutes is present.
packages/types/Calendar.d.ts
→ Add customReminderMinutes?: number to CalendarEvent and CalendarServiceEvent.
How to Test
Run locally with Google Calendar integration enabled.
Set customReminderMinutes (e.g., 10) on:
The event payload passed to GoogleCalendarService, or
The selected destinationCalendar entry for the active credential.
Create a booking and verify that the created Google Calendar event shows one popup reminder at the specified number of minutes.
Notes
Intentionally minimal (no persistence or UI changes).
A follow-up PR can introduce:
A stored per-calendar setting
API support
UI configuration
No documentation changes required.
Checklist
Self-reviewed
Follows repository style guidelines
Lints pass locally; no new warnings
Backward-compatible; no migrations or UI changes