Tab Sync Deep Dive Part 2: Handling Edge Cases
Posted: September 11, 2026 · 5 min read
Beyond the basics
In part one of this series, we covered how Tab Sync works: manyCalendars reads the DOM of an open calendar tab, extracts event titles, times, and metadata, and imports them into a unified view. That covers the happy path. But calendars are messy, and real-world usage surfaces edge cases that the basic syncing logic has to handle gracefully.
This post covers the trickiest of those edge cases and how manyCalendars deals with each one.
Multi-day events
A conference that runs Monday through Wednesday. A vacation block that spans a full week. Multi-day events are rendered differently than single-day events in both Google Calendar and Outlook. They typically appear as a banner across the top of the day columns rather than as a block within the time grid.
manyCalendars detects multi-day events by looking for events that span across day column boundaries. When found, the event is imported with a start time on the first day and an end time on the last day. In manyCalendars's grid, it renders as a continuous block across the relevant days, just like the source calendar.
The key detail: multi-day events participate in conflict detection for every day they cover. If you have a 3-day conference block and someone books a meeting on day two, the conflict is flagged. The entire span is treated as occupied time, not just the first day.
Recurring events
A weekly standup. A biweekly 1-on-1. A monthly board meeting. Recurring events appear in the calendar view as individual instances, and that is exactly how manyCalendars syncs them: as separate events that happen to share a title.
manyCalendars does not attempt to reconstruct the recurrence rule (RRULE) from the synced data. It imports each visible instance as its own event. This means you get conflict detection for every occurrence that is currently visible on the page, but not for future instances that have not been rendered yet.
The practical implication: if you sync a week view, you get that week's recurring events. If a conflict exists three weeks from now between a recurring standup and a newly-booked meeting, manyCalendars will catch it when you sync the week that contains both events. For best coverage, sync regularly or use ICS feeds for calendars that support them. ICS feeds include future recurrences.
Events across timezone boundaries
This is one of the trickier edge cases. Your calendar might display events in your local timezone, but the event was created in a different timezone. A meeting that was booked as "3 PM London time" shows up as "10 AM Eastern" on your screen.
manyCalendars syncs the displayed time, not the original timezone. This is actually the correct behavior. What matters for conflict detection is when the event occupies your time, not what timezone the organizer was thinking in. If your Google Calendar shows a meeting at 10 AM and your Outlook calendar shows a meeting at 10 AM, those events conflict regardless of where the organizers are located.
One edge case within the edge case: if your two calendar tabs are set to different timezones (maybe you forgot to update one), manyCalendars will sync both at face value. A 10 AM event in a tab set to Eastern and a 10 AM event in a tab set to Pacific do not actually conflict, but manyCalendars does not know the tabs are in different zones. The fix is simple: make sure all your calendar tabs display your local timezone. This is a setting in both Google Calendar and Outlook.
Custom calendar layouts
Most users stick with the standard Google Calendar or Outlook layouts. But some organizations customize their calendar views with browser extensions, custom CSS, or modified Workspace themes. These customizations can alter the DOM structure that manyCalendars expects.
manyCalendars's syncing logic is designed to be resilient against minor layout changes. It looks for semantic markers (event containers, time labels, title elements) rather than relying on specific CSS class names that might change. However, heavy customizations that restructure the event rendering can occasionally cause syncing to miss events or extract incorrect times.
If you notice missing events after a sync, try switching the calendar tab to the default layout before syncing. You can switch back afterward. The sync captures a snapshot, so the layout only needs to be standard during the import.
Month view vs. week view
manyCalendars works best with week view. Here is why.
In week view, events are rendered with start and end times visible in the grid. manyCalendars can extract exact time boundaries for each event. In month view, events are rendered as small labels within day cells, and precise start/end times may not be displayed. manyCalendars can still extract event titles and dates from month view, but time accuracy depends on whether the calendar renders time information in the DOM even when it is not visually displayed.
Google Calendar's month view includes time data in the underlying HTML even when it is not shown on screen. Outlook's month view is less consistent about this. For the most reliable results, switch to week view before syncing. You get exact times, full event titles (not truncated), and better metadata extraction.
If you need to capture a broader date range, sync multiple weeks rather than switching to month view. The results will be more accurate.
What to do if syncing misses events
If you notice that a sync did not capture all your events, check these common causes.
Collapsed or hidden events. When a day has many events, both Google and Outlook collapse some behind a "3 more" or "+2" link. manyCalendars can only sync events that are rendered in the DOM. Click to expand all events before syncing.
Overlay calendars. In Google Calendar, if you have multiple calendars but some are toggled off in the sidebar, their events are not rendered and cannot be synced. Make sure all relevant calendars are visible in the source tab.
Stale tabs. If a calendar tab has been open for hours without a refresh, it might not reflect recently-booked events. Refresh the tab before syncing.
Tab Sync is not magic. It reads what the browser renders. But when you give it a clean, expanded, up-to-date week view, it captures everything reliably. Think of it as a camera: the better the shot, the better the result. Install manyCalendars and see how sharp the picture can be.