<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Keeper.sh Changelog</title>
    <link>https://www.keeper.sh/changelog</link>
    <description>Every change to Keeper.sh, newest first: new features, improvements, and the bugs we fixed.</description>
    <language>en</language>
    <lastBuildDate>Sat, 15 Aug 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://www.keeper.sh/changelog.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Google and Outlook changes now land within seconds</title>
      <link>https://www.keeper.sh/changelog/2026-08-15-realtime-sync</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-08-15-realtime-sync</guid>
      <description>Keeper.sh subscribes to Google and Microsoft push notifications, so a change on either is copied as it happens rather than when the next check comes around.</description>
      <content:encoded>&lt;p&gt;Keeper.sh subscribes to Google and Microsoft push notifications, so a change on either is copied as it happens rather than when the next check comes around.&lt;/p&gt;&lt;p&gt;v2.18.0&lt;/p&gt;</content:encoded>
      <pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>New calendars show up without reconnecting the account</title>
      <link>https://www.keeper.sh/changelog/2026-08-15-calendar-refresh</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-08-15-calendar-refresh</guid>
      <description>Keeper.sh now rediscovers the calendars on a connected account on a schedule, and there is a refresh action for when you do not want to wait.</description>
      <content:encoded>&lt;p&gt;Keeper.sh now rediscovers the calendars on a connected account on a schedule, and there is a refresh action for when you do not want to wait.&lt;/p&gt;&lt;p&gt;v2.17.0&lt;/p&gt;</content:encoded>
      <pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Publish more than one calendar feed</title>
      <link>https://www.keeper.sh/changelog/2026-08-14-more-than-one-calendar-feed</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-08-14-more-than-one-calendar-feed</guid>
      <description>Feeds are now named, and you can keep several. Each covers the calendars you choose and shows event names the way you set for that feed.</description>
      <content:encoded>&lt;p&gt;Feeds are now named, and you can keep several. Each covers the calendars you choose and shows event names the way you set for that feed.&lt;/p&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Google no longer deletes the copies it makes of meeting blocks, and descriptions are written as plain text where the field expects text.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;v2.15.0&lt;/p&gt;</content:encoded>
      <pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Choose how far back and how far ahead each calendar syncs</title>
      <link>https://www.keeper.sh/changelog/2026-08-12-sync-windows</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-08-12-sync-windows</guid>
      <description>Set a window per calendar, from one week to two years in either direction, so an old job&apos;s calendar stops dragging years of history across.</description>
      <content:encoded>&lt;p&gt;Set a window per calendar, from one week to two years in either direction, so an old job&apos;s calendar stops dragging years of history across.&lt;/p&gt;&lt;h3&gt;New&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;A newly connected calendar now hides event titles, descriptions and locations by default, rather than relying on the setting being applied afterwards.&lt;/li&gt;&lt;li&gt;Self-hosted installs bundle the assistant server into the standalone image, so running one no longer means running a second service alongside it.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Improved&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Reconciling an iCloud, Fastmail or other CalDAV calendar now downloads only the copies Keeper.sh made, so a busy calendar syncs noticeably faster.&lt;/li&gt;&lt;li&gt;Large CalDAV calendars import every event instead of stopping partway through.&lt;/li&gt;&lt;li&gt;Errors now explain what actually went wrong instead of showing a status code and a URL.&lt;/li&gt;&lt;li&gt;Following a link from the bottom of a page opens the next page at the top.&lt;/li&gt;&lt;li&gt;Elevated surfaces in the light theme now stand apart from the page the way they do in dark.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;An event deleted on iCloud, Fastmail or another CalDAV calendar now removes its copy instead of leaving it behind.&lt;/li&gt;&lt;li&gt;Events no longer go missing when Microsoft rate-limits your mailbox, because writes now wait and retry.&lt;/li&gt;&lt;li&gt;An Outlook event with no title no longer stops the whole calendar from being read.&lt;/li&gt;&lt;li&gt;Connecting a Microsoft account works when Microsoft returns permissions in its resource-qualified form.&lt;/li&gt;&lt;li&gt;Connecting a Google account works when it has no readable calendars, or when one calendar has no name.&lt;/li&gt;&lt;li&gt;A deleted Google event is no longer deleted twice.&lt;/li&gt;&lt;li&gt;An event with no duration now arrives on the other calendar instead of being retried forever.&lt;/li&gt;&lt;li&gt;All-day events keep their date when the calendars either side of them sit in different timezones.&lt;/li&gt;&lt;li&gt;Events written to a CalDAV calendar carry their timezone, and one unreadable event no longer stops the rest arriving.&lt;/li&gt;&lt;li&gt;A calendar link whose events carry their own timezone now imports, instead of the whole feed failing.&lt;/li&gt;&lt;li&gt;A slow CalDAV server or a timeout no longer asks you to reconnect an account that is working.&lt;/li&gt;&lt;li&gt;Your published feed now stays inside the range you set for it.&lt;/li&gt;&lt;li&gt;The first import of a calendar link uses the range you configured, rather than a default.&lt;/li&gt;&lt;li&gt;Reading a repeating series too large to expand now returns a clear explanation instead of a generic error.&lt;/li&gt;&lt;li&gt;A paid plan no longer shows as free when the billing provider is slow to answer.&lt;/li&gt;&lt;li&gt;An error page in production no longer shows the development one.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;v2.14.0&lt;/p&gt;</content:encoded>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Ask an assistant to find free time, sync now, or pause a calendar</title>
      <link>https://www.keeper.sh/changelog/2026-08-12-assistant-free-time-and-sync</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-08-12-assistant-free-time-and-sync</guid>
      <description>Three new tools let a connected assistant work out when you are actually free, force a sync, or stop a calendar syncing without disconnecting it.</description>
      <content:encoded>&lt;p&gt;Three new tools let a connected assistant work out when you are actually free, force a sync, or stop a calendar syncing without disconnecting it.&lt;/p&gt;&lt;p&gt;v2.14.0&lt;/p&gt;</content:encoded>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Changes to a repeating event now reach your other calendars</title>
      <link>https://www.keeper.sh/changelog/2026-07-17-repeating-event-changes</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-07-17-repeating-event-changes</guid>
      <description>Edit the repeat rule, skip a date, or move a recurring meeting, and the copies follow instead of drifting out of step.</description>
      <content:encoded>&lt;p&gt;Edit the repeat rule, skip a date, or move a recurring meeting, and the copies follow instead of drifting out of step.&lt;/p&gt;&lt;h3&gt;Improved&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Each calendar you sync into runs on its own, so a slow one no longer holds up the rest.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Events you marked as free show as free in the feed you share.&lt;/li&gt;&lt;li&gt;The home page no longer sits on Syncing long after a sync has finished.&lt;/li&gt;&lt;li&gt;A deleted event is no longer left behind when the lookup that finds it fails.&lt;/li&gt;&lt;li&gt;Replying to one occurrence of a repeating invitation no longer changes the rest.&lt;/li&gt;&lt;li&gt;mailbox.org calendars connect on the first try.&lt;/li&gt;&lt;li&gt;An event with no series identifier no longer stops a sync.&lt;/li&gt;&lt;li&gt;A request that stops responding is given up on after 30 seconds, so the sync finishes.&lt;/li&gt;&lt;li&gt;A rescheduled event no longer leaves the old copy behind on your other calendars.&lt;/li&gt;&lt;li&gt;A sync running over two minutes keeps its claim on the calendar it is writing to.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;v2.13.5&lt;/p&gt;</content:encoded>
      <pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Turn midnight-to-midnight events into all-day events</title>
      <link>https://www.keeper.sh/changelog/2026-06-30-midnight-to-midnight-events</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-06-30-midnight-to-midnight-events</guid>
      <description>Some calendar links publish an all-day event as a timed one running midnight to midnight. Keeper.sh can now treat those as all-day.</description>
      <content:encoded>&lt;p&gt;Some calendar links publish an all-day event as a timed one running midnight to midnight. Keeper.sh can now treat those as all-day.&lt;/p&gt;&lt;h3&gt;New&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;An assistant can set an event&apos;s timezone, such as America/New_York, when it creates one.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Improved&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;A calendar that keeps failing to fetch backs off and retries, while its events still go out.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;A repeating event in your Keeper.sh feed expands properly instead of showing once.&lt;/li&gt;&lt;li&gt;A skipped date no longer drops the whole repeating series from your feed.&lt;/li&gt;&lt;li&gt;Events in your Keeper.sh feed show at their local time in Outlook, not in UTC.&lt;/li&gt;&lt;li&gt;Events that failed to write on every single sync now go through.&lt;/li&gt;&lt;li&gt;Events written to iCloud, Fastmail and other CalDAV calendars keep their own timezone.&lt;/li&gt;&lt;li&gt;Calendars that returned an error and never fetched any events now sync.&lt;/li&gt;&lt;li&gt;When a calendar link cannot be loaded, the events already synced from it are kept.&lt;/li&gt;&lt;li&gt;Calendar links that write dates in an unusual form now import.&lt;/li&gt;&lt;li&gt;A calendar your provider reports as missing is retried instead of being switched off.&lt;/li&gt;&lt;li&gt;An edit to an event&apos;s title, description or location reaches your other calendars.&lt;/li&gt;&lt;li&gt;A slow provider no longer freezes a sync part-way through.&lt;/li&gt;&lt;li&gt;An account wrongly flagged as needing reconnection keeps syncing.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;v2.12.0&lt;/p&gt;</content:encoded>
      <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Connect a calendar server that uses digest sign-in</title>
      <link>https://www.keeper.sh/changelog/2026-05-22-digest-sign-in</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-05-22-digest-sign-in</guid>
      <description>Servers that ask for digest authentication instead of the usual kind now connect, and Keeper.sh remembers which one yours wants.</description>
      <content:encoded>&lt;p&gt;Servers that ask for digest authentication instead of the usual kind now connect, and Keeper.sh remembers which one yours wants.&lt;/p&gt;&lt;p&gt;v2.9.34&lt;/p&gt;</content:encoded>
      <pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Sync starts the moment you connect a calendar</title>
      <link>https://www.keeper.sh/changelog/2026-05-22-sync-on-connect</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-05-22-sync-on-connect</guid>
      <description>Connecting an account now runs a first sync immediately, instead of leaving you to wait for the next scheduled one.</description>
      <content:encoded>&lt;p&gt;Connecting an account now runs a first sync immediately, instead of leaving you to wait for the next scheduled one.&lt;/p&gt;&lt;h3&gt;Improved&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Access for each account is renewed one request at a time, so accounts stay signed in.&lt;/li&gt;&lt;li&gt;Google&apos;s working from home entries are always left out, and the option to include them is gone.&lt;/li&gt;&lt;li&gt;Large Google and Outlook calendars are fetched in smaller pages, so they stall less often.&lt;/li&gt;&lt;li&gt;The check your email screen reminds you to look in spam or junk.&lt;/li&gt;&lt;li&gt;A calendar link that comes back unchanged is no longer rebuilt from scratch.&lt;/li&gt;&lt;li&gt;Keeper.sh runs many more syncs at once, and a repeat sync replaces the one already waiting.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;You can delete your account when you signed in with Google or Microsoft.&lt;/li&gt;&lt;li&gt;A request for events between two times returns exactly that window.&lt;/li&gt;&lt;li&gt;Times read correctly in zones with a single-digit offset, such as Montevideo.&lt;/li&gt;&lt;li&gt;Repeating events show every occurrence in your Keeper.sh feed, not just the first.&lt;/li&gt;&lt;li&gt;All-day events read as all-day in the feed Keeper.sh publishes.&lt;/li&gt;&lt;li&gt;Calendar and feed settings save the value you typed.&lt;/li&gt;&lt;li&gt;Sync progress only moves forward, and reaches the end when the sync is done.&lt;/li&gt;&lt;li&gt;An event already sitting in the calendar you sync into is replaced with the current version.&lt;/li&gt;&lt;li&gt;Keeper.sh waits and retries the way Google asks when it is being rate limited.&lt;/li&gt;&lt;li&gt;Ordinary hiccups from a CalDAV server no longer ask you to reconnect.&lt;/li&gt;&lt;li&gt;Events land in the calendar you chose, not the default one, and stop repeating.&lt;/li&gt;&lt;li&gt;An account that returns no email address now connects.&lt;/li&gt;&lt;li&gt;Events no longer fail when Microsoft returns no identifier for them.&lt;/li&gt;&lt;li&gt;Calendar links hosted by Google load again.&lt;/li&gt;&lt;li&gt;A calendar you turned off is no longer synced on every scheduled run.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;v2.9.34&lt;/p&gt;</content:encoded>
      <pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Assistants can now book, change and reply to events</title>
      <link>https://www.keeper.sh/changelog/2026-04-09-assistant-actions</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-04-09-assistant-actions</guid>
      <description>Assistant access grew past looking things up: creating, editing, deleting and RSVPing, with the same abilities available as a REST API.</description>
      <content:encoded>&lt;p&gt;Assistant access grew past looking things up: creating, editing, deleting and RSVPing, with the same abilities available as a REST API.&lt;/p&gt;&lt;p&gt;v2.9.33&lt;/p&gt;</content:encoded>
      <pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Connect Keeper.sh to Claude and other AI assistants</title>
      <link>https://www.keeper.sh/changelog/2026-04-09-assistant-connector</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-04-09-assistant-connector</guid>
      <description>Add Keeper.sh as a connector and an assistant can see which calendars you have linked and look up what is on them.</description>
      <content:encoded>&lt;p&gt;Add Keeper.sh as a connector and an assistant can see which calendars you have linked and look up what is on them.&lt;/p&gt;&lt;h3&gt;New&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Visitors in the EU, EEA and UK are asked whether Keeper.sh may use analytics and advertising cookies, and the choice is remembered.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Improved&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;A connected assistant stays signed in considerably longer before it asks you to connect again.&lt;/li&gt;&lt;li&gt;A calendar you sync into that hits a passing error keeps retrying on the normal schedule instead of being switched off.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Connecting Keeper.sh from Claude Desktop goes through, instead of failing before the approval screen.&lt;/li&gt;&lt;li&gt;Events no longer appear on your other calendars, vanish on the next sync, and come back again.&lt;/li&gt;&lt;li&gt;Copies of the same event no longer pile up, one more added on every sync.&lt;/li&gt;&lt;li&gt;Calendars that label times the Microsoft way, such as Eastern Standard Time, now arrive at the right hour.&lt;/li&gt;&lt;li&gt;An ordinary hiccup no longer flags a working account as needing to be reconnected.&lt;/li&gt;&lt;li&gt;A calendar deleted at your provider is switched off instead of failing on every run.&lt;/li&gt;&lt;li&gt;An empty or cut-short error from Google no longer stops the whole sync.&lt;/li&gt;&lt;li&gt;Your calendar list still loads when a provider declines to hand it over.&lt;/li&gt;&lt;li&gt;The checkout window on the upgrade page opens instead of coming up blank.&lt;/li&gt;&lt;li&gt;Starting a Microsoft 365 connection takes you to the Microsoft sign-in page instead of failing immediately.&lt;/li&gt;&lt;li&gt;An occurrence of a repeating meeting moved or retitled on a CalDAV calendar now comes across.&lt;/li&gt;&lt;li&gt;CalDAV servers that return unusable data for repeating events, Lark among them, now sync.&lt;/li&gt;&lt;li&gt;One event copied into two Google calendars is no longer treated as a duplicate of itself.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;v2.9.33&lt;/p&gt;</content:encoded>
      <pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>All-day events, out of office and working location</title>
      <link>https://www.keeper.sh/changelog/2026-03-11-event-types</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-03-11-event-types</guid>
      <description>An all-day event stays all-day when it is copied, and out-of-office and working-elsewhere blocks arrive as the same kind of entry.</description>
      <content:encoded>&lt;p&gt;An all-day event stays all-day when it is copied, and out-of-office and working-elsewhere blocks arrive as the same kind of entry.&lt;/p&gt;&lt;h3&gt;Improved&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Your plan shows on the settings page as soon as it loads, instead of filling in a moment later.&lt;/li&gt;&lt;li&gt;keeper.sh without the www prefix redirects to the www address, so every link lands in the same place.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Marketing pages, the dashboard and long settings screens scroll again, and size themselves to the visible area on mobile.&lt;/li&gt;&lt;li&gt;Hover hints no longer stick to the screen on phones and tablets.&lt;/li&gt;&lt;li&gt;Passkey sign-in is only offered where it can complete, says why it failed, and leaves the password field in place for autofill.&lt;/li&gt;&lt;li&gt;A freshly loaded page shows the signed-in menu straight away, rather than the signed-out links first.&lt;/li&gt;&lt;li&gt;Events written to a CalDAV calendar are matched to the copies already there instead of written twice.&lt;/li&gt;&lt;li&gt;A connected calendar keeps the name it had when you connected it, instead of being rewritten on every sync.&lt;/li&gt;&lt;li&gt;Moving between calendars refills the details and destination list, instead of leaving the last one on screen.&lt;/li&gt;&lt;li&gt;The name a CalDAV calendar carries on its server is now shown in the calendar details.&lt;/li&gt;&lt;li&gt;A CalDAV account whose credentials are refused is marked as needing to be reconnected, instead of retrying forever.&lt;/li&gt;&lt;li&gt;A calendar you only write to is no longer read from as well.&lt;/li&gt;&lt;li&gt;The refresh handles genuine subscription links only, instead of reading connected accounts as calendar files.&lt;/li&gt;&lt;li&gt;A request Google or Microsoft never answers is given up on after fifteen seconds, so the sync moves on.&lt;/li&gt;&lt;li&gt;The exclude toggles for all-day, focus time, out of office and working location apply to every calendar you sync into.&lt;/li&gt;&lt;li&gt;Events stored before all-day and event-type support arrived are matched to their incoming version, not deleted and recreated.&lt;/li&gt;&lt;li&gt;A row inside a switched-off section now looks switched off.&lt;/li&gt;&lt;li&gt;The sitemap, llms.txt and llms-full.txt are published with the site and reachable again.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;v2.2.20&lt;/p&gt;</content:encoded>
      <pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Name your copied events however you like</title>
      <link>https://www.keeper.sh/changelog/2026-03-10-custom-event-names</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-03-10-custom-event-names</guid>
      <description>Set a template for the title a copy carries, using the original event&apos;s name, the calendar it came from, or plain text of your own.</description>
      <content:encoded>&lt;p&gt;Set a template for the title a copy carries, using the original event&apos;s name, the calendar it came from, or plain text of your own.&lt;/p&gt;&lt;p&gt;v2.1.7&lt;/p&gt;</content:encoded>
      <pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>A new Keeper.sh website</title>
      <link>https://www.keeper.sh/changelog/2026-03-10-new-website</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-03-10-new-website</guid>
      <description>The public site has been rebuilt to explain what Keeper.sh does and what it costs, without requiring you to sign up to find out.</description>
      <content:encoded>&lt;p&gt;The public site has been rebuilt to explain what Keeper.sh does and what it costs, without requiring you to sign up to find out.&lt;/p&gt;&lt;h3&gt;New&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Keeper.sh follows your system&apos;s light or dark appearance, across the website and the dashboard.&lt;/li&gt;&lt;li&gt;A saved passkey is offered as soon as you focus the email field, and passkeys can be added and removed from settings.&lt;/li&gt;&lt;li&gt;A Forgot password link emails you a reset link, and a screen for choosing a new password.&lt;/li&gt;&lt;li&gt;Settings brings your account controls into one place: change your password, manage your passkeys, and delete your account.&lt;/li&gt;&lt;li&gt;The dashboard opens with a bar graph of your event activity over time, with a running total and a count for the day you hover.&lt;/li&gt;&lt;li&gt;On Pro, you decide per calendar whether an event&apos;s title, description and location travel with it.&lt;/li&gt;&lt;li&gt;You pick which calendars appear in your Keeper.sh link, and Pro adds control over names, descriptions, locations and all-day events.&lt;/li&gt;&lt;li&gt;A calendar feed behind a username and password can be added by ticking a box and supplying them.&lt;/li&gt;&lt;li&gt;Syncing looks back seven days as well as forward, so events from earlier in the week come across.&lt;/li&gt;&lt;li&gt;Connecting an account walks you straight into choosing which calendars to sync, and where their events go.&lt;/li&gt;&lt;li&gt;A live progress ring shows how many events have been processed, and when your calendars last finished syncing.&lt;/li&gt;&lt;li&gt;Free covers two linked accounts, three sync connections and the aggregated calendar link; Pro lifts the limits and syncs every minute.&lt;/li&gt;&lt;li&gt;The upgrade page has a monthly and yearly toggle, and Pro subscribers get a Manage plan option that opens their billing portal.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Improved&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Each calendar has its own settings page, where you choose which calendars it sends events to and, on Pro, what is carried across.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;A repeating event whose first occurrence has passed is kept as long as it still has occurrences ahead, and its skipped dates are respected.&lt;/li&gt;&lt;li&gt;An event keeps the timezone it was created in, so it no longer shifts hours on the way to another calendar.&lt;/li&gt;&lt;li&gt;All-day events published without an end time, holiday calendars among them, now come across.&lt;/li&gt;&lt;li&gt;Copies of events that have already started are left alone, instead of being deleted.&lt;/li&gt;&lt;li&gt;A newly connected calendar copies only the calendar&apos;s name onto the events it sends on; titles, descriptions and locations stay behind.&lt;/li&gt;&lt;li&gt;A freshly connected calendar is picked up by the scheduled sync as soon as it can receive events.&lt;/li&gt;&lt;li&gt;The sync indicator returns to idle when the work is done, instead of claiming a sync is still running.&lt;/li&gt;&lt;li&gt;Toggling destination calendars in quick succession applies your changes in order, instead of losing one.&lt;/li&gt;&lt;li&gt;Two overlapping attempts to connect the same account leave you with one account, not two.&lt;/li&gt;&lt;li&gt;Deleting your account finishes cleanly when your billing record has already been removed.&lt;/li&gt;&lt;li&gt;The sign-in page checks for passkey support first, and falls back to email and password.&lt;/li&gt;&lt;li&gt;Dragging along the event graph on a phone reads daily counts instead of scrolling the page.&lt;/li&gt;&lt;li&gt;The header follows your actual session, and the sign-in page sends you to your dashboard if you are already signed in.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;v2.1.7&lt;/p&gt;</content:encoded>
      <pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>A rebuilt dashboard</title>
      <link>https://www.keeper.sh/changelog/2026-03-10-rebuilt-dashboard</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-03-10-rebuilt-dashboard</guid>
      <description>The signed-in side of Keeper.sh has been rebuilt around connections rather than around a list of accounts.</description>
      <content:encoded>&lt;p&gt;The signed-in side of Keeper.sh has been rebuilt around connections rather than around a list of accounts.&lt;/p&gt;&lt;p&gt;v2.1.7&lt;/p&gt;</content:encoded>
      <pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Connect Google Calendar by signing in</title>
      <link>https://www.keeper.sh/changelog/2026-01-10-google-source</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-01-10-google-source</guid>
      <description>Sign in with Google and pick which of its calendars Keeper.sh reads, instead of hunting for a secret iCal link and pasting it.</description>
      <content:encoded>&lt;p&gt;Sign in with Google and pick which of its calendars Keeper.sh reads, instead of hunting for a secret iCal link and pasting it.&lt;/p&gt;&lt;h3&gt;New&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;When you add a Google source you can uncheck Focus Time, Out of Office and Working Location, so those blocks stay out of your other calendars.&lt;/li&gt;&lt;li&gt;Visitors in the EU, EEA and UK are asked whether Keeper.sh may use cookies for analytics, with a link to the privacy policy.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Improved&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Adding a Google or Outlook calendar as a source starts a sync straight away, rather than waiting for the next scheduled run.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;A Google or Outlook account that stops accepting Keeper.sh is marked as needing to be reconnected, instead of failing quietly.&lt;/li&gt;&lt;li&gt;Events Keeper.sh left on a calendar that no longer match anything in your sources are removed, not just the ones in the past.&lt;/li&gt;&lt;li&gt;An event with no description no longer stops Outlook syncing in either direction.&lt;/li&gt;&lt;li&gt;A sync that runs into a problem ends the run, instead of showing progress that never finishes.&lt;/li&gt;&lt;li&gt;Deleting your account only asks for a password when your account actually has one.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;v1.11.5&lt;/p&gt;</content:encoded>
      <pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Connect Outlook as a source, not just a destination</title>
      <link>https://www.keeper.sh/changelog/2026-01-10-outlook-source</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-01-10-outlook-source</guid>
      <description>Outlook joins Google as an account you sign into. Choose the calendar you want read, and its busy time flows to everywhere else you have connected.</description>
      <content:encoded>&lt;p&gt;Outlook joins Google as an account you sign into. Choose the calendar you want read, and its busy time flows to everywhere else you have connected.&lt;/p&gt;&lt;p&gt;v1.11.5&lt;/p&gt;</content:encoded>
      <pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Connect iCloud, Fastmail and other CalDAV calendars</title>
      <link>https://www.keeper.sh/changelog/2026-01-10-caldav-source</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2026-01-10-caldav-source</guid>
      <description>Add an iCloud, Fastmail or generic CalDAV calendar with your address and an app password, with the dialog pointing you at where to generate one.</description>
      <content:encoded>&lt;p&gt;Add an iCloud, Fastmail or generic CalDAV calendar with your address and an app password, with the dialog pointing you at where to generate one.&lt;/p&gt;&lt;p&gt;v1.11.5&lt;/p&gt;</content:encoded>
      <pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Add any calendar by pasting its link</title>
      <link>https://www.keeper.sh/changelog/2025-12-30-add-calendar-link</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2025-12-30-add-calendar-link</guid>
      <description>Give a calendar a name, paste its iCal link, and Keeper.sh starts pulling its events — including calendars that sit behind a username and password.</description>
      <content:encoded>&lt;p&gt;Give a calendar a name, paste its iCal link, and Keeper.sh starts pulling its events — including calendars that sit behind a username and password.&lt;/p&gt;&lt;h3&gt;New&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;You can sign up with an email address and password, continue with Google, or sign in with a passkey, and reset a forgotten password.&lt;/li&gt;&lt;li&gt;Your events read as a day-by-day agenda rather than a grid, with a colour dot per calendar and further days loading as you scroll.&lt;/li&gt;&lt;li&gt;Outlook joins Google Calendar as a place to write your busy time to, for both work and personal Microsoft accounts.&lt;/li&gt;&lt;li&gt;You can send your busy time to iCloud, Fastmail, or any other calendar that speaks CalDAV.&lt;/li&gt;&lt;li&gt;Each connected calendar shows what Keeper.sh is doing right now, and updates itself as the work happens.&lt;/li&gt;&lt;li&gt;A Free plan covers two calendar sources, one destination and the combined iCal feed; Pro lifts those limits and syncs every minute.&lt;/li&gt;&lt;li&gt;The billing page lists your past purchases, so you can see what you were charged and when.&lt;/li&gt;&lt;li&gt;You can pick, per destination, which of your calendar sources feed it, so work and personal calendars stay apart.&lt;/li&gt;&lt;li&gt;A connection that needs reconnecting is badged as such, with one click to fix it, and does not count against the Free plan limit.&lt;/li&gt;&lt;li&gt;A calendar link that needs a username and password asks you for them, and uses them when fetching.&lt;/li&gt;&lt;li&gt;Keeper.sh can be self-hosted, with published container images, a documented compose setup, and an all-in-one image.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Improved&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;You can connect more than one account per provider, each with its own status and address.&lt;/li&gt;&lt;li&gt;Pro dropped from $8 a month to $5, and from $48 a year to $42.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Pushing busy time into an Outlook calendar that is also read as a source no longer piles up duplicates.&lt;/li&gt;&lt;li&gt;An event deleted at the calendar it was pushed to is written again on the next sync, rather than leaving a hole.&lt;/li&gt;&lt;li&gt;Two busy periods sharing a slot no longer overwrite each other, and removed events are removed from Google.&lt;/li&gt;&lt;li&gt;Someone with a connected destination but no sources is included in every sync run, so stale busy time is cleared.&lt;/li&gt;&lt;li&gt;The Pro sync job runs at the intended once-a-minute interval.&lt;/li&gt;&lt;li&gt;The sync status no longer flashes back to idle mid-sync, and a genuine count of zero shows as zero.&lt;/li&gt;&lt;li&gt;A calendar you just connected has a sync status straight away.&lt;/li&gt;&lt;li&gt;Passkey sign-in no longer prompts twice, and takes you to your dashboard once you have authenticated.&lt;/li&gt;&lt;li&gt;Sync status updates in real time on the hosted site again.&lt;/li&gt;&lt;li&gt;iCloud calendars sync again, and a full ten years of repeating events is read rather than a short window.&lt;/li&gt;&lt;li&gt;Events Keeper.sh created are ignored when importing, so a calendar it also writes to no longer inflates your busy time.&lt;/li&gt;&lt;li&gt;The password reset page loads, so a reset link can be followed through to a new password.&lt;/li&gt;&lt;li&gt;The site header follows your sign-in state, instead of needing a reload.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;v1.7.0&lt;/p&gt;</content:encoded>
      <pubDate>Tue, 30 Dec 2025 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Choose which calendars copy into your Google calendar</title>
      <link>https://www.keeper.sh/changelog/2025-12-30-google-calendar-destination</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2025-12-30-google-calendar-destination</guid>
      <description>Connect a Google account as a destination, then pick which of your sources feed it. Only the calendars you map are written across.</description>
      <content:encoded>&lt;p&gt;Connect a Google account as a destination, then pick which of your sources feed it. Only the calendars you map are written across.&lt;/p&gt;&lt;p&gt;v1.7.0&lt;/p&gt;</content:encoded>
      <pubDate>Tue, 30 Dec 2025 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>One link that carries every calendar you have added</title>
      <link>https://www.keeper.sh/changelog/2025-12-30-one-calendar-link</link>
      <guid isPermaLink="true">https://www.keeper.sh/changelog/2025-12-30-one-calendar-link</guid>
      <description>Keeper.sh publishes a single iCal link combining everything you have connected, so anyone you share it with sees your whole week in one subscription.</description>
      <content:encoded>&lt;p&gt;Keeper.sh publishes a single iCal link combining everything you have connected, so anyone you share it with sees your whole week in one subscription.&lt;/p&gt;&lt;p&gt;v1.7.0&lt;/p&gt;</content:encoded>
      <pubDate>Tue, 30 Dec 2025 00:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>
