nextcloud / nextcloud/calendar
Support FullCalendar “Background Events” to visualize availability, working hours and blocked time
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 1.2k
- Forks
- 332
- Avg merge
- 16h 13m
- Merged PRs (30d)
- 137
Description
Is your feature request related to a problem? Please describe.
When scheduling in the day/week views, it is hard to visually distinguish bookable time from non-bookable time (e.g., outside working hours, lunch breaks, maintenance windows, public holidays, school breaks). Users currently have to infer availability from regular events or mentally keep rules in mind. This makes it difficult to plan quickly, avoid mistakes, and understand constraints at a glance—especially in multi-user or team scenarios.
Describe the solution you'd like
Add support for FullCalendar Background Events to render availability/constraints as subtle background blocks in the calendar UI. Typical examples:
- Working hours shown as “available” background; everything outside is dimmed.
- Out-of-office / non-bookable slots (e.g., lunch, maintenance) rendered as blocked background areas.
- Organization-wide constraints (e.g., holidays) applied as background for all viewers with access.
Key capabilities
- Background events should be read-only overlays (non-interactive by default) that do not behave like normal events.
- Support all-day and timed ranges, recurrence (RRULE), and time zones.
- Layering/priority: backgrounds render behind normal events, with a clear visual hierarchy.
- Per-source styling (e.g., “available”, “blocked”, “org-holiday”), customizable via theme classes.
- Honor permissions: only background sources the user is allowed to see should be rendered.
Describe alternatives you've considered
- Create “fake” all-day events to indicate non-bookable times → clutters calendars, pollutes ICS, users can accidentally edit/delete, no subtle background.
- Separate “Availability” calendars with normal events → still foreground events; confusing interactions; no subtle overlay effect.
- Custom CSS to gray out off-hours → not granular enough and not data-driven (cannot show specific exceptions, holidays, etc.).
Additional context
Settings → Calendar → Availability overlays
- Show working hours as background
- Show blocked time from selected calendars as background
- Source picker: choose one or more calendars to treat as “background providers”
- Style mapping (optional): “Available” vs “Blocked” vs “Info”
Visuals
- Use subtle backgrounds (no strong contrast), respect dark mode/high-contrast themes.
- Tooltip on hover may display a short label (e.g., “Out of office” or “Maintenance window”), but background blocks remain non-interactive.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the calendar UI and the Settings → Calendar → Availability overlays area, then review how background event sources, styling, recurrence, time zones, and permissions should fit together. Done means read-only availability and blocked-time overlays support the listed ranges and sources, render behind normal events, and respect themes and access permissions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100