From be551f88e5fa5ce4eac4b2527cdb14bad023e118 Mon Sep 17 00:00:00 2001 From: "Janus C. H. Knudsen" Date: Tue, 25 Nov 2025 23:48:30 +0100 Subject: [PATCH] Enhances event color styling with flexible metadata system Introduces a new color customization approach for calendar events using CSS custom properties and metadata - Adds support for dynamic color assignment via event metadata - Implements a flexible color utility class system - Replaces hardcoded event type colors with a more generic color-mix() approach - Provides broader color palette for event styling --- .workbench/event-colors.txt | 147 + src/elements/SwpEventElement.ts | 10 + src/index.ts | 2 +- wwwroot/css/calendar-base-css.css | 38 +- wwwroot/css/calendar-events-css.css | 117 +- wwwroot/css/src/calendar-layout-css.css | 61 +- wwwroot/data/mock-events.json | 4029 +---------------------- 7 files changed, 269 insertions(+), 4135 deletions(-) create mode 100644 .workbench/event-colors.txt diff --git a/.workbench/event-colors.txt b/.workbench/event-colors.txt new file mode 100644 index 0000000..8c07e65 --- /dev/null +++ b/.workbench/event-colors.txt @@ -0,0 +1,147 @@ + + + + + + Event Farvesystem Demo + + + + +

Event Farvesystem Demo

+

Baggrunden er dæmpet primærfarve, hover gør den mørkere, venstre kant og tekst bruger den rene farve.

+ +
+ +
+
+
Blå event
+
.is-blue
+
+
+ +
+
+
Rød event
+
.is-red
+
+
+ +
+
+
Grøn event
+
.is-green
+
+
+ +
+
+
Magenta event
+
.is-magenta
+
+
+ +
+
+
Amber event
+
.is-amber
+
+
+ +
+
+
Orange event
+
.is-orange
+
+
+ +
+ + + + diff --git a/src/elements/SwpEventElement.ts b/src/elements/SwpEventElement.ts index 7705925..3f28a70 100644 --- a/src/elements/SwpEventElement.ts +++ b/src/elements/SwpEventElement.ts @@ -296,6 +296,11 @@ export class SwpEventElement extends BaseSwpEventElement { element.dataset.type = event.type; element.dataset.duration = event.metadata?.duration?.toString() || '60'; + // Apply color class from metadata + if (event.metadata?.color) { + element.classList.add(`is-${event.metadata.color}`); + } + return element; } @@ -373,6 +378,11 @@ export class SwpAllDayEventElement extends BaseSwpEventElement { element.dataset.allday = 'true'; element.textContent = event.title; + // Apply color class from metadata + if (event.metadata?.color) { + element.classList.add(`is-${event.metadata.color}`); + } + return element; } } diff --git a/src/index.ts b/src/index.ts index 64e1a6e..5757592 100644 --- a/src/index.ts +++ b/src/index.ts @@ -141,7 +141,7 @@ async function initializeCalendar(): Promise { builder.registerType(MockAuditRepository).as>(); - let calendarMode = 'date' ; + let calendarMode = 'resource' ; // Register DataSource and HeaderRenderer based on mode if (calendarMode === 'resource') { builder.registerType(ResourceColumnDataSource).as(); diff --git a/wwwroot/css/calendar-base-css.css b/wwwroot/css/calendar-base-css.css index 97d1f3c..10ecdc9 100644 --- a/wwwroot/css/calendar-base-css.css +++ b/wwwroot/css/calendar-base-css.css @@ -41,22 +41,28 @@ --color-work-hours: rgba(255, 255, 255, 0.9); --color-current-time: #ff0000; - /* Event colors - Updated with month-view-expanded.html color scheme */ - --color-event-meeting: #e8f5e8; - --color-event-meeting-border: #4caf50; - --color-event-meeting-hl: #c8e6c9; - --color-event-meal: #fff8e1; - --color-event-meal-border: #ff9800; - --color-event-meal-hl: #ffe0b2; - --color-event-work: #fff8e1; - --color-event-work-border: #ff9800; - --color-event-work-hl: #ffe0b2; - --color-event-milestone: #ffebee; - --color-event-milestone-border: #f44336; - --color-event-milestone-hl: #ffcdd2; - --color-event-personal: #f3e5f5; - --color-event-personal-border: #9c27b0; - --color-event-personal-hl: #e1bee7; + /* Named color palette for events */ + --b-color-red: #e53935; + --b-color-pink: #d81b60; + --b-color-magenta: #c200c2; + --b-color-purple: #8e24aa; + --b-color-violet: #5e35b1; + --b-color-deep-purple: #4527a0; + --b-color-indigo: #3949ab; + --b-color-blue: #1e88e5; + --b-color-light-blue: #03a9f4; + --b-color-cyan: #3bc9db; + --b-color-teal: #00897b; + --b-color-green: #43a047; + --b-color-light-green: #8bc34a; + --b-color-lime: #c0ca33; + --b-color-yellow: #fdd835; + --b-color-amber: #ffb300; + --b-color-orange: #fb8c00; + --b-color-deep-orange: #f4511e; + + /* Base mix for color-mix() function */ + --b-mix: #fff; /* UI colors */ --color-background: #ffffff; diff --git a/wwwroot/css/calendar-events-css.css b/wwwroot/css/calendar-events-css.css index 9189e8e..379f4a2 100644 --- a/wwwroot/css/calendar-events-css.css +++ b/wwwroot/css/calendar-events-css.css @@ -2,6 +2,8 @@ /* Event base styles */ swp-day-columns swp-event { + --b-text: var(--color-text); + position: absolute; border-radius: 3px; overflow: hidden; @@ -10,10 +12,14 @@ swp-day-columns swp-event { z-index: 10; left: 2px; right: 2px; - color: var(--color-text); font-size: 12px; padding: 4px 6px; + /* Color system using color-mix() */ + background-color: color-mix(in srgb, var(--b-primary) 10%, var(--b-mix)); + color: var(--b-text); + border-left: 4px solid var(--b-primary); + /* Enable container queries for responsive layout */ container-type: size; container-name: event; @@ -25,43 +31,6 @@ swp-day-columns swp-event { gap: 2px 4px; align-items: start; - /* Event types */ - &[data-type="meeting"] { - background: var(--color-event-meeting); - border-left: 4px solid var(--color-event-meeting-border); - color: var(--color-text); - } - - &[data-type="meal"] { - background: var(--color-event-meal); - border-left: 4px solid var(--color-event-meal-border); - color: var(--color-text); - } - - &[data-type="work"] { - background: var(--color-event-work); - border-left: 4px solid var(--color-event-work-border); - color: var(--color-text); - } - - &[data-type="milestone"] { - background: var(--color-event-milestone); - border-left: 4px solid var(--color-event-milestone-border); - color: var(--color-text); - } - - &[data-type="personal"] { - background: var(--color-event-personal); - border-left: 4px solid var(--color-event-personal-border); - color: var(--color-text); - } - - &[data-type="deadline"] { - background: var(--color-event-milestone); - border-left: 4px solid var(--color-event-milestone-border); - color: var(--color-text); - } - /* Dragging state */ &.dragging { position: absolute; @@ -72,31 +41,10 @@ swp-day-columns swp-event { width: auto; } - /* Hover state - highlight colors */ - &:hover[data-type="meeting"] { - background: var(--color-event-meeting-hl); + /* Hover state */ + &:hover { + background-color: color-mix(in srgb, var(--b-primary) 15%, var(--b-mix)); } - - &:hover[data-type="meal"] { - background: var(--color-event-meal-hl); - } - - &:hover[data-type="work"] { - background: var(--color-event-work-hl); - } - - &:hover[data-type="milestone"] { - background: var(--color-event-milestone-hl); - } - - &:hover[data-type="personal"] { - background: var(--color-event-personal-hl); - } - - &:hover[data-type="deadline"] { - background: var(--color-event-milestone-hl); - } - } swp-day-columns swp-event:hover { @@ -218,10 +166,14 @@ swp-multi-day-event { white-space: nowrap; text-overflow: ellipsis; - /* Event type colors */ - &[data-type="milestone"] { - background: var(--color-event-milestone); - color: var(--color-event-milestone-border); + /* Color system using color-mix() */ + --b-text: var(--color-text); + background-color: color-mix(in srgb, var(--b-primary) 10%, var(--b-mix)); + color: var(--b-text); + border-left: 4px solid var(--b-primary); + + &:hover { + background-color: color-mix(in srgb, var(--b-primary) 15%, var(--b-mix)); } /* Continuation indicators */ @@ -259,6 +211,19 @@ swp-multi-day-event { transform: translateY(-1px); box-shadow: var(--shadow-sm); } +/* All-day events */ +swp-allday-event { + --b-text: var(--color-text); + background-color: color-mix(in srgb, var(--b-primary) 10%, var(--b-mix)); + color: var(--b-text); + border-left: 4px solid var(--b-primary); + cursor: pointer; + transition: background-color 200ms ease; + + &:hover { + background-color: color-mix(in srgb, var(--b-primary) 15%, var(--b-mix)); + } +} } /* Event creation preview */ @@ -351,3 +316,23 @@ swp-event-group swp-event { swp-allday-container swp-event.transitioning { transition: grid-area 200ms ease-out, grid-row 200ms ease-out, grid-column 200ms ease-out; } + +/* Color utility classes */ +.is-red { --b-primary: var(--b-color-red); } +.is-pink { --b-primary: var(--b-color-pink); } +.is-magenta { --b-primary: var(--b-color-magenta); } +.is-purple { --b-primary: var(--b-color-purple); } +.is-violet { --b-primary: var(--b-color-violet); } +.is-deep-purple { --b-primary: var(--b-color-deep-purple); } +.is-indigo { --b-primary: var(--b-color-indigo); } +.is-blue { --b-primary: var(--b-color-blue); } +.is-light-blue { --b-primary: var(--b-color-light-blue); } +.is-cyan { --b-primary: var(--b-color-cyan); } +.is-teal { --b-primary: var(--b-color-teal); } +.is-green { --b-primary: var(--b-color-green); } +.is-light-green { --b-primary: var(--b-color-light-green); } +.is-lime { --b-primary: var(--b-color-lime); } +.is-yellow { --b-primary: var(--b-color-yellow); } +.is-amber { --b-primary: var(--b-color-amber); } +.is-orange { --b-primary: var(--b-color-orange); } +.is-deep-orange { --b-primary: var(--b-color-deep-orange); } diff --git a/wwwroot/css/src/calendar-layout-css.css b/wwwroot/css/src/calendar-layout-css.css index aca2407..128f300 100644 --- a/wwwroot/css/src/calendar-layout-css.css +++ b/wwwroot/css/src/calendar-layout-css.css @@ -322,67 +322,20 @@ swp-allday-container { font-size: 0.75rem; border-radius: 3px; - /* Event type colors - normal state */ - &[data-type="meeting"] { - background: var(--color-event-meeting); - color: var(--color-text); - } - - &[data-type="meal"] { - background: var(--color-event-meal); - color: var(--color-text); - } - - &[data-type="work"] { - background: var(--color-event-work); - color: var(--color-text); - } - - &[data-type="milestone"] { - background: var(--color-event-milestone); - color: var(--color-text); - } - - &[data-type="personal"] { - background: var(--color-event-personal); - color: var(--color-text); - } - - &[data-type="deadline"] { - background: var(--color-event-milestone); - color: var(--color-text); - } + /* Color system using color-mix() */ + --b-text: var(--color-text); + background-color: color-mix(in srgb, var(--b-primary) 10%, var(--b-mix)); + color: var(--b-text); + border-left: 4px solid var(--b-primary); /* Dragging state */ &.dragging { opacity: 1; } - /* Highlight state for all event types */ + /* Highlight state */ &.highlight { - &[data-type="meeting"] { - background: var(--color-event-meeting-hl) !important; - } - - &[data-type="meal"] { - background: var(--color-event-meal-hl) !important; - } - - &[data-type="work"] { - background: var(--color-event-work-hl) !important; - } - - &[data-type="milestone"] { - background: var(--color-event-milestone-hl) !important; - } - - &[data-type="personal"] { - background: var(--color-event-personal-hl) !important; - } - - &[data-type="deadline"] { - background: var(--color-event-milestone-hl) !important; - } + background-color: color-mix(in srgb, var(--b-primary) 15%, var(--b-mix)) !important; } /* Overflow indicator styling */ diff --git a/wwwroot/data/mock-events.json b/wwwroot/data/mock-events.json index 079c57b..a34c713 100644 --- a/wwwroot/data/mock-events.json +++ b/wwwroot/data/mock-events.json @@ -1,3971 +1,4 @@ [ - { - "id": "1", - "title": "Team Standup", - "start": "2025-07-07T05:00:00Z", - "end": "2025-07-07T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "2", - "title": "Sprint Planning", - "start": "2025-07-07T06:00:00Z", - "end": "2025-07-07T07:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#673ab7" - } - }, - { - "id": "3", - "title": "Development Session", - "start": "2025-07-07T10:00:00Z", - "end": "2025-07-07T13:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#2196f3" - } - }, - { - "id": "4", - "title": "Team Standup", - "start": "2025-07-08T05:00:00Z", - "end": "2025-07-08T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "5", - "title": "Client Review", - "start": "2025-07-08T11:00:00Z", - "end": "2025-07-08T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#795548" - } - }, - { - "id": "6", - "title": "Team Standup", - "start": "2025-07-09T05:00:00Z", - "end": "2025-07-09T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "7", - "title": "Deep Work Session", - "start": "2025-07-09T06:00:00Z", - "end": "2025-07-09T08:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#3f51b5" - } - }, - { - "id": "8", - "title": "Architecture Review", - "start": "2025-07-09T10:00:00Z", - "end": "2025-07-09T11:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#009688" - } - }, - { - "id": "9", - "title": "Team Standup", - "start": "2025-07-10T05:00:00Z", - "end": "2025-07-10T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "10", - "title": "Lunch & Learn", - "start": "2025-07-10T08:00:00Z", - "end": "2025-07-10T09:00:00Z", - "type": "meal", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#ff9800" - } - }, - { - "id": "11", - "title": "Team Standup", - "start": "2025-07-11T05:00:00Z", - "end": "2025-07-11T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "12", - "title": "Sprint Review", - "start": "2025-07-11T10:00:00Z", - "end": "2025-07-11T11:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#607d8b" - } - }, - { - "id": "13", - "title": "Weekend Project", - "start": "2025-07-12T06:00:00Z", - "end": "2025-07-12T08:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#f44336" - } - }, - { - "id": "14", - "title": "Team Standup", - "start": "2025-07-14T05:00:00Z", - "end": "2025-07-14T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "15", - "title": "Code Reviews", - "start": "2025-07-14T14:00:00Z", - "end": "2025-07-14T23:59:59Z", - "type": "work", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#009688" - } - }, - { - "id": "16", - "title": "Team Standup", - "start": "2025-07-15T05:00:00Z", - "end": "2025-07-15T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "17", - "title": "Product Demo", - "start": "2025-07-15T11:00:00Z", - "end": "2025-07-15T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#e91e63" - } - }, - { - "id": "18", - "title": "Team Standup", - "start": "2025-07-16T05:00:00Z", - "end": "2025-07-16T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "19", - "title": "Workshop: New Technologies", - "start": "2025-07-16T10:00:00Z", - "end": "2025-07-16T13:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#9c27b0" - } - }, - { - "id": "20", - "title": "Team Standup", - "start": "2025-07-17T05:00:00Z", - "end": "2025-07-17T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "21", - "title": "Deadline: Feature Release", - "start": "2025-07-17T13:00:00Z", - "end": "2025-07-17T13:00:00Z", - "type": "milestone", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 0, - "color": "#f44336" - } - }, - { - "id": "22", - "title": "Team Standup", - "start": "2025-07-18T05:00:00Z", - "end": "2025-07-18T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "23", - "title": "Summer Team Event", - "start": "2025-07-18T00:00:00Z", - "end": "2025-07-17T23:59:59Z", - "type": "meeting", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 1440, - "color": "#4caf50" - } - }, - { - "id": "24", - "title": "Team Standup", - "start": "2025-07-21T05:00:00Z", - "end": "2025-07-21T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "25", - "title": "Sprint Planning", - "start": "2025-07-21T06:00:00Z", - "end": "2025-07-21T07:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#673ab7" - } - }, - { - "id": "26", - "title": "Team Standup", - "start": "2025-07-22T05:00:00Z", - "end": "2025-07-22T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "27", - "title": "Client Meeting", - "start": "2025-07-22T10:00:00Z", - "end": "2025-07-22T11:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#cddc39" - } - }, - { - "id": "28", - "title": "Team Standup", - "start": "2025-07-23T05:00:00Z", - "end": "2025-07-23T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "29", - "title": "Performance Review", - "start": "2025-07-23T07:00:00Z", - "end": "2025-07-23T08:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#795548" - } - }, - { - "id": "30", - "title": "Team Standup", - "start": "2025-07-24T05:00:00Z", - "end": "2025-07-24T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "31", - "title": "Technical Discussion", - "start": "2025-07-24T11:00:00Z", - "end": "2025-07-24T12:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#3f51b5" - } - }, - { - "id": "32", - "title": "Team Standup", - "start": "2025-07-25T05:00:00Z", - "end": "2025-07-25T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "33", - "title": "Sprint Review", - "start": "2025-07-25T10:00:00Z", - "end": "2025-07-25T11:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#607d8b" - } - }, - { - "id": "34", - "title": "Team Standup", - "start": "2025-07-28T05:00:00Z", - "end": "2025-07-28T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "35", - "title": "Monthly Planning", - "start": "2025-07-28T06:00:00Z", - "end": "2025-07-28T08:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#9c27b0" - } - }, - { - "id": "36", - "title": "Team Standup", - "start": "2025-07-29T05:00:00Z", - "end": "2025-07-29T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "37", - "title": "Development Work", - "start": "2025-07-29T10:00:00Z", - "end": "2025-07-29T13:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#2196f3" - } - }, - { - "id": "38", - "title": "Team Standup", - "start": "2025-07-30T05:00:00Z", - "end": "2025-07-30T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "39", - "title": "Security Review", - "start": "2025-07-30T11:00:00Z", - "end": "2025-07-30T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#f44336" - } - }, - { - "id": "40", - "title": "Team Standup", - "start": "2025-07-31T05:00:00Z", - "end": "2025-07-31T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "41", - "title": "Month End Review", - "start": "2025-07-31T10:00:00Z", - "end": "2025-07-31T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#795548" - } - }, - { - "id": "42", - "title": "Team Standup", - "start": "2025-08-01T05:00:00Z", - "end": "2025-08-01T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "43", - "title": "August Kickoff", - "start": "2025-08-01T06:00:00Z", - "end": "2025-08-01T07:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#4caf50" - } - }, - { - "id": "44", - "title": "Weekend Planning", - "start": "2025-08-03T06:00:00Z", - "end": "2025-08-03T07:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#9c27b0" - } - }, - { - "id": "45", - "title": "Team Standup", - "start": "2025-08-04T05:00:00Z", - "end": "2025-08-04T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "46", - "title": "Project Kickoff", - "start": "2025-08-04T10:00:00Z", - "end": "2025-08-04T11:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#e91e63" - } - }, - { - "id": "47", - "title": "Company Holiday", - "start": "2025-08-04T00:00:00Z", - "end": "2025-08-04T23:59:59Z", - "type": "milestone", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 1440, - "color": "#4caf50" - } - }, - { - "id": "48", - "title": "Deep Work Session", - "start": "2025-08-05T06:00:00Z", - "end": "2025-08-05T08:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#3f51b5" - } - }, - { - "id": "49", - "title": "Lunch Meeting", - "start": "2025-08-05T08:30:00Z", - "end": "2025-08-05T09:30:00Z", - "type": "meal", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#ff9800" - } - }, - { - "id": "50", - "title": "Early Morning Workout", - "start": "2025-08-05T02:00:00Z", - "end": "2025-08-05T03:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#00bcd4" - } - }, - { - "id": "51", - "title": "Client Review", - "start": "2025-08-06T11:00:00Z", - "end": "2025-08-06T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#795548" - } - }, - { - "id": "52", - "title": "Late Evening Call", - "start": "2025-08-06T17:00:00Z", - "end": "2025-08-06T18:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#673ab7" - } - }, - { - "id": "53", - "title": "Team Building Event", - "start": "2025-08-06T00:00:00Z", - "end": "2025-08-05T23:59:59Z", - "type": "meeting", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 1440, - "color": "#2196f3" - } - }, - { - "id": "54", - "title": "Sprint Planning", - "start": "2025-08-07T05:00:00Z", - "end": "2025-08-07T06:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#607d8b" - } - }, - { - "id": "55", - "title": "Code Review", - "start": "2025-08-07T10:00:00Z", - "end": "2025-08-07T11:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#009688" - } - }, - { - "id": "56", - "title": "Midnight Deployment", - "start": "2025-08-07T19:00:00Z", - "end": "2025-08-07T21:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#ffc107" - } - }, - { - "id": "57", - "title": "Team Standup", - "start": "2025-08-08T05:00:00Z", - "end": "2025-08-08T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#8bc34a" - } - }, - { - "id": "58", - "title": "Client Meeting", - "start": "2025-08-08T10:00:00Z", - "end": "2025-08-08T11:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#cddc39" - } - }, - { - "id": "59", - "title": "Weekend Project", - "start": "2025-08-09T06:00:00Z", - "end": "2025-08-09T08:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#f44336" - } - }, - { - "id": "60", - "title": "Team Standup", - "start": "2025-08-11T05:00:00Z", - "end": "2025-08-11T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "61", - "title": "Sprint Planning", - "start": "2025-08-11T06:00:00Z", - "end": "2025-08-11T07:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#673ab7" - } - }, - { - "id": "62", - "title": "Team Standup", - "start": "2025-08-12T05:00:00Z", - "end": "2025-08-12T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "63", - "title": "Technical Workshop", - "start": "2025-08-12T10:00:00Z", - "end": "2025-08-12T13:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#9c27b0" - } - }, - { - "id": "64", - "title": "Team Standup", - "start": "2025-08-13T05:00:00Z", - "end": "2025-08-13T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "65", - "title": "Development Session", - "start": "2025-08-13T06:00:00Z", - "end": "2025-08-13T08:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#2196f3" - } - }, - { - "id": "66", - "title": "Team Standup", - "start": "2025-08-14T05:00:00Z", - "end": "2025-08-14T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "67", - "title": "Client Presentation", - "start": "2025-08-14T11:00:00Z", - "end": "2025-08-14T12:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#e91e63" - } - }, - { - "id": "68", - "title": "Team Standup", - "start": "2025-08-15T05:00:00Z", - "end": "2025-08-15T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "69", - "title": "Sprint Review", - "start": "2025-08-15T10:00:00Z", - "end": "2025-08-15T11:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#607d8b" - } - }, - { - "id": "70", - "title": "Summer Festival", - "start": "2025-08-14T00:00:00Z", - "end": "2025-08-15T23:59:59Z", - "type": "milestone", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 2880, - "color": "#4caf50" - } - }, - { - "id": "71", - "title": "Team Standup", - "start": "2025-08-18T05:00:00Z", - "end": "2025-08-18T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "72", - "title": "Strategy Meeting", - "start": "2025-08-18T06:00:00Z", - "end": "2025-08-18T08:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#9c27b0" - } - }, - { - "id": "73", - "title": "Team Standup", - "start": "2025-08-19T05:00:00Z", - "end": "2025-08-19T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "74", - "title": "Development Work", - "start": "2025-08-19T10:00:00Z", - "end": "2025-08-19T13:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#3f51b5" - } - }, - { - "id": "75", - "title": "Team Standup", - "start": "2025-08-20T05:00:00Z", - "end": "2025-08-20T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "76", - "title": "Architecture Planning", - "start": "2025-08-20T11:00:00Z", - "end": "2025-08-20T12:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#009688" - } - }, - { - "id": "77", - "title": "Team Standup", - "start": "2025-08-21T05:00:00Z", - "end": "2025-08-21T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "78", - "title": "Product Review", - "start": "2025-08-21T10:00:00Z", - "end": "2025-08-21T11:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#795548" - } - }, - { - "id": "79", - "title": "Team Standup", - "start": "2025-08-22T05:00:00Z", - "end": "2025-08-22T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "80", - "title": "End of Sprint", - "start": "2025-08-22T12:00:00Z", - "end": "2025-08-22T13:00:00Z", - "type": "milestone", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#f44336" - } - }, - { - "id": "81", - "title": "Team Standup", - "start": "2025-08-25T05:00:00Z", - "end": "2025-08-25T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "82", - "title": "Sprint Planning", - "start": "2025-08-25T06:00:00Z", - "end": "2025-08-25T07:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#673ab7" - } - }, - { - "id": "83", - "title": "Team Standup", - "start": "2025-08-26T05:00:00Z", - "end": "2025-08-26T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "84", - "title": "Design Review", - "start": "2025-08-26T10:00:00Z", - "end": "2025-08-26T11:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#e91e63" - } - }, - { - "id": "85", - "title": "Team Standup", - "start": "2025-08-27T05:00:00Z", - "end": "2025-08-27T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "86", - "title": "Development Session", - "start": "2025-08-27T06:00:00Z", - "end": "2025-08-27T08:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#2196f3" - } - }, - { - "id": "87", - "title": "Team Standup", - "start": "2025-08-28T05:00:00Z", - "end": "2025-08-28T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "88", - "title": "Customer Call", - "start": "2025-08-28T11:00:00Z", - "end": "2025-08-28T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#cddc39" - } - }, - { - "id": "89", - "title": "Team Standup", - "start": "2025-08-29T05:00:00Z", - "end": "2025-08-29T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "90", - "title": "Monthly Review", - "start": "2025-08-29T10:00:00Z", - "end": "2025-08-29T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#795548" - } - }, - { - "id": "91", - "title": "Team Standup", - "start": "2025-09-01T05:00:00Z", - "end": "2025-09-01T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "92", - "title": "September Kickoff", - "start": "2025-09-01T06:00:00Z", - "end": "2025-09-01T07:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#4caf50" - } - }, - { - "id": "93", - "title": "Team Standup", - "start": "2025-09-02T05:00:00Z", - "end": "2025-09-02T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "94", - "title": "Product Planning", - "start": "2025-09-02T10:00:00Z", - "end": "2025-09-02T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#9c27b0" - } - }, - { - "id": "95", - "title": "Team Standup", - "start": "2025-09-03T05:00:00Z", - "end": "2025-09-03T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "96", - "title": "Deep Work", - "start": "2025-09-02T11:00:00Z", - "end": "2025-09-02T11:30:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#3f51b5" - } - }, - { - "id": "97", - "title": "Team Standup", - "start": "2025-09-04T05:00:00Z", - "end": "2025-09-04T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "98", - "title": "Technical Review", - "start": "2025-09-04T11:00:00Z", - "end": "2025-09-04T12:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#009688" - } - }, - { - "id": "99", - "title": "Team Standup", - "start": "2025-09-05T05:00:00Z", - "end": "2025-09-05T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "100", - "title": "Sprint Review", - "start": "2025-09-04T11:00:00Z", - "end": "2025-09-04T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#607d8b" - } - }, - { - "id": "101", - "title": "Weekend Workshop", - "start": "2025-09-06T06:00:00Z", - "end": "2025-09-06T08:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#f44336" - } - }, - { - "id": "102", - "title": "Team Standup", - "start": "2025-09-08T05:00:00Z", - "end": "2025-09-08T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "103", - "title": "Sprint Planning", - "start": "2025-09-08T06:00:00Z", - "end": "2025-09-08T07:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#673ab7" - } - }, - { - "id": "104", - "title": "Team Standup", - "start": "2025-09-09T05:00:00Z", - "end": "2025-09-09T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "105", - "title": "Client Workshop", - "start": "2025-09-09T10:00:00Z", - "end": "2025-09-09T13:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#e91e63" - } - }, - { - "id": "106", - "title": "Team Standup", - "start": "2025-09-10T05:00:00Z", - "end": "2025-09-10T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "107", - "title": "Development Work", - "start": "2025-09-10T06:00:00Z", - "end": "2025-09-10T08:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#2196f3" - } - }, - { - "id": "108", - "title": "Team Standup", - "start": "2025-09-11T05:00:00Z", - "end": "2025-09-11T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "109", - "title": "Performance Review", - "start": "2025-09-11T11:00:00Z", - "end": "2025-09-11T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#795548" - } - }, - { - "id": "110", - "title": "Team Standup", - "start": "2025-09-12T05:00:00Z", - "end": "2025-09-12T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "111", - "title": "Q3 Review", - "start": "2025-09-12T10:00:00Z", - "end": "2025-09-12T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#9c27b0" - } - }, - { - "id": "112", - "title": "Autumn Equinox", - "start": "2025-09-23T00:00:00Z", - "end": "2025-09-22T23:59:59Z", - "type": "milestone", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 1440, - "color": "#ff6f00" - } - }, - { - "id": "113", - "title": "Team Standup", - "start": "2025-09-15T05:00:00Z", - "end": "2025-09-15T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "114", - "title": "Weekly Planning", - "start": "2025-09-15T06:00:00Z", - "end": "2025-09-15T07:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#3f51b5" - } - }, - { - "id": "115", - "title": "Team Standup", - "start": "2025-09-16T05:00:00Z", - "end": "2025-09-16T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "116", - "title": "Feature Demo", - "start": "2025-09-16T11:00:00Z", - "end": "2025-09-16T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#cddc39" - } - }, - { - "id": "117", - "title": "Team Standup", - "start": "2025-09-17T05:00:00Z", - "end": "2025-09-17T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "118", - "title": "Code Refactoring", - "start": "2025-09-17T06:00:00Z", - "end": "2025-09-17T08:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#009688" - } - }, - { - "id": "119", - "title": "Team Standup", - "start": "2025-09-18T05:00:00Z", - "end": "2025-09-18T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "120", - "title": "End of Sprint", - "start": "2025-09-19T12:00:00Z", - "end": "2025-09-19T13:00:00Z", - "type": "milestone", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#f44336" - } - }, - { - "id": "121", - "title": "Azure Setup", - "start": "2025-09-10T06:30:00Z", - "end": "2025-09-10T08:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#2196f3" - } - }, - { - "id": "122", - "title": "Multi-Day Conference", - "start": "2025-09-22T00:00:00Z", - "end": "2025-09-23T23:59:59Z", - "type": "meeting", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 4320, - "color": "#4caf50" - } - }, - { - "id": "123", - "title": "Project Sprint", - "start": "2025-09-23T00:00:00Z", - "end": "2025-09-24T23:59:59Z", - "type": "work", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 4320, - "color": "#2196f3" - } - }, - { - "id": "124", - "title": "Training Week", - "start": "2025-09-29T00:00:00Z", - "end": "2025-10-02T23:59:59Z", - "type": "meeting", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 7200, - "color": "#9c27b0" - } - }, - { - "id": "125", - "title": "Holiday Weekend", - "start": "2025-10-04T00:00:00Z", - "end": "2025-10-05T23:59:59Z", - "type": "milestone", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 4320, - "color": "#ff6f00" - } - }, - { - "id": "126", - "title": "Client Visit", - "start": "2025-10-07T00:00:00Z", - "end": "2025-10-08T23:59:59Z", - "type": "meeting", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 4320, - "color": "#e91e63" - } - }, - { - "id": "127", - "title": "Development Marathon", - "start": "2025-10-13T00:00:00Z", - "end": "2025-10-14T23:59:59Z", - "type": "work", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 4320, - "color": "#3f51b5" - } - }, - { - "id": "128", - "title": "Morgen Standup", - "start": "2025-09-22T05:00:00Z", - "end": "2025-09-22T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "129", - "title": "Klient Præsentation", - "start": "2025-09-22T10:00:00Z", - "end": "2025-09-22T11:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#e91e63" - } - }, - { - "id": "130", - "title": "Eftermiddags Kodning", - "start": "2025-09-22T12:00:00Z", - "end": "2025-09-22T14:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#2196f3" - } - }, - { - "id": "131", - "title": "Team Standup", - "start": "2025-09-23T05:00:00Z", - "end": "2025-09-23T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "132", - "title": "Arkitektur Review", - "start": "2025-09-23T07:00:00Z", - "end": "2025-09-23T08:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#009688" - } - }, - { - "id": "133", - "title": "Frokost & Læring", - "start": "2025-09-23T08:30:00Z", - "end": "2025-09-23T09:30:00Z", - "type": "meal", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#ff9800" - } - }, - { - "id": "134", - "title": "Team Standup", - "start": "2025-09-24T05:00:00Z", - "end": "2025-09-24T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "135", - "title": "Database Optimering", - "start": "2025-09-24T06:00:00Z", - "end": "2025-09-24T08:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#3f51b5" - } - }, - { - "id": "136", - "title": "Klient Opkald", - "start": "2025-09-24T11:00:00Z", - "end": "2025-09-24T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#795548" - } - }, - { - "id": "137", - "title": "Team Standup", - "start": "2025-09-25T05:00:00Z", - "end": "2025-09-25T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "138", - "title": "Sprint Review", - "start": "2025-09-25T10:00:00Z", - "end": "2025-09-25T11:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#607d8b" - } - }, - { - "id": "139", - "title": "Retrospektiv", - "start": "2025-09-25T11:30:00Z", - "end": "2025-09-25T12:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#9c27b0" - } - }, - { - "id": "140", - "title": "Team Standup", - "start": "2025-09-26T05:00:00Z", - "end": "2025-09-26T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "141", - "title": "Ny Feature Udvikling", - "start": "2025-09-26T06:00:00Z", - "end": "2025-09-26T08:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#4caf50" - } - }, - { - "id": "142", - "title": "Sikkerhedsgennemgang", - "start": "2025-09-26T10:00:00Z", - "end": "2025-09-26T11:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#f44336" - } - }, - { - "id": "143", - "title": "Weekend Hackathon", - "start": "2025-09-27T00:00:00Z", - "end": "2025-09-27T23:59:59Z", - "type": "work", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 2880, - "color": "#673ab7" - } - }, - { - "id": "144", - "title": "Team Standup", - "start": "2025-09-29T07:30:00Z", - "end": "2025-09-29T08:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "145", - "title": "Månedlig Planlægning", - "start": "2025-09-29T07:00:00Z", - "end": "2025-09-29T08:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#9c27b0" - } - }, - { - "id": "146", - "title": "Performance Test", - "start": "2025-09-29T08:15:00Z", - "end": "2025-09-29T10:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#00bcd4" - } - }, - { - "id": "147", - "title": "Team Standup", - "start": "2025-09-30T05:00:00Z", - "end": "2025-09-30T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "148", - "title": "Kvartal Afslutning", - "start": "2025-09-30T11:00:00Z", - "end": "2025-09-30T13:00:00Z", - "type": "milestone", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#f44336" - } - },{ - "id": "1481", - "title": "Kvartal Afslutning 2", - "start": "2025-09-30T11:20:00Z", - "end": "2025-09-30T13:00:00Z", - "type": "milestone", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#f44336" - } - }, - { - "id": "149", - "title": "Oktober Kickoff", - "start": "2025-10-01T05:00:00Z", - "end": "2025-10-01T06:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#4caf50" - } - }, - { - "id": "150", - "title": "Sprint Planlægning", - "start": "2025-10-01T06:30:00Z", - "end": "2025-10-01T08:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#673ab7" - } - }, - { - "id": "151", - "title": "Eftermiddags Kodning", - "start": "2025-10-01T10:00:00Z", - "end": "2025-10-01T13:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#2196f3" - } - }, - { - "id": "1511", - "title": "Eftermiddags Kodning", - "start": "2025-10-01T10:30:00Z", - "end": "2025-10-01T11:00:00Z", - "type": "milestone", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#2196f3" - } - }, - { - "id": "1512", - "title": "Eftermiddags Kodning", - "start": "2025-10-01T11:30:00Z", - "end": "2025-10-01T12:30:00Z", - "type": "milestone", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#2196f3" - } - }, - { - "id": "1513", - "title": "Eftermiddags Kodning", - "start": "2025-10-01T12:00:00Z", - "end": "2025-10-01T13:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#2196f3" - } - }, - { - "id": "1514", - "title": "Eftermiddags Kodning 2", - "start": "2025-10-01T12:00:00Z", - "end": "2025-10-01T13:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#2196f3" - } - }, - { - "id": "152", - "title": "Team Standup", - "start": "2025-10-02T05:00:00Z", - "end": "2025-10-02T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "153", - "title": "API Design Workshop", - "start": "2025-10-02T07:00:00Z", - "end": "2025-10-02T08:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#009688" - } - }, - { - "id": "154", - "title": "Bug Fixing Session", - "start": "2025-10-02T07:00:00Z", - "end": "2025-10-02T09:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#ff5722" - } - }, - { - "id": "155", - "title": "Team Standup", - "start": "2025-10-03T05:00:00Z", - "end": "2025-10-03T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "156", - "title": "Klient Demo", - "start": "2025-10-03T10:00:00Z", - "end": "2025-10-03T11:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#e91e63" - } - }, - { - "id": "157", - "title": "Code Review Session", - "start": "2025-10-03T12:00:00Z", - "end": "2025-10-03T13:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#009688" - } - }, - { - "id": "158", - "title": "Fredag Standup", - "start": "2025-10-04T05:00:00Z", - "end": "2025-10-04T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "159", - "title": "Uge Retrospektiv", - "start": "2025-10-04T11:00:00Z", - "end": "2025-10-04T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#9c27b0" - } - }, - { - "id": "160", - "title": "Weekend Projekt", - "start": "2025-10-05T06:00:00Z", - "end": "2025-10-05T10:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 240, - "color": "#3f51b5" - } - }, - { - "id": "161", - "title": "Teknisk Workshop", - "start": "2025-09-24T00:00:00Z", - "end": "2025-09-25T23:59:59Z", - "type": "meeting", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 4320, - "color": "#795548" - } - }, - { - "id": "162", - "title": "Produktudvikling Sprint", - "start": "2025-10-01T08:00:00Z", - "end": "2025-10-02T21:00:00Z", - "type": "work", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 4320, - "color": "#cddc39" - } - }, - { - "id": "163", - "title": "Tidlig Morgen Træning", - "start": "2025-09-23T02:30:00Z", - "end": "2025-09-23T03:30:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#00bcd4" - } - }, - { - "id": "164", - "title": "Sen Aften Deploy", - "start": "2025-09-25T18:00:00Z", - "end": "2025-09-25T20:30:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 150, - "color": "#ffc107" - } - }, - { - "id": "165", - "title": "Overlappende Møde A", - "start": "2025-09-30T06:00:00Z", - "end": "2025-09-30T07:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#8bc34a" - } - }, - { - "id": "166", - "title": "Overlappende Møde B", - "start": "2025-09-30T06:30:00Z", - "end": "2025-09-30T08:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#ff6f00" - } - }, - { - "id": "167", - "title": "Kort Check-in", - "start": "2025-10-02T05:45:00Z", - "end": "2025-10-02T06:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 15, - "color": "#607d8b" - } - }, - { - "id": "168", - "title": "Lang Udviklingssession", - "start": "2025-10-04T05:00:00Z", - "end": "2025-10-04T09:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 240, - "color": "#2196f3" - } - }, - { - "id": "S1A", - "title": "Scenario 1: Event A", - "start": "2025-10-06T05:00:00Z", - "end": "2025-10-06T10:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 300, - "color": "#ff6b6b" - } - }, - { - "id": "S1B", - "title": "Scenario 1: Event B", - "start": "2025-10-06T06:00:00Z", - "end": "2025-10-06T08:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#4ecdc4" - } - }, - { - "id": "S1C", - "title": "Scenario 1: Event C", - "start": "2025-10-06T08:30:00Z", - "end": "2025-10-06T09:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ffe66d" - } - }, - { - "id": "S2A", - "title": "Scenario 2: Event A", - "start": "2025-10-06T11:00:00Z", - "end": "2025-10-06T17:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 360, - "color": "#ff6b6b" - } - }, - { - "id": "S2B", - "title": "Scenario 2: Event B", - "start": "2025-10-06T12:00:00Z", - "end": "2025-10-06T13:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#4ecdc4" - } - }, - { - "id": "S2C", - "title": "Scenario 2: Event C", - "start": "2025-10-06T13:30:00Z", - "end": "2025-10-06T14:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#ffe66d" - } - }, - { - "id": "S2D", - "title": "Scenario 2: Event D", - "start": "2025-10-06T15:00:00Z", - "end": "2025-10-06T16:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#a8e6cf" - } - }, - { - "id": "S3A", - "title": "Scenario 3: Event A", - "start": "2025-10-07T07:00:00Z", - "end": "2025-10-07T13:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 360, - "color": "#ff6b6b" - } - }, - { - "id": "S3B", - "title": "Scenario 3: Event B", - "start": "2025-10-07T08:00:00Z", - "end": "2025-10-07T11:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#4ecdc4" - } - }, - { - "id": "S3C", - "title": "Scenario 3: Event C", - "start": "2025-10-07T09:00:00Z", - "end": "2025-10-07T10:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#ffe66d" - } - }, - { - "id": "S3D", - "title": "Scenario 3: Event D", - "start": "2025-10-07T10:30:00Z", - "end": "2025-10-07T11:30:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#a8e6cf" - } - }, - { - "id": "S4A", - "title": "Scenario 4: Event A", - "start": "2025-10-07T14:00:00Z", - "end": "2025-10-07T20:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 360, - "color": "#ff6b6b" - } - }, - { - "id": "S4B", - "title": "Scenario 4: Event B", - "start": "2025-10-07T15:00:00Z", - "end": "2025-10-07T19:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 240, - "color": "#4ecdc4" - } - }, - { - "id": "S4C", - "title": "Scenario 4: Event C", - "start": "2025-10-07T16:00:00Z", - "end": "2025-10-07T18:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#ffe66d" - } - }, - { - "id": "S5A", - "title": "Scenario 5: Event A", - "start": "2025-10-08T05:00:00Z", - "end": "2025-10-08T08:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#ff6b6b" - } - }, - { - "id": "S5B", - "title": "Scenario 5: Event B", - "start": "2025-10-08T06:00:00Z", - "end": "2025-10-08T07:30:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#4ecdc4" - } - }, - { - "id": "S5C", - "title": "Scenario 5: Event C", - "start": "2025-10-08T06:00:00Z", - "end": "2025-10-08T07:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#ffe66d" - } - }, - { - "id": "S6A", - "title": "Scenario 6: Event A", - "start": "2025-10-08T09:00:00Z", - "end": "2025-10-08T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#ff6b6b" - } - }, - { - "id": "S6B", - "title": "Scenario 6: Event B", - "start": "2025-10-08T10:00:00Z", - "end": "2025-10-08T11:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#4ecdc4" - } - }, - { - "id": "S6C", - "title": "Scenario 6: Event C", - "start": "2025-10-08T10:00:00Z", - "end": "2025-10-08T11:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#ffe66d" - } - }, - { - "id": "S6D", - "title": "Scenario 6: Event D", - "start": "2025-10-08T10:30:00Z", - "end": "2025-10-08T10:45:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 15, - "color": "#a8e6cf" - } - }, - { - "id": "S7A", - "title": "Scenario 7: Event A", - "start": "2025-10-09T05:00:00Z", - "end": "2025-10-09T07:30:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 150, - "color": "#009688" - } - }, - { - "id": "S7B", - "title": "Scenario 7: Event B", - "start": "2025-10-09T05:00:00Z", - "end": "2025-10-09T07:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#ff5722" - } - }, - { - "id": "S8A", - "title": "Scenario 8: Event A", - "start": "2025-10-09T08:00:00Z", - "end": "2025-10-09T09:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#ff6b6b" - } - }, - { - "id": "S8B", - "title": "Scenario 8: Event B", - "start": "2025-10-09T08:15:00Z", - "end": "2025-10-09T09:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 75, - "color": "#4ecdc4" - } - }, - { - "id": "S9A", - "title": "Scenario 9: Event A", - "start": "2025-10-09T10:00:00Z", - "end": "2025-10-09T11:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#ff6b6b" - } - }, - { - "id": "S9B", - "title": "Scenario 9: Event B", - "start": "2025-10-09T10:30:00Z", - "end": "2025-10-09T11:30:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#4ecdc4" - } - }, - { - "id": "S9C", - "title": "Scenario 9: Event C", - "start": "2025-10-09T11:15:00Z", - "end": "2025-10-09T13:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 105, - "color": "#ffe66d" - } - }, - { - "id": "S10A", - "title": "Scenario 10: Event A", - "start": "2025-10-10T10:00:00Z", - "end": "2025-10-10T13:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#ff6b6b" - } - }, - { - "id": "S10B", - "title": "Scenario 10: Event B", - "start": "2025-10-10T10:30:00Z", - "end": "2025-10-10T11:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#4ecdc4" - } - }, - { - "id": "S10C", - "title": "Scenario 10: Event C", - "start": "2025-10-10T11:30:00Z", - "end": "2025-10-10T12:30:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#ffe66d" - } - }, - { - "id": "S10D", - "title": "Scenario 10: Event D", - "start": "2025-10-10T12:00:00Z", - "end": "2025-10-10T13:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#a8e6cf" - } - }, - { - "id": "S10E", - "title": "Scenario 10: Event E", - "start": "2025-10-10T12:00:00Z", - "end": "2025-10-10T13:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#dda15e" - } - }, - { - "id": "169", - "title": "Morgen Standup", - "start": "2025-10-13T05:00:00Z", - "end": "2025-10-13T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "170", - "title": "Produktvejledning", - "start": "2025-10-13T07:00:00Z", - "end": "2025-10-13T08:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#9c27b0" - } - }, - { - "id": "171", - "title": "Team Standup", - "start": "2025-10-14T05:00:00Z", - "end": "2025-10-14T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "172", - "title": "Udviklingssession", - "start": "2025-10-14T06:00:00Z", - "end": "2025-10-14T09:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#2196f3" - } - }, - { - "id": "173", - "title": "Klient Gennemgang", - "start": "2025-10-15T11:00:00Z", - "end": "2025-10-15T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#795548" - } - }, - { - "id": "174", - "title": "Team Standup", - "start": "2025-10-16T05:00:00Z", - "end": "2025-10-16T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "175", - "title": "Arkitektur Workshop", - "start": "2025-10-16T10:00:00Z", - "end": "2025-10-16T13:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#009688" - } - }, - { - "id": "176", - "title": "Team Standup", - "start": "2025-10-17T05:00:00Z", - "end": "2025-10-17T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "177", - "title": "Sprint Review", - "start": "2025-10-17T10:00:00Z", - "end": "2025-10-17T11:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#607d8b" - } - }, - { - "id": "178", - "title": "Weekend Kodning", - "start": "2025-10-18T06:00:00Z", - "end": "2025-10-18T10:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 240, - "color": "#3f51b5" - } - }, - { - "id": "179", - "title": "Team Standup", - "start": "2025-10-27T05:00:00Z", - "end": "2025-10-27T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "180", - "title": "Sprint Planning", - "start": "2025-10-27T06:00:00Z", - "end": "2025-10-27T07:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#673ab7" - } - }, - { - "id": "181", - "title": "Development Session", - "start": "2025-10-27T10:00:00Z", - "end": "2025-10-27T12:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#2196f3" - } - }, - { - "id": "182", - "title": "Team Standup", - "start": "2025-10-28T05:00:00Z", - "end": "2025-10-28T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "183", - "title": "Client Review", - "start": "2025-10-28T11:00:00Z", - "end": "2025-10-28T12:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#795548" - } - }, - { - "id": "184", - "title": "Database Optimization", - "start": "2025-10-28T13:00:00Z", - "end": "2025-10-28T15:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#3f51b5" - } - }, - { - "id": "185", - "title": "Team Standup", - "start": "2025-10-29T05:00:00Z", - "end": "2025-10-29T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "186", - "title": "Architecture Review", - "start": "2025-10-29T08:00:00Z", - "end": "2025-10-29T09:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#009688" - } - }, - { - "id": "187", - "title": "Lunch & Learn", - "start": "2025-10-29T11:00:00Z", - "end": "2025-10-29T12:00:00Z", - "type": "meal", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#ff9800" - } - }, - { - "id": "188", - "title": "Team Standup", - "start": "2025-10-30T05:00:00Z", - "end": "2025-10-30T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "189", - "title": "Product Demo", - "start": "2025-10-30T10:00:00Z", - "end": "2025-10-30T11:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#e91e63" - } - }, - { - "id": "190", - "title": "Code Review Session", - "start": "2025-10-30T13:00:00Z", - "end": "2025-10-30T14:30:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#009688" - } - }, - { - "id": "191", - "title": "Team Standup", - "start": "2025-10-31T05:00:00Z", - "end": "2025-10-31T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "192", - "title": "Halloween Party Planning", - "start": "2025-10-31T10:00:00Z", - "end": "2025-10-31T11:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#ff6f00" - } - }, - { - "id": "193", - "title": "Sprint Review", - "start": "2025-10-31T14:00:00Z", - "end": "2025-10-31T15:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#607d8b" - } - }, - { - "id": "194", - "title": "Company Training Week", - "start": "2025-10-27T00:00:00Z", - "end": "2025-10-30T23:59:59Z", - "type": "meeting", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 5760, - "color": "#9c27b0" - } - }, - { - "id": "195", - "title": "Halloween Celebration", - "start": "2025-10-31T00:00:00Z", - "end": "2025-10-31T23:59:59Z", - "type": "milestone", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 1440, - "color": "#ff6f00" - } - }, - { - "id": "196", - "title": "Team Standup", - "start": "2025-11-03T05:00:00Z", - "end": "2025-11-03T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "197", - "title": "Sprint Planning", - "start": "2025-11-03T06:00:00Z", - "end": "2025-11-03T07:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#673ab7" - } - }, - { - "id": "198", - "title": "Deep Work Session", - "start": "2025-11-03T10:00:00Z", - "end": "2025-11-03T13:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#3f51b5" - } - }, - { - "id": "199", - "title": "Team Standup", - "start": "2025-11-04T05:00:00Z", - "end": "2025-11-04T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "200", - "title": "Client Workshop", - "start": "2025-11-04T11:00:00Z", - "end": "2025-11-04T13:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#e91e63" - } - }, - { - "id": "201", - "title": "Feature Development", - "start": "2025-11-04T14:00:00Z", - "end": "2025-11-04T16:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#2196f3" - } - }, - { - "id": "202", - "title": "Team Standup", - "start": "2025-11-05T05:00:00Z", - "end": "2025-11-05T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "203", - "title": "Technical Discussion", - "start": "2025-11-05T08:00:00Z", - "end": "2025-11-05T09:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#009688" - } - }, - { - "id": "204", - "title": "Performance Testing", - "start": "2025-11-05T11:00:00Z", - "end": "2025-11-05T13:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#00bcd4" - } - }, - { - "id": "205", - "title": "Team Standup", - "start": "2025-11-06T05:00:00Z", - "end": "2025-11-06T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "206", - "title": "Security Review", - "start": "2025-11-06T10:00:00Z", - "end": "2025-11-06T11:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#f44336" - } - }, - { - "id": "207", - "title": "API Development", - "start": "2025-11-06T13:00:00Z", - "end": "2025-11-06T15:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#2196f3" - } - }, - { - "id": "208", - "title": "Team Standup", - "start": "2025-11-07T05:00:00Z", - "end": "2025-11-07T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "209", - "title": "Weekly Retrospective", - "start": "2025-11-07T10:00:00Z", - "end": "2025-11-07T11:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#9c27b0" - } - }, - { - "id": "210", - "title": "Sprint Review", - "start": "2025-11-07T14:00:00Z", - "end": "2025-11-07T15:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#607d8b" - } - }, - { - "id": "211", - "title": "November Team Building", - "start": "2025-11-03T00:00:00Z", - "end": "2025-11-04T23:59:59Z", - "type": "meeting", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 2880, - "color": "#4caf50" - } - }, - { - "id": "212", - "title": "Q4 Strategy Planning", - "start": "2025-11-06T00:00:00Z", - "end": "2025-11-07T23:59:59Z", - "type": "milestone", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 2880, - "color": "#9c27b0" - } - }, - { - "id": "NOV10-001", - "title": "Morgen Standup", - "description": "Daily team sync - status updates", - "start": "2025-11-10T05:00:00Z", - "end": "2025-11-10T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "NOV10-002", - "title": "Sprint Planning", - "description": "Plan backlog items and estimate story points", - "start": "2025-11-10T06:00:00Z", - "end": "2025-11-10T07:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#673ab7" - } - }, - { - "id": "NOV10-003", - "title": "Udvikling af ny feature", - "description": "Implement user authentication module with OAuth2 support, JWT tokens, refresh token rotation, and secure password hashing using bcrypt. Include comprehensive unit tests and integration tests for all authentication flows.", - "start": "2025-11-10T08:00:00Z", - "end": "2025-11-10T11:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#2196f3" - } - }, - { - "id": "NOV10-004", - "title": "Frokostmøde med klient", - "description": "Discuss project requirements and timeline", - "start": "2025-11-10T08:00:00Z", - "end": "2025-11-10T09:00:00Z", - "type": "meal", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#ff9800" - } - }, - { - "id": "NOV10-ALL", - "title": "Konference Dag 1", - "start": "2025-11-10T00:00:00Z", - "end": "2025-11-10T23:59:59Z", - "type": "meeting", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 1440, - "color": "#4caf50" - } - }, - { - "id": "NOV11-001", - "title": "Morgen Standup", - "description": "Quick sync on progress and blockers", - "start": "2025-11-11T05:00:00Z", - "end": "2025-11-11T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "NOV11-002", - "title": "Arkitektur Review", - "description": "Review system design and scalability", - "start": "2025-11-11T07:00:00Z", - "end": "2025-11-11T08:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#009688" - } - }, - { - "id": "NOV11-003", - "title": "Code Review Session", - "description": "Review pull requests and provide feedback", - "start": "2025-11-11T10:00:00Z", - "end": "2025-11-11T11:30:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#009688" - } - }, - { - "id": "NOV11-004", - "title": "Database Optimering", - "description": "Optimize queries and add indexes", - "start": "2025-11-11T13:00:00Z", - "end": "2025-11-11T15:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#3f51b5" - } - }, - { - "id": "NOV11-ALL", - "title": "Konference Dag 2", - "start": "2025-11-11T00:00:00Z", - "end": "2025-11-11T23:59:59Z", - "type": "meeting", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 1440, - "color": "#4caf50" - } - }, - { - "id": "NOV12-001", - "title": "Morgen Standup", - "description": "Team alignment and daily planning", - "start": "2025-11-12T05:00:00Z", - "end": "2025-11-12T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "NOV12-002", - "title": "Teknisk Workshop", - "description": "Learn new frameworks and best practices", - "start": "2025-11-12T06:00:00Z", - "end": "2025-11-12T08:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#9c27b0" - } - }, - { - "id": "NOV12-003", - "title": "API Udvikling", - "description": "Build REST endpoints for mobile app including user profile management, push notifications, real-time chat functionality, file upload with image compression, and comprehensive API documentation using OpenAPI specification. Implement rate limiting and caching strategies.", - "start": "2025-11-12T09:00:00Z", - "end": "2025-11-12T12:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#2196f3" - } - }, - { - "id": "NOV12-004", - "title": "Klient Præsentation", - "description": "Demo new features and gather feedback", - "start": "2025-11-12T13:00:00Z", - "end": "2025-11-12T14:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#e91e63" - } - }, - { - "id": "NOV13-001", - "title": "Morgen Standup", - "description": "Daily sync and impediment removal", - "start": "2025-11-13T05:00:00Z", - "end": "2025-11-13T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "NOV13-002", - "title": "Performance Testing", - "description": "Load testing and bottleneck analysis", - "start": "2025-11-13T07:00:00Z", - "end": "2025-11-13T09:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#00bcd4" - } - }, - { - "id": "NOV13-003", - "title": "Sikkerhedsgennemgang", - "description": "Security audit and vulnerability scan", - "start": "2025-11-13T10:00:00Z", - "end": "2025-11-13T11:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#f44336" - } - }, - { - "id": "NOV13-004", - "title": "Bug Fixing Session", - "description": "Fix critical bugs from production", - "start": "2025-11-13T13:00:00Z", - "end": "2025-11-13T15:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#ff5722" - } - }, - { - "id": "NOV13-ALL", - "title": "Team Building Event", - "start": "2025-11-13T00:00:00Z", - "end": "2025-11-13T23:59:59Z", - "type": "meeting", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 1440, - "color": "#2196f3" - } - }, - { - "id": "NOV14-001", - "title": "Morgen Standup", - "description": "Sprint wrap-up and final status check", - "start": "2025-11-14T05:00:00Z", - "end": "2025-11-14T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "NOV14-002", - "title": "Sprint Review", - "description": "Demo completed work to stakeholders", - "start": "2025-11-14T06:00:00Z", - "end": "2025-11-14T07:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#607d8b" - } - }, - { - "id": "NOV14-003", - "title": "Retrospektiv", - "description": "Reflect on sprint and identify improvements", - "start": "2025-11-14T07:30:00Z", - "end": "2025-11-14T08:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#9c27b0" - } - }, - { - "id": "NOV14-004", - "title": "Dokumentation", - "description": "Update technical documentation including architecture diagrams, API reference with request/response examples, deployment guides for production and staging environments, troubleshooting section with common issues and solutions, and developer onboarding documentation with setup instructions.", - "start": "2025-11-14T10:00:00Z", - "end": "2025-11-14T12:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#795548" - } - }, - { - "id": "NOV14-005", - "title": "Deployment Planning", - "description": "Plan release strategy and rollback", - "start": "2025-11-14T13:00:00Z", - "end": "2025-11-14T14:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#ffc107" - } - }, - { - "id": "NOV15-001", - "title": "Morgen Standup", - "description": "New sprint kickoff and goal setting", - "start": "2025-11-15T05:00:00Z", - "end": "2025-11-15T05:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#ff5722" - } - }, - { - "id": "NOV15-002", - "title": "Feature Demo", - "description": "Showcase new functionality to team", - "start": "2025-11-15T07:00:00Z", - "end": "2025-11-15T08:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#cddc39" - } - }, - { - "id": "NOV15-003", - "title": "Refactoring Session", - "description": "Clean up technical debt and improve code", - "start": "2025-11-15T09:00:00Z", - "end": "2025-11-15T11:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#009688" - } - }, - { - "id": "NOV15-004", - "title": "Klient Opkald", - "description": "Weekly status update and next steps", - "start": "2025-11-15T13:00:00Z", - "end": "2025-11-15T14:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#795548" - } - }, - { - "id": "NOV15-ALL", - "title": "Virksomhedsdag", - "start": "2025-11-15T00:00:00Z", - "end": "2025-11-15T23:59:59Z", - "type": "milestone", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 1440, - "color": "#ff6f00" - } - }, - { - "id": "NOV16-001", - "title": "Weekend Projekt", - "description": "Personal coding project and experimentation", - "start": "2025-11-16T06:00:00Z", - "end": "2025-11-16T10:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 240, - "color": "#3f51b5" - } - }, - { - "id": "NOV16-002", - "title": "Personlig Udvikling", - "description": "Learn new technologies and skills", - "start": "2025-11-16T11:00:00Z", - "end": "2025-11-16T13:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#8bc34a" - } - }, - { - "id": "NOV10-16-MULTI", - "title": "Uge 46 - Projekt Sprint", - "start": "2025-11-10T00:00:00Z", - "end": "2025-11-16T23:59:59Z", - "type": "work", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 10080, - "color": "#673ab7" - } - }, - { - "id": "NOV17-001", - "title": "Morning Workout", - "description": "Sunday morning fitness routine", - "start": "2025-11-17T07:00:00Z", - "end": "2025-11-17T08:30:00Z", - "type": "break", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#4caf50" - } - }, - { - "id": "NOV17-002", - "title": "Familietid", - "description": "Quality time with family", - "start": "2025-11-17T11:00:00Z", - "end": "2025-11-17T14:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#ff9800" - } - }, - { - "id": "NOV18-001", - "title": "Monday Morning Standup", - "description": "Weekly team sync meeting", - "start": "2025-11-18T07:00:00Z", - "end": "2025-11-18T07:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 30, - "color": "#2196f3" - } - }, - { - "id": "NOV18-002", - "title": "Development Work", - "description": "Feature implementation session", - "start": "2025-11-18T08:00:00Z", - "end": "2025-11-18T11:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#3f51b5" - } - }, - { - "id": "NOV18-003", - "title": "Lunch Møde", - "description": "Business lunch with client", - "start": "2025-11-18T11:00:00Z", - "end": "2025-11-18T12:30:00Z", - "type": "customer", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#e91e63" - } - }, - { - "id": "NOV19-001", - "title": "Code Review Session", - "description": "Review pull requests and merge", - "start": "2025-11-19T07:00:00Z", - "end": "2025-11-19T08:30:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#009688" - } - }, - { - "id": "NOV19-002", - "title": "Team Sync", - "description": "Cross-team coordination meeting", - "start": "2025-11-19T09:00:00Z", - "end": "2025-11-19T10:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 60, - "color": "#673ab7" - } - }, - { - "id": "NOV19-003", - "title": "Kunde Møde", - "description": "Project status update with client", - "start": "2025-11-19T13:00:00Z", - "end": "2025-11-19T14:30:00Z", - "type": "customer", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#ff5722" - } - }, - { - "id": "NOV20-001", - "title": "Sprint Planning", - "description": "Plan next sprint tasks and goals", - "start": "2025-11-20T07:00:00Z", - "end": "2025-11-20T09:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#795548" - } - }, - { - "id": "NOV20-002", - "title": "Development Work", - "description": "Implement new features", - "start": "2025-11-20T09:30:00Z", - "end": "2025-11-20T12:30:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#3f51b5" - } - }, - { - "id": "NOV21-001", - "title": "Client Presentation", - "description": "Demo and feature walkthrough", - "start": "2025-11-21T08:00:00Z", - "end": "2025-11-21T10:00:00Z", - "type": "customer", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#e91e63" - } - }, - { - "id": "NOV21-002", - "title": "Technical Discussion", - "description": "Architecture review and planning", - "start": "2025-11-21T10:30:00Z", - "end": "2025-11-21T12:00:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#607d8b" - } - }, - { - "id": "NOV21-003", - "title": "Testing & QA", - "description": "Test new features and bug fixes", - "start": "2025-11-21T13:00:00Z", - "end": "2025-11-21T16:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 180, - "color": "#8bc34a" - } - }, - { - "id": "NOV22-001", - "title": "Team Retrospective", - "description": "Sprint review and improvements", - "start": "2025-11-22T07:00:00Z", - "end": "2025-11-22T08:30:00Z", - "type": "meeting", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 90, - "color": "#ff9800" - } - }, - { - "id": "NOV22-002", - "title": "Documentation", - "description": "Update project documentation", - "start": "2025-11-22T09:00:00Z", - "end": "2025-11-22T11:00:00Z", - "type": "work", - "allDay": false, - "syncStatus": "synced", - "metadata": { - "duration": 120, - "color": "#00bcd4" - } - }, - { - "id": "NOV17-ALLDAY", - "title": "Weekend Aktivitet", - "start": "2025-11-17T00:00:00Z", - "end": "2025-11-17T23:59:59Z", - "type": "break", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 1440, - "color": "#4caf50" - } - }, - { - "id": "NOV18-20-MULTI", - "title": "Projekt Sprint - Uge 47", - "start": "2025-11-18T00:00:00Z", - "end": "2025-11-20T23:59:59Z", - "type": "work", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 4320, - "color": "#673ab7" - } - }, - { - "id": "NOV20-ALLDAY", - "title": "Tech Conference", - "start": "2025-11-20T00:00:00Z", - "end": "2025-11-20T23:59:59Z", - "type": "meeting", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 1440, - "color": "#ff6f00" - } - }, - { - "id": "NOV21-22-MULTI", - "title": "Training Session", - "start": "2025-11-21T00:00:00Z", - "end": "2025-11-22T23:59:59Z", - "type": "meeting", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 2880, - "color": "#9c27b0" - } - }, - { - "id": "NOV23-ALLDAY", - "title": "Personlig Dag", - "start": "2025-11-23T00:00:00Z", - "end": "2025-11-23T23:59:59Z", - "type": "break", - "allDay": true, - "syncStatus": "synced", - "metadata": { - "duration": 1440, - "color": "#795548" - } - }, { "id": "RES-NOV22-001", "title": "Balayage", @@ -3977,7 +10,7 @@ "resourceId": "EMP001", "customerId": "CUST001", "syncStatus": "synced", - "metadata": { "duration": 120, "color": "#9c27b0" } + "metadata": { "duration": 120, "color": "purple" } }, { "id": "RES-NOV22-002", @@ -3988,7 +21,7 @@ "allDay": false, "resourceId": "EMP003", "syncStatus": "synced", - "metadata": { "duration": 30, "color": "#3f51b5" } + "metadata": { "duration": 30, "color": "indigo" } }, { "id": "RES-NOV22-003", @@ -3999,7 +32,7 @@ "allDay": false, "resourceId": "EMP002", "syncStatus": "synced", - "metadata": { "duration": 120, "color": "#e91e63" } + "metadata": { "duration": 120, "color": "pink" } }, { "id": "RES-NOV22-004", @@ -4010,7 +43,7 @@ "allDay": false, "resourceId": "EMP001", "syncStatus": "synced", - "metadata": { "duration": 60, "color": "#9c27b0" } + "metadata": { "duration": 60, "color": "purple" } }, { "id": "RES-NOV22-005", @@ -4021,7 +54,7 @@ "allDay": false, "resourceId": "STUDENT001", "syncStatus": "synced", - "metadata": { "duration": 30, "color": "#8bc34a" } + "metadata": { "duration": 30, "color": "light-green" } }, { "id": "RES-NOV22-006", @@ -4032,7 +65,7 @@ "allDay": false, "resourceId": "EMP004", "syncStatus": "synced", - "metadata": { "duration": 60, "color": "#009688" } + "metadata": { "duration": 60, "color": "teal" } }, { "id": "RES-NOV23-001", @@ -4043,7 +76,7 @@ "allDay": false, "resourceId": "EMP002", "syncStatus": "synced", - "metadata": { "duration": 150, "color": "#e91e63" } + "metadata": { "duration": 150, "color": "pink" } }, { "id": "RES-NOV23-002", @@ -4054,7 +87,7 @@ "allDay": false, "resourceId": "EMP003", "syncStatus": "synced", - "metadata": { "duration": 30, "color": "#3f51b5" } + "metadata": { "duration": 30, "color": "indigo" } }, { "id": "RES-NOV23-003", @@ -4067,7 +100,7 @@ "resourceId": "EMP001", "customerId": "CUST001", "syncStatus": "synced", - "metadata": { "duration": 120, "color": "#9c27b0" } + "metadata": { "duration": 120, "color": "purple" } }, { "id": "RES-NOV23-004", @@ -4078,7 +111,7 @@ "allDay": false, "resourceId": "STUDENT002", "syncStatus": "synced", - "metadata": { "duration": 60, "color": "#ff9800" } + "metadata": { "duration": 60, "color": "orange" } }, { "id": "RES-NOV24-001", @@ -4091,7 +124,7 @@ "resourceId": "EMP001", "customerId": "CUST001", "syncStatus": "synced", - "metadata": { "duration": 120, "color": "#9c27b0" } + "metadata": { "duration": 120, "color": "purple" } }, { "id": "RES-NOV24-002", @@ -4102,7 +135,7 @@ "allDay": false, "resourceId": "EMP002", "syncStatus": "synced", - "metadata": { "duration": 150, "color": "#e91e63" } + "metadata": { "duration": 150, "color": "pink" } }, { "id": "RES-NOV24-003", @@ -4113,7 +146,7 @@ "allDay": false, "resourceId": "EMP003", "syncStatus": "synced", - "metadata": { "duration": 45, "color": "#3f51b5" } + "metadata": { "duration": 45, "color": "indigo" } }, { "id": "RES-NOV24-004", @@ -4124,7 +157,7 @@ "allDay": false, "resourceId": "EMP004", "syncStatus": "synced", - "metadata": { "duration": 60, "color": "#009688" } + "metadata": { "duration": 60, "color": "teal" } }, { "id": "RES-NOV24-005", @@ -4135,7 +168,7 @@ "allDay": false, "resourceId": "STUDENT001", "syncStatus": "synced", - "metadata": { "duration": 60, "color": "#8bc34a" } + "metadata": { "duration": 60, "color": "light-green" } }, { "id": "RES-NOV25-001", @@ -4147,7 +180,7 @@ "allDay": false, "resourceId": "EMP001", "syncStatus": "synced", - "metadata": { "duration": 90, "color": "#9c27b0" } + "metadata": { "duration": 90, "color": "purple" } }, { "id": "RES-NOV25-002", @@ -4158,7 +191,7 @@ "allDay": false, "resourceId": "EMP002", "syncStatus": "synced", - "metadata": { "duration": 180, "color": "#e91e63" } + "metadata": { "duration": 180, "color": "pink" } }, { "id": "RES-NOV25-003", @@ -4169,7 +202,7 @@ "allDay": false, "resourceId": "EMP003", "syncStatus": "synced", - "metadata": { "duration": 60, "color": "#3f51b5" } + "metadata": { "duration": 60, "color": "indigo" } }, { "id": "RES-NOV25-004", @@ -4180,7 +213,7 @@ "allDay": false, "resourceId": "EMP004", "syncStatus": "synced", - "metadata": { "duration": 90, "color": "#009688" } + "metadata": { "duration": 90, "color": "teal" } }, { "id": "RES-NOV25-005", @@ -4191,7 +224,7 @@ "allDay": false, "resourceId": "STUDENT002", "syncStatus": "synced", - "metadata": { "duration": 30, "color": "#ff9800" } + "metadata": { "duration": 30, "color": "orange" } }, { "id": "RES-NOV26-001", @@ -4202,7 +235,7 @@ "allDay": false, "resourceId": "EMP001", "syncStatus": "synced", - "metadata": { "duration": 180, "color": "#9c27b0" } + "metadata": { "duration": 180, "color": "purple" } }, { "id": "RES-NOV26-002", @@ -4213,7 +246,7 @@ "allDay": false, "resourceId": "EMP002", "syncStatus": "synced", - "metadata": { "duration": 150, "color": "#e91e63" } + "metadata": { "duration": 150, "color": "pink" } }, { "id": "RES-NOV26-003", @@ -4224,7 +257,7 @@ "allDay": false, "resourceId": "EMP003", "syncStatus": "synced", - "metadata": { "duration": 45, "color": "#3f51b5" } + "metadata": { "duration": 45, "color": "indigo" } }, { "id": "RES-NOV26-004", @@ -4235,7 +268,7 @@ "allDay": false, "resourceId": "EMP004", "syncStatus": "synced", - "metadata": { "duration": 90, "color": "#009688" } + "metadata": { "duration": 90, "color": "teal" } }, { "id": "RES-NOV26-005", @@ -4246,7 +279,7 @@ "allDay": false, "resourceId": "STUDENT001", "syncStatus": "synced", - "metadata": { "duration": 60, "color": "#8bc34a" } + "metadata": { "duration": 60, "color": "light-green" } }, { "id": "RES-NOV27-001", @@ -4259,7 +292,7 @@ "resourceId": "EMP001", "customerId": "CUST001", "syncStatus": "synced", - "metadata": { "duration": 120, "color": "#9c27b0" } + "metadata": { "duration": 120, "color": "purple" } }, { "id": "RES-NOV27-002", @@ -4270,7 +303,7 @@ "allDay": false, "resourceId": "EMP002", "syncStatus": "synced", - "metadata": { "duration": 180, "color": "#e91e63" } + "metadata": { "duration": 180, "color": "pink" } }, { "id": "RES-NOV27-003", @@ -4281,7 +314,7 @@ "allDay": false, "resourceId": "EMP003", "syncStatus": "synced", - "metadata": { "duration": 30, "color": "#3f51b5" } + "metadata": { "duration": 30, "color": "indigo" } }, { "id": "RES-NOV27-004", @@ -4292,7 +325,7 @@ "allDay": false, "resourceId": "EMP004", "syncStatus": "synced", - "metadata": { "duration": 90, "color": "#009688" } + "metadata": { "duration": 90, "color": "teal" } }, { "id": "RES-NOV27-005", @@ -4303,7 +336,7 @@ "allDay": false, "resourceId": "STUDENT001", "syncStatus": "synced", - "metadata": { "duration": 30, "color": "#8bc34a" } + "metadata": { "duration": 30, "color": "light-green" } }, { "id": "RES-NOV27-006", @@ -4314,6 +347,6 @@ "allDay": false, "resourceId": "STUDENT002", "syncStatus": "synced", - "metadata": { "duration": 60, "color": "#ff9800" } + "metadata": { "duration": 60, "color": "orange" } } ] \ No newline at end of file