diff --git a/meta/recipes-support/libical/libical/0001-CMakeLists.txt-libical.pc.in-fix-iculibs-remove-full.patch b/meta/recipes-support/libical/libical/0001-CMakeLists.txt-libical.pc.in-fix-iculibs-remove-full.patch
deleted file mode 100644
index 6db75f5086c..00000000000
--- a/meta/recipes-support/libical/libical/0001-CMakeLists.txt-libical.pc.in-fix-iculibs-remove-full.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 1a41069c0dc054e59cd76fc3d8cf7cc2a78b5e8d Mon Sep 17 00:00:00 2001
-From: Allen Winter <allen.winter@kdab.com>
-Date: Sat, 3 Sep 2016 16:56:29 -0400
-Subject: [PATCH] CMakeLists.txt, libical.pc.in - fix iculibs (remove full path) ISSUE: 227
-
-Upstream-Status: Backport
-
-Signed-off-by: Maxin B. John <maxin.john@intel.com>
-----
-diff -Naur libical-2.0.0-orig/CMakeLists.txt libical-2.0.0/CMakeLists.txt
---- libical-2.0.0-orig/CMakeLists.txt	2016-09-08 18:05:06.166049345 +0300
-+++ libical-2.0.0/CMakeLists.txt	2016-09-08 18:05:45.201561334 +0300
-@@ -128,6 +128,7 @@
- #  RSCALE info at http://tools.ietf.org/html/rfc7529
- find_package(ICU)
- if(ICU_FOUND)
-+  set(ICUUC_LIBS "-licuuc") #for libical.pc
-   set(HAVE_LIBICU 1)
-   if(ICU_MAJOR_VERSION VERSION_GREATER 50)
-     set(HAVE_ICU_DANGI TRUE)
-@@ -137,6 +138,7 @@
- endif()
- if(ICU_I18N_FOUND)
-   set(HAVE_LIBICU_I18N 1)
-+  set(ICUI18N_LIBS "-licui18n") #for libical.pc
- endif()
- 
- # MSVC specific definitions
-diff -Naur libical-2.0.0-orig/libical.pc.in libical-2.0.0/libical.pc.in
---- libical-2.0.0-orig/libical.pc.in	2015-12-28 23:44:53.000000000 +0200
-+++ libical-2.0.0/libical.pc.in	2016-09-08 18:09:12.991963597 +0300
-@@ -3,10 +3,10 @@
- libdir=@libdir@
- includedir=@includedir@
- threadslib=@PTHREAD_LIBS@
--iculib=@ICU_LIBRARIES@ @ICU_I18N_LIBRARIES@
-+iculibs=@ICUUC_LIBS@ @ICUI18N_LIBS@
- 
- Name: libical
- Description: An implementation of basic iCAL protocols
- Version: @VERSION@
--Libs: -L${libdir} -lical -licalss -licalvcal ${threadslib} ${iculib}
-+Libs: -L${libdir} -lical -licalss -licalvcal ${threadslib} ${iculibs}
- Cflags: -I${includedir}
diff --git a/meta/recipes-support/libical/libical_2.0.0.bb b/meta/recipes-support/libical/libical_2.0.0.bb
deleted file mode 100644
index 7dffdcfb013..00000000000
--- a/meta/recipes-support/libical/libical_2.0.0.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "iCal and scheduling (RFC 2445, 2446, 2447) library"
-HOMEPAGE = "https://github.com/libical/libical"
-BUGTRACKER = "https://github.com/libical/libical/issues"
-LICENSE = "LGPLv2.1 | MPL-1.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d4fc58309d8ed46587ac63bb449d82f8 \
-                    file://LICENSE;md5=d1a0891cd3e582b3e2ec8fe63badbbb6"
-SECTION = "libs"
-
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz \
-           file://0001-CMakeLists.txt-libical.pc.in-fix-iculibs-remove-full.patch \
-           "
-DEPENDS = "icu"
-
-SRC_URI[md5sum] = "6bf8e5f5a3ba88baf390d0134e05d76e"
-SRC_URI[sha256sum] = "654c11f759c19237be39f6ad401d917e5a05f36f1736385ed958e60cf21456da"
-UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
-
-inherit cmake pkgconfig
-
-# No need to use perl-native, the host perl is sufficient.
-EXTRA_OECMAKE += "-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl"
-
-do_install_append_class-target () {
-    # Remove build host references
-    sed -i \
-       -e 's,${STAGING_LIBDIR},${libdir},g' \
-       ${D}${libdir}/cmake/LibIcal/LibIcalTargets-noconfig.cmake
-}
diff --git a/meta/recipes-support/libical/libical_3.0.5.bb b/meta/recipes-support/libical/libical_3.0.5.bb
new file mode 100644
index 00000000000..3832b20bf11
--- /dev/null
+++ b/meta/recipes-support/libical/libical_3.0.5.bb
@@ -0,0 +1,35 @@
+SUMMARY = "iCal and scheduling (RFC 2445, 2446, 2447) library"
+HOMEPAGE = "https://github.com/libical/libical"
+BUGTRACKER = "https://github.com/libical/libical/issues"
+LICENSE = "LGPLv2.1 | MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1910a2a76ddf6a9ba369182494170d87 \
+                    file://LICENSE.LGPL21.txt;md5=933adb561f159e7c3da079536f0ed871 \
+                    file://LICENSE.MPL2.txt;md5=9741c346eef56131163e13b9db1241b3"
+SECTION = "libs"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "9be4e8a1739a9c27e06aa8ce66b8cb34"
+SRC_URI[sha256sum] = "7ad550c8c49c9b9983658e3ab3e68b1eee2439ec17b169a6b1e6ecb5274e78e6"
+UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
+
+inherit cmake pkgconfig
+
+PACKAGECONFIG ??= "icu"
+PACKAGECONFIG[bdb] = ",-DCMAKE_DISABLE_FIND_PACKAGE_BDB=True,db"
+# ICU is used for RSCALE (RFC7529) support
+PACKAGECONFIG[icu] = ",-DCMAKE_DISABLE_FIND_PACKAGE_ICU=True,icu"
+
+# No need to use perl-native, the host perl is sufficient.
+EXTRA_OECMAKE += "-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl"
+
+# The glib library can't be cross-compiled, disable for now.
+# https://github.com/libical/libical/issues/394
+EXTRA_OECMAKE += "-DICAL_GLIB=false"
+
+do_install_append_class-target () {
+    # Remove build host references
+    sed -i \
+       -e 's,${STAGING_LIBDIR},${libdir},g' \
+       ${D}${libdir}/cmake/LibIcal/LibIcal*.cmake
+}
