Skip to content

feat: add events calendar with CRUD, recurring events, and iCal sync (#271)#321

Merged
RUKAYAT-CODER merged 2 commits into
rinafcode:mainfrom
JoesWalker:feat/events-calendar-271
Apr 28, 2026
Merged

feat: add events calendar with CRUD, recurring events, and iCal sync (#271)#321
RUKAYAT-CODER merged 2 commits into
rinafcode:mainfrom
JoesWalker:feat/events-calendar-271

Conversation

@JoesWalker
Copy link
Copy Markdown
Contributor

closes #271

Description

Brief description of changes

Related Issue

Closes #

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update

Checklist

  • Code follows project style guidelines

  • Self-review completed

  • No console errors

  • Uses Lucide icons consistently

  • Responsive design implemented

  • Starknet best practices followed

    Summary

    Implements issue Events Calendar Integration #271 — Events Calendar Integration.

    Adds a full-featured events calendar to the TeachLink frontend with CRUD operations, recurring event support, iCal export, and Google Calendar sync.

    Changes

    • src/types/event.tsCalendarEvent type (id, title, start, end, recurring?, recurrenceRule?)
    • src/components/Calendar.tsxreact-big-calendar component with day/week/month views, date-fns localizer, recurring event expansion,
      slot/event click handlers
    • src/utils/icalUtils.ts — iCal (.ics) file generation (RFC 5545), file download helper, Google Calendar URL builder
    • src/pages/events/index.tsx — Calendar list view with Export iCal button and New Event link
    • src/pages/events/new.tsx — Create event form (title, start, end, recurring toggle, RRULE selector)
    • src/pages/events/[id].tsx — Edit/delete form with Google Calendar sync link
    • src/pages/events/__tests__/events.test.tsx — 18 tests covering render, CRUD form submissions, recurring toggle, iCal content, and Google
      Calendar URL

    Features

    • 📅 Month, week, and day calendar views
    • ✏️ Create, edit, and delete events via existing apiClient pattern
    • 🔁 Recurring events with daily/weekly/monthly RRULE support, expanded across a 26-week window
    • 📥 Export all events as a .ics file
    • 🔗 "Sync with Google Calendar" deep-link on each event
    • ✅ 18/18 tests passing

    Testing

    npx vitest run src/pages/events/tests/events.test.tsx

    18 passed

@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented Apr 28, 2026

@JoesWalker Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@RUKAYAT-CODER RUKAYAT-CODER merged commit c2c5cf9 into rinafcode:main Apr 28, 2026
1 of 2 checks passed
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.

Events Calendar Integration

2 participants