본문으로 건너뛰기

Google 캘린더 (일일 요약)

설명

사용자 가이드

하나 이상의 Google 캘린더를 서버에 연결하세요. 봇이 매일 다가오는 일정 요약을 게시하며, 각자 하루 전 알림을 개인 메시지로 받도록 구독할 수 있는 대화형 패널도 표시할 수 있습니다.

기능​

  • 원하는 채널과 시각에 향후 30일 일정의 일일 요약을 게시합니다.
  • 대화형 일정 패널을 표시합니다. 페이지 넘김, 자동 갱신, 다음 갱신까지의 카운터를 제공합니다.
  • 패널에서 일정을 구독한 멤버에게 하루 전 알림을 개인 메시지로 전송합니다.
  • 여러 캘린더를 동시에 추적합니다. 공개 캘린더(로그인 없이 조회)와 비공개 캘린더(연결된 Google 계정으로 조회) 모두 지원합니다.
  • 서버에 설정한 시간대를 따릅니다.

Google 쪽에서 준비할 것​

Google에서 따로 만들어야 할 것은 없습니다. Google Cloud 프로젝트, API 키, OAuth 자격 증명 모두 TennoCore가 제공합니다. 캘린더 유형에 따라 다음만 준비하면 됩니다.

공개 캘린더​

  1. 캘린더 ID. PC에서 calendar.google.com을 열고 → 「내 캘린더」에서 해당 캘린더에 마우스를 올린 뒤 → ⋮ 메뉴 → 설정 및 공유 → 캘린더 통합 섹션 → 캘린더 ID를 복사합니다.
  2. 캘린더를 공개로 설정해야 합니다. 같은 페이지 → 액세스 권한 → 일반에게 공개. 그렇지 않으면 봇이 캘린더를 읽을 수 없습니다.

ID 대신 cid=가 포함된 Google 링크도 사용할 수 있습니다.

비공개 캘린더​

  1. 멤버(대개 여러분 자신)가 Google 계정을 연결해야 합니다. 대시보드의 내 Google 계정 연결 버튼 또는 Discord에서 /agenda connect를 사용합니다. Google이 전용 페이지에 입력할 코드를 표시합니다. 요청되는 권한은 캘린더에 대한 읽기 전용입니다.
  2. 계정을 연결한 뒤 해당 계정을 소유자로 지정하고 목록에서 캘린더를 선택합니다. 이 경우 캘린더를 공개로 설정할 필요가 없습니다.
노트

비공개 캘린더는 권한을 부여한 계정의 토큰으로 조회됩니다. 해당 멤버가 계정 연결을 해제하면 연결된 비공개 캘린더를 더 이상 읽을 수 없습니다.

빠른 시작(관리자)​

  1. 시간대를 설정합니다: /agenda timezone tz:Asia/Seoul.
  2. 캘린더를 추가합니다: /agenda calendrier ajouter_public calendar_id:<ID>(또는 대시보드에서 추가).
  3. 채널과 시각을 선택합니다: /agenda digest config_responses channel:#일정 hour:9.
  4. 표시 결과를 확인합니다: /agenda digest tester.
  5. 일일 전송을 활성화합니다: /agenda digest enable_module.

명령어​

Google 계정(모두)​

명령어설명
/agenda connectGoogle 계정 연결(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 토큰을 삭제합니다. 서버의 공개 캘린더는 계속 작동하지만, 여러분의 계정에 의존한 비공개 캘린더는 작동하지 않습니다.