Skip to content

Add STEM OPT evaluation calendar reminders (6, 12, 18, 24-month deadlines)#2

Draft
Copilot wants to merge 4 commits intomasterfrom
copilot/add-calendar-invites-feature
Draft

Add STEM OPT evaluation calendar reminders (6, 12, 18, 24-month deadlines)#2
Copilot wants to merge 4 commits intomasterfrom
copilot/add-calendar-invites-feature

Conversation

Copy link
Copy Markdown

Copilot AI commented Dec 16, 2025

STEM OPT students must submit Form I-983 evaluations at 6, 12, 18, and 24 months from their start date. Missing these deadlines causes visa compliance issues.

Changes

ICS Generation (src/utils/ics.ts)

  • Extended buildEvent() to support VALARM reminders
  • Added createStemEvaluationICS() that generates 4 calendar events with 3 reminders each (30d, 7d, 1d before)
  • Uses addMonths() for accurate calendar arithmetic

UI (src/App.vue)

  • Added "📋 STEM Evaluations" button (visible only when STEM extension enabled)
  • Downloads stem-opt-evaluations.ics on click
  • Updated help modal with STEM evaluation guidance

Tests (src/utils/__tests__/ics.spec.ts)

  • 7 tests covering event generation, date calculations, reminders, and edge cases (leap years, null inputs)

Example ICS Output

For STEM start date July 15, 2025:

BEGIN:VEVENT
UID:...
DTSTART:20260115T000000Z
SUMMARY:STEM OPT 6-Month Evaluation Due
DESCRIPTION:This is your STEM OPT 6-month evaluation deadline...
BEGIN:VALARM
  TRIGGER:-P30D
END:VALARM
...
END:VEVENT

Generates events for: Jan 15 2026 (6mo), Jul 15 2026 (12mo), Jan 15 2027 (18mo), Jul 15 2027 (24mo)

Screenshots

New Button
STEM Evaluations Button

Updated Help
Help Modal

Original prompt

This section details on the original issue you should resolve

<issue_title>[FEATURE] Add Calender Invites for 6,12,18 and 24 Month evaluation for STEM OPT</issue_title>
<issue_description>## Feature Description
As a student on STEM OPT, one should submit 6, 12, 18 and 24 month evaluation. Missing that deadlines is gonna cause a lot of problem.

Problem It Solves

It reminds students to submit their evaluations on time. So, that the visa statuses are intact.

Proposed Solution

Add calendar invites feature for 6,12,18,24 months based on the STEM OPT start date.

Alternatives Considered

N/A

Additional Context

N/A
</issue_description>

<agent_instructions>Feature: STEM OPT Evaluation Deadline Reminders
Context

Students on STEM OPT must submit evaluations at 6, 12, 18, and 24 months from their STEM OPT start date. Missing these deadlines can lead to serious visa compliance issues.

This feature adds automatic calendar reminders to ensure students submit evaluations on time.

Goal

Implement a feature that automatically creates calendar events and reminders for STEM OPT evaluation deadlines based on the user's STEM OPT start date.

Functional Requirements

Input

STEM OPT start date (ISO format: YYYY-MM-DD)

User timezone (default to system or UTC if not available)

User email (used for calendar integration)

Evaluation Milestones

6 months from start date

12 months from start date

18 months from start date

24 months from start date

Calendar Events
For each milestone:

Event title: STEM OPT Evaluation Due

Event description:

This is your STEM OPT {X}-month evaluation deadline.
Please submit Form I-983 evaluation to your DSO before the deadline.

Event date: milestone date

All-day event

Reminders

30 days before

7 days before

1 day before

Technical Instructions for Copilot Agent

  1. Date Calculation Logic

Use a reliable date library (for example date-fns, luxon, or Python datetime + relativedelta)

Month addition must be calendar-accurate (not hardcoded days)

Example:

start_date + relativedelta(months=6)

  1. Calendar Integration

Implement one of the following (prefer Google Calendar if multiple exist):

Google Calendar API

iCal .ics file generation for download

Native calendar integration if already present in project

If using Google Calendar:

OAuth2 consent required

Scopes: calendar.events

Create events programmatically per milestone

If using .ics:

Generate a single .ics file containing all 4 events

Allow user to download and import

  1. Data Model Changes

If persistence exists:

Store STEM OPT start date

Store generated milestone dates

Track whether calendar events were created

Avoid duplicating events if the feature is re-triggered.

  1. API / Service Layer

Create a dedicated service:

stemOptReminderService

Responsibilities:

Validate start date

Compute milestone dates

Create calendar events

Handle idempotency

  1. Error Handling

Invalid or future-distant dates should fail validation

Calendar API failures must return actionable errors

Partial success should be logged but surfaced to user

  1. UI Behavior (if applicable)

Input field for STEM OPT start date

Button: Add STEM OPT Evaluation Reminders

Success state confirms all 4 reminders were added

Failure state clearly explains what failed

  1. Testing Expectations

Unit tests for date calculation

Mock calendar service for integration tests

Edge cases:

Leap years

End-of-month start dates

Timezone differences

Non-Goals

Do not send emails directly

Do not handle visa document uploads

Do not auto-submit evaluations

Acceptance Criteria

Given a valid STEM OPT start date, exactly 4 calendar events are created

Each event has correct dates and reminders

No duplicate events on repeated execution

Clear user feedback on success or failure</agent_instructions>

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

@vercel
Copy link
Copy Markdown

vercel Bot commented Dec 16, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
tracker Ready Ready Preview, Comment Dec 16, 2025 7:36pm

Co-authored-by: adiagarwalrock <41755080+adiagarwalrock@users.noreply.github.com>
Co-authored-by: adiagarwalrock <41755080+adiagarwalrock@users.noreply.github.com>
Co-authored-by: adiagarwalrock <41755080+adiagarwalrock@users.noreply.github.com>
Copilot AI changed the title [WIP] Add calendar invites for STEM OPT evaluation reminders Add STEM OPT evaluation calendar reminders (6, 12, 18, 24-month deadlines) Dec 16, 2025
Copilot AI requested a review from adiagarwalrock December 16, 2025 19:41
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.

[FEATURE] Add Calender Invites for 6,12,18 and 24 Month evaluation for STEM OPT

2 participants