Skip to content

feat: ✨ User Free Times Aggregation#299

Open
masterdabber wants to merge 4 commits into
mainfrom
asp/create-aggregate-user-times
Open

feat: ✨ User Free Times Aggregation#299
masterdabber wants to merge 4 commits into
mainfrom
asp/create-aggregate-user-times

Conversation

@masterdabber
Copy link
Copy Markdown
Contributor

@masterdabber masterdabber commented Feb 24, 2026

Description

This PR gets the user's free times where they have said they are available and they do not have a meeting scheduled.

Process:
Gets all user availabilities from all their meetings.
Finds the times that they have a scheduled meeting.
Then calculates all the times when they are available but do not have a meeting scheduled.

Added:
Querying the availabilities table for all availabilities of a single user
Querying the scheduled meetings table for all scheduled timings of a single user
Made a server action that converts scheduled meetings into 15-min blocks to compare with availabilities.

Returns:
All free times in the format of availabilities of 15 min blocks as UTC ISO strings in ascending order.
or
Error, if unable to complete process

@masterdabber masterdabber marked this pull request as ready for review March 2, 2026 21:45
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

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

1 issue found across 7 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="src/server/actions/availability/free-times/action.ts">

<violation number="1" location="src/server/actions/availability/free-times/action.ts:22">
P2: Overnight (cross-midnight) scheduled meetings are silently dropped. When `fromTime` > `toTime`, the `while (currentMinutes < endMinutes)` condition is immediately false, so no slots are generated. The existing `generateTimeBlocks` in `utils.ts` already handles this wrap-around case — consider reusing that logic or adding similar handling here (incrementing past midnight and adjusting the date for the next-day portion).</violation>
</file>

Since this is your first cubic review, here's how it works:

  • cubic automatically reviews your code and comments on bugs and improvements
  • Teach cubic by replying to its comments. cubic learns from your replies and gets better over time
  • Add one-off context when rerunning by tagging @cubic-dev-ai with guidance or docs links (including llms.txt)
  • Ask questions if you need clarification on any suggestion

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread src/server/actions/availability/free-times/action.ts Outdated
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

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

1 issue found across 1 file (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="src/server/actions/availability/free-times/action.ts">

<violation number="1" location="src/server/actions/availability/free-times/action.ts:23">
P1: Bug: Using `<=` instead of `<` causes a zero-duration scheduled block (where `fromTime === toTime`) to be expanded into a full 24-hour set of slots. This would incorrectly mark an entire day as "scheduled", removing all of the user's free times for that day. Use strict `<` to only trigger midnight-wrapping when the end time is genuinely before the start time.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread src/server/actions/availability/free-times/action.ts Outdated
@KevinWu098
Copy link
Copy Markdown
Member

Is this PR ready for review?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants