タイムゾーン重複の会議時間を探す
ベルリン(UTC+2)とニューヨーク(UTC−5)がともに9時〜17時勤務なら、重なるのはUTC 14:00〜15:00の1時間で、ベルリンは16:00、ニューヨークは9:00です。全員のオフセットと勤務時間を入れると共通の時間帯が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
各人が固定のUTCオフセットと現地の勤務日しか共有していないと、都市をまたぐ通話の調整は難しくなります。一方の時計を他方へ変換するだけのツールでは、重複区間を手作業で探すことになります。この重複会議時間ツールは、協定世界時からの固定オフセットと同じ日の現地ウィンドウ(例: 9時から17時)を持つ2名以上の参加者を受け取り、各ウィンドウを1分解像度でUTCへ写像し、全員が同時に空いている区間を返します。結果にはUTCの区間に加え、各参加者の現地開始・終了時刻が含まれるため、暗算なしでカレンダー招待に貼り付けられます。
固定UTCオフセットにおける重複会議時間の意味
固定UTCオフセットとは、協定世界時からの一定の時間数です。中央ヨーロッパの冬期でプラス2、東部標準時でマイナス5、インド標準時でプラス5.5、ライン諸島でプラス14などです。America/New_Yorkのような名前付きゾーンと違い、この計算機内では固定オフセットは進ませたり戻したりしません。
エンジンはウィンドウ内の各現地分をUTC日の1分へ変換し、オフセットが大きい場合はUTC真夜中をまたぐ写像を許します。空き状況は1440分の円環マスクとして保持されます。交差は全参加者にわたるビット単位ANDで、すべてのマスクが空きと付けたUTC分だけが会議候補になります。
候補分の連続区間が応答の重複ウィンドウになります。このモデルは「向こうは何時か」ではなく「公開された勤務時間内でいつ全員が話せるか」という検索意図に応えます。サマータイム切替と都市名解決は意図的に範囲外です。
チケットやステータスページがUTC±表記を出すのと同様、対象日にすでに適用される固定オフセットを指定してください。
実用上の注意、制限、別ツールを使うべき場合
公開される民用オフセットに合う整数時または端数時を選びます。各勤務ウィンドウは開始後に終了する単一の現地暦日に保ちます。現地真夜中をまたぐ夜勤は1行ではモデル化せず、分割するか計画日を調整します。
東西海岸のオフィス時間がわずかに触れるだけなら、一方の開始・終了付近の短い枠を想定します。アジアと米州がどちらも現地9-17なら重複がなく、ウィンドウを広げるか別日・別制約を選ぶ必要があります。1つの時計の写像だけなら固定オフセット変換器と、都市名だけやサマータイム自動対応が必要なら完全なIANAゾーンツールと組み合わせてください。
エッジワーカー向けに分マスク作業を抑えるため参加者は40名までです。
活用例
大陸をまたぐリモートチームのスタンドアップ
エンジニアリングマネージャが各拠点の固定UTCオフセットとコア時間を貼り付け、カレンダー招待前に全オフィスで成立する唯一の日次枠を一覧にします。
公開UTC±表記の顧客との営業通話
双方をすでに固定オフセットとして知るアカウントチームが、完全なタイムゾーンDBを開かずサマータイムを推測せずに相互勤務時間を見つけます。
よくある質問
重複がない場合はどうなりますか?
空の交差は空の成功リストとしては返らず、検証失敗は課金されません。
サマータイムや都市名に対応しますか?
いいえ。 IANAデータベースもDateの使用もありません。計画日にすでに適用される固定オフセットを指定してください。
インドやネパールのように1時間単位でないオフセットはどう入力しますか?
小数の時間で入力します。インド標準時は5.5、ネパールは5.75で、オーストラリアの一部は9.5です。分を別に入力する必要はありません。
日付をまたぐ夜勤も計画できますか?
1件のままではできません。勤務時間は同じ現地日付の中で始まって終わり、終了が開始より後である必要があります。夜勤は2件に分けて入力するか、別の日で計画してください。
一度に何人、何都市まで比較できますか?
1回の検索で2人から40人まで比較できます。各参加者が自分のオフセットと勤務時間を持ち、全員が空いている分だけが会議可能な時間として数えられます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/travel/time-zone-meeting-finder \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"zones":[{"offset":2,"start_hour":9,"end_hour":17,"label":"Berlin"},{"offset":-5,"start_hour":9,"end_hour":17,"label":"New York"}]}'const res = await fetch("https://api.kit.forhosting.com/travel/time-zone-meeting-finder", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"zones": [
{
"offset": 2,
"start_hour": 9,
"end_hour": 17,
"label": "Berlin"
},
{
"offset": -5,
"start_hour": 9,
"end_hour": 17,
"label": "New York"
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel/time-zone-meeting-finder",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"zones": [
{
"offset": 2,
"start_hour": 9,
"end_hour": 17,
"label": "Berlin"
},
{
"offset": -5,
"start_hour": 9,
"end_hour": 17,
"label": "New York"
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/time-zone-meeting-finder", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"zones":[{"offset":2,"start_hour":9,"end_hour":17,"label":"Berlin"},{"offset":-5,"start_hour":9,"end_hour":17,"label":"New York"}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"zones":[{"offset":2,"start_hour":9,"end_hour":17,"label":"Berlin"},{"offset":-5,"start_hour":9,"end_hour":17,"label":"New York"}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/time-zone-meeting-finder", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"zones": [
{
"offset": 2,
"start_hour": 9,
"end_hour": 17,
"label": "Berlin"
},
{
"offset": -5,
"start_hour": 9,
"end_hour": 17,
"label": "New York"
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.time_zone_meeting_finder",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
ウィンドウが交わらない場合は空の成功リストではなくinvalid_inputで失敗し、「その日に枠がない」を硬い結果として扱います。経路は純粋なparseで、IANAデータベースもサマータイム切替もネットワークもなく、無料のブラウザ実行と前払いAPIは固定丸め後にバイト一致します。
固定UTCオフセットにおける重複会議時間の意味
各参加者はさらに、24時間制のstart_hourとend_hourで同一暦日の現地勤務ウィンドウを宣言し、終了は開始より厳密に大きくします。
入力契約、応答形、エラー動作
zonesは2以上40以下のオブジェクト配列です。labelは都市・チーム・人名の短い任意文字列です。空の交差の製品ルールも同じ経路で、マスクが1分も共有しないとハンドラが明確な非重複メッセージを投げ、クライアントが沈黙を成功とみなさないようにします。必須フィールドzonesを含むJSON本体をPOSTします。各オブジェクトは有限数のoffset(マイナス14以上プラス14以下)、start_hourとend_hour(いずれも0から24、開始は終了より厳密に小さく、開始は24未満)を要求します。配列にはparticipants、people、locations、teamの別名も受け付けます。成功時はzone_count、offset_labelと現地時計とduration_hoursを含むzones、has_overlap true、交差の総長としてのoverlap_minutesとoverlap_hours、window_count、start_utc・end_utc・duration・local_times(同一UTC区間を各参加者の現地時計へ写像)を持つwindowsの順序付きリスト、表示とデバッグ用のmessageとstepsを含みます。zones欠落、2行未満、非有限数、±14外のオフセット、開始が終了以上、空や過長のlabelなどはinvalid_inputを返し課金されません。料金は成功呼び出しごとに単位itemの固定$0.002です。
実用上の注意、制限、別ツールを使うべき場合
インドは5.5、ネパールは5.75、オーストラリアの一部は9.5で、オフセット分用の第二フィールドを作らないでください。テストでは意図的な非重複例を使い、自動化が枠を捏造せずinvalid_inputを検証するようにします。往復確認は容易です。 既知の組—ベルリンUTC+2の9-17対ニューヨークUTC−5の9-17はUTCで14-15の1時間枠となり、ベルリン16-17・ニューヨーク9-10—を手計算し、APIが一致することを確認します。invalid_inputの失敗タスクは前払い残高を消費しないため、意図的に非重複ウィンドウを送る探索スクリプトの費用を抑えられます。
連携の活用例
複数ゾーンスケジューラの自動化テスト
固定オフセットを保存するサービスが、ゴールデン重複ウィンドウと意図的な非重複のinvalid_inputケースを継続的インテグレーション向けに生成します。
技術的な質問
タイムゾーン間の重複会議時間はどう見つけますか?
それぞれ固定UTCオフセットと現地のstart_hour/end_hourを持つゾーンを2つ以上送ってください。APIはUTCウィンドウと、全員が空いている各分における各参加者の現地時刻を返します。
参加者は何人まで含められますか?
リクエストあたりゾーン行は2から40です。各行にoffset、start_hour、end_hourが必要で、labelは任意です。
重複会議時間ファインダーの料金は?
ブラウザツールは無料です。APIは成功呼び出しごとに前払いKIT残高から$0.002です。無効入力は課金されません。