Your search did not match any results.
Scheduler

Google Calendar Integration

Documentation

This demo shows how to configure the CustomStore to load data from the Google Calendar.

Copy to CodeSandBox
Apply
Reset
<template> <div> <div class="long-title"> <h3>Tasks for Employees (USA Office)</h3> </div> <dx-scheduler :data-source="dataSource" :current-date="currentDate" :views="views" :height="500" :editing="false" :show-all-day-panel="false" :start-day-hour="7" start-date-expr="start.dateTime" end-date-expr="end.dateTime" text-expr="summary" time-zone="America/Los_Angeles" current-view="workWeek" /> </div> </template> <script> import 'whatwg-fetch'; import DxScheduler from 'devextreme-vue/scheduler'; import CustomStore from 'devextreme/data/custom_store'; export default { components: { DxScheduler }, data() { return { views: ['day', 'workWeek', 'month'], currentDate: new Date(2017, 4, 25), dataSource: new CustomStore({ load: (options) => this.getData(options, { showDeleted: false }) }) }; }, methods: { getData(_, requestOptions) { const PUBLIC_KEY = 'AIzaSyBnNAISIUKe6xdhq1_rjor2rxoI3UlMY7k', CALENDAR_ID = 'f7jnetm22dsjc3npc2lu3buvu4@group.calendar.google.com'; const dataUrl = [ 'https://www.googleapis.com/calendar/v3/calendars/', CALENDAR_ID, '/events?key=', PUBLIC_KEY].join(''); return fetch(dataUrl, requestOptions).then( (response) => response.json() ).then((data) => data.items); } } }; </script> <style> .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; } </style>
import Vue from 'vue'; import App from './App.vue'; new Vue({ el: '#app', components: { App }, template: '<App/>' });
<!DOCTYPE html> <html> <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" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.1.7/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.1.7/css/dx.light.css" /> <script src="https://unpkg.com/core-js@2.4.1/client/shim.min.js"></script> <script src="https://unpkg.com/systemjs@0.21.3/dist/system.js"></script> <script type="text/javascript" src="config.js"></script> <script type="text/javascript"> System.import('./index.js'); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="app"> <span v-if="false">Loading...</span> </div> </div> </body> </html>
System.config({ transpiler: 'plugin-babel', paths: { 'npm:': 'https://unpkg.com/' }, map: { vue: 'npm:vue@2.6.3/dist/vue.esm.browser.js', 'vue-loader': 'npm:dx-systemjs-vue-browser@latest/index.js', 'devextreme': 'npm:devextreme@19.1', 'devextreme-vue': 'npm:devextreme-vue@19.1', jszip: 'npm:jszip@3.1.3/dist/jszip.min.js', 'quill': 'npm:quill@1.3.7/dist/quill.js', 'devexpress-diagram': 'npm:devexpress-diagram', 'whatwg-fetch': 'npm:whatwg-fetch@2.0.4/fetch.js', 'plugin-babel': 'npm:systemjs-plugin-babel@0/plugin-babel.js', 'systemjs-babel-build': 'npm:systemjs-plugin-babel@0/systemjs-babel-browser.js' }, meta: { '*.vue': { loader: 'vue-loader' } }, packages: { 'devextreme-vue': { main: 'index.js' }, 'devextreme': { defaultExtension: 'js' } }, babelOptions: { sourceMaps: false, stage0: true } });