프로그래밍/HTML

[JS] google calendar 와 outlook live 일정 추가하기

재우니 2023. 12. 21. 16:47

 

 

google calendar 와 outlook live 일정 추가하기

 

 

google calendar 에 추가하는 방법과 outlook 의 live 에 일정을 파라미터로 전송하여 추가하게끔 하는 방법이다.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <button
        onclick="addGoogleCalendarEvent('제목입니다. korea', '20210818T150000','20210818T210000', 'Asia/Seoul', '본문내용입니다. korea', '대학내일')">Add
        to Google Calendar</button>
    <button
        onclick="addOutlookCalendarEvent('제목입니다. korea', '2021-08-18T15:00:00','2021-10-01T21:00:00', '1. 클릭한 후 지정된 날짜 및 시간에 참가하십시오.<br />https://global.gotowebinar.com/join/', '대학내일')">Add
        to
        Outlook Calendar</button>
    <button onclick="addOutlookCalendarEvents()">Add to Outlook Calendar1</button>
</body>
<script>

    /*
        title 또는 subject: 이벤트의 제목
        start: 이벤트의 시작 날짜 (google 형식: 'yyyyMMddTHHmmss' / outlook live 형식: 'yyyy-MM-ddTHH:mm:ss' )
        start: 이벤트의 종료 날짜 (google 형식: 'yyyyMMddTHHmmss' / outlook live 형식: 'yyyy-MM-ddTHH:mm:ss' )
        timezone 또는 ctz: 이벤트의 시간대 (Google 캘린더에만 해당)
        details 또는 body: 이벤트의 상세 내용
        location: 이벤트의 장소
    */
    function addGoogleCalendarEvent(title, start, end, timezone, details, location) {
        let url = `https://www.google.com/calendar/render?action=TEMPLATE`;
        url += `&text=${encodeURIComponent(title)}`;
        url += `&dates=${start}/${end}`;
        url += `&ctz=${timezone}`;
        url += `&details=${encodeURIComponent(details)}`;
        url += `&location=${encodeURIComponent(location)}`;
        window.open(url, '_blank');
    }

    function addOutlookCalendarEvent(subject, start, end, body, location) {
        let url = `https://outlook.live.com/owa/?path=/calendar/action/compose&rru=addevent`;
        url += `&subject=${encodeURIComponent(subject)}`;
        url += `&startdt=${start}`;
        url += `&enddt=${end}`;
        url += `&body=${encodeURIComponent(body)}`;
        url += `&location=${encodeURIComponent(location)}`;
        window.open(url, '_blank');
    }

    function addOutlookCalendarEvents() {
        var eventTitle = 'GoToWebinar - 초보자를 위한 컨테이너 시작하기 (2021년 8월 18일)';
        var startTime = '2023-12-21T15:00:00';
        var endTime = '2024-01-02T16:30:00';
        var details = '1. 클릭한 후 지정된 날짜 및 시간에 참가하십시오.<br />https://global.gotowebinar.com/join/';
        var location = 'GoToWebinar';

        var href = `https://outlook.live.com/owa/?path=/calendar/action/compose&rru=addevent&subject=${eventTitle}&startdt=${startTime}&enddt=${endTime}&body=${details}&location=${location}`;

        // Open the URL in a new window
        window.open(href, '_blank');
    }



</script>

</html>