nextcloud / nextcloud/calendar

Support FullCalendar “Background Events” to visualize availability, working hours and blocked time

Open
#7,419 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. to triage enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.