Как отобразить все события из нескольких календарей Google

#javascript #calendar

#javascript #Календарь

Вопрос:

У меня есть два календаря с событиями, и я хочу получать оба события одновременно и отображать в соответствии с отсортированными датой и временем (с днем прописью)

Я уже использую этот метод JavaScript для отображения одного календаря, и теперь у меня есть два календаря, поэтому я хочу объединить и отобразить :

 calendar1= "https://www.googleapis.com/calendar/v3/calendars/<?php echo $cal_id1; ?>/events?key=<?php echo $apikey1; ?>";
calendar2= "https://www.googleapis.com/calendar/v3/calendars/<?php echo $cal_id2; ?>/events?key=<?php echo $apikey2; ?>";

formatGoogleCalendar.init({
        calendarUrl:calendar1,calendar2,
        past: false,
        upcoming: true,
        pastTopN: 5,
        upcomingTopN: 7,
        itemsTagName: 'li',
        upcomingSelector: '#events-upcoming',
        pastSelector: '#events-past',
        upcomingHeading: '<div id="myDIV" class="header"><font style="float:left;">amp;nbsp;amp;nbsp;' digitdt 'amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;</font><h2 style="margin:5px">Upcoming To Do List<font style="float:right; font-family:Digital-7; font-size:28pt;">amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;Timeamp;nbsp;' digitxt '</font></h2></div>',
        pastHeading: '',
        format: ['<font style="color:#f44336; font-weight: bold; font-size: 28pt;">☞</font>amp;nbsp;amp;nbsp;<strong>', '*date*', '</strong>:<br>amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; ', '*summary*', ' amp;mdash; ', '*description*', ' in ', '*location*']
      }); 
  

Могу ли я передать 2 URL-адреса календаря и отобразить его таким образом?
calendarUrl:calendar1,calendar2,
Пожалуйста, помогите.
Спасибо.

Ответ №1:

Наконец я нашел решение простым способом объединить несколько календарей и получить все события в одном представлении в соответствии с датой / временем. Ниже приведен код, который я использовал.

 <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="FormatGoogleCalendar-master/dist/format-google-calendar.js"></script>
<!-- FormatGoogleCalendar Javascript file -->
<script src="FormatGoogleCalendar-master/dist/format-google-calendar.min.js"></script>

<script>  

//declare calendar urls with calendar id and api key
var calender1 = "https://www.googleapis.com/calendar/v3/calendars/$cal_id/events?key=$apikey";


var calender2 = "https://www.googleapis.com/calendar/v3/calendars/$cal_id/events?key=$apikey";


//store the calendar urls in an array


var cals = [calender1,calender2];


var CAL_ID ="";

//loop through and get each calendar urls


for (j = 0; j < cals.length; j  ) {  


    CAL_ID = cals[j];            


      formatGoogleCalendar.init({
        calendarUrl:CAL_ID,
        past: false,
        upcoming: true,
        pastTopN: 0,
        upcomingTopN: 10,
        itemsTagName: 'li',
        upcomingSelector: '#events-upcoming',
        pastSelector: '#events-past',
        upcomingHeading: 'Upcoming Events',
        pastHeading: '',
        format: ['<font style="color:#f44336; font-weight: bold; font-size: 28pt;">☞</font>amp;nbsp;amp;nbsp;<strong>', '*date*', '</strong>:<br>amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; ', '*summary*', ' amp;mdash; ', '*description*', ' in ', '*location*']
      }); 
}
  </script>
  

Надеюсь, что это может помочь и другим.