Skip to content

feat(googlecalendar): optional custom reminder minutes#24328

Closed
antcybersec wants to merge 2 commits intocalcom:mainfrom
antcybersec:feat/googlecustomreminder
Closed

feat(googlecalendar): optional custom reminder minutes#24328
antcybersec wants to merge 2 commits intocalcom:mainfrom
antcybersec:feat/googlecustomreminder

Conversation

@antcybersec
Copy link

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

@antcybersec antcybersec requested a review from a team as a code owner October 7, 2025 15:11
@vercel
Copy link

vercel bot commented Oct 7, 2025

@antcybersec is attempting to deploy a commit to the cal Team on Vercel.

A member of the Team first needs to authorize it.

@graphite-app graphite-app bot added the community Created by Linear-GitHub Sync label Oct 7, 2025
@graphite-app graphite-app bot requested a review from a team October 7, 2025 15:12
@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 7, 2025

Walkthrough

This 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)
Check name Status Explanation
Title Check ✅ Passed The title clearly and concisely summarizes the main change by indicating a new feature for Google Calendar that enables optional custom reminder minutes without extraneous details.
Description Check ✅ Passed The description directly explains the addition of the optional customReminderMinutes field and its effect on GoogleCalendarService, and it aligns with the detailed changeset.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent 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.

📥 Commits

Reviewing files that changed from the base of the PR and between b694bd4 and 1f50534.

📒 Files selected for processing (1)
  • packages/app-store/googlecalendar/lib/CalendarService.ts (5 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
**/*Service.ts

📄 CodeRabbit inference engine (.cursor/rules/review.mdc)

Service files must include Service suffix, use PascalCase matching exported class, and avoid generic names (e.g., MembershipService.ts)

Files:

  • packages/app-store/googlecalendar/lib/CalendarService.ts
**/*.ts

📄 CodeRabbit inference engine (.cursor/rules/review.mdc)

**/*.ts: For Prisma queries, only select data you need; never use include, always use select
Ensure the credential.key field is never returned from tRPC endpoints or APIs

Files:

  • packages/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/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/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

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@dosubot dosubot bot added calendar-apps area: calendar, google calendar, outlook, lark, microsoft 365, apple calendar ✨ feature New feature or request labels Oct 7, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

📥 Commits

Reviewing files that changed from the base of the PR and between ad35e19 and b694bd4.

📒 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 use include, always use select
Ensure the credential.key field is never returned from tRPC endpoints or APIs

Files:

  • packages/types/Calendar.d.ts
  • packages/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.ts
  • packages/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.ts
  • packages/app-store/googlecalendar/lib/CalendarService.ts
**/*Service.ts

📄 CodeRabbit inference engine (.cursor/rules/review.mdc)

Service files must include Service suffix, 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

@anikdhabal
Copy link
Contributor

we will handle it in this pr:- #23638. Thanks

@anikdhabal anikdhabal closed this Oct 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

calendar-apps area: calendar, google calendar, outlook, lark, microsoft 365, apple calendar community Created by Linear-GitHub Sync ✨ feature New feature or request size/M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants