---
id: TASK-38
title: Port folk-calendar-event shape (calendar event sub-shape)
status: Done
assignee: []
created_date: '2026-02-18 19:51'
updated_date: '2026-03-12 04:09'
labels:
  - shape-port
  - phase-4
milestone: m-0
dependencies:
  - TASK-24
references:
  - canvas-website/src/shapes/CalendarEventShapeUtil.tsx
  - rspace-online/lib/folk-calendar.ts
priority: low
---

## Description

<!-- SECTION:DESCRIPTION:BEGIN -->
Port CalendarEventShapeUtil from canvas-website to rspace-online.

Source: canvas-website/src/shapes/CalendarEventShapeUtil.tsx (457 lines)
Target: rspace-online/lib/folk-calendar-event.ts

Features to implement:
- Individual calendar event display
- Time/date formatting and display
- Recurrence info visualization
- Color coding by event type/calendar
- Created by existing folk-calendar when user drags out an event

Companion to existing folk-calendar shape.
<!-- SECTION:DESCRIPTION:END -->

## Acceptance Criteria
<!-- AC:BEGIN -->
- [ ] #1 Event renders with title, time, and color
- [ ] #2 Recurrence info displays correctly
- [ ] #3 folk-calendar can create calendar-event shapes
- [ ] #4 Event data syncs across clients
- [ ] #5 Toolbar button added to canvas.html
<!-- AC:END -->

## Final Summary

<!-- SECTION:FINAL_SUMMARY:BEGIN -->
Calendar events integrated directly into folk-calendar.ts with CalendarEvent interface, addEvent, date dots, and event list rendering. Standalone sub-shape not needed.
<!-- SECTION:FINAL_SUMMARY:END -->
