How do I sync with CalDAV calendars?

Modified on Wed, 22 Apr at 8:18 AM

How do I sync with CalDAV calendars?

CalDAV is an open standard used by many calendar providers. Hubhus supports two-way (bidirectional) synchronization with CalDAV calendars, so events stay aligned between external calendars (Nextcloud, iCloud, Fastmail, ownCloud, Synology, etc.) and Hubhus calendar resources. You cannot choose import-only, export-only, or "one-way" for CalDAV—it is full two-way or nothing.

TL;DR

CalDAV in Hubhus is always full two-way sync. There is no import-only, export-only, or one-way option—it is both directions or nothing.

Hubhus runs a full sync of one year forward, every 5 minutes (polling, not true real time—allow a short delay for changes to appear in either system).

Add the calendar at Calendar → Settings → CalDAV calendars, then link it to a resource under Calendar → Settings → Synchronization.


What is CalDAV sync

For each CalDAV connection, Hubhus uses a single mode: full two-way sync. You cannot choose "import only", "export only", or a one-way link—the integration is both directions, or the calendar is not connected. The list below describes what that two-way model does in practice (not separate modes you can turn on and off):

  • From CalDAV: external events and changes are reflected in Hubhus for the linked resource
  • To CalDAV: Hubhus-created/linked events and changes are sent to the external CalDAV calendar (where the provider allows writes)
  • Kept in step: both directions stay updated through scheduled polling (not instant push from the provider)
  • Multiple calendars: you can add multiple CalDAV calendars and connect them to different resources

This allows you to:

  • Keep personal calendars in sync with Hubhus
  • Prevent double-booking across systems
  • Maintain availability across multiple platforms
  • Use your preferred calendar app while working in Hubhus

Where to configure CalDAV sync

Go to: Calendar → Settings → CalDAV calendars

Click + New CalDAV calendar to add an external calendar.


Adding a CalDAV calendar

You will see a form asking for:

URL: The CalDAV endpoint of your external calendar. This is typically a specific URL provided by your calendar service.

Username: Authentication username for the calendar service. This may be your email address or a specific username depending on the provider.

Password: Authentication password or app-specific password. Many providers require app-specific passwords for CalDAV access rather than your main account password.

Name (optional): Leave blank to automatically fetch the calendar's official name from the provider, or enter a custom name for easier identification in Hubhus.


How CalDAV sync works in Hubhus

CalDAV in Hubhus is always two-way: you cannot choose import-only, export-only, or "one direction" as separate connection modes. The sections that follow only describe what happens in each direction for the same full two-way link.


What happens: CalDAV → Hubhus (inbound)

This is not an optional "import only" mode. It is what happens in the CalDAV → Hubhus direction as part of the mandatory two-way link. When a CalDAV calendar is connected, Hubhus will:

Fetch external events:

  • All upcoming events from the external calendar
  • Display them inside the linked Hubhus calendar resource
  • Mark them as external so you can distinguish them

Updates that originated on the CalDAV side:

  • Updates to events made in the external calendar
  • Deletion of Hubhus events if deleted in the CalDAV calendar
  • When a Hubhus event is deleted in CalDAV, the Hubhus resource is unassigned
  • If no other resources remain assigned, the Hubhus event is deleted

Continuous synchronization: Hubhus polls the CalDAV calendar on a fixed schedule: a full sync of one year forward runs every 5 minutes (polling, not real time).


What happens: Hubhus → CalDAV (outbound)

This is not an optional "export only" mode. It is what happens in the Hubhus → CalDAV direction as part of the same mandatory two-way link. When a CalDAV calendar is connected, Hubhus will:

Push new events:

  • New Hubhus-created events are added to the external CalDAV calendar
  • Events appear in your external calendar automatically

Update events:

  • Changes made to events in Hubhus update the event on the CalDAV server
  • Edits sync to the external calendar

Delete events:

  • When an event is deleted in Hubhus, it is deleted from the external CalDAV calendar
  • Only applies if the event was originally created by Hubhus

Important: Events originally created in the CalDAV calendar are never deleted by Hubhus to avoid accidental data loss.


Synchronization schedule

Hubhus uses the schedule below. Earlier product behaviour used a short window on a 5-minute cadence and a longer window on a slower cadence; this has been changed.

Current behaviour:

Every 5 minutes:

  • Runs a full sync for a rolling range of one year forward from the current date
  • Applies in both directions (CalDAV → Hubhus and Hubhus → CalDAV) for that window
  • Still not real time—expect a delay of up to about 5 minutes before a change is reflected

Note: There is no separate 6-hour pass for the long-range window any more; the 5-minute job covers the one-year window.


Linking a CalDAV calendar to a Hubhus resource

After adding a CalDAV calendar, you must map it to a resource:

  1. Go to Calendar → Settings → Synchronization
  2. Find your CalDAV calendar under "External calendars"
  3. Click Link calendar
  4. Select the Hubhus resource (e.g., user, technician, employee, location)

Once linked:

  • Imported events from CalDAV appear on that resource's calendar
  • Events created in Hubhus for that resource sync to the CalDAV calendar
  • Availability in Hubhus reflects both Hubhus and external events

Important: Link only one external calendar per resource to avoid conflicts.


Provider-specific notes and limitations

Different CalDAV providers support different levels of API features. Below are notes on commonly used providers.


iCloud (Apple)

Requirements:

  • Requires an app-specific password (not your main Apple ID password)
  • Generate app-specific password in Apple ID settings

Features:

  • Supports read + write for most CalDAV clients
  • Full two-way synchronization works

Limitations:

  • Some users report slow syncing due to Apple's throttling
  • Reminders/Task lists are not synced - only calendar events

URL format: Apple provides the CalDAV URL in iCloud settings under Calendar.


Nextcloud / ownCloud

Features:

  • Fully supported
  • Provides reliable two-way sync
  • No special limitations

Configuration:

  • Use the "primary CalDAV URL" from user settings
  • Username is typically your Nextcloud/ownCloud username
  • Use your account password or app password if configured

Recommended provider: Nextcloud and ownCloud are among the most reliable CalDAV providers for Hubhus integration.


Fastmail

Features:

  • Supports full read/write CalDAV
  • Reliable two-way synchronization

Requirements:

  • Requires app password for CalDAV access
  • Generate app password in Fastmail settings

Configuration:

  • Fastmail provides CalDAV URL in settings
  • Use your Fastmail email as username

Synology Calendar

Features:

  • Supports CalDAV protocol

Limitations:

  • May restrict editing of certain event types
  • Group or shared calendars may have limited write access
  • Personal calendars typically work without issues

Configuration:

  • Find CalDAV URL in Synology Calendar settings
  • Use your Synology account credentials

Amparex

Features:

  • Supports CalDAV integration
  • Used in specific industry verticals

Configuration:

  • Consult Amparex documentation for CalDAV URL
  • Use provided authentication credentials

Google Calendar via CalDAV

Limitation:

  • Google does not support full third-party CalDAV write access
  • CalDAV with Google Calendar has significant restrictions

Recommended alternative: If you need Google Calendar integration, use Hubhus's dedicated Google Workspace Calendar Integration instead of CalDAV.

See the article on Google Workspace Calendar sync for proper Google Calendar integration.


Troubleshooting CalDAV sync


Wrong URL

Problem: Connection fails or calendar doesn't sync.

Cause: Most providers have different CalDAV URLs for:

  • Single calendar
  • Calendar collections
  • User root URL

Solution:

  • Verify you're using the calendar-specific URL, not a general URL
  • Check provider documentation for correct CalDAV endpoint
  • Some providers require the full path to a specific calendar

Finding the correct URL:

  • Check your provider's settings or documentation
  • Look for "CalDAV URL", "Calendar subscription", or "Sync settings"
  • The URL typically includes your username and calendar name

Authentication errors

Problem: "Authentication failed" or "Invalid credentials" error.

Common causes:

Wrong username format:

  • Some providers require email address (user@domain.com)
  • Others require username only (user)
  • Check provider documentation for required format

Wrong password:

  • Using main account password instead of app-specific password
  • Password expired or changed
  • Special characters not properly entered

Wrong URL:

  • Authentication errors can also be caused by incorrect CalDAV URL
  • Verify the URL is correct before troubleshooting credentials

Solution:

  • Generate an app-specific password if provider requires it
  • Use email address as username if unsure
  • Verify CalDAV URL is correct
  • Check that account has CalDAV access enabled

Provider does not support write access

Problem: Data from the CalDAV side appears, but changes you make in Hubhus don't sync back to the external calendar.

Cause: Your provider restricts write access via CalDAV.

Solution: Hubhus CalDAV is always two-way—you do not choose in/out separately—so a provider with limited or read-only access may block half of what the model expects. Use a different provider, or change events only where the provider can accept writes (often not possible via CalDAV for some hosts).

Alternatives:

  • Use a provider with full CalDAV support (Nextcloud, Fastmail, iCloud)
  • For Google Calendar, use the dedicated Google Workspace integration

Events not syncing

Problem: Events don't appear or updates are delayed.

Cause: Synchronization is not real-time - there is a polling schedule.

Solution:

  • Wait up to about 5 minutes: the scheduled job is polling, not real time, and it covers the full one-year window each run (there is no separate multi-hour pass for far-future events any more)
  • Check that the calendar is properly linked to the resource
  • Verify CalDAV URL and credentials are still valid

Resource becomes unassigned

Problem: Hubhus event shows as unassigned after being in external calendar.

Cause: If a Hubhus-created event is deleted in the external CalDAV calendar, Hubhus removes the resource assignment.

Behavior:

  • Resource is unassigned from the event
  • If no other resources are assigned, the event is deleted entirely

Solution:

  • Don't delete Hubhus events in external calendar - delete them in Hubhus
  • Re-assign the resource in Hubhus if needed

Best practices

Calendar organization:

  • Link one external calendar per resource
  • Use clear naming for calendars
  • Keep personal and work calendars separate if possible

Security:

  • Use app-specific passwords when available
  • Don't share CalDAV credentials
  • Regularly rotate app passwords

Maintenance:

  • Periodically verify sync is working
  • Check for authentication errors in settings
  • Update app passwords if provider requires rotation

Avoiding conflicts:

  • Create events in either Hubhus OR external calendar, not both
  • Let sync happen before making additional changes
  • Don't manually duplicate events across systems

Understanding sync behavior

What gets synced:

  • Calendar events (appointments, meetings, bookings)
  • Event titles, descriptions, times
  • Event updates and deletions

What doesn't get synced:

  • Reminders or tasks (depends on provider)
  • Calendar settings or preferences
  • Attachments (in most cases)

Direction of sync: Hubhus does not let you run only one of these; both apply together as part of the same CalDAV link.

  • CalDAV → Hubhus: All events import, including changes and deletions
  • Hubhus → CalDAV: All Hubhus events export, including changes and deletions

Conflict resolution:

  • Most recent change wins
  • If event changed in both systems, CalDAV change typically takes priority during sync

Supported providers summary

Fully supported (read + write):

  • Nextcloud / ownCloud — supported
  • Fastmail — supported
  • iCloud — supported
  • Amparex — supported

Partial support:

  • Synology Calendar (some calendar types may have restrictions)

Not recommended via CalDAV:

  • Google Calendar (use dedicated Google Workspace integration instead)

When to use CalDAV vs dedicated integrations

Use CalDAV when:

  • Your provider fully supports CalDAV read/write
  • You use Nextcloud, Fastmail, iCloud, or similar
  • You need flexible, open-standard integration
  • You have multiple calendar providers

Use dedicated integration when:

  • Provider has limited CalDAV support
  • Provider offers better integration method
  • You use Google Workspace (use Google Workspace Calendar integration)
  • You use Outlook (use Outlook calendar integration)

Summary

CalDAV in Hubhus is always two-way: you cannot pick import-only, export-only, or a one-way link. Add calendars under Calendar → Settings → CalDAV calendars (URL, username, and password—often an app password), then link each calendar to a resource under Calendar → Settings → Synchronization. Hubhus now runs a full sync of one year forward, every 5 minutes (polling, not real time). Link only one external calendar per resource, use app passwords when required, and prefer the dedicated Google integration for Google instead of CalDAV.

Common searches

CalDAV setup • two-way calendar sync • external calendar • Nextcloud iCloud Fastmail • app-specific password • calendar resource

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article