최종 수정일: 2026-07-30
캘린더 싱크(이하 "이 앱")는 사용자가 선택한 캘린더 서비스 사이에서 일정을 동기화하는 Android 애플리케이션입니다. 이 문서는 이 앱이 어떤 정보를 다루고, 어디에 두고, 어디로 보내는지 설명합니다.
동기화 대상 일정의 제목, 시간, 장소, 설명, 참석자, 알림, 반복 규칙을 읽고 씁니다. 이 정보는 사용자가 연결한 캘린더 서비스와 기기의 캘린더 앱에서 비롯되며, 동기화를 위해 필요한 범위에서 기기에 임시 저장됩니다.
연결한 계정의 식별자(이메일 주소 또는 로그인 ID), 표시 이름, 그리고 CalDAV 계정의 경우 서버 주소를 저장합니다.
| 종류 | 대상 | 저장 방식 |
|---|---|---|
| OAuth 액세스·리프레시 토큰 | Google, Microsoft | 키스토어 기반 AES-256-GCM 암호화 |
| 아이디와 앱 비밀번호 | Apple, Naver, NAVER WORKS, Dooray | 키스토어 기반 AES-256-GCM 암호화 |
암호화 키는 기기의 하드웨어 지원 키스토어에 보관되며 앱이 키 자체를 읽을 수 없습니다. 복호화에 실패한 항목은 사용하지 않고 폐기합니다.
동기화 정책(어느 캘린더에서 어느 캘린더로, 어떤 방향과 기간), 사용할 캘린더 선택, 자동 동기화·알림·감사 로그 설정, 그리고 동기화 스냅샷을 저장합니다.
동기화 스냅샷은 일정의 고유 식별자(UID)와 내용 지문(해시)의 목록입니다. 일정의 제목이나 본문은 포함하지 않으며, 지난 실행 이후 무엇이 바뀌었는지 판단하는 데만 쓰입니다.
광고를 표시하는 경우 기기의 광고 ID가 사용됩니다. 자세한 내용은 4장에 있습니다.
모든 데이터는 기기 내부의 앱 전용 저장 영역에 있습니다. 다른 앱은 접근할 수 없습니다.
| 저장하는 것 | 위치 | 보관 |
|---|---|---|
| 인증 토큰·자격 증명 | 암호화 저장소 | 계정 삭제 시 제거 |
| 계정 목록·표시 이름·CalDAV 서버 주소 | 앱 설정 | 계정 삭제 시 제거 |
| 동기화 정책·캘린더 선택·앱 설정 | 앱 설정 | 정책·앱 삭제 시 제거 |
| 동기화 스냅샷(UID와 지문) | 앱 설정 | 정책 삭제 시 제거 |
| 증분 동기화 캐시 | 앱 파일 영역 | 계정 삭제 시 제거 |
| 감사 로그 | 앱 파일 영역 | 사용자가 정한 보관 기간(기본 14일) 경과 후 삭제 |
증분 동기화 캐시에는 서버에서 받은 일정 데이터 전문(Google 일정 객체, CalDAV 원본 iCalendar)이 포함됩니다. 매번 전체를 다시 받지 않기 위한 것으로, 계정별로 분리해 보관하며 해당 계정을 삭제하면 함께 삭제됩니다.
감사 로그는 기본적으로 꺼져 있습니다. 사용자가 켠 경우 정책 변경과 동기화 실행 결과(실행 시각, 제공자, 추가·수정·삭제 건수)를 기록합니다. 일정의 제목이나 내용, 자격 증명은 기록하지 않습니다.
이 앱의 데이터 전체는 Android 클라우드 백업과 기기 간 이전 대상에서 제외되어 있습니다. 암호화된 자격 증명이 기기를 벗어나거나, 원래 기기의 키스토어 키 없이 복원되어 무용해지는 일을 막기 위한 것입니다.
일정 데이터는 사용자가 연결한 서비스와만 주고받습니다.
각 서비스의 개인정보 처리는 해당 서비스 제공자의 방침을 따릅니다.
전송은 항상 HTTPS로 이루어집니다. 자격 증명은 해당 계정의 서버 주소로만 전송되며, 서버 응답이 다른 주소를 지시하더라도 그 주소로는 전송하지 않습니다.
없습니다. 이 앱은 개발자가 운영하는 서버와 통신하지 않습니다.
사용자가 문제 해결을 위해 감사 로그를 직접 내보내 전달하는 경우에만 그 내용이 개발자에게 전달됩니다. 그 보고서에는 앱·기기 버전, 정책 이름, 캘린더 이름, 변경 건수가 포함되고, 정책 식별자는 별칭으로 치환됩니다. 일정 내용과 자격 증명은 포함되지 않습니다. 공유 전에 내용을 화면에서 확인할 수 있습니다.
이 앱은 광고를 표시합니다.
| 권한 | 용도 |
|---|---|
| 인터넷, 네트워크 상태 | 캘린더 서비스 통신 |
| 캘린더 읽기·쓰기 | 기기 캘린더와의 동기화 |
| 알림 | 백그라운드 동기화 실패·삭제 보류 알림 |
이 밖에 포함된 라이브러리가 요구하는 권한은 Play 데이터 보안 문서에 출처와 함께 정리되어 있습니다. 그 가운데 NFC 권한은 이 앱이 사용하지 않습니다 — Microsoft 인증 라이브러리의 하위 의존성이 선언하는 것이며, 이 앱은 해당 기능을 호출하지 않습니다.
| 원하는 것 | 방법 |
|---|---|
| 한 계정의 자격 증명과 캐시 삭제 | 계정 탭에서 해당 계정 삭제 |
| 한 정책과 그 동기화 기록 삭제 | 정책 삭제 |
| 감사 로그 삭제 | 설정 > 감사 로그 > 기록 비우기 |
| 이 앱이 저장한 모든 것 삭제 | 앱 삭제(제거) |
이 앱은 서버에 데이터를 두지 않으므로 삭제 요청을 위해 개발자에게 연락할 필요가 없습니다. 앱을 제거하면 위 모든 데이터가 기기에서 사라집니다.
이미 동기화된 일정은 앱을 제거해도 각 캘린더 서비스에 남습니다. 그 일정을 지우려면 해당 캘린더 서비스에서 삭제하거나, 앱 제거 전에 정책 탭의 캘린더 일정 삭제 기능을 사용하십시오.
이 앱은 아동을 대상으로 하지 않으며, 아동의 개인정보를 의도적으로 수집하지 않습니다.
이 방침이 변경되면 이 문서의 최종 수정일이 갱신됩니다. 중요한 변경은 앱 업데이트 설명에 함께 안내합니다.
개인정보 처리에 관한 문의: capian577@gmail.com
Last updated: 2026-07-30
Calendar Sync ("the app") is an Android application that synchronises events between calendar services you choose. This document explains what information the app handles, where it keeps it, and where it sends it.
The app reads and writes the title, time, location, description, attendees, reminders, and recurrence rules of the events it syncs. This information originates from the calendar services you connect and from the device's calendar, and is stored on the device to the extent syncing requires.
The app stores the identifier of each connected account (email address or login ID), its display name, and — for CalDAV accounts — the server address.
| Type | Services | Storage |
|---|---|---|
| OAuth access and refresh tokens | Google, Microsoft | AES-256-GCM, Keystore-backed |
| Username and app password | Apple, Naver, NAVER WORKS, Dooray | AES-256-GCM, Keystore-backed |
The encryption key lives in the device's hardware-backed keystore and the app cannot read the key itself. Entries that fail to decrypt are discarded rather than used.
The app stores your sync policies (which calendar to which, in what direction and over what period), which calendars are in use, your automatic-sync, notification, and audit-log settings, and a sync snapshot.
The sync snapshot is a list of event identifiers (UIDs) paired with content fingerprints (hashes). It contains no event titles or bodies, and exists only to determine what changed since the previous run.
When ads are shown, the device's advertising ID is used. See section 4.
All data resides in the app's private storage on the device. Other apps cannot access it.
| Stored item | Location | Retention |
|---|---|---|
| Tokens and credentials | Encrypted store | Removed when the account is deleted |
| Account list, display names, CalDAV server addresses | App preferences | Removed when the account is deleted |
| Sync policies, calendar selection, app settings | App preferences | Removed with the policy or the app |
| Sync snapshot (UIDs and fingerprints) | App preferences | Removed when the policy is deleted |
| Incremental sync cache | App file storage | Removed when the account is deleted |
| Audit log | App file storage | Deleted after the retention period you choose (14 days by default) |
The incremental sync cache contains full event payloads received from the server (Google event objects, raw CalDAV iCalendar data). It exists so the app does not refetch everything on each run; it is kept per account and is deleted with that account.
The audit log is off by default. When you enable it, the app records policy changes and sync results (run time, provider, counts of additions, updates, and deletions). It records no event titles or contents and no credentials.
All of the app's data is excluded from Android cloud backup and device-to-device transfer. This keeps encrypted credentials from leaving the device, and prevents restoring them onto a device without the original keystore key, where they would be useless anyway.
Event data is exchanged only with the services you connect:
Each service's handling of your information is governed by that provider's own policy.
All transmission uses HTTPS. Credentials are sent only to the server address belonging to that account, and are not sent to a different address even if a server response points at one.
Nothing. The app does not communicate with any server operated by the developer.
The only exception is when you choose to export the audit log and send it for support. That report contains app and device versions, policy names, calendar names, and change counts; policy identifiers are replaced with aliases. It contains no event content and no credentials. You can review it on screen before sharing.
The app shows ads.
| Permission | Purpose |
|---|---|
| Internet, network state | Communicating with calendar services |
| Read and write calendar | Syncing with the device calendar |
| Notifications | Alerting you to failed background syncs and withheld deletions |
Permissions contributed by bundled libraries are listed with their origins in the Play data safety document. Among them, the app does not use the NFC permission — it is declared by a transitive dependency of the Microsoft authentication library, and the app never invokes that functionality.
| To delete | Do this |
|---|---|
| One account's credentials and cache | Delete that account on the Accounts tab |
| One policy and its sync record | Delete the policy |
| The audit log | Settings > Audit log > Clear records |
| Everything the app stored | Uninstall the app |
Because the app keeps no data on a server, you do not need to contact the developer to request deletion. Uninstalling removes all of the above from the device.
Events already synced remain in each calendar service after uninstalling. To remove them, delete them in that calendar service, or use the Delete calendar events feature on the Policies tab before uninstalling.
The app is not directed at children and does not knowingly collect personal information from children.
If this policy changes, the last-updated date above is revised. Significant changes are also noted in the app update description.
Questions about privacy: capian577@gmail.com