---
id: TASK-122
title: Canvas element reminder scheduling UX enhancements
status: Done
assignee: []
created_date: '2026-03-17 01:01'
labels:
  - canvas
  - rschedule
  - UX
dependencies: []
references:
  - website/canvas.html
priority: medium
---

## Description

<!-- SECTION:DESCRIPTION:BEGIN -->
Add multiple UX affordances for scheduling reminders on canvas shapes: floating calendar icon on selected shapes, right-click context menu option, drag-to-calendar compact mode, and email notifications on reminder creation.
<!-- SECTION:DESCRIPTION:END -->

## Acceptance Criteria
<!-- AC:BEGIN -->
- [ ] #1 Floating 📅 icon appears near top-right of selected shape
- [ ] #2 Clicking calendar icon toggles the reminder widget
- [ ] #3 Right-click context menu shows 'Schedule a reminder' option
- [ ] #4 Context menu option opens reminder widget for the target shape
- [ ] #5 Dragging a shape for 200ms+ shows compact calendar in bottom-right
- [ ] #6 Hovering over calendar days during drag highlights them
- [ ] #7 Releasing shape over a highlighted day creates the reminder
- [ ] #8 Reminder API call includes notifyEmail when user email is available
- [ ] #9 Email is fetched from EncryptID and cached for session
- [ ] #10 Feedback message indicates email notification when applicable
<!-- AC:END -->

## Final Summary

<!-- SECTION:FINAL_SUMMARY:BEGIN -->
Implemented 4 reminder scheduling UX enhancements in `website/canvas.html` (156 insertions):\n\n1. **Right-click context menu** — \"📅 Schedule a reminder\" option in shape context menu opens reminder widget\n2. **Email notification** — Fetches user email from EncryptID `/auth/api/account/security`, caches it, passes `notifyEmail` to rSchedule API, shows confirmation in feedback\n3. **Floating calendar icon** — 28px circular 📅 button positioned at selected shape's top-right corner, repositions on scroll/zoom, toggles widget on click\n4. **Drag-to-calendar** — Compact calendar appears after 200ms of shape drag, day cells highlight on hover, releasing over a day creates the reminder
<!-- SECTION:FINAL_SUMMARY:END -->
