Google 캘린더 (일일 요약)
설명
사용자 가이드
하나 이상의 Google 캘린더를 서버에 연결하세요. 봇이 매일 다가오는 일정 요약을 게시하며, 각자 하루 전 알림을 개인 메시지로 받도록 구독할 수 있는 대화형 패널도 표시할 수 있습니다.
기능
- 원하는 채널과 시각에 향후 30일 일정의 일일 요약을 게시합니다.
- 대화형 일정 패널을 표시합니다. 페이지 넘김, 자동 갱신, 다음 갱신까지의 카운터를 제공합니다.
- 패널에서 일정을 구독한 멤버에게 하루 전 알림을 개인 메시지로 전송합니다.
- 여러 캘린더를 동시에 추적합니다. 공개 캘린더(로그인 없이 조회)와 비공개 캘린더(연결된 Google 계정으로 조회) 모두 지원합니다.
- 서버에 설정한 시간대를 따릅니다.
Google 쪽에서 준비할 것
Google에서 따로 만들어야 할 것은 없습니다. Google Cloud 프로젝트, API 키, OAuth 자격 증명 모두 TennoCore가 제공합니다. 캘린더 유형에 따라 다음만 준비하면 됩니다.
공개 캘린더
- 캘린더 ID. PC에서 calendar.google.com을 열고 → 「내 캘린더」에서 해당 캘린더에 마우스를 올린 뒤 → ⋮ 메뉴 → 설정 및 공유 → 캘린더 통합 섹션 → 캘린더 ID를 복사합니다.
- 캘린더를 공개로 설정해야 합니다. 같은 페이지 → 액세스 권한 → 일반에게 공개. 그렇지 않으면 봇이 캘린더를 읽을 수 없습니다.
ID 대신 cid=가 포함된 Google 링크도 사용할 수 있습니다.
비공개 캘린더
- 멤버(대개 여러분 자신)가 Google 계정을 연결해야 합니다. 대시보드의 내 Google 계정 연결 버튼 또는 Discord에서
/agenda connect를 사용합니다. Google이 전용 페이지에 입력할 코드를 표시합니다. 요청되는 권한은 캘린더에 대한 읽기 전용입니다. - 계정을 연결한 뒤 해당 계정을 소유자로 지정하고 목록에서 캘린더를 선택합니다. 이 경우 캘린더를 공개로 설정할 필요가 없습니다.
노트
비공개 캘린더는 권한을 부여한 계정의 토큰으로 조회됩니다. 해당 멤버가 계정 연결을 해제하면 연결된 비공개 캘린더를 더 이상 읽을 수 없습니다.
빠른 시작(관리자)
- 시간대를 설정합니다:
/agenda timezone tz:Asia/Seoul. - 캘린더를 추가합니다:
/agenda calendrier ajouter_public calendar_id:<ID>(또는 대시보드에서 추가). - 채널과 시각을 선택합니다:
/agenda digest config_responses channel:#일정 hour:9. - 표시 결과를 확인합니다:
/agenda digest tester. - 일일 전송을 활성화합니다:
/agenda digest enable_module.
명령어
Google 계정(모두)
| 명령어 | 설명 |
|---|---|
/agenda connect | Google 계정 연결(Google 페이지에 코드 입력). |
/agenda me | 본인의 Google 연결 상태 확인. |
/agenda disconnect | 연결 해제 및 Google 토큰 삭제. |
/agenda my_events | 본인의 다음 일정 5건을 비공개로 응답. |
/agenda publish | 대화형 일정 패널 게시. |
/agenda digest tester | 테스트 요약을 즉시 게시. |
/agenda publish의 매개변수: channel(지정하지 않으면 현재 채널), days(1~60일 범위, 기본 30), refresh_every(자동 갱신 30~3600초, 기본 300).
추적 중인 캘린더
| 명령어 | 설명 |
|---|---|
/agenda calendrier lister | 이 서버가 추적하는 캘린더 목록 표시. |
/agenda calendrier ajouter_public | 공개 캘린더 추가(ID 또는 cid=가 포함된 링크), 라벨은 선택 사항. (관리자) |
/agenda calendrier ajouter_prive | 연결된 멤버의 Google 계정을 이용해 비공개 캘린더 추가. (관리자) |
/agenda calendrier retirer | 추적 중인 캘린더 제거(ID는 자동 완성됨). (관리자) |
일일 요약
| 명령어 | 설명 |
|---|---|
/agenda digest config_responses | 전송 채널과 현지 시각 선택(0~23). (관리자) |
/agenda digest enable_module | 일일 전송 활성화. (관리자) |
/agenda digest desactiver | 일일 전송 비활성화. (관리자) |
/agenda timezone | 서버 시간대를 IANA 형식으로 설정. (관리자) |
대시보드 설정
대시보드 → 도구 & 스태프 카테고리 → Google Calendar 일정.
- 요약 구성: 게시 채널, 전송 시각(0~23), 시간대(Europe/Paris, UTC, America/New_York), 활성화 스위치.
- 비공개 캘린더: 연결된 Google 계정 목록(이메일 주소 포함), 계정 추가 연결 버튼, 연결 해제 버튼.
- 캘린더: 추적 중인 캘린더 목록으로, 공개/비공개를 나타내는 아이콘, ID, 소유 계정이 표시됩니다. 추가 창에서 먼저 유형을 선택합니다.
- 공개: ID를 붙여넣습니다(펼칠 수 있는 도움말에서 찾는 방법을 안내합니다).
- 비공개: 연결된 계정을 선택한 뒤 해당 계정의 캘린더 목록에서 고릅니다.
- 두 경우 모두 표시 이름을 지정할 수 있습니다.
- 일정 미리보기(30일): 다음 일정 10건을 날짜별로 묶어 표시하고 Google Calendar 링크를 제공합니다.
- 요약 테스트: 설정된 채널에 요약을 즉시 게시합니다.
추적 캘린더 수는 프리미엄이 아닌 서버의 경우 3개로 제한됩니다(기본값이며, TennoCore 팀이 조정할 수 있습니다).
알아두면 좋은 점
- 요약은 5분마다 확인되며, 지정한 시각대에 하루 한 번만 게시됩니다. 그 한 시간 동안 봇을 사용할 수 없었다면 그날의 요약은 그냥 건너뛰며, 나중에 다시 발송되지 않습니다.
- 요약은 항상 30일을 대상으로 하며 페이지당 25개 일정을 표시합니다.
- 캘린더를 설정하지 않은 상태에서는
/agenda publish가 게시를 거부하고 캘린더를 추가하라고 안내합니다. - 일정 패널은 임시입니다. 15분간 상호작용이 없으면 버튼이 응답을 멈추고 자동 갱신도 함께 중단됩니다. 상시 표시가 필요하면 패널이 아니라 일일 요약을 사용하세요.
- 지금 갱신, 하루 전 알림 받기, 알림 해제 버튼은 명령어를 실행한 멤버 전용입니다. 다른 멤버는 거부됩니다. 따라서 각자 자신의 패널을 게시해 구독하거나, 요약 패널을 이용해야 합니다.
- 하루 전 알림은 개인 메시지로 전송됩니다. 개인 메시지를 차단한 멤버는 받지 못합니다. 알림은 매분 확인됩니다.
- 시간대는 전송 시각과 날짜 표시 모두에 적용됩니다. 대시보드에서는 세 개의 시간대만 제공하지만,
/agenda timezone은 모든 IANA 이름을 받습니다(Europe/Brussels,America/Sao_Paulo등). - 봇에게 요약 채널의 메시지 보내기와 링크 첨부 권한이 필요합니다.
/agenda disconnect는 TennoCore 측의 Google 토큰을 삭제합니다. 서버의 공개 캘린더는 계속 작동하지만, 여러분의 계정에 의존한 비공개 캘린더는 작동하지 않습니다.