如何使用javascript更新谷歌日历事件

时间:2016-07-07 04:39:03

标签: javascript google-calendar-api

我正在尝试更新google calander事件。 我没有找到任何使用javascript更新和删除事件的方法。 你可以建议我或给我任何想法吗? 我怎么能这样做?

我关注此链接。 https://developers.google.com/google-apps/calendar/create-events 我显示所有的事件。使用以下代码

<script type="text/javascript">
 var CLIENT_ID = '<YOUR_CLIENT_ID>';
 var SCOPES = ["https://www.googleapis.com/auth/calendar.readonly"];
 function checkAuth() {
 gapi.auth.authorize(
      {
        'client_id': CLIENT_ID,
        'scope': SCOPES.join(' '),
        'immediate': true
      }, handleAuthResult);
  }

  function handleAuthResult(authResult) {
    var authorizeDiv = document.getElementById('authorize-div');
    if (authResult && !authResult.error) {
      authorizeDiv.style.display = 'none';
      loadCalendarApi();
    } else {
      authorizeDiv.style.display = 'inline';
    }
  }

  function handleAuthClick(event) {
    gapi.auth.authorize(
      {client_id: CLIENT_ID, scope: SCOPES, immediate: false},
      handleAuthResult);
    return false;
  }

  function loadCalendarApi() {
    gapi.client.load('calendar', 'v3', listUpcomingEvents);
  }

  function listUpcomingEvents() {
    var request = gapi.client.calendar.events.list({
      'calendarId': 'primary',
      'timeMin': (new Date()).toISOString(),
      'showDeleted': false,
      'singleEvents': true,
      'maxResults': 10,
      'orderBy': 'startTime'
    });

    request.execute(function(resp) {
      var events = resp.items;
      appendPre('Upcoming events:');

      if (events.length > 0) {
        for (i = 0; i < events.length; i++) {
          var event = events[i];
          var when = event.start.dateTime;
          if (!when) {
            when = event.start.date;
          }
          appendPre(event.summary + ' (' + when + ')')
        }
      } else {
        appendPre('No upcoming events found.');
      }

    });
  }

  function appendPre(message) {
    var pre = document.getElementById('output');
    var textContent = document.createTextNode(message + '\n');
    pre.appendChild(textContent);
  }

</script>
<script src="https://apis.google.com/js/client.js?onload=checkAuth">
</script>

用于创建我在代码下面使用的事件。

 var event = {
'summary': 'Google I/O 2015',
'location': '800 Howard St., San Francisco, CA 94103',
'description': 'A chance to hear more about Google\'s developer products.',
'start': {
'dateTime': '2015-05-28T09:00:00-07:00',
'timeZone': 'America/Los_Angeles'
},
 'end': {
'dateTime': '2015-05-28T17:00:00-07:00',
'timeZone': 'America/Los_Angeles'
  },
'recurrence': [
'RRULE:FREQ=DAILY;COUNT=2'
],
'attendees': [
  {'email': 'lpage@example.com'},
  {'email': 'sbrin@example.com'}
 ],
 'reminders': {
'useDefault': false,
'overrides': [
  {'method': 'email', 'minutes': 24 * 60},
  {'method': 'popup', 'minutes': 10}
    ]
  }
};

 var request = gapi.client.calendar.events.insert({
 'calendarId': 'primary',
 'resource': event
});

request.execute(function(event) {
 appendPre('Event created: ' + event.htmlLink);
});

但现在我想使用javascript更新和删除此事件。 请建议我,我如何使用javascript实现它?

1 个答案:

答案 0 :(得分:0)

如果您想使用javascript删除事件,那么我认为SO question可以为您提供帮助。

以下是您可以在此处看到的示例代码。

function createEvent(calendarId,title,startDt,endDt,desc) {
var cal = CalendarApp.getCalendarById(calendarID);
var start = new Date(startDt);
var end = new Date(endDt);

var event = cal.createEvent(title, start, end, {
description : desc
});

var events = cal.getEvents(start, end, {
search: 'open'
}); 

for (i in events){
events[i].deleteEvent();
}
};

虽然您在此处找到的链接文档是AppsScript。请注意,Google Apps Script是一种基于JavaScript的脚本语言,可让您使用Google Apps进行新的和酷炫的操作。