diff --git a/config/vufind/SierraRest.ini b/config/vufind/SierraRest.ini
index c702bcb5dc39e1d5554d5367b5d2e0e15e8e4c58..4f0074fddbe7a3f3c537f9a5a2c65051be66a6c0 100644
--- a/config/vufind/SierraRest.ini
+++ b/config/vufind/SierraRest.ini
@@ -12,6 +12,9 @@ host = "https://sandbox.iii.com/iii/sierra-api"
 client_key = "something"
 ; Sierra API client secret
 client_secret = "very_secret"
+; Sierra API version available (defaults to highest one required for full
+; functionality in the driver)
+;api_version = 5
 ; Timeout for HTTP requests
 http_timeout = 30
 ; Redirect URL entered in Sierra for the patron-specific authentication (does not
diff --git a/languages/en.ini b/languages/en.ini
index 369d4810717d58a2863061d14d5eda4ab1b4b2ea..3031a66d013f31c44bb5429ca6cc7058819ae2f0 100644
--- a/languages/en.ini
+++ b/languages/en.ini
@@ -447,6 +447,7 @@ history_saved_searches = "Saved Searches"
 history_search = "Search"
 history_time = "Time"
 hold_available = "Available for Pickup"
+hold_available_until = "Available for Pickup Until %%date%%"
 hold_cancel = "Cancel Hold"
 hold_cancel_all = "Cancel All Holds"
 hold_cancel_fail = "Your request was not canceled. Please contact the circulation desk for further assistance"
diff --git a/languages/fi.ini b/languages/fi.ini
index 84e21ab0b20d264878a2ba87c9e0c9db2d9975b3..8edbd131d4e872afc512bbe9fbc890db5105d522 100644
--- a/languages/fi.ini
+++ b/languages/fi.ini
@@ -451,6 +451,7 @@ history_saved_searches = "Tallennetut haut"
 history_search = "Haku"
 history_time = "Aika"
 hold_available = "Noudettavissa"
+hold_available_until = "Noudettavissa - noudettava viimeistään %%date%%"
 hold_cancel = "Peru varaus"
 hold_cancel_all = "Peru kaikki varaukset"
 hold_cancel_fail = "Varaustasi ei peruttu. Ota yhteyttä kirjaston asiakaspalveluun."
diff --git a/languages/sv.ini b/languages/sv.ini
index 75368406c95fbd169bfd3c435560311fb8ca8633..3ddde6970a7267d8a33127580eddd9d552df9e50 100644
--- a/languages/sv.ini
+++ b/languages/sv.ini
@@ -446,6 +446,7 @@ history_saved_searches = "Sparade sökningar"
 history_search = "Sökning"
 history_time = "Tid"
 hold_available = "Kan avhämtas"
+hold_available_until = "Kan avhämtas - sista avhämtningsdag %%date%%"
 hold_cancel = "Annullera reserveringen"
 hold_cancel_all = "Annullera alla reserveringar"
 hold_cancel_fail = "Reserveringen kunde inte annulleras. Kontakta kundtjänst."
diff --git a/module/VuFind/src/VuFind/ILS/Driver/SierraRest.php b/module/VuFind/src/VuFind/ILS/Driver/SierraRest.php
index 73d34e30e2f04440e7728d9d65e013ffa32dd6cf..4ba768032ab26e0ec0b3f4f55df92f58a2ff2651 100644
--- a/module/VuFind/src/VuFind/ILS/Driver/SierraRest.php
+++ b/module/VuFind/src/VuFind/ILS/Driver/SierraRest.php
@@ -4,7 +4,7 @@
  *
  * PHP version 7
  *
- * Copyright (C) The National Library of Finland 2016-2017.
+ * Copyright (C) The National Library of Finland 2016-2018.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2,
@@ -141,6 +141,13 @@ class SierraRest extends AbstractBase implements TranslatorAwareInterface,
         'd' => 'In Process'
     ];
 
+    /**
+     * Available API version
+     *
+     * @var int
+     */
+    protected $apiVersion = 5;
+
     /**
      * Constructor
      *
@@ -222,6 +229,10 @@ class SierraRest extends AbstractBase implements TranslatorAwareInterface,
             );
         }
 
+        if (isset($this->config['Catalog']['api_version'])) {
+            $this->apiVersion = $this->config['Catalog']['api_version'];
+        }
+
         // Init session cache for session-specific data
         $namespace = md5(
             $this->config['Catalog']['host'] . '|'
@@ -711,12 +722,16 @@ class SierraRest extends AbstractBase implements TranslatorAwareInterface,
      */
     public function getMyHolds($patron)
     {
+        $fields = 'id,record,frozen,placed,location,pickupLocation,status'
+            . ',recordType,priority,priorityQueueLength';
+        if ($this->apiVersion >= 5) {
+            $fields .= ',pickupByDate';
+        }
         $result = $this->makeRequest(
             ['v3', 'patrons', $patron['id'], 'holds'],
             [
                 'limit' => 10000,
-                'fields' => 'id,record,frozen,placed,location,pickupLocation'
-                    . ',status,recordType,priority,priorityQueueLength'
+                'fields' => $fields
             ],
             'GET',
             $patron
@@ -762,6 +777,10 @@ class SierraRest extends AbstractBase implements TranslatorAwareInterface,
                 $position = ($entry['priority'] + 1) . ' / '
                     . $entry['priorityQueueLength'];
             }
+            $lastPickup = !empty($entry['pickupByDate'])
+                ? $this->dateConverter->convertToDisplayDate(
+                    'Y-m-d', $entry['pickupByDate']
+                ) : '';
             $holds[] = [
                 'id' => $bibId,
                 'requestId' => $this->extractId($entry['id']),
@@ -770,6 +789,7 @@ class SierraRest extends AbstractBase implements TranslatorAwareInterface,
                 'create' => $this->dateConverter->convertToDisplayDate(
                     'Y-m-d', $entry['placed']
                 ),
+                'last_pickup_date' => $lastPickup,
                 'position' => $position,
                 'available' => $available,
                 'in_transit' => $entry['status']['code'] == 't',
diff --git a/themes/bootstrap3/templates/myresearch/holds.phtml b/themes/bootstrap3/templates/myresearch/holds.phtml
index 1c5fc30e6e581919378ce76ef5d1cf3e196cfe0d..74ce8c7ea0930604ef52f7a119fb789f7ec17e8e 100644
--- a/themes/bootstrap3/templates/myresearch/holds.phtml
+++ b/themes/bootstrap3/templates/myresearch/holds.phtml
@@ -149,7 +149,13 @@
             <?php endif; ?>
 
             <?php if (isset($ilsDetails['available']) && $ilsDetails['available'] == true): ?>
-              <div class="text-success"><?=$this->transEsc("hold_available") ?></div>
+              <div class="text-success">
+                <?php if (!empty($ilsDetails['last_pickup_date'])): ?>
+                  <?=$this->transEsc('hold_available_until', ['%%date%%' => $ilsDetails['last_pickup_date']]) ?>
+                <?php else: ?>
+                  <?=$this->transEsc('hold_available') ?>
+                <?php endif; ?>
+              </div>
             <?php elseif (isset($ilsDetails['in_transit']) && $ilsDetails['in_transit']): ?>
               <div class="text-success"><?=$this->transEsc('request_in_transit') . (is_string($ilsDetails['in_transit']) ? ': ' . $this->transEsc('institution_' . $ilsDetails['in_transit'], [], $ilsDetails['in_transit']) : '') ?></div>
             <?php elseif (isset($ilsDetails['position'])): ?>