A feature-rich MagicMirror² module for seamlessly managing, viewing and editing multiple Nextcloud calendars directly from your smart mirror.
- Connect to multiple Nextcloud calendars via WebDAV.
- Intuitive UI with day/month views.
- Fully touch-friendly with on-screen keyboard (
simple-keyboard) support for creating and editing events. - Highlight specific holidays gracefully natively.
- Responsive and modern Apple Calendar style UI.
Navigate to your MagicMirror's modules folder and clone this repository. Note that the folder should typically match the module name.
cd ~/MagicMirror/modules
git clone https://github.com/ndp15/MMM-Nextcloud-Calendar.git
cd MMM-Nextcloud-Calendar
npm installAdd the module to your MagicMirror's config/config.js file:
{
module: "MMM-Nextcloud-Calendar",
position: "bottom_center",
config: {
refreshInterval: 60000, // 1 minute
calendars: [
{
name: "Personal",
url: "https://your-nextcloud.com/remote.php/dav/calendars/username/personal",
user: "username",
pass: "app-password", // Strongly recommended to use app passwords
color: "#667eea"
}
]
}
}| Option | Default | Description |
|---|---|---|
refreshInterval |
60000 |
How often the calendar data is fetched from Nextcloud (in milliseconds). Default is 60000 (1 minute). |
calendars |
[] |
An array of calendar configuration objects. See the section below for details on how to set up each source. |
Each object within the calendars array accepts the following attributes:
| Property | Example | Required? | Description |
|---|---|---|---|
name |
"Personal" |
Yes | A label distinguishing the calendar within the interface. |
url |
"https://.../personal" |
Yes | The WebDAV URL linking strictly to your .ics calendar source. |
user |
"username" |
Yes | The internal or connected Nextcloud username assigned to authenticate. |
pass |
"app-password" |
Yes | The password (using App Passwords via Nextcloud Security settings is strongly recommended). |
color |
"#667eea" |
No | Associates events generated by this specific calendar with a distinct hex color representation. |
These are installed automatically by running npm install.
MIT License

