SYNCDATE syncs Google Calendar, Microsoft Outlook, CalDAV calendars, and iCal feeds from a single dashboard. Google and Outlook get full two-way sync via native APIs with ~4-second webhook delivery. CalDAV providers such as iCloud, Fastmail, and Nextcloud get two-way sync through the CalDAV protocol. iCal feeds are imported as read-only sources that push events to writable calendars automatically.
According to Atlassian's 2024 State of Teams report, 76% of knowledge workers manage events across multiple calendar systems. The typical setup: Outlook for work (corporate Microsoft 365), Google Calendar for personal life, iCloud or Fastmail for family, and an iCal feed from a booking system, team scheduling tool, or shared public calendar. Keeping them aligned usually requires separate tools or manual workarounds.
The Problem: Three Calendar Ecosystems, Zero Interoperability
Google and Microsoft don't sync with each other. This isn't a technical limitation — both provide APIs that enable real-time sync. It's a business decision. Neither company benefits from making their calendars interoperate with the competitor.
The result for you:
- Corporate Outlook + personal Google Calendar: Your work colleagues can't see your personal commitments when scheduling meetings. You double-book. Or you manually block time on both calendars every morning.
- Google Calendar + a team booking tool (iCal feed): Your team uses a scheduling system that publishes an iCal feed. You subscribe to it in Google Calendar, but the ICS subscription only refreshes every 12-24 hours — meaning your availability is stale for most of the day.
- Outlook + Google + CalDAV + iCal feed: You need all of them in sync, and no native method handles this. You end up with manual copy-paste, a patchwork of ICS subscriptions, or an expensive middleware tool.
SYNCDATE solves these scenarios from one account.
Provider Support at a Glance
| Capability | Google Calendar | Microsoft Outlook | CalDAV | iCal Feeds |
|---|---|---|---|---|
| **API integration** | [Google Calendar API](https://developers.google.com/calendar/api) | [Microsoft Graph API](https://learn.microsoft.com/en-us/graph/api/resources/calendar?view=graph-rest-1.0) | RFC 4791 CalDAV/WebDAV | Direct HTTP fetch + [RFC 5545](https://www.rfc-editor.org/rfc/rfc5545) parser |
| **Sync direction** | Two-way (bidirectional) | Two-way (bidirectional) | Two-way (bidirectional) | One-way (source only) |
| **Change detection** | Webhooks ([push notifications](https://developers.google.com/calendar/api/guides/push)) | Webhooks ([Graph subscriptions](https://learn.microsoft.com/en-us/graph/api/subscription-post-subscriptions)) | WebDAV sync-token or ETag polling | Hash-based diffing (poll + compare) |
| **Sync speed** | ~4 seconds | ~4 seconds | Polling interval | Polling interval |
| **Fallback** | 15-minute polling | 15-minute polling | ETag diff fallback | N/A (polling is primary) |
| **Recurring events** | Full RRULE sync | Full RRULE sync (pattern ↔ RRULE conversion) | Full VEVENT/RRULE sync | Parsed from feed (read-only) |
| **Event updates** | Create, update, delete | Create, update, delete | Create, update, delete | Detect changes via hash comparison |
| **Deduplication** | `calendarSyncId` metadata | `calendarSyncId` extended property | iCalendar metadata on target events | `calendarSyncId` on target events |
| **Authentication** | OAuth 2.0 | OAuth 2.0 (Microsoft Entra ID) | App-specific password or server credential | URL credential |
| **Free tier** | Yes | Yes | Yes | Yes |
Four provider models, one sync engine. Google, Outlook, and CalDAV are read-write integrations. iCal is read-only — it imports events from any calendar that publishes a standard iCal feed.
Microsoft Outlook: Full Two-Way Sync via Graph API
This is the feature most calendar sync tools get wrong. Many tools add "Outlook support" as a checkbox — they import ICS feeds from Outlook or use basic IMAP-style access. SYNCDATE connects directly to the Microsoft Graph Calendar API, which means Outlook is a first-class citizen, not an afterthought.
What "native Outlook sync" actually means
Webhook-driven change detection. When you create, move, or cancel a meeting in Outlook, Microsoft sends a Graph change notification to SYNCDATE's servers. The event propagates to your Google Calendar within ~4 seconds. No polling. No 15-minute delays. Same speed as Google-to-Google sync.
Full two-way sync. Changes flow in both directions. Create an event in Google Calendar — it appears in Outlook. Update a meeting time in Outlook — Google Calendar reflects the change. Cancel on either side — both calendars update. This is true bidirectional sync, not a one-way ICS subscription.
Recurring event translation. Outlook and Google store recurring events differently. Outlook uses a pattern object (type, interval, daysOfWeek, dayOfMonth). Google uses RFC 5545 RRULE strings. SYNCDATE converts between these formats automatically — edit a weekly recurring meeting in Outlook and the recurrence pattern maps correctly to Google Calendar.
Timezone normalization. Outlook uses Windows timezone identifiers ("Eastern Standard Time"). Google uses IANA identifiers ("America/New_York"). SYNCDATE maps between 80+ timezone pairs in both directions so your events display the correct time regardless of which calendar you're viewing.
All-day event handling. Google represents all-day events with date-only fields (YYYY-MM-DD). Outlook uses midnight-to-midnight datetime ranges with timezone. SYNCDATE normalizes this so an all-day event created on either platform appears correctly on the other.
Cross-provider deduplication. When an event syncs from Google to Outlook, SYNCDATE stamps it with a calendarSyncId in Outlook's extended properties (MAPI namespace). When Outlook's webhook fires for that stamped event, SYNCDATE recognizes it as a synced copy and skips it — preventing the A→B→A infinite loop that plagues naive sync implementations.
Who benefits most from Outlook sync
Corporate employees with personal Google Calendars. You use Microsoft 365 at work and Google Calendar for personal life. Without sync, your work colleagues can't see personal conflicts when using Outlook's Scheduling Assistant. With SYNCDATE, personal events appear as "Busy" blocks in Outlook — private by default, but visible to the scheduling engine.
Consultants working across organizations. You have a personal Outlook account and 2-3 client Google Workspace accounts. SYNCDATE keeps them all in sync so you never double-book across client engagements.
Hybrid teams. Your team is split between Google Workspace and Microsoft 365. Instead of asking everyone to switch platforms, SYNCDATE bridges the calendars so scheduling works across both ecosystems.
For a step-by-step setup guide, see How to Sync Google Calendar with Outlook. For technical details on two-way cross-provider sync, see How to Two-Way Sync Outlook and Google Calendar.
CalDAV: iCloud, Fastmail, Nextcloud, and Custom Servers
CalDAV is the open calendar protocol behind iCloud Calendar, Fastmail, Nextcloud, and many self-hosted calendar servers. SYNCDATE connects to these calendars with an app-specific password or server credential, discovers available calendars, and syncs events through standard CalDAV/WebDAV operations.
What CalDAV support means in practice
Two-way sync. Unlike iCal feeds, CalDAV calendars are writable. You can sync iCloud ↔ Google, Fastmail ↔ Outlook, Nextcloud ↔ Google, or a custom CalDAV server with any other writable provider.
Scheduled change detection. CalDAV does not provide one universal webhook system. SYNCDATE uses WebDAV sync tokens where the server supports them and falls back to ETag diffing where it does not.
App-specific passwords. iCloud and Fastmail require app-specific passwords for CalDAV access. Nextcloud usually uses your server URL plus a user credential or app password. These credentials are encrypted at rest like OAuth tokens.
Read-write event handling. SYNCDATE creates, updates, and deletes CalDAV events as VEVENT resources, preserving UID, recurrence rules, timezone data, and all-day event semantics where the provider supports them.
iCal Feeds: Import Any Calendar as a Read-Only Source
iCal is the universal calendar format. Almost every calendar system — Teamup, Fantastical, booking platforms, university schedules, sports team calendars, government meeting feeds — can publish an iCal (ICS) feed URL. SYNCDATE imports these feeds as one-way sources, pushing events to writable Google, Outlook, or CalDAV calendars automatically.
How iCal feeds work in SYNCDATE
- Paste the iCal feed URL in the SYNCDATE dashboard (Connect Account → iCal Feed)
- SYNCDATE fetches the feed and parses it according to RFC 5545 — the iCalendar standard
- Create a one-way sync with the iCal feed as the source and a writable Google, Outlook, or CalDAV calendar as the target
- Events appear on your target calendar and stay updated as the feed changes
No OAuth needed. No account credentials to share. Just a URL.
What the iCal parser handles
- Recurring events: Full RRULE parsing including exceptions (EXDATE) and instance overrides (RECURRENCE-ID)
- Timezone support: TZID parameters on DTSTART/DTEND are preserved and mapped correctly
- Change detection: Hash-based diffing — SYNCDATE compares SHA-256 hashes of event properties between fetches to detect creates, updates, and deletes
- Status normalization: CANCELLED, TENTATIVE, and CONFIRMED statuses map to the target calendar's conventions
- UID generation: If a feed omits UIDs (some do), SYNCDATE generates deterministic IDs from event content so changes are tracked correctly
What iCal feeds cannot do
No two-way sync. iCal feeds are read-only by specification — RFC 5545 defines a data format, not a write protocol. You can pull events from a feed, but you cannot push changes back. SYNCDATE enforces this automatically: when you include an iCal feed in a sync, the wizard locks it to one-way mode with the feed as the source.
No webhooks. iCal feeds don't support push notifications. SYNCDATE polls the feed on its scheduled interval and uses hash comparison to detect what changed. This is slower than webhook-based sync (~4 seconds) but still faster than Google Calendar's native ICS subscription refresh, which updates only every 12-24 hours.
No attendee write-back. If you RSVP to an event on your target calendar, that response doesn't flow back to the iCal source.
iCal vs subscribing in Google Calendar
Google Calendar lets you subscribe to ICS feeds directly via "Other calendars → From URL." Why use SYNCDATE instead?
| Google Calendar ICS Subscribe | SYNCDATE iCal Import | |
|---|---|---|
| **Refresh rate** | [12-24 hours](https://support.google.com/calendar/answer/37100) | Scheduled polling (faster) |
| **Events on your calendar** | Separate overlay calendar | Events on your actual calendar |
| **Scheduling tools see events** | Depends on calendar visibility settings | Yes (native events) |
| **"Busy" status** | Often shows as "Free" (ICS overlay limitation) | Configurable — "Busy" by default |
| **Sync with Outlook or CalDAV too** | No | Yes (target can be Outlook or CalDAV) |
| **Deduplication** | None | `calendarSyncId` metadata |
| **Delete tracking** | Delayed | Hash-based detection |
The critical difference: Google's ICS subscription creates an overlay calendar that scheduling tools often ignore. SYNCDATE creates real events on your target calendar that show up properly in Scheduling Assistant, Find a Time, and Calendly.
Cross-Provider Sync Scenarios
SYNCDATE's provider set unlocks combinations that no single native method supports.
Scenario 1: Corporate Outlook + Personal Google + Team iCal Feed
Setup:
- Sync 1: Outlook (work) ↔ Google Calendar (personal) — two-way, busy blocks by default
- Sync 2: iCal feed (team schedule) → Google Calendar (personal) — one-way import
Result: Your personal Google Calendar shows everything. Your work Outlook calendar shows personal blocks. Your team's schedule appears on your personal calendar automatically. Multiple ecosystems, one unified view.
Scenario 2: Multiple Google Accounts + Outlook
Setup:
- Sync 1: Google (work) ↔ Google (personal) — two-way
- Sync 2: Google (personal) ↔ Outlook (freelance) — two-way, cross-provider
Result: All three calendars stay in sync. A meeting booked on your freelance Outlook appears on your work Google Calendar as a busy block within ~4 seconds.
Scenario 3: University Schedule (iCal) + Work Outlook + Personal Google
Setup:
- Sync 1: University iCal feed → Google Calendar (personal) — one-way import
- Sync 2: Google Calendar (personal) ↔ Outlook (work) — two-way
Result: Your class schedule flows from the university feed to your personal Google Calendar, then syncs to your work Outlook. Colleagues see you're busy during lectures without seeing the details.
Scenario 4: Agency with Client Calendars
Setup: Connect 3 Google Workspace accounts (clients) + 1 Outlook (agency) + 1 Fastmail or Nextcloud CalDAV account + 1 iCal feed (project management tool)
- Multiple one-way syncs from client calendars to agency Outlook
- CalDAV calendar syncs two-way with the agency account
- iCal feed from PM tool into agency Google Calendar or CalDAV
Result: The agency calendar shows all commitments across every client and the internal project schedule. No manual calendar juggling.
Security: How SYNCDATE Handles Different Auth Models
| Outlook | CalDAV | iCal | ||
|---|---|---|---|---|
| **Authentication** | OAuth 2.0 | OAuth 2.0 (Microsoft Entra ID) | App-specific password or server credential | URL-based |
| **Credential storage** | AES-256-GCM encrypted at rest | AES-256-GCM encrypted at rest | AES-256-GCM encrypted at rest | Feed URL encrypted |
| **Token refresh** | Automatic (refresh token) | Automatic (refresh token, 90-day window) | N/A | N/A |
| **Scope** | Read/write calendar events | Read/write calendar events | Read/write calendar events | Read-only (HTTP GET) |
| **SSRF protection** | N/A (Google's API) | N/A (Microsoft's API) | URL guard for server/href access | Yes (blocks private IPs, localhost, local domains) |
| **Revocation** | Disconnect in dashboard | Disconnect in dashboard | Disconnect in dashboard or revoke app password | Remove feed URL |
| **Data sovereignty** | Tokens: EU (Hetzner, Germany) | Tokens: EU (Hetzner, Germany) | Credentials: EU (Hetzner, Germany) | Feed URL: EU (Hetzner, Germany) |
For iCal feeds specifically, SYNCDATE treats the feed URL as a credential — it's encrypted at rest with the same AES-256-GCM encryption used for OAuth tokens. The URL is never exposed in the UI or API responses. SSRF protections prevent feeds from accessing private network addresses, blocking potential server-side request forgery attacks.
For a deeper dive into SYNCDATE's security model, see Is It Safe to Give a Calendar App Access? and Privacy in Calendar Sync.
How This Compares to Other Tools
| Feature | SYNCDATE | CalendarBridge | OneCal | Reclaim.ai |
|---|---|---|---|---|
| **Google Calendar** | Yes (native API, webhooks) | Yes | Yes | Yes |
| **Microsoft Outlook** | Yes (native Graph API, webhooks) | Yes | Limited | Yes |
| **CalDAV / iCloud** | Yes (CalDAV) | Yes | Yes | No |
| **iCal feeds** | Yes (read-only import) | No | No | No |
| **Cross-provider two-way sync** | Yes (Google ↔ Outlook ↔ CalDAV) | Yes | Limited | Yes |
| **Sync speed** | ~4 seconds for Google/Outlook; polling for CalDAV/iCal | 5-15 min (polling) | 3-5 min (polling) | Minutes (polling) |
| **Free tier** | Yes (2 calendars, forever) | No | No | Limited |
| **iCal as sync source** | Yes | No | No | No |
SYNCDATE combines native Outlook sync (not ICS import), CalDAV support for providers such as iCloud/Fastmail/Nextcloud, iCal feed imports, and webhook-based speed for Google and Outlook. If you need Google + Outlook + CalDAV + iCal feeds in one place, SYNCDATE handles that combination directly.
Getting Started
Connect Google Calendar
- Click "Connect Account" → Google
- Authorize via OAuth (read/write calendar access)
- Select calendars to sync
Connect Microsoft Outlook
- Click "Connect Account" → Microsoft Outlook
- Authorize via Microsoft Entra ID (may require admin consent for corporate accounts)
- Select calendars to sync
Connect CalDAV
- Click "Connect Account" → CalDAV
- Choose iCloud, Fastmail, Nextcloud, or custom server
- Enter the app-specific password or server credential and select calendars
Connect an iCal Feed
- Click "Connect Account" → iCal Feed
- Paste the feed URL (webcal:// or https://)
- Create a one-way sync with the feed as source
All provider types appear in the same dashboard. You can create syncs between any valid combination — Google ↔ Google, Google ↔ Outlook, CalDAV ↔ Google, CalDAV ↔ Outlook, iCal → Google, iCal → Outlook, iCal → CalDAV, or multi-calendar syncs combining them.
Related: [How to Sync Google Calendar with Outlook](/blog/sync-google-calendar-with-outlook), [Two-Way Sync Outlook and Google Calendar](/blog/two-way-sync-outlook-google-calendar), [How Calendar Sync Works](/blog/how-calendar-sync-works), [One-Way vs Two-Way Calendar Sync](/blog/one-way-vs-two-way-calendar-sync)
Frequently Asked Questions
Does SYNCDATE support Microsoft Outlook?
Yes. SYNCDATE connects to Microsoft Outlook via the Microsoft Graph Calendar API with full two-way sync, webhook-based change detection, recurring event translation, and timezone normalization. Outlook is a first-class provider, not an ICS import workaround.
Can I sync Google Calendar with Outlook in real time?
Yes. SYNCDATE uses webhooks on both sides — Google push notifications and Microsoft Graph change notifications — for ~4-second sync in both directions. See our two-way Outlook sync guide for setup instructions.
What is an iCal feed?
An iCal feed (ICS feed) is a URL that publishes calendar events in the iCalendar format (RFC 5545). Most calendar systems, booking tools, and scheduling platforms can generate iCal feed URLs. SYNCDATE can import events from any valid iCal feed and push them to a writable Google, Outlook, or CalDAV calendar.
Can I do two-way sync with an iCal feed?
No. iCal feeds are read-only by specification — you can pull events from a feed but cannot push changes back. SYNCDATE enforces this automatically: iCal feeds can only be one-way sources. For two-way sync, use writable calendars such as Google, Outlook, or CalDAV.
Why use SYNCDATE for iCal instead of subscribing directly in Google Calendar?
Google Calendar's built-in ICS subscription refreshes only every 12-24 hours and creates an overlay calendar that scheduling tools often ignore. SYNCDATE imports iCal events as real events on your actual calendar, with proper "Busy" status and configurable polling. Events show up in scheduling tools like Calendly and Find a Time.
Does Outlook sync require admin approval?
It depends on your organization's Microsoft 365 settings. Some corporate tenants require admin consent before third-party apps can access calendars. SYNCDATE requests only calendar read/write permissions (Calendars.ReadWrite). If your organization blocks this, you'll see a "Need admin approval" screen during OAuth. Your IT admin can approve SYNCDATE for the organization or for individual users.
Does SYNCDATE support iCloud Calendar?
Yes. SYNCDATE supports iCloud Calendar through CalDAV. Apple requires an app-specific password with two-factor authentication enabled. iCloud works as a writable CalDAV provider, so it can participate in two-way syncs. If your iCloud Calendar also publishes an iCal feed URL, you can alternatively import that feed as a read-only source.
Can I sync an Outlook calendar with an iCal feed?
Yes. Create a one-way sync with the iCal feed as the source and your Outlook calendar as the target. Events from the iCal feed will appear on your Outlook calendar automatically.
Is the free tier limited to Google only?
No. The free tier includes 2 calendars and 2 accounts across any valid provider combination — Google, Outlook, CalDAV, and iCal. You can sync Google with Outlook, sync iCloud via CalDAV, or import an iCal feed into a writable calendar on the free plan.