完整的日历,活动假期和自己的活动

时间:2016-02-16 18:10:20

标签: jquery fullcalendar

我想混合自己的活动,并从谷歌日历中检索特定国家/地区的假期。我有我的API密钥等.. 我从ajax调用中获取数据,并将我的事件构建为

     my_events.push({title:name,
                start: moment(date_begin),
                end:moment(date_end)
          });

完美无缺。现在我想要假期。在github中完整日历的演示中,我看到以下代码:

     googleCalendarApiKey: 'xxx',
     // US Holidays
     events: 'usa__en@holiday.calendar.google.com',

它有效(当然是用我自己的钥匙)。

但现在,我无法理解如何看待my_events和假期。 我试过my_events.push({' usa__en@holiday.calendar.google.com'}) 不起作用。

我该怎么做?

另一个问题是,我不在美国,我想让欧洲国家度假。有人知道法国,意大利等地区是否有相似的地址?我试过fr,fra__fr,it,ita__it等但总是得到一个" notFound"

感谢任何指针和解释

1 个答案:

答案 0 :(得分:0)

您可以使用fullcalendar添加多个事件源 - 拥有您的事件源,然后为假日日历添加一个

以下是代码的小提琴(您必须拥有API密钥!)https://jsfiddle.net/5x2dL5Ls/

/* Modified from http://fullcalendar.io/js/fullcalendar-2.6.0/demos/gcal.html */

$('#calendar').fullCalendar({

  // THIS KEY WON'T WORK IN PRODUCTION!!!
  // To make your own Google API key, follow the directions here:
  // http://fullcalendar.io/docs/google_calendar/
  googleCalendarApiKey: 'PUT_YOUR_API_KEY_HERE',

/* For demo purposes, our hard-coded event source information */
  defaultDay: '2016-02-01',
  events: [{
    title: 'This is a non-google-holiday event',
    start: '2016-02-16',
    end:   '2016-02-20'
  }],
/* For demo purposes */

  eventClick: function(event) {
    // opens events in a popup window
    window.open(event.url, 'gcalevent', 'width=700,height=600');
    return false;
  },

  loading: function(bool) {
    $('#loading').toggle(bool);
  }

});

$('#addSource').click(function() {
  var source = $('#holidayCalendar').val();
  // $('#calendar').fullCalendar('removeEventSource', source);
  $('#calendar').fullCalendar('addEventSource', source);
});

$('#removeSource').click(function() {
  var source = $('#holidayCalendar').val();
  $('#calendar').fullCalendar('removeEventSource', source);
});

我没有找到完整的假日来源列表的好文档,所以我通过从"浏览有趣的日历" Calendar.google.com上的链接看起来像这样

[/* ... */,    {
    "title":"Holidays in United States",
    "type":"calendar",
    "did":"ZW4udXNhI2hvbGlkYXlAZ3JvdXAudi5jYWxlbmRhci5nb29nbGUuY29t",
    "country":"US"
}, /* ... */]

然后追加" "从该数据到这个网址,例如美国假期

https://calendar.google.com/calendar/embed?src=ZW4udXNhI2hvbGlkYXlAZ3JvdXAudi5jYWxlbmRhci5nb29nbGUuY29t

并抓取该页面的" cids":{" the_creator_is_in_here":并解压缩... Hackish,但得到了日历列表。

对于语言,您可以尝试更改' en。'到另一种语言前缀。

例如"日本假期"可以用英语或日语呈现:

  • en.japanese#holiday@group.v.calendar.google.com
  • ja.japanese#holiday@group.v.calendar.google.com