If anyone is interested, I made a simple php script that returns a json array, and using fullcalendar.io i rendered it. this works in conjunction with a custom due date field I set up in my Jira instance.
getDates.php Code
<?php
header('Content-Type: application/json');
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://YOUR_COMPANY.atlassian.net/rest/api/2/search?jql=filter=(CUSTOM FILTER ID OF ALL OPEN ISSUES)",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Accept: application/json",
"Authorization: Basic ENTER_YOUR_BASE64_ENCODED_API_TOKEN",
"Cache-Control: no-cache"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
exit();
} else {
$obj = json_decode($response);
}
class Event {}
$events = array();
foreach($obj->issues as $issue) {
if($issue->fields->customfield_10306 !== null) {
$e = new Event();
$e->id = $issue->id;
$e->title = "[" . $issue->key . "] " . $issue->fields->summary;
$e->url = "https://ticinocom.atlassian.net/browse/" . $issue->key;
$e->start = $issue->fields->(THIS IS THE DUE DATE CUSTOM FIELD);
$e->end = $issue->fields->(THIS IS THE DUE DATE CUSTOM FIELDcustomfield_10306;
$events[] = $e;
}
}
echo json_encode($events);
?>
Calendar.html Code
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script
src="https://code.jquery.com/jquery-1.9.1.min.js"
integrity="sha256-wS9gmOZBqsqWxgIVgA8Y9WcQOa7PgSIX+rPA0VL2rbQ="
crossorigin="anonymous"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.9.0/fullcalendar.min.css" />
<link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.9.0/fullcalendar.print.css" media="print"/>
<script src="https://momentjs.com/downloads/moment.min.js" type="text/javascript"></script>
<!-- daypilot libraries -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.9.0/fullcalendar.min.js" type="text/javascript"></script>
<style>
#calendar {
max-width: 1500px;
margin: 40px auto;
}
</style>
<title>Jira Due Date Calendar</title>
</head>
<body>
<div id="calendar"></div>
<script type="text/javascript">
$(document).ready(function() {
// page is now ready, initialize the calendar...
$('#calendar').fullCalendar({
eventClick: function(eventObj) {
window.open(eventObj.url);
return false;
},
defaultView: 'month',
themeSystem: 'bootstrap4',
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay,listMonth'
},
events: 'getDates.php'
})
});
</script>
</body>
</html>
And there you have it a simple offsite calendar for open issues.
Recommended Learning For You
Level up your skills with Atlassian learning
Learning Path
Become an effective Jira admin
Manage global settings and shared configurations called schemes to achieve goals more quickly.
Streamline Jira administration with effective governance
Improve how you administer and maintain Jira and minimize clutter for users and administrators.
Learning Path
Become an effective Jira software project admin
Set up software projects and configure tools and agile boards to meet your team's needs.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.