$(() => {
const PUBLIC_KEY = 'AIzaSyBnNAISIUKe6xdhq1_rjor2rxoI3UlMY7k';
const CALENDAR_ID = 'f7jnetm22dsjc3npc2lu3buvu4@group.calendar.google.com';
$('#scheduler').dxScheduler({
dataSource: new DevExpress.data.DataSource({
store: new DevExpress.data.CustomStore({
load() {
const result = $.Deferred();
$.ajax({
data: { showDeleted: false },
dataType: 'json',
url: [
'https://www.googleapis.com/calendar/v3/calendars/',
CALENDAR_ID,
'/events?key=',
PUBLIC_KEY,
].join(''),
}).done((response) => {
result.resolve(response.items);
});
return result.promise();
},
}),
}),
startDateExpr: 'start.dateTime',
endDateExpr: 'end.dateTime',
textExpr: 'summary',
startDayHour: 7,
timeZone: 'America/Los_Angeles',
showAllDayPanel: false,
editing: false,
currentDate: new Date(2017, 4, 25),
firstDayOfWeek: 0,
views: ['day', 'workWeek', 'month'],
currentView: 'workWeek',
height: 500,
});
});
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>DevExtreme Demo</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>window.jQuery || document.write(decodeURIComponent('%3Cscript src="js/jquery.min.js"%3E%3C/script%3E'))</script>
<link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/22.2.6/css/dx.light.css" />
<script src="https://cdn3.devexpress.com/jslib/22.2.6/js/dx.all.js"></script>
<script src="data.js"></script>
<link rel="stylesheet" type="text/css" href="styles.css" />
<script src="index.js"></script>
</head>
<body class="dx-viewport">
<div class="demo-container">
<div class="long-title"><h3>Tasks for Employees (USA Office)</h3></div>
<div id="scheduler"></div>
</div>
</body>
</html>
.long-title h3 {
font-family: 'Segoe UI Light', 'Helvetica Neue Light', 'Segoe UI', 'Helvetica Neue', 'Trebuchet MS', Verdana;
font-weight: 200;
font-size: 28px;
text-align: center;
margin-bottom: 20px;
}