イベント日程を作成してセッションの重複を確認
セッション名、開始時刻、所要時間の一覧から、時計を手計算せずに見やすいイベントプログラムを作成できます。各項目を開始順に並べ、正確な終了時刻を求め、深夜を越える予定を明示し、重複する組み合わせと重なり時間を報告します。学会、研修会、地域行事、講習日程など、登壇者や運営担当者、参加者に正確な案内が必要な場面で役立ちます。
無料で実行
信頼できる元日程を入力します
最初にイベント名を指定し、公開する各セッションを1件ずつ登録してください。各レコードには、分かりやすい名称、24時間制のHH:MM形式による開始時刻、正の整数で表した所要分数が必要です。24時間制なら午前と午後の取り違えを防げ、分単位の指定なら短い休憩から長時間の講習まで同じ方法で正確に扱えます。入力順が時系列でなくても、生成時に開始時刻順へ並べ替えられます。ただし、重複レポートから問題箇所をすぐ特定できるよう、識別しやすい固有の名称を付けてください。送信する一覧は、イベント1日分の確定案として扱います。夜遅く始まり深夜を越える場合は、終了時刻が翌日の時計表示になり、日数差によって移行が明示されます。空の日程、不正な時刻、名称の欠落、正でない所要時間は、もっともらしい誤った予定を作らないため拒否されます。
終了時刻と重複警告を確認します
結果にはイベント名、セッション数、時系列の一覧、全体の重複有無、競合の詳細一覧が含まれます。各セッションには元の開始時刻と所要時間に加えて、計算された終了時刻が表示されます。日数差が0なら同じ日に終了し、1なら次の深夜を越えて終了することを表します。後のセッションが前のセッションの終了前に始まると、両者は重複と判定されます。一方が10:30に終了し、もう一方がちょうど10:30に始まる場合は競合ではありません。重複がある場合は、対象となる2件の名称と共通する分数が示されるため、講演を短縮するか、開始を移すか、別会場へ分けるかを判断できます。隣り合う行だけでなく関連する全組み合わせを調べるため、長い講習が複数の短い予定と重なる場合も、該当する警告がすべて出力されます。
イベント運営の流れに組み込みます
時刻を変更するたびにプログラムを作り直し、構造化された結果を、Webサイト、参加者向けメール、印刷用日程表、会場案内、登壇者資料の確認済み原稿として利用できます。手作業の場合は現在案をブラウザーの実行欄へ貼り付け、公開前に重複フラグをご確認ください。自動処理では、担当者が日程を保存した際に $0.002 でAPIを呼び出し、has_overlapsが真なら公開を止め、計算済みフィールドを文書テンプレートへ渡せます。この処理はネットワーク、現在日付、乱数、暗黙の暦条件に依存しないため、同じ入力から常に同じ結果が得られます。版を比較して変更時刻を正確に追跡する承認作業にも適しています。会場の割り当て、移動余裕の追加、タイムゾーンの推定、競合の自動修正は行いません。正確な時刻計算と完全な競合情報を提供し、運営者の判断を支援します。
活用例
会議プログラムの事前確認
講演の終了時刻を計算し、公開前に登壇者や会場の競合を見つけます。
研修日の時間割作成
講義、演習、食事、休憩を、境界が明確な時系列の日程へまとめます。
プログラム公開の自動化
アプリ内で日程を検証し、構造化した結果をWeb、メール、印刷用テンプレートへ渡します。
よくある質問
料金はいくらですか?
APIは1回 $0.002 で利用でき、ブラウザー版はこのページ上でローカル実行できます。
時刻はどの形式で入力しますか?
09:30や17:05のように、24時間制のHH:MM形式で入力してください。
セッションが深夜を越える場合はどうなりますか?
終了時刻は翌日に進み、day_offsetが開始日から何日後に終わるかを示します。
連続するセッションも重複と判定されますか?
いいえ。一方の終了と同じ分に次が始まる場合は、重複警告は表示されません。
重複を自動的に修正できますか?
できません。競合する組み合わせと重複分数を示し、会場、登壇者、時刻の調整は運営者が判断します。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/doc/event-program-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"event_name":"Product Leadership Summit","sessions":[{"name":"Opening keynote","start_time":"09:00","duration_minutes":60},{"name":"Strategy panel","start_time":"09:45","duration_minutes":45},{"name":"Networking break","start_time":"10:30","duration_minutes":20}]}'const res = await fetch("https://api.kit.forhosting.com/doc/event-program-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"event_name": "Product Leadership Summit",
"sessions": [
{
"name": "Opening keynote",
"start_time": "09:00",
"duration_minutes": 60
},
{
"name": "Strategy panel",
"start_time": "09:45",
"duration_minutes": 45
},
{
"name": "Networking break",
"start_time": "10:30",
"duration_minutes": 20
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/event-program-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"event_name": "Product Leadership Summit",
"sessions": [
{
"name": "Opening keynote",
"start_time": "09:00",
"duration_minutes": 60
},
{
"name": "Strategy panel",
"start_time": "09:45",
"duration_minutes": 45
},
{
"name": "Networking break",
"start_time": "10:30",
"duration_minutes": 20
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/event-program-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"event_name":"Product Leadership Summit","sessions":[{"name":"Opening keynote","start_time":"09:00","duration_minutes":60},{"name":"Strategy panel","start_time":"09:45","duration_minutes":45},{"name":"Networking break","start_time":"10:30","duration_minutes":20}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"event_name":"Product Leadership Summit","sessions":[{"name":"Opening keynote","start_time":"09:00","duration_minutes":60},{"name":"Strategy panel","start_time":"09:45","duration_minutes":45},{"name":"Networking break","start_time":"10:30","duration_minutes":20}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/event-program-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"event_name": "Product Leadership Summit",
"sessions": [
{
"name": "Opening keynote",
"start_time": "09:00",
"duration_minutes": 60
},
{
"name": "Strategy panel",
"start_time": "09:45",
"duration_minutes": 45
},
{
"name": "Networking break",
"start_time": "10:30",
"duration_minutes": 20
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.event_program_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_mb | 25 |
max_pages | 200 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |