Documentation

Everything you need to set up and run your calendar feed.

Getting started

You need two things: your department's rota, and the name exactly as it appears on it. The rota can come in three forms. Pick whichever matches yours on the dashboard:

  • Google Sheet link (live): shared so anyone with the link can view.
  • Office 365 / SharePoint link (live): an "Anyone with the link" share link from Excel Online (see below).
  • Excel or CSV file (snapshot): upload the file itself; re-upload whenever a new version comes out.

Linking a rota

The steps below show the Google Sheets flow; Office 365 links and file uploads follow the same analyse → pick name → timings → subscribe journey (see their sections for how to get the rota in).

  1. 1In Google Sheets, open the tab with your live rota and copy the URL from your browser (it should contain /spreadsheets/d/…). If your rota is on a specific tab, copy the URL while that tab is open so the gid is included.
  2. 2On your dashboard, paste the link and click Verify & Analyze Rota. A progress bar shows RotaSync reading your sheet, and large workbooks can take a minute.
  3. 3Pick your name from the detected list (or type it if it's missing).
  4. 4Review the shift timings (see below), then click Generate My Calendar.
  5. 5Copy your feed link, or use the one-tap Apple/Google buttons to subscribe.

Tip: if the sheet is very large and analysis times out, we keep working in the background. Come back in a few minutes and paste the same link again; it'll be ready instantly.

Before you link a rota: you'll be asked to confirm you're entitled to access the rota and to link it here — or, if you're uploading a file, that you have permission to upload it — and that the sheet contains no patient-identifiable or clinically confidential information. Being entitled to access a rota isn't always the same as being allowed to share it, so check with your employer if you're unsure.

Office 365 / SharePoint rotas

Many hospital rotas live in Excel Online on SharePoint or OneDrive and aren't publicly viewable. There are two ways to get them into RotaSync:

Option 1: tokenised share link (live sync, recommended)

  1. Open the rota in Excel Online / SharePoint / OneDrive.
  2. Click Share → Copy link and set the link to "Anyone with the link" (view only is fine).
  3. On the dashboard choose Office 365 / SharePoint and paste the link.

The share link carries its own embedded access token, so RotaSync can re-read the workbook on every calendar refresh, so your calendar stays live exactly like a Google Sheet. If your trust revokes or expires the link, just re-share and re-link.

Option 2: Power Automate email (when anonymous sharing is blocked)

If "Anyone with the link" is greyed out, your organisation has disabled anonymous sharing. You can still automate getting the file to yourself with Power Automate (included in most work Office 365 subscriptions, works in the browser, nothing to install):

  1. Upload the rota once on the dashboard as an Excel / CSV file.
  2. On that rota's card, open "⚡ Automate updates by email" and copy your unique RotaSync update address, which looks like u-…@ingest.rotasync.co.uk. (It only appears once the rota is linked, because emailing in updates a rota and can't create one.)
  3. Go to make.powerautomate.com on your work account and create a Scheduled cloud flow set to repeat every 1 day (e.g. at 02:00 every night).
  4. Add the "Get file content" action (SharePoint or OneDrive for Business) and select the rota file.
  5. Add "Send an email (V2)" to your unique RotaSync address, attaching the file content output.
  6. If the flow sends from a work account rather than the email you signed up with, add that work address in the same panel under "Addresses allowed to send". We email it a 6-digit code to check you can read it. You can add up to two.

From then on the latest rota is emailed in every night and your calendar updates automatically, with no manual re-uploads. For security, mail is only accepted from your account email address or an address you've verified, it can only update a rota you already linked, and each email gets a confirmation or failure reply. A verified sending address gains nothing else: it can't sign in and it doesn't change your account email. The emailed file is processed in memory and never stored.

Emailing in two different rotas works too: we match each attachment against every rota you've uploaded and update the one it belongs to. In the rare case where a file fits two of your rotas equally well we change neither and reply saying so, so a stray file can never silently overwrite the wrong calendar.

Uploading an Excel rota (snapshot)

If the rota is a plain Excel file, emailed around or sitting on a work computer where nothing can be installed, you don't need a link at all. RotaSync is just a website: open the dashboard in any browser, choose Excel / CSV file and upload the rota (.xlsx, .xls or .csv, up to 8 MB). The same layout analysis, name matching and shift timings then apply.

  • It's a snapshot. Unlike linked rotas, an uploaded rota only changes when you upload a newer version; the rota card shows when it was last updated.
  • Updating is one tap. Use Update file on the rota card. Your feed link, calendar subscriptions and shift timings all stay put; only the data refreshes.
  • Or automate it by email. Once a rota is linked, open "⚡ Automate updates by email" on its card for your unique rota-update address. Email the rota file to it, either manually or from a nightly scheduled Power Automate flow, and the rota updates exactly like pressing Update file. Only mail from your own account email is accepted.
  • Updates must be the same rota. As part of your subscription you can keep up to 2 uploaded rotas (plus 2 live links) and update them as often as you like. To stop the slots being recycled for unlimited different rotas, we take a fingerprint of the rota document when you link it and check every new upload against it, to confirm the upload is an updated version of the same document. A genuinely different rota should be unlinked and added as new.
  • Fair use: 2 different uploaded rotas per 4 months. Updates are unlimited, but linking different uploaded rotas is capped at 2 in any rolling 4-month period, matching a typical rotation. If you hit the cap, the message tells you when the next slot frees up. (Live links have no such window, so you can swap those as often as you like.)
  • Ended rotas nudge you. When every shift in the uploaded version is in the past, your calendar shows a single all-day reminder to upload the new version.

Adjusting shift timings

RotaSync guesses each shift's times from its code and any shift-times key in your sheet. You can correct anything:

  • Quick setup: set your standard day start, day end, long-day end and night start/end once, then Apply to all shifts. Every day/long-day/night code updates at once.
  • Advanced: expand it to set each shift's type (long day, short day, night, twilight, evening, on-call, standard day or all-day/leave) and exact start/end times, including separate weekend/bank-holiday times.
  • A live preview shows how each code will appear before you save.

To change timings later, open your dashboard, find the rota card and click Edit timings. Changes save instantly and your subscribers pick them up on their next refresh; you don't need to re-link or re-share anything.

Linking more rotas

Your subscription covers up to 2 live rotas (Google Sheet or Office 365 links) and 2 uploaded rotas at the same time, which is plenty for split placements. On the dashboard, use the Link another rota tile and repeat the linking steps. Everything merges into your single calendar feed automatically, with no second subscription needed. If your rotas ever put you in two places at once, the calendar shows a warning on the affected days so you can check which one is right. (Because everything merges into one calendar, an account can only ever serve one person's rotas: accounts are personal, and a second person needs their own account.)

Fair use: you can update any linked rota as often as you like, and swap your live links to new rotas whenever you need. Uploaded rotas cover up to 2 different documents in any rolling 4-month period, enough for a normal rotation changeover. An upload slot frees up once 4 months have passed since the earlier rota was first linked.

Adding the feed to your calendar

Subscribe once and your calendar stays in sync. Use the subscription link (not a one-time import) so future changes flow through.

Apple Calendar (iPhone / iPad)

Settings → Calendar → Accounts → Add Account → Other → Add Subscribed Calendar, then paste your feed link. On Mac: Calendar → File → New Calendar Subscription.

The one-tap Apple button on your dashboard uses a webcal:// link that opens this flow automatically.

Google Calendar

On a computer: Google Calendar → Other calendars (+) → From URL → paste your feed link → Add calendar. It then syncs to your phone's Google Calendar app.

Google can be slow to refresh subscribed URLs (see below).

Outlook

Outlook.com / Outlook: Add calendar → Subscribe from web → paste your feed link → Import.

Any other calendar app

Your feed is a standard iCal/ICS subscription URL, so almost every calendar app can use it. Look for an option named Add calendar by URL, Subscribe to calendar, From internet or New calendar subscription (found in Fantastical, Thunderbird, Proton Calendar, Samsung Calendar, Fastmail and most others), and paste your feed link. Added this way it's a live subscription that keeps updating itself; don't use an “import file” option, which is a one-time copy.

Tip: if the app has a refresh frequency setting for subscribed calendars, set it to the shortest interval offered (often 15–30 minutes) so swaps and rota changes appear quickly. See update timing.

How often does it update?

RotaSync always serves the latest data when your calendar app asks for it. How quickly you see changes depends on your calendar app, not on RotaSync:

  • Apple Calendar: refresh interval is set when you subscribe (Settings → Calendar → Accounts → your subscription → Fetch New Data), from every 15 minutes to weekly. Pick a shorter interval if you want quicker updates.
  • Google Calendar: refreshes subscribed URLs on its own schedule (often several hours to ~24h) and this can't be forced. If you need an instant view, use the live preview on your dashboard.
  • Outlook: typically refreshes every few hours.
  • Other apps: check the subscribed calendar's settings for a refresh/update interval and set it to the shortest available, as many default to daily.

Because of this, a shift you change now may take a while to appear in a third-party calendar. The dashboard preview always reflects the current data immediately.

Uploaded rotas are the exception: they're snapshots, so the data itself only changes when you press Update file or an automated rota email arrives. After that, the same calendar-app refresh rules apply.

Pay & compliance calculator

A paid-tier feature turns your linked shifts into an indicative safe-working compliance check (against the published limits for your contract) and an expected gross/net pay estimate (from published NHS pay, tax, National Insurance, pension and student loan rates), based on a small profile you enter: nation, grade, specialty and similar. Estimates are indicative, never a guarantee; your payslip is the authoritative record of your pay.

How every figure is worked out, and where every rate comes from, is documented in full at How pay & compliance are calculated.

Your data: what we do (and don't) keep

  • Rota documents are never kept. Uploaded files and fetched spreadsheets pass through a short-lived processing cache and are then deleted. What we keep is only your extracted shifts, so your feed keeps working.
  • A short-lived processing cache, nothing more. When a live rota is read, the workbook sits in a cache for at most 10 minutes so teammates on the same rota don't trigger repeated fetches. An uploaded file sits there up to 30 minutes, which is what lets you pick your name and confirm your shifts without uploading it again. Then it's cleared. Data that isn't yours is never permanently stored, just temporarily processed.
  • No AI touches your rota. Working out a spreadsheet's layout is done entirely by our own software. Your rota is never sent to an AI model or an AI provider, so there is nothing for one to retain or train on.
  • Before you link a rota, you confirm (recorded with a timestamp) that you're entitled to access it and to link it here — or, for an uploaded file, that you have permission to upload it — and that it contains no patient-identifiable or clinically confidential information.

Full details in the Privacy Policy.

Troubleshooting

  • My name isn't in the list. Choose "type manually" and enter it exactly as on the sheet. Fuzzy matching handles nicknames and initials, but very unusual spellings may need the exact text.
  • Some shifts are missing. Check the shift's code exists on your linked tab and isn't only on a draft/old tab. Odd or brand-new codes may need a quick timing tweak in Edit timings.
  • Times look wrong. Open Edit timings and correct that shift type or its exact hours. Remember weekend/bank-holiday variants can have their own times.
  • My hours differ by day of the week. In Edit timings, untick “My shifts run these hours on every day of the week” and pick the days that differ — you'll be asked for those days' hours separately. If only one shift type breaks the pattern, set it on its own under Advanced.
  • Bank holiday vs leave. A worked bank-holiday shift shows as a timed shift labelled "(Bank Holiday)"; bank-holiday annual leave shows as an all-day "Bank Holiday Annual Leave". If yours is mislabelled, adjust it in Edit timings.
  • Calendar not updating. It's almost always the calendar app's refresh interval (see above). Confirm the change first on the dashboard preview. For uploaded rotas, remember the data only changes when you Update file.
  • "Sheet couldn't be read." Make sure the Google Sheet's sharing is set so anyone with the link can view. For Office 365 links, the link must be "Anyone with the link". Organisation-only links serve RotaSync a sign-in page instead of the rota.
  • "This doesn't look like an updated version of this rota." Re-uploads are validated against the rota you originally linked. Check you picked the right file; if you're genuinely switching to a different rota, unlink the old one and add the new file as a new rota.

Billing, cancelling & refunds

Manage your plan under Billing & Subscription on the dashboard. We offer a 14-day money-back guarantee: within 14 days of a payment you can request a full refund.

If an introductory offer is running when you subscribe, the discount applies to your first bill only — you'll see the discounted amount before you pay and again in your confirmation email, and the standard price applies from the next period. Every payment we take is receipted by email.

Important: cancelling with a refund revokes your access immediately and stops all your calendar feeds; you'll be warned and asked to confirm first. If you're past 14 days, use Manage Billing to cancel at the end of your current period and keep access until then. This doesn't affect your statutory consumer rights.