Skip to content

feat: split remote calendar events into a separate column#845

Open
johnyoonh wants to merge 2 commits intoivan-lednev:mainfrom
johnyoonh:feature/separate-remote-calendar-column-stacked
Open

feat: split remote calendar events into a separate column#845
johnyoonh wants to merge 2 commits intoivan-lednev:mainfrom
johnyoonh:feature/separate-remote-calendar-column-stacked

Conversation

@johnyoonh
Copy link
Copy Markdown

Summary

  • Add a setting to render timed remote calendar events in a separate timeline column from local planner tasks.
  • Split local planner tasks and remote calendar events before horizontal overlap placement so each column gets independent block widths.
  • Update multi-day column counting so header and all-day rows stay aligned when the extra remote-calendar column is enabled.

Notes

Test plan

  • ReadLints reports no diagnostics for changed files in Cursor.
  • npm run typescript could not complete in this checkout because dependencies are not installed (@tsconfig/svelte and Svelte type definitions missing).

Made with Cursor

johnyoonh and others added 2 commits May 2, 2026 18:58
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Copilot AI review requested due to automatic review settings May 2, 2026 23:58
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an optional UI mode that renders timed remote calendar events in their own timeline column (separate from local planner tasks) and keeps multi-day header/all-day alignment correct when the extra column is enabled.

Changes:

  • Adds a new setting to enable/disable rendering remote timed events in a separate timeline column.
  • Splits timed tasks into “planner” vs “remote calendar” sets before horizontal overlap placement.
  • Updates multi-day grid internal column counting to account for the optional extra remote-calendar column.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/ui/settings-tab.ts Adds a settings toggle for the new separate-column behavior.
src/settings.ts Persists the new boolean setting and defaults it to false.
src/ui/hooks/use-edit/use-edit-context.ts Splits timed tasks and applies overlap placement independently per column.
src/ui/components/timeline.svelte Renders a second planner-related column for remote timed events when enabled.
src/ui/components/multi-day/multi-day-grid.svelte Adjusts internal column counting so header/all-day rows remain aligned.
src/ui/components/column.svelte Adds support for passing a class attribute into the reusable Column component.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


{#if settingsSignal.current.showRemoteCalendarEventsInSeparateColumn}
<Column
class="planner-right-column"
Comment on lines 5 to +6
export let visibleHours: number[];
let className: string | string[] = "";
Comment on lines +192 to +204
const uniqueWithTime = uniqBy(t.getRenderKey)(
tasksForDay.withTime,
) as Array<WithTime<Task>>;
const separateRemoteCalendars =
$settings.showRemoteCalendarEventsInSeparateColumn;
const remoteCalendarWithTime = separateRemoteCalendars
? addHorizontalPlacing(uniqueWithTime.filter(isRemote))
: [];
const plannerWithTime = separateRemoteCalendars
? uniqueWithTime.filter((task) => !isRemote(task))
: uniqueWithTime;
const withTime: Array<WithPlacing<WithTime<Task>>> =
addHorizontalPlacing(plannerWithTime);
Comment on lines +195 to +210
const separateRemoteCalendars =
$settings.showRemoteCalendarEventsInSeparateColumn;
const remoteCalendarWithTime = separateRemoteCalendars
? addHorizontalPlacing(uniqueWithTime.filter(isRemote))
: [];
const plannerWithTime = separateRemoteCalendars
? uniqueWithTime.filter((task) => !isRemote(task))
: uniqueWithTime;
const withTime: Array<WithPlacing<WithTime<Task>>> =
addHorizontalPlacing(plannerWithTime);

return {
...tasksForDay,
withTime,
remoteCalendarWithTime,
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants