cloudflare
tcp/443 tcp/80 tcp/8443
Open service 104.21.63.183:8443 · not.la
2026-01-25 20:11
HTTP/1.1 521 <none> Date: Sun, 25 Jan 2026 20:11:24 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=376,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b63e8827283-EWR alt-svc: h3=":8443"; ma=86400 error code: 521
Open service 2a06:98c1:3120::3:8443 · re.not.la
2026-01-25 20:11
HTTP/1.1 522 <none> Date: Sun, 25 Jan 2026 20:11:44 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19610,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b672a3ad00d-SJC alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2a06:98c1:3121::3:443 · re.not.la
2026-01-25 20:11
HTTP/1.1 522 <none> Date: Sun, 25 Jan 2026 20:11:44 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19447,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b672890f8de-SIN alt-svc: h3=":443"; ma=86400 error code: 522
Open service 2a06:98c1:3121::3:8443 · not.la
2026-01-25 20:11
HTTP/1.1 521 <none> Date: Sun, 25 Jan 2026 20:11:24 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=390,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b634fff0f90-EWR alt-svc: h3=":8443"; ma=86400 error code: 521
Open service 104.21.63.183:80 · not.la
2026-01-25 20:11
HTTP/1.1 521 <none> Date: Sun, 25 Jan 2026 20:11:24 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=193,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b632d0cc44f-EWR alt-svc: h3=":443"; ma=86400 error code: 521
Open service 2a06:98c1:3121::3:443 · not.la
2026-01-25 20:11
HTTP/1.1 521 <none> Date: Sun, 25 Jan 2026 20:11:24 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=525,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b63f9c134ac-FRA alt-svc: h3=":443"; ma=86400 error code: 521
Open service 172.67.171.155:443 · not.la
2026-01-25 20:11
HTTP/1.1 521 <none> Date: Sun, 25 Jan 2026 20:11:24 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=540,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b63efbd30e7-FRA alt-svc: h3=":443"; ma=86400 error code: 521
Open service 2a06:98c1:3120::3:80 · not.la
2026-01-25 20:11
HTTP/1.1 521 <none> Date: Sun, 25 Jan 2026 20:11:24 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=540,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b63dcabfea7-AMS alt-svc: h3=":443"; ma=86400 error code: 521
Open service 172.67.171.155:8443 · not.la
2026-01-25 20:11
HTTP/1.1 521 <none> Date: Sun, 25 Jan 2026 20:11:24 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=527,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b63d99018d8-FRA alt-svc: h3=":8443"; ma=86400 error code: 521
Open service 172.67.171.155:80 · not.la
2026-01-25 20:11
HTTP/1.1 521 <none> Date: Sun, 25 Jan 2026 20:11:24 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=383,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b633ed37539-EWR alt-svc: h3=":443"; ma=86400 error code: 521
Open service 188.114.97.3:8443 · re.not.la
2026-01-25 20:11
HTTP/1.1 522 <none> Date: Sun, 25 Jan 2026 20:11:44 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19465,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b66bb39ce90-SJC alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2a06:98c1:3120::3:8443 · not.la
2026-01-25 20:11
HTTP/1.1 521 <none> Date: Sun, 25 Jan 2026 20:11:24 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=501,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b639f6f532c-LHR alt-svc: h3=":8443"; ma=86400 error code: 521
Open service 2a06:98c1:3120::3:443 · re.not.la
2026-01-25 20:11
HTTP/1.1 522 <none> Date: Sun, 25 Jan 2026 20:11:43 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19346,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b669a899f26-FRA alt-svc: h3=":443"; ma=86400 error code: 522
Open service 2a06:98c1:3120::3:443 · not.la
2026-01-25 20:11
HTTP/1.1 521 <none> Date: Sun, 25 Jan 2026 20:11:24 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=166,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b6269ec71ff-YYZ alt-svc: h3=":443"; ma=86400 error code: 521
Open service 2a06:98c1:3121::3:80 · not.la
2026-01-25 20:11
HTTP/1.1 521 <none> Date: Sun, 25 Jan 2026 20:11:24 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=196,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b62aa45134a-EWR alt-svc: h3=":443"; ma=86400 error code: 521
Open service 104.21.63.183:443 · not.la
2026-01-25 20:11
HTTP/1.1 521 <none> Date: Sun, 25 Jan 2026 20:11:24 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=165,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b62491c5d15-YYZ alt-svc: h3=":443"; ma=86400 error code: 521
Open service 2a06:98c1:3121::3:8443 · re.not.la
2026-01-25 20:11
HTTP/1.1 522 <none> Date: Sun, 25 Jan 2026 20:11:43 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19343,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b665e7b8e3e-EWR alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 188.114.97.3:443 · re.not.la
2026-01-25 20:11
HTTP/1.1 522 <none> Date: Sun, 25 Jan 2026 20:11:44 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19575,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c3a6b65fde08e3e-EWR alt-svc: h3=":443"; ma=86400 error code: 522
Open service 188.114.97.3:443 · not.la
2026-01-23 06:51
HTTP/1.1 521 <none> Date: Fri, 23 Jan 2026 06:51:47 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=545,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c255d4f6ff92bc3-FRA alt-svc: h3=":443"; ma=86400 error code: 521
Open service 104.21.112.1:443 · tt.not.la
2026-01-23 00:45
HTTP/1.1 200 OK
Date: Fri, 23 Jan 2026 00:45:25 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=17,cfOrigin;dur=0
Cf-Placement: local-FRA
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=L5tOvZz%2BlSIQXbfr5zBrqjiITZ259%2BKjK8RKbb8TNB5uAMQUmMt5w2RRPvA80lbZJ%2FbmHf1vf8tyFiV%2BW4IVb%2FVBHhP2U%2BMPuQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c2344aa7fb5db9b-FRA
alt-svc: h3=":443"; ma=86400
Page title: TimeTree to Google Calendar
<!DOCTYPE html>
<head>
<meta charset="UTF-8" />
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<link rel="stylesheet" href="https://unpkg.com/@picocss/pico@latest/css/pico.min.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>TimeTree to Google Calendar</title>
</head>
<body>
<header class="container">
<hgroup>
<h1>TimeTree to iCal</h1>
<p>TimeTreeの<b>公開カレンダー</b>をiPhoneやGoogleカレンダーに登録するiCal形式に変換します。</p>
</hgroup>
</header>
<main class="container">
<div id="app">
<form>
<label for="timetree">TimeTree URLをコピーして入力</label>
<input type="text" id="timetree" name="timetree" placeholder="https://timetreeapp.com/public_calendars/kastella_unofficial" v-model="timetree">
<label for="google">iCal URL</label>
<p v-show="privateurl"><mark>公開カレンダーでないようです。</mark></p>
<input type="text" id="google" name="google" ref="google" v-on:click="this.$refs.google.select()" v-model="google" readonly="readonly">
</form>
<article>
<h3>iPhoneでの追加リンク</h3>
<p><a v-bind:href="webcal">{{ webcal }}</a></p>
</article>
</div>
</main>
<footer class="container">
<small>© blinkingstar</small>
</footer>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"0a42bfc0e97e498ea643ba63edc7f4bd","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
<script>
const App = {
data() {
return {
timetree: ''
}
},
mounted() {
let queryString = window.location.search;
let urlParams = new URLSearchParams(queryString);
if( urlParams.has('link') ){
this.timetree = urlParams.get('link');
}
},
computed: {
google() {
const text = this.timetree.replace("https://timetreeapp.com/public_calendars/","").replace("https://timetr.ee/pc/","").replace(/\?[^/?]*$/,"").replace(/\/$/,"").replace(/^.+\/([^/]+)$/,"$1")
return "https://tt.not.la/" + text
},
webcal() {
const text = this.timetree.replace("https://timetreeapp.com/public_calendars/","").replace("https://timetr.ee/pc/","").replace(/\?[^/?]*$/,"").replace(/\/$/,"").replace(/^.+\/([^/]+)$/,"$1")
return "webcal://tt.not.la/" + text
},
privateurl() {
return this.timetree.replace("https://timetreeapp.com/public_calendars/","").replace("https://timetr.ee/pc/","").match(/https?:/)
}
}
}
Vue.createApp(App).mount('#app')
</script>
</html>
Open service 104.21.16.1:8443 · tt.not.la
2026-01-22 22:23
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 22:23:08 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=24,cfOrigin;dur=0
Cf-Placement: local-FRA
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=rdtVGGYxYdSFLf%2Bi1ssKVrCNl6ei9I93qXjrNDqwG8EMpsPxEUQdJYkd6kuy4vUQZYkrArfMiyER5hvB1O0ytER3KPz%2BylM0kA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c22743f0cba3720-FRA
alt-svc: h3=":8443"; ma=86400
Page title: TimeTree to Google Calendar
<!DOCTYPE html>
<head>
<meta charset="UTF-8" />
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<link rel="stylesheet" href="https://unpkg.com/@picocss/pico@latest/css/pico.min.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>TimeTree to Google Calendar</title>
</head>
<body>
<header class="container">
<hgroup>
<h1>TimeTree to iCal</h1>
<p>TimeTreeの<b>公開カレンダー</b>をiPhoneやGoogleカレンダーに登録するiCal形式に変換します。</p>
</hgroup>
</header>
<main class="container">
<div id="app">
<form>
<label for="timetree">TimeTree URLをコピーして入力</label>
<input type="text" id="timetree" name="timetree" placeholder="https://timetreeapp.com/public_calendars/kastella_unofficial" v-model="timetree">
<label for="google">iCal URL</label>
<p v-show="privateurl"><mark>公開カレンダーでないようです。</mark></p>
<input type="text" id="google" name="google" ref="google" v-on:click="this.$refs.google.select()" v-model="google" readonly="readonly">
</form>
<article>
<h3>iPhoneでの追加リンク</h3>
<p><a v-bind:href="webcal">{{ webcal }}</a></p>
</article>
</div>
</main>
<footer class="container">
<small>© blinkingstar</small>
</footer>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"0a42bfc0e97e498ea643ba63edc7f4bd","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
<script>
const App = {
data() {
return {
timetree: ''
}
},
mounted() {
let queryString = window.location.search;
let urlParams = new URLSearchParams(queryString);
if( urlParams.has('link') ){
this.timetree = urlParams.get('link');
}
},
computed: {
google() {
const text = this.timetree.replace("https://timetreeapp.com/public_calendars/","").replace("https://timetr.ee/pc/","").replace(/\?[^/?]*$/,"").replace(/\/$/,"").replace(/^.+\/([^/]+)$/,"$1")
return "https://tt.not.la/" + text
},
webcal() {
const text = this.timetree.replace("https://timetreeapp.com/public_calendars/","").replace("https://timetr.ee/pc/","").replace(/\?[^/?]*$/,"").replace(/\/$/,"").replace(/^.+\/([^/]+)$/,"$1")
return "webcal://tt.not.la/" + text
},
privateurl() {
return this.timetree.replace("https://timetreeapp.com/public_calendars/","").replace("https://timetr.ee/pc/","").match(/https?:/)
}
}
}
Vue.createApp(App).mount('#app')
</script>
</html>
Open service 104.21.16.1:8443 · tt.not.la
2026-01-10 02:10
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 02:10:49 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=20,cfOrigin;dur=0
Cf-Placement: local-EWR
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=zEqED8ypYd7v7cY6GOglGvNN%2FZiQtF9G%2BAkJoDLYXRXYXqlYgMlzG6O92VFKRkxf4tH94v5r1jg9Z3o8jL9DB9FxODyPgT8%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bb8a3e4da0d1906-EWR
alt-svc: h3=":8443"; ma=86400
Page title: TimeTree to Google Calendar
<!DOCTYPE html>
<head>
<meta charset="UTF-8" />
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<link rel="stylesheet" href="https://unpkg.com/@picocss/pico@latest/css/pico.min.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>TimeTree to Google Calendar</title>
</head>
<body>
<header class="container">
<hgroup>
<h1>TimeTree to iCal</h1>
<p>TimeTreeの<b>公開カレンダー</b>をiPhoneやGoogleカレンダーに登録するiCal形式に変換します。</p>
</hgroup>
</header>
<main class="container">
<div id="app">
<form>
<label for="timetree">TimeTree URLをコピーして入力</label>
<input type="text" id="timetree" name="timetree" placeholder="https://timetreeapp.com/public_calendars/kastella_unofficial" v-model="timetree">
<label for="google">iCal URL</label>
<p v-show="privateurl"><mark>公開カレンダーでないようです。</mark></p>
<input type="text" id="google" name="google" ref="google" v-on:click="this.$refs.google.select()" v-model="google" readonly="readonly">
</form>
<article>
<h3>iPhoneでの追加リンク</h3>
<p><a v-bind:href="webcal">{{ webcal }}</a></p>
</article>
</div>
</main>
<footer class="container">
<small>© blinkingstar</small>
</footer>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"0a42bfc0e97e498ea643ba63edc7f4bd","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
<script>
const App = {
data() {
return {
timetree: ''
}
},
mounted() {
let queryString = window.location.search;
let urlParams = new URLSearchParams(queryString);
if( urlParams.has('link') ){
this.timetree = urlParams.get('link');
}
},
computed: {
google() {
const text = this.timetree.replace("https://timetreeapp.com/public_calendars/","").replace("https://timetr.ee/pc/","").replace(/\?[^/?]*$/,"").replace(/\/$/,"").replace(/^.+\/([^/]+)$/,"$1")
return "https://tt.not.la/" + text
},
webcal() {
const text = this.timetree.replace("https://timetreeapp.com/public_calendars/","").replace("https://timetr.ee/pc/","").replace(/\?[^/?]*$/,"").replace(/\/$/,"").replace(/^.+\/([^/]+)$/,"$1")
return "webcal://tt.not.la/" + text
},
privateurl() {
return this.timetree.replace("https://timetreeapp.com/public_calendars/","").replace("https://timetr.ee/pc/","").match(/https?:/)
}
}
}
Vue.createApp(App).mount('#app')
</script>
</html>
Open service 104.21.112.1:80 · tt.not.la
2026-01-09 08:36
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 08:36:48 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=39,cfOrigin;dur=0
Cf-Placement: local-LHR
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=iXREVPahYziPQGEJ4uWDBC381qznTJrSeIcy5fK%2FM8qKu6C3BqilO4j3kZcvFQC9EnVaY8CeD6qzuCeShmvVnliqwbsKSx50tg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bb29beceeb8b86a-LHR
alt-svc: h3=":443"; ma=86400
Page title: TimeTree to Google Calendar
<!DOCTYPE html>
<head>
<meta charset="UTF-8" />
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<link rel="stylesheet" href="https://unpkg.com/@picocss/pico@latest/css/pico.min.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>TimeTree to Google Calendar</title>
</head>
<body>
<header class="container">
<hgroup>
<h1>TimeTree to iCal</h1>
<p>TimeTreeの<b>公開カレンダー</b>をiPhoneやGoogleカレンダーに登録するiCal形式に変換します。</p>
</hgroup>
</header>
<main class="container">
<div id="app">
<form>
<label for="timetree">TimeTree URLをコピーして入力</label>
<input type="text" id="timetree" name="timetree" placeholder="https://timetreeapp.com/public_calendars/kastella_unofficial" v-model="timetree">
<label for="google">iCal URL</label>
<p v-show="privateurl"><mark>公開カレンダーでないようです。</mark></p>
<input type="text" id="google" name="google" ref="google" v-on:click="this.$refs.google.select()" v-model="google" readonly="readonly">
</form>
<article>
<h3>iPhoneでの追加リンク</h3>
<p><a v-bind:href="webcal">{{ webcal }}</a></p>
</article>
</div>
</main>
<footer class="container">
<small>© blinkingstar</small>
</footer>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"0a42bfc0e97e498ea643ba63edc7f4bd","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
<script>
const App = {
data() {
return {
timetree: ''
}
},
mounted() {
let queryString = window.location.search;
let urlParams = new URLSearchParams(queryString);
if( urlParams.has('link') ){
this.timetree = urlParams.get('link');
}
},
computed: {
google() {
const text = this.timetree.replace("https://timetreeapp.com/public_calendars/","").replace("https://timetr.ee/pc/","").replace(/\?[^/?]*$/,"").replace(/\/$/,"").replace(/^.+\/([^/]+)$/,"$1")
return "https://tt.not.la/" + text
},
webcal() {
const text = this.timetree.replace("https://timetreeapp.com/public_calendars/","").replace("https://timetr.ee/pc/","").replace(/\?[^/?]*$/,"").replace(/\/$/,"").replace(/^.+\/([^/]+)$/,"$1")
return "webcal://tt.not.la/" + text
},
privateurl() {
return this.timetree.replace("https://timetreeapp.com/public_calendars/","").replace("https://timetr.ee/pc/","").match(/https?:/)
}
}
}
Vue.createApp(App).mount('#app')
</script>
</html>