If you have a mailbox at each client, copy every client calendar onto the calendar you work from, so a meeting booked in one client's system blocks the same hour on the calendar you plan your week in. Keeper.sh is a calendar sync service that copies events between Google Calendar, Outlook, Microsoft 365, iCloud, Fastmail and any CalDAV server, so every calendar shows you as busy at the same times. It is free for 2 calendar accounts and 3 connections, and Pro is $5 a month for unlimited calendars.
How client calendars reach one working calendar
Each client calendar gets one connection into the calendar you work from, usually a calendar in your own account:
- Client A calendar to your working calendar
- Client B calendar to your working calendar
- Client C calendar to your working calendar
Each connection runs one way, so nothing in this layout writes to a client's system.
Each copy is a busy block named after the source calendar. The title, description and location are hidden by default, Pro can turn them back on per calendar, and guest lists are never copied. Outlook names a mailbox's default calendar "Calendar", so several client calendars can carry the same name. Rename each one under Calendar Name on its page in Keeper.sh; the new name exists only inside Keeper.sh, and the blocks on your working calendar carry it.
Three ways to show clients when you are busy
A busy-times link, a connection from your own calendar, or a client-to-client connection each show a client which hours are taken. The first two never show a client who else you work for.
A busy-times link. A shareable calendar link covers the calendars you choose and shows every event as "Busy", with no title, description or location. A client subscribes to it from Google Calendar, Outlook or Apple Calendar. It uses no connections and writes nothing into anyone's calendar. The client's app decides how often it re-reads the link.
Your own calendar into the client's. Connect your working calendar to the client calendar and the events you created on your working calendar appear there as busy blocks. Copies are not copied onward, so client B's blocks on your working calendar do not travel to client A through this connection.
Client to client. To block client A's calendar during client B's meetings, connect client B's calendar straight to client A's. The block on A carries the name Keeper.sh holds for B's calendar. Before making this connection, set Event Name on B's calendar to plain text such as "Busy", which is a Pro setting, or rename B's calendar to something neutral. Either choice applies to everything that calendar sends, your working calendar included.
Full cross-blocking for three clients is 6 client-to-client connections on top of the 3 inward ones, which needs Pro.
Set up the working calendar
- Create a Keeper.sh account, or sign in and choose Add a calendar on the dashboard.
- Connect your own account first. A new account lists Google Calendar, Outlook or Microsoft 365 and iCloud, with Fastmail and CalDAV under Fastmail, CalDAV or a calendar link.
- Connect each client account. A Google or Microsoft mailbox signs in on the provider's own permission screen, and Keeper.sh never sees the password.
- Open each client calendar, set Calendar Name to the client's name, and tick your working calendar under Send Events to Calendars. A client calendar that will also send events to another client's calendar needs a neutral name instead, or Event Name set to "Busy" on Pro.
- Leave your working calendar's own Send Events to Calendars list empty unless you chose the second option above.
- For the busy-times link, open iCal Feeds, tick the calendars whose time should count, and check the line under the link reads "This link shares event times only" before sending it.
Adding a connection starts a sync straight away, and copies cover one month back to two years ahead.
When a client's IT team has to approve the app
A client's Microsoft 365 or Google Workspace tenant may only allow apps its administrators have approved (Microsoft's user consent settings, Google's app access controls, both checked 10 November 2026). For Microsoft 365, Keeper.sh shows an approval link you can copy or email to the administrator.
Where approval is not an option and the client mailbox can publish an .ics link, paste that link under Subscribe with a calendar link. A calendar link is read-only: events copy out of it and nothing writes back. Each link counts as one calendar account.
Accounts, connections and price
Free covers 2 calendar accounts and 3 connections. Pro is $5 a month or $45 a year for unlimited calendars (pricing).
| Layout | Accounts | Connections | Plan |
|---|---|---|---|
| Your account and 1 client, both directions | 2 | 2 | Free |
| Your account and 2 clients, inward only | 3 | 2 | Pro |
| Your account and 3 clients, inward only | 4 | 3 | Pro |
| Your account and 3 clients, inward plus full cross-blocking | 4 | 9 | Pro |
Pro is one plan for one person. It has no per-calendar or per-client charge, so a fifth client costs the same $5 a month as a second.
On Pro, Google and Outlook changes land within seconds, and iCloud, Fastmail and CalDAV changes land every minute. On Free, changes land every 30 minutes. Pro also lets each client calendar leave out all-day events, focus time and out-of-office blocks, which keeps a client's office closures off your working calendar. The calendar sync features page lists the other per-calendar settings.
When an engagement ends
Untick your working calendar on that client's calendar. Keeper.sh removes the copies that connection made on the next sync, and events you created on your working calendar yourself are not touched. Then disconnect the client account, which stops Keeper.sh reading it and frees the account slot.
Common questions about client calendars
Can one client see another client's meetings?
No. With inward-only connections, Keeper.sh writes nothing to any client system. A copy written to a client's calendar leaves out the title, description, location and guest list, but it is titled with the source calendar's name as Keeper.sh holds it, so a calendar named after one client needs a neutral name, or "Busy" as its event name on Pro, before it sends events to another client's calendar.
Is Keeper.sh free for a consultant with one client?
Yes. Keeper.sh's Free plan covers 2 calendar accounts and 3 connections, which is your own account, one client account and a connection in each direction. A second client account needs Pro at $5 a month.
Do I need admin rights in the client's Microsoft 365 or Google Workspace?
No. Keeper.sh connects with your own sign-in to that mailbox. If the tenant restricts third-party apps, an administrator approves Keeper.sh once, or you add the calendar by its .ics link.