ā§§ā§Ģ āύāĻā§, ⧍ā§Ļ⧍ā§Ģ¡6 āĻŽāĻŋāύāĻŋāĻ āĻĒāĻĄāĻŧāϤā§
PostgreSQL-āĻ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤ āϏāĻŽā§āϏā§āĻāĻŋ āĻ āĻāĻžāĻāĻŽāĻā§āύ: āύāĻŽā§āύāĻž
PostgreSQL-āĻ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤ āĻļāĻŋāĻĄāĻŋāĻāϞ āĻāĻŦāĻ āĻāĻžāĻāĻŽāĻā§āύāĻā§āϞ⧠āĻā§āĻāĻžāĻŦā§ āϏāĻ āĻŋāĻāĻāĻžāĻŦā§ āϏāĻāϰāĻā§āώāĻŖ āĻ āĻā§āύāĻžāϰā§āĻ āĻāϰāĻŦā§āύâāϏā§āĻā§āϰā§āĻ āĻĢāϰāĻŽā§āϝāĻžāĻ, āϰāĻŋāĻāĻžāϰā§āύā§āϏ āύāĻŋā§āĻŽ, āĻŦā§āϝāϤāĻŋāĻā§āϰāĻŽ āĻāĻŦāĻ āĻā§ā§ā§āϰāĻŋ āĻĒā§āϝāĻžāĻāĻžāϰā§āύā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āϝāĻž āĻā§āϝāĻžāϞā§āύā§āĻĄāĻžāϰāĻā§ āϏāĻ āĻŋāĻ āϰāĻžāĻā§āĨ¤
āĻā§āύ āĻāĻžāĻāĻŽāĻā§āύ āĻ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤ āĻāĻā§āύā§āĻ āĻā§āϰāĻžāύā§āϤ āĻšā§\n\nāĻ
āϧāĻŋāĻāĻžāĻāĻļ āĻā§āϝāĻžāϞā§āύā§āĻĄāĻžāϰ āĻŦāĻžāĻ āĻāĻŖāĻŋāϤāĻāϤ āύāĻž; āĻāĻā§āϞ⧠āĻŽāĻžāύā§-āϏāĻāĻā§āϰāĻžāύā§āϤ āĻŦāĻžāĻāĨ¤ āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻāĻŋāύāĻŋāϏ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ (āĻāĻāĻāĻŋ āĻŽā§āĻšā§āϰā§āϤ āϏāĻŽā§), āĻāĻŋāύā§āϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰāĻž āĻ
āύā§āϝ āĻāĻŋāĻā§ āĻāĻļāĻž āĻāϰ⧠(āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏā§āĻĨāĻžāύā§āϰ āĻāĻāĻāĻŋ āϏā§āĻĨāĻžāύā§ā§ āĻā§āϞāĻ āĻāĻžāĻāĻŽ)āĨ¤ āĻāĻ āĻŦā§āϝāĻŦāϧāĻžāύāĻ āĻāĻžāϰāĻŖ āϝ⧠āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤ āĻļāĻŋāĻĄāĻŋāĻāϞ āĻāĻŦāĻ āĻāĻžāĻāĻŽāĻā§āύ āĻĒāϰā§āĻā§āώāĻžā§ āĻ āĻŋāĻ āĻĻāĻžāĻā§āĻžā§, āĻāĻŋāύā§āϤ⧠āĻŦāĻžāϏā§āϤāĻŦ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāϏāϞ⧠āĻā§āĻā§ āĻĻā§ā§āĨ¤\n\nāĻĄā§ āϞāĻžāĻāĻ āϏā§āĻāĻŋāĻ āĻāĻžāĻāĻŽ (DST) āĻšāϞ āĻā§āϞāĻžāϏāĻŋāĻ āĻā§āϰāĻŋāĻāĻžāϰāĨ¤ "āĻĒā§āϰāϤāĻŋāĻāĻŋ āϰāĻŦāĻŋāĻŦāĻžāϰ 09:00" āĻŦāϞāϤ⧠āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻŋ āĻŦā§āĻāĻžāύ āύāĻž āϝ⧠āĻāĻāĻž āϏā§āĻĨāĻžāύā§ā§ āĻā§āϞāĻ āĻāĻžāĻāĻŽā§ āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ 09:00, āĻāĻŦāĻ āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻāĻāĻžāĻā§ "āĻĒā§āϰāĻžāϰāĻŽā§āĻāĻŋāĻ āĻāĻžāĻāĻŽāϏā§āĻā§āϝāĻžāĻŽā§āĻĒ āĻĨā§āĻā§ āĻĒā§āϰāϤāĻŋ 7 āĻĻāĻŋāύ" āĻšāĻŋāϏā§āĻŦā§ āĻāĻŖāύāĻž āĻāϰā§āύ, āϤāĻāύ āĻ
āĻĢāϏā§āĻ āĻŦāĻĻāϞ⧠āĻā§āϞ⧠āĻĻā§āĻāĻāĻŋ āϧāĻžāϰāĻŖāĻž āĻāĻ āĻāĻŖā§āĻāĻž āĻāϰ⧠āĻŦāĻŋāĻā§āĻāĻŋāύā§āύ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻā§āϝāĻžāϞā§āύā§āĻĄāĻžāϰ āĻĸā§āĻāĻā§āϰāĻŋā§ā§ āϝāĻžāĻŦā§āĨ¤\n\nāĻā§āϰāĻŽāĻŖ āĻ āĻŽāĻŋāĻļā§āϰ āĻāĻžāĻāĻŽāĻā§āύ āĻāϰāĻ āĻāĻ āϏā§āϤāϰ āϝā§āĻ āĻāϰā§āĨ¤ āĻāĻāĻāĻŋ āĻŦā§āĻāĻŋāĻ āĻšā§āϤ⧠āĻā§āύ⧠āϏā§āĻĨāĻžāύā§āϰ āϏāĻā§āĻā§ (āĻāĻĻāĻžāĻšāϰāĻŖ: āĻļāĻŋāĻāĻžāĻā§āϰ āĻāĻāĻāĻŋ āϏā§āϞā§āύ āĻā§āϝāĻŧāĻžāϰ) āĻāĻŦāĻĻā§āϧ, āϝāĻāύ āĻĻā§āĻāĻā§āύ āϏā§āĻ āĻŦā§āϝāĻā§āϤāĻŋ āϞāύā§āĻĄāύ⧠āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āϏā§āĻĨāĻžāύ-āĻāĻŋāϤā§āϤāĻŋāĻ āĻļāĻŋāĻĄāĻŋāĻāϞāĻā§ āĻŦā§āϝāĻā§āϤāĻŋ-āĻāĻŋāϤā§āϤāĻŋāĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰā§āύ, āϤāĻžāĻšāϞ⧠āĻ
āύā§āϤāϤ āĻāĻāĻĒāĻā§āώāĻā§ āĻā§āϞ āϏā§āĻĨāĻžāύā§ā§ āϏāĻŽā§ āĻĻā§āĻāĻžāĻŦā§āύāĨ¤\n\nāϏāĻžāϧāĻžāϰāĻŖ āĻŦā§āϝāϰā§āĻĨāϤāĻžāϰ āϧāϰāύāϏāĻŽā§āĻš:\n\n- āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āϏāĻāϰāĻā§āώāĻŋāϤ āĻāĻžāĻāĻŽāϏā§āĻā§āϝāĻžāĻŽā§āĻĒā§ āĻāύāĻāĻžāϰāĻāĻžāϞ āϝā§āĻ āĻāϰ⧠recurrences āϤā§āϰāĻŋ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ DST āĻŦāĻĻāϞāĻžā§āĨ¤\n- āĻāĻĒāύāĻŋ āĻā§āύ āϰā§āϞ āĻāĻžāĻĄāĻŧāĻž "āϞā§āĻāĻžāϞ āĻāĻžāĻāĻŽ" āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ, āϤāĻžāĻ āĻĒāϰāĻŦāϰā§āϤā§āϤ⧠āĻāĻĻā§āĻĻā§āĻļā§āϝāĻā§āϤ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻāĻā§āϞ⧠āĻĒā§āύāϰā§āύāĻŋāϰā§āĻŽāĻžāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āύāĻžāĨ¤\n- āĻāĻĒāύāĻŋ āĻā§āĻŦāϞ āĻāĻŽāύ āϤāĻžāϰāĻŋāĻāĻā§āϞ⧠āĻā§āϏā§āĻ āĻāϰā§āύ āϝāĻž āĻāĻāύāĻ DST āϏā§āĻŽāĻž āĻ
āϤāĻŋāĻā§āϰāĻŽ āĻāϰ⧠āύāĻžāĨ¤\n- āĻāĻĒāύāĻŋ āĻāĻāĻ āĻā§ā§ā§āϰāĻŋāϤ⧠"āĻāĻā§āύā§āĻ āĻāĻžāĻāĻŽāĻā§āύ", "āĻāĻāĻāĻžāϰ āĻāĻžāĻāĻŽāĻā§āύ" āĻāĻŦāĻ "āϏāĻžāϰā§āĻāĻžāϰ āĻāĻžāĻāĻŽāĻā§āύ" āĻŽāĻŋāϞāĻŋā§ā§ āĻĢā§āϞā§āύāĨ¤\n\nāϏā§āĻāĻŋāĻŽāĻž āĻŦā§āĻā§ āύā§āĻā§āĻžāϰ āĻāĻā§ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰā§āύ āĻāĻĒāύāĻžāϰ āĻĒā§āϰā§āĻĄāĻžāĻā§āĻā§ "āϏāĻ āĻŋāĻ" āĻŽāĻžāύ⧠āĻā§āĨ¤\n\nāĻāĻāĻāĻŋ āĻŦā§āĻāĻŋāĻā§ā§āϰ āĻāύā§āϝ, "āϏāĻ āĻŋāĻ" āϏāĻžāϧāĻžāϰāĻŖāϤ āĻŽāĻžāύā§: āĻ
ā§āϝāĻžāĻĒā§ā§āύā§āĻāĻŽā§āύā§āĻāĻāĻŋ āĻā§āύā§āϝā§āϰ āĻāĻžāĻāĻŽāĻā§āύ⧠āĻĒā§āϰāϤā§āϝāĻžāĻļāĻŋāϤ āĻā§āĻžāϞ-āĻā§āϞāĻ āĻāĻžāĻāĻŽ āĻ
āύā§āϝāĻžāϝāĻŧā§ āĻšāĻā§āĻā§, āĻāĻŦāĻ āϝā§āĻā§āĻ āϏā§āĻāĻŋ āĻĻā§āĻā§āĻ āϏāĻ āĻŋāĻ āϰā§āĻĒāĻžāύā§āϤāϰ āĻĒāĻžā§āĨ¤\n\nāĻāĻāĻāĻŋ āĻļāĻŋāĻĢāĻā§āϰ āĻā§āώā§āϤā§āϰā§, "āϏāĻ āĻŋāĻ" āĻĒā§āϰāĻžāϝāĻŧāĻ āĻŽāĻžāύā§: āĻļāĻŋāĻĢāĻāĻāĻŋ āϏā§āĻā§āϰā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏā§āĻĨāĻŋāϰ āϏā§āĻĨāĻžāύā§ā§ āϏāĻŽā§ā§ āĻļā§āϰ⧠āĻšā§, āĻāĻŽāύāĻāĻŋ āĻāϰā§āĻŽāĻāĻžāϰ⧠āĻā§āϰāĻŽāĻŖ āĻāϰāϞ⧠āĻšāϞā§āĻāĨ¤\n\nāĻāĻ āĻāĻ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ (āĻļāĻŋāĻĄāĻŋāĻāϞ āĻāĻŋ āϏā§āĻĨāĻžāύā§āϰ āϏāĻžāĻĨā§ āϝā§āĻā§āϤ āĻšāĻŦā§ āύāĻžāĻāĻŋ āĻŦā§āϝāĻā§āϤāĻŋāϰ āϏāĻžāĻĨā§) āϏāĻŦāĻāĻŋāĻā§ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰā§: āĻāĻĒāύāĻŋ āĻā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻŦā§āύ, āĻāĻŋāĻāĻžāĻŦā§ recurrences āϤā§āϰāĻŋ āĻāϰāĻŦā§āύ, āĻāĻŦāĻ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻā§āϝāĻžāϞā§āύā§āĻĄāĻžāϰ āĻāĻŋāĻ āĻā§ā§ā§āϰāĻŋ āĻāϰāĻŦā§āύ āϝā§āύ āĻāĻ-āĻāύā§āĻāĻžāϰ āĻ
āĻĒā§āϰāϤā§āϝāĻžāĻļāĻŋāϤ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āύāĻž āĻāĻā§āĨ¤\n\n## āϏāĻ āĻŋāĻ āĻŽāĻžāύāϏāĻŋāĻ āĻŽāĻĄā§āϞ āĻŦā§āĻā§ āύāĻŋāύ: āĻāύāϏā§āĻā§āϝāĻžāύā§āĻ āĻŦāύāĻžāĻŽ āϞā§āĻāĻžāϞ āĻāĻžāĻāĻŽ\n\nāĻ
āύā§āĻ āĻŦāĻžāĻ āĻāϏ⧠āĻĻā§āĻāĻŋ āĻāĻŋāύā§āύ āϏāĻŽā§ āϧāĻžāϰāĻŖāĻž āĻŽāĻŋāĻļā§āϰāĻŋāϤ āĻāϰāĻžāϰ āĻĢāϞā§:\n\n- āĻāĻāĻāĻŋ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻ: āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻŽā§āĻšā§āϰā§āϤ āϝāĻž āĻāĻāĻŦāĻžāϰ āĻāĻā§āĨ¤\n- āĻāĻāĻāĻŋ āϞā§āĻāĻžāϞ āĻāĻžāĻāĻŽ āϰā§āϞ: āĻāĻāĻāĻŋ āĻā§āĻžāϞ āĻā§āϞāĻ āĻāĻžāĻāĻŽ āϝā§āĻŽāύ "āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏā§āĻŽāĻŦāĻžāϰ āĻĒā§āϝāĻžāϰāĻŋāϏ⧠āϏāĻāĻžāϞ 9:00"āĨ¤\n\nāĻāĻāĻāĻŋ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻ āϏāϰā§āĻŦāϤā§āϰ āĻāĻāĻāĨ¤ "2026-03-10 14:00 UTC" āĻāĻāĻāĻŋ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻāĨ¤ āĻāĻŋāĻĄāĻŋāĻ āĻāϞ, āĻĢā§āϞāĻžāĻāĻ āĻĄāĻŋāĻĒāĻžāϰāĻāĻžāϰ, āĻāĻŦāĻ "āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻŽā§āĻšā§āϰā§āϤ⧠āύā§āĻāĻŋāĻĢāĻžāĻ āĻĒāĻžāĻ āĻžāĻ" āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻāĨ¤\n\nāϞā§āĻāĻžāϞ āĻāĻžāĻāĻŽ āĻšāϞ⧠āϞā§āĻā§āϰāĻž āϝ⧠āĻā§āĻŋāϤ⧠āĻĻā§āĻā§ āϏā§āĻ āϏā§āĻĨāĻžāύā§āϝāĻŧ āϏāĻŽā§āĨ¤ "āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏāĻĒā§āϤāĻžāĻšā§āϰ āĻĻāĻŋāύ āĻĒā§āϝāĻžāϰāĻŋāϏ⧠āϏāĻāĻžāϞ 9:00" āĻšāϞ āϞā§āĻāĻžāϞ āĻāĻžāĻāĻŽāĨ¤ āϏā§āĻā§āϰā§āϰ āϏāĻŽā§, āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤ āĻā§āϞāĻžāϏ, āĻāĻŦāĻ āϏā§āĻāĻžāĻĢ āĻļāĻŋāĻĢāĻ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻā§āύ⧠āϞā§āĻā§āĻļāύā§āϰ āĻāĻžāĻāĻŽāĻā§āύ⧠āĻ
ā§āϝāĻžāĻā§āĻāϰ āĻāϰāĻž āĻšā§āĨ¤ āĻāĻžāĻāĻŽāĻā§āύāĻāĻŋ āĻĒā§āϰāĻĻāϰā§āĻļāύā§āϰ āĻĒāĻāύā§āĻĻ āύā§âāĻāĻāĻŋ āĻ
āϰā§āĻĨā§āϰ āĻ
āĻāĻļāĨ¤\n\nāϏāϰāϞ āĻāĻāĻāĻŋ āύā§āϤāĻŋāϏā§āϤā§āϰ:\n\n- āĻāĻā§āύā§āĻ āϝāĻĻāĻŋ āϏāĻžāϰāĻž āĻŦāĻŋāĻļā§āĻŦā§āϰ āĻāύā§āϝ āĻāĻ āĻŦāĻžāϏā§āϤāĻŦ āĻŽā§āĻšā§āϰā§āϤ⧠āĻāĻāϤ⧠āĻšāĻŦā§, āϤāĻžāĻšāϞ⧠start/end āĻā§ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻ āĻšāĻŋāϏā§āĻŦā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ (timestamptz)āĨ¤\n- āĻāĻā§āύā§āĻ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āϏā§āĻĨāĻžāύā§āϰ āĻā§āĻŋāϰ āϏāĻŽā§ āĻ
āύā§āϏāϰāĻŖ āĻāϰā§, āϤāĻžāĻšāϞ⧠āϞā§āĻāĻžāϞ āϤāĻžāϰāĻŋāĻ āĻ āϞā§āĻāĻžāϞ āϏāĻŽā§ āĻĒā§āϞāĻžāϏ āĻāĻāĻāĻŋ zone ID āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύāĨ¤\n- āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϝāĻĻāĻŋ āĻā§āϰāĻŽāĻŖ āĻāϰā§, āĻĻā§āĻāĻžāύā§āϰ āϏāĻŽā§ āĻāĻŋāĻā§āĻžāϰā§āϰ āĻā§āύ⧠āϏāĻŽā§ āĻĻā§āĻāĻžāύ, āĻāĻŋāύā§āϤ⧠āĻļāĻŋāĻĄāĻŋāĻāϞāĻā§ āϤāĻžāϰ āύāĻŋāĻā§āϏā§āĻŦ āĻā§āύ⧠āĻ
ā§āϝāĻžāĻā§āĻāϰ āĻāϰā§āύāĨ¤\n- offsets āϝā§āĻŽāύ "+02:00" āĻĨā§āĻā§ āĻā§āύ āĻ
āύā§āĻŽāĻžāύ āĻāϰāĻŦā§āύ āύāĻž â offsets āĻ DST āύāĻŋā§āĻŽ āĻĨāĻžāĻā§ āύāĻžāĨ¤\n\nāĻāĻĻāĻžāĻšāϰāĻŖ: āĻāĻāĻāĻŋ āĻšāĻžāϏāĻĒāĻžāϤāĻžāϞā§āϰ āĻļāĻŋāĻĢāĻ "āϏā§āĻŽ-āĻļā§āĻā§āϰ 09:00-17:00 America/New_York"āĨ¤ DST āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āϏāĻĒā§āϤāĻžāĻšā§ āĻļāĻŋāĻĢāĻ āϞā§āĻāĻžāϞāĻŋ āĻāĻāύ⧠9 āĻĨā§āĻā§ 5 āĻĨāĻžāĻāĻŦā§, āϝāĻĻāĻŋāĻ UTC āĻāύāϏā§āĻā§āϝāĻžāύā§āĻāĻā§āϞ⧠āĻāĻ āĻāĻŖā§āĻāĻž āϏāϰ⧠āϝāĻžāĻŦā§āĨ¤\n\n## PostgreSQL-āĻ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āύ āĻāĻžāĻāĻĒāĻā§āϞ⧠(āĻāĻŦāĻ āĻā§ āĻāĻĄāĻŧāĻžāύ⧠āĻāĻāĻŋāϤ)\n\nāĻ
āϧāĻŋāĻāĻžāĻāĻļ āĻā§āϝāĻžāϞā§āύā§āĻĄāĻžāϰ āĻŦāĻžāĻ āĻļā§āϰ⧠āĻšā§ āĻāĻāĻāĻŋ āĻā§āϞ āĻāϞāĻžāĻŽ āĻāĻžāĻāĻĒ āĻĨā§āĻā§āĨ¤ āĻŽā§āϞ āϞāĻā§āώā§āϝ āĻšāϞ āĻāĻāĻāĻŋ āĻŦāĻžāϏā§āϤāĻŦ āĻŽā§āĻšā§āϰā§āϤāĻā§ āĻā§āĻžāϞ-āĻā§āϞāĻ āĻĒā§āϰāϤā§āϝāĻžāĻļāĻž āĻĨā§āĻā§ āĻāϞāĻžāĻĻāĻž āĻāϰāĻžāĨ¤\n\nāĻŦāĻžāϏā§āϤāĻŦ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻāĻā§āϞā§āϰ āĻāύā§āϝ timestamptz āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ: āĻŦā§āĻāĻŋāĻ, āĻā§āϞāĻ-āĻāύ, āύā§āĻāĻŋāĻĢāĻŋāĻā§āĻļāύ āĻāĻŦāĻ āĻāĻŽāύ āĻāĻŋāĻā§ āϝā§āĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻŦāĻž āĻ
āĻā§āĻāϞā§āϰ āĻāĻĒāϰ āĻā§āϰāϏ-āϤā§āϞāύāĻž āĻāϰāĻž āĻšā§āĨ¤ PostgreSQL āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ
ā§āϝāĻžāĻŦāϏāϞā§āĻ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻ āĻšāĻŋāϏā§āĻŦā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰ⧠āĻāĻŦāĻ āĻĒā§āϰāĻĻāϰā§āĻļāύā§āϰ āĻāύā§āϝ āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰā§, āĻĢāϞ⧠āĻ
āϰā§āĻĄāĻžāϰ āĻāĻŦāĻ āĻāĻāĻžāϰāϞā§āϝāĻžāĻĒ āĻā§āĻ āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§āĨ¤\n\nāϞā§āĻāĻžāϞ āĻā§āĻžāϞ-āĻā§āϞāĻ āĻŽāĻžāύāĻā§āϞā§āϰ āĻāύā§āϝ timestamp without time zone āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ, āϝā§āĻŽāύ "āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏā§āĻŽāĻŦāĻžāϰ 09:00" āĻŦāĻž "āĻĻā§āĻāĻžāύ āĻā§āϞ⧠10:00"āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻāĻŽ āĻā§āύ āĻāĻāĻĄāĻŋāϰ āϏāĻžāĻĨā§ āĻā§ā§āĻžāύ, āĻāĻŦāĻ occurrences āϤā§āϰāĻŋ āĻāϰāĻžāϰ āϏāĻŽā§āĻ āĻŦāĻžāϏā§āϤāĻŦ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻā§ āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰāĻŦā§āύāĨ¤\n\nāĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤ āĻĒā§āϝāĻžāĻāĻžāϰā§āύā§āϰ āĻāύā§āϝ āĻŽā§āϞāĻŋāĻ āĻāĻžāĻāĻĒāĻā§āϞ⧠āϏāĻšāĻžā§āϤāĻž āĻāϰā§:\n\n- date āĻĻāĻŋāύā§āϰ-āĻļā§āϧ⧠āĻŦā§āϝāϤāĻŋāĻā§āϰāĻŽ (āĻā§āĻāĻŋāϰ āĻĻāĻŋāύ) āĻāύā§āϝ\n- time āĻĻā§āύāύā§āĻĻāĻŋāύ āĻļā§āϰā§āϰ āϏāĻŽā§ā§āϰ āĻāύā§āϝ\n- interval āĻŽā§ā§āĻžāĻĻ (āϝā§āĻŽāύ 6 āĻāύā§āĻāĻžāϰ āĻļāĻŋāĻĢāĻ) āĻāύā§āϝ\n\nāĻāĻžāĻāĻŽāĻā§āύāĻāĻŋ IANA āύāĻžāĻŽā§ (āĻāĻĻāĻžāĻšāϰāĻŖ: America/New_York) text āĻāϞāĻžāĻŽā§ (āĻŦāĻž āĻā§āĻ āϞā§āĻāĻāĻĒ āĻā§āĻŦāĻŋāϞā§) āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύāĨ¤ -0500 āĻŽāϤ⧠offsets āϝāĻĨā§āώā§āĻ āύ⧠āĻāĻžāϰāĻŖ āϏā§āĻā§āϞā§āϤ⧠DST āύāĻŋā§āĻŽ āĻĨāĻžāĻā§ āύāĻžāĨ¤\n\nāĻ
āύā§āĻ āĻ
ā§āϝāĻžāĻĒā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āϏā§āĻ:\n\n- āĻŦā§āĻ āĻāϰāĻž āĻ
ā§āϝāĻžāĻĒā§ā§āύā§āĻāĻŽā§āύā§āĻā§āϰ start/end āĻāύāϏā§āĻā§āϝāĻžāύā§āĻā§āϰ āĻāύā§āϝ timestamptz\n- āĻŦā§āϝāϤāĻŋāĻā§āϰāĻŽ āĻĻāĻŋāύā§āϰ āĻāύā§āϝ date\n- āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤ āϞā§āĻāĻžāϞ āĻļā§āϰā§āϰ āϏāĻŽā§ā§āϰ āĻāύā§āϝ time\n- āĻĄāĻŋāĻāϰā§āĻļāύā§āϰ āĻāύā§āϝ interval\n- IANA āĻāĻžāĻāĻŽ āĻā§āύ ID āĻāύā§āϝ text\n\n## āĻŦā§āĻāĻŋāĻ āĻ āĻļāĻŋāĻĢāĻ āĻ
ā§āϝāĻžāĻĒā§āϰ āĻāύā§āϝ āĻĄā§āĻāĻž āĻŽāĻĄā§āϞ āĻ
āĻĒāĻļāύāϏāĻŽā§āĻš\n\nāϏā§āϰāĻž āϏā§āĻāĻŋāĻŽāĻž āύāĻŋāϰā§āĻāϰ āĻāϰ⧠āĻļāĻŋāĻĄāĻŋāĻāϞ āĻāϤ āĻāύ āĻāύ āĻŦāĻĻāϞāĻžā§ āĻāĻŦāĻ āĻŽāĻžāύā§āώ āĻāϤ āĻĻā§āϰ āĻ
āĻā§āϰāĻŋāĻŽ āĻŦā§āϰāĻžāĻāĻ āĻāϰā§āĨ¤ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻĒāύāĻŋ āĻ
āύā§āĻ āϰ⧠āĻāĻāĻžāĻŽ āϞāĻŋāĻāĻŦā§āύ āύāĻž āĻāĻŋ āϰāĻŋāĻĄ-āĻāĻžāĻāĻŽā§ āĻā§āύāĻžāϰā§āĻ āĻāϰāĻŦā§āύ āϤāĻž āĻŦā§āĻā§ āύāĻŋāĻā§āĻā§āύāĨ¤\n\n### āĻ
āĻĒāĻļāύ A: āĻĒā§āϰāϤāĻŋāĻāĻŋ occurrence āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ\n\nāĻĒā§āϰāϤāĻŋ āĻļāĻŋāĻĢāĻ āĻŦāĻž āĻŦā§āĻāĻŋāĻā§ā§āϰ āĻāύā§āϝ (āĻāĻā§āϏāĻĒā§āϝāĻžāύā§āĻĄ āĻāϰāĻž) āĻāĻāĻāĻŋ āϰ⧠āĻāύāϏāĻžāϰā§āĻ āĻāϰā§āύāĨ¤ āĻā§ā§ā§āϰāĻŋ āĻāϰāĻž āϏāĻšāĻ āĻāĻŦāĻ āĻŦā§āϧāĻāĻŽā§āϝāĨ¤ āϤāĻĻā§āĻŦā§āϝāϤā§āϤ āĻ
āύā§āĻ āϞā§āĻāύ⧠āĻāϰ āύāĻŋā§āĻŽ āĻŦāĻĻāϞ⧠āĻā§āϞ⧠āĻ
āύā§āĻ āĻāĻĒāĻĄā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤\n\nāĻāĻāĻŋ āĻāĻžāϞ āϝāĻāύ āĻāĻā§āύā§āĻāĻā§āϞ⧠āĻ
āϧāĻŋāĻāĻžāĻāĻļāĻ āĻāĻāĻ, āĻ
āĻĨāĻŦāĻž āϝāĻāύ āĻāĻĒāύāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏāĻāĻā§āώāĻŋāĻĒā§āϤ āĻāĻāĻžāĻŽ (āϝā§āĻŽāύ āĻĒāϰāĻŦāϰā§āĻ¤ā§ ā§Šā§Ļ āĻĻāĻŋāύ) occurrence āϤā§āϰāĻŋ āĻāϰā§āύāĨ¤\n\n### āĻ
āĻĒāĻļāύ B: āĻāĻāĻāĻŋ āϰā§āϞ āϏāĻāϰāĻā§āώāĻŖ āĻāϰ⧠āϰāĻŋāĻĄ-āĻāĻžāĻāĻŽā§ āĻāĻā§āϏāĻĒā§āϝāĻžāύā§āĻĄ āĻāϰā§āύ\n\nāĻāĻāĻāĻŋ āĻļāĻŋāĻĄāĻŋāĻāϞ āϰā§āϞ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ (āϝā§āĻŽāύ "āϏāĻĒā§āϤāĻžāĻšā§ āϏā§āĻŽāĻŦāĻžāϰ āĻ āĻŦā§āϧāĻŦāĻžāϰ 09:00 America/New_York") āĻāĻŦāĻ āĻ
āύ-āĻĄāĻŋāĻŽāĻžāύā§āĻĄ āĻ
āύā§āϰā§āϧāĻā§āϤ āϰā§āĻā§āĻā§āϰ āĻāύā§āϝ occurrences āĻā§āύāĻžāϰā§āĻ āĻāϰā§āύāĨ¤\n\nāĻāĻāĻŋ āύāĻŽāύā§ā§ āĻāĻŦāĻ āϏā§āĻā§āϰā§āĻ āĻšāĻžāϞāĻāĻž, āĻāĻŋāύā§āϤ⧠āĻā§ā§ā§āϰāĻŋ āĻāĻāĻŋāϞ āĻšā§ā§ āϝāĻžā§āĨ¤ āĻŽāĻžāϏ āĻāĻŋāĻ āϧā§āϰ āĻšāϤ⧠āĻĒāĻžāϰ⧠āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻā§āϝāĻžāĻļāĻŋāĻ āύāĻž āĻāϰā§āύāĨ¤\n\n### āĻ
āĻĒāĻļāύ C: āϰā§āϞ āĻĒā§āϞāĻžāϏ āĻā§āϝāĻžāĻļāĻĄ occurrences (āĻšāĻžāĻāĻŦā§āϰāĻŋāĻĄ)\n\nāϰā§āϞāĻā§ āϏā§āϰā§āϏ āĻ
āĻĢ āĻā§āϰā§āĻĨ āĻšāĻŋāϏā§āĻŦā§ āϰāĻžāĻā§āύ, āĻāĻŦāĻ āĻāĻāĻ āϏāĻžāĻĨā§ āĻāĻāĻāĻŋ āϰā§āϞāĻŋāĻ āĻāĻāύā§āĻĄā§āϰ āĻāύā§āϝ āϤā§āϰāĻŋ āĻāϰāĻž occurrences āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ (āĻāĻĻāĻžāĻšāϰāĻŖ: 60-90 āĻĻāĻŋāύ)āĨ¤ āϰā§āϞ āĻŦāĻĻāϞāĻžāϞ⧠āĻā§āϝāĻžāĻļ āϰāĻŋāĻā§āύāĻžāϰā§āĻ āĻāϰā§āύāĨ¤\n\nāĻāĻāĻŋ āĻļāĻŋāĻĢāĻ āĻ
ā§āϝāĻžāĻĒā§āϰ āĻāύā§āϝ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻĄāĻŋāĻĢāϞā§āĻ: āĻŽāĻžāϏ āĻāĻŋāĻ āĻĻā§āϰā§āϤ āĻĨāĻžāĻā§, āĻāĻŋāύā§āϤ⧠āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻāϰāĻžāϰ āĻāĻ āĻāĻžā§āĻāĻž āĻĨāĻžāĻā§āĨ¤\n\nāĻĒā§āϰā§āϝāĻžāĻāĻāĻŋāĻā§āϝāĻžāϞ āĻā§āĻŦāĻŋāϞ āϏā§āĻ:\n\n- schedule: owner/resource, time zone, local start time, duration, recurrence rule\n- occurrence: āĻŦāĻŋāϏā§āϤā§āϤ āĻāύāϏā§āĻā§āϝāĻžāύā§āϏāĻā§āϞ⧠start_at timestamptz, end_at timestamptz, āĻāĻŦāĻ āϏā§āĻā§āϝāĻžāĻāĻžāϏāϏāĻš\n- exception: "āĻāĻ āϤāĻžāϰāĻŋāĻāĻāĻŋ āĻŦāĻžāĻĻ āĻĻāĻŋāύ" āĻŦāĻž "āĻāĻ āϤāĻžāϰāĻŋāĻāĻāĻŋ āĻāϞāĻžāĻĻāĻž" āĻāĻŋāύā§āĻšāĻā§āϞā§\n- override: āĻĒā§āϰāϤāĻŋ-occurrence āĻāĻĄāĻŋāĻ āϝā§āĻŽāύ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻļā§āϰā§āϰ āϏāĻŽā§, āĻŦāĻĻāϞ⧠āϝāĻžāĻāϝāĻŧāĻž āϏā§āĻāĻžāĻĢ, āĻŦāĻžāϤāĻŋāϞ āĻĢā§āϞā§āϝāĻžāĻ\n- (āĻāĻā§āĻāĻŋāĻ) schedule_cache_state: āĻļā§āώ āĻā§āύāĻžāϰā§āĻ āĻāϰāĻž āϰā§āĻā§āĻ āϝāĻžāϤ⧠āĻāĻĒāύāĻŋ āĻāĻžāύā§āύ āĻĒāϰā§āϰāĻŦāĻžāϰ āĻāĻŋ āĻĒā§āϰāĻŖ āĻāϰāϤ⧠āĻšāĻŦā§\n\nāĻā§āϝāĻžāϞā§āύā§āĻĄāĻžāϰ āϰā§āĻā§āĻ āĻā§ā§ā§āϰāĻŋāϏā§āϰ āĻāύā§āϝ, "āĻāĻ āĻāĻāύā§āĻĄā§āϤ⧠āϏāĻŦ āĻĻā§āĻāĻžāĻ" āϧāĻžāĻāĻā§ āĻāύāĻĄā§āĻā§āϏ āĻāϰā§āύ:\n\n- occurrence āϤā§: btree (resource_id, start_at) āĻāĻŦāĻ āĻĒā§āϰāĻžāϝāĻŧāĻ btree (resource_id, end_at)\n- āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻĒā§āϰāĻžāϝāĻŧāĻ "overlaps range" āĻā§ā§ā§āϰāĻŋ āĻāϰā§āύ: āĻāĻāĻāĻŋ āϏā§āώā§āĻ tstzrange(start_at, end_at) āĻāĻŦāĻ gist āĻāύāĻĄā§āĻā§āϏ\n\n## āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤāĻŋ āύāĻŋā§āĻŽāĻā§āϞ⧠āĻāĻŋāĻāĻžāĻŦā§ āĻĻā§āϰā§āĻŦāϞ āĻāϰāĻž āϝāĻžāĻŦā§ āύāĻž āĻāĻŽāύāĻāĻžāĻŦā§ āĻāĻĒāϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻŦā§āύ\n\nāϰā§āϞāĻā§āϞ⧠āĻāĻžāĻā§āĻā§ āϝāĻāύ āϤāĻž āĻā§āĻŦ āĻāϤā§āϰ, āĻā§āĻŦ āύāĻŽāύā§ā§ āĻŦāĻž āĻ
āύ āĻ
āύā§āϏāύā§āϧāĻžāύāϝā§āĻā§āϝ āĻŦā§āϞāĻŦ āĻšāĻŋāϏā§āĻŦā§ āϏāĻāϰāĻā§āώāĻŋāϤ āĻĨāĻžāĻā§āĨ¤ āĻāĻāĻāĻŋ āĻāĻžāϞ āϰā§āϞ āĻĢāϰāĻŽā§āϝāĻžāĻ āĻāĻŽāύ āĻšāĻā§āĻž āĻāĻāĻŋāϤ āϝā§āĻāĻž āĻāĻĒāύāĻžāϰ āĻ
ā§āϝāĻžāĻĒ āϝāĻžāĻāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻāĻŋāĻŽ āĻĻā§āϰā§āϤ āĻŦā§āϝāĻžāĻā§āϝāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤\n\nāĻĻā§āĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĒāĻĻā§āϧāϤāĻŋ:\n\n- āĻāĻĒāύāĻŋ āϝā§āϏāĻŦ āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āĻŦāĻžāϏā§āϤāĻŦā§ āϏāĻžāĻĒā§āϰā§āĻ āĻāϰā§āύ āϏā§āĻā§āϞā§āϰ āĻāύā§āϝ āϏāϰāϞ āĻāĻžāϏā§āĻāĻŽ āĻĢāĻŋāϞā§āĻĄāĨ¤\n- āĻ
āύā§āĻ āĻāĻŽā§āĻŦāĻŋāύā§āĻļāύ āĻāĻŽāĻĒā§āϰā§āĻ/āĻāĻā§āϏāĻĒā§āϰā§āĻ āĻāϰāϤ⧠āĻšāϞ⧠iCalendar-āϏāĻĻā§āĻļ RRULEāĨ¤\n\nāĻāĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āĻŽāϧā§āϝā§āĻŽāĻĒāĻĨ: āϏā§āĻŽāĻŋāϤ āϏā§āĻā§āϰ āĻ
āĻĒāĻļāύ āĻ
āύā§āĻŽā§āĻĻāύ āĻāϰ⧠āϏā§āĻā§āϞ⧠āĻāϞāĻžāĻŽā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ, āĻāĻŦāĻ āϝā§āĻā§āύ RRULE āϏā§āĻā§āϰāĻŋāĻāĻā§ āĻļā§āϧ⧠āĻŦāĻŋāύāĻŋāĻŽā§ā§āϰ āĻāĻĻā§āĻĻā§āĻļā§āϝ⧠āϰāĻžāĻā§āύāĨ¤\n\nāĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻāĻāĻŋ āϏāĻžāĻĒā§āϤāĻžāĻšāĻŋāĻ āĻļāĻŋāĻĢāĻ āϰā§āϞ āύāĻŋāĻā§āϰ āĻĢāĻŋāϞā§āĻĄāĻā§āϞā§āϤ⧠āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§:\n\n- freq (daily/weekly/monthly) āĻāĻŦāĻ interval (āĻĒā§āϰāϤāĻŋ N)\n- byweekday (0-6 āĻ
ā§āϝāĻžāϰā§āϰ āĻŽāϤ āĻ
āĻĨāĻŦāĻž āĻŦāĻŋāĻāĻŽāĻžāϏā§āĻ)\n- āĻŽāĻžāϏāĻŋāĻ āύāĻŋā§āĻŽā§āϰ āĻāύā§āϝ āĻāĻā§āĻāĻŋāĻ bymonthday (1-31)\n- starts_at_local (āϝ⧠āϞā§āĻāĻžāϞ āϤāĻžāϰāĻŋāĻ+āϏāĻŽā§ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻŦā§āĻā§ āύāĻŋā§ā§āĻā§) āĻāĻŦāĻ tzid\n- āĻāĻā§āĻāĻŋāĻ until_date āĻ
āĻĨāĻŦāĻž count (āĻāĻā§āĻ āϏāĻŽāϰā§āĻĨāύ āĻāϰāĻŦā§āύ āύāĻž āϝāĻĻāĻŋ āĻĒā§āϰā§ā§āĻāύ āύāĻž āĻĨāĻžāĻā§)\n\nāϏā§āĻŽāĻžāϰ āĻāύā§āϝ, duration (āϝā§āĻŽāύ 8 āĻāύā§āĻāĻž) āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻāĻžāϞ, āĻĒā§āϰāϤāĻŋāĻāĻŋ occurrence-āĻāϰ āĻāύā§āϝ āĻāϞāĻžāĻĻāĻž end timestamp āϰāĻžāĻāĻžāϰ āĻŦāĻĻāϞā§āĨ¤ āĻā§āϞāĻ āϏāϰ⧠āĻā§āϞ⧠duration āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āĻĨāĻžāĻā§āĨ¤ āĻāĻĒāύāĻŋ āĻĒā§āϰāϤāĻŋāĻāĻŋ occurrence-āĻāϰ āĻāύā§āϝ end time āĻšāĻŋāϏāĻžāĻŦ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ: occurrence start + durationāĨ¤\n\nāϰā§āϞ āĻāĻā§āϏāĻĒā§āϝāĻžāύā§āĻĄ āĻāϰāĻžāϰ āϏāĻŽā§ āύāĻŋāϰāĻžāĻĒāĻĻ āĻ āϏā§āĻŽāĻŋāϤ āϰāĻžāĻā§āύ:\n\n- āĻļā§āϧā§āĻŽāĻžāϤā§āϰ window_start āĻāĻŦāĻ window_end āĻāϰ āĻŽāϧā§āϝ⧠āĻāĻā§āϏāĻĒā§āϝāĻžāύā§āĻĄ āĻāϰā§āύāĨ¤\n- āĻāĻāĻžāϰāύāĻžāĻāĻ āĻāĻā§āύā§āĻā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻā§āĻ āĻŦāĻžāĻĢāĻžāϰ āϝā§āĻ āĻāϰā§āύ (āĻāĻĻāĻžāĻšāϰāĻŖ: 1 āĻĻāĻŋāύ)āĨ¤\n- āϏāϰā§āĻŦā§āĻā§āĻ āĻāύā§āϏāĻā§āϝāĻžāύā§āϏā§āϰ āĻĒāϰ⧠āĻĨāĻžāĻŽā§āύ (āϝā§āĻŽāύ 500)āĨ¤\n- āĻā§āύāĻžāϰā§āĻ āĻāϰāĻžāϰ āĻāĻā§ āĻĒā§āϰāĻĨāĻŽā§ āĻĒā§āϰāĻžāϰā§āĻĨā§ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰā§āύ (tzid, freq, āĻāĻŦāĻ start date āĻĻā§āĻŦāĻžāϰāĻž)āĨ¤\n\n## āϧāĻžāĻĒā§ āϧāĻžāĻĒā§: DST-āύāĻŋāϰāĻžāĻĒāĻĻ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤ āĻļāĻŋāĻĄāĻŋāĻāϞ āϤā§āϰāĻŋ āĻāϰāĻž\n\nāĻāĻāĻāĻŋ āύāĻŋāϰā§āĻāϰāϝā§āĻā§āϝ āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āĻšāϞ: āĻĒā§āϰāϤāĻŋāĻāĻŋ occurrence-āĻā§ āĻĒā§āϰāĻĨāĻŽā§ āĻāĻāĻāĻŋ āϞā§āĻāĻžāϞ āĻā§āϝāĻžāϞā§āύā§āĻĄāĻžāϰ āϧāĻžāϰāĻŖāĻž āĻšāĻŋāϏā§āĻŦā§ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰā§āύ (āϤāĻžāϰāĻŋāĻ + āϞā§āĻāĻžāϞ āϏāĻŽā§ + āϞā§āĻā§āĻļāύā§āϰ āĻāĻžāĻāĻŽāĻā§āύ), āϤāĻžāϰāĻĒāϰ āĻā§āĻŦāϞ āϝāĻāύ āĻāĻĒāύāĻžāĻā§ āϏāĻžāĻāĻžāύā§, āĻāύāĻĢā§āϞāĻŋāĻā§āĻ āĻā§āĻ āĻŦāĻž āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāϤ⧠āĻšāĻŦā§ āϤāĻāύāĻ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻā§ āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰā§āύāĨ¤\n\n### 1) UTC āĻ
āύā§āĻŽāĻžāύ āύā§, āϞā§āĻāĻžāϞ āĻāĻā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ\n\nāĻļāĻŋāĻĄāĻŋāĻāϞā§āϰ āϞā§āĻā§āĻļāύ āĻāĻžāĻāĻŽāĻā§āύ (IANA āύāĻžāĻŽ āϝā§āĻŽāύ America/New_York) āĻāĻŦāĻ āĻāĻāĻāĻŋ āϞā§āĻāĻžāϞ āĻļā§āϰā§āϰ āϏāĻŽā§ (āĻāĻĻāĻžāĻšāϰāĻŖ 09:00) āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύāĨ¤ āĻāĻ āϞā§āĻāĻžāϞ āϏāĻŽā§ āĻŦā§āϝāĻŦāϏāĻžāϰ āĻāĻĻā§āĻĻā§āĻļā§āϝāĻ, āĻāĻŽāύāĻāĻŋ āϝāĻāύ DST āĻŦāĻĻāϞ⧠āϝāĻžā§āĨ¤\n\nāĻāĻāĻāĻŋ āĻĄāĻŋāĻāϰā§āĻļāύ āĻāĻŦāĻ āϰā§āϞā§āϰ āϏā§āĻĒāώā§āĻ āϏā§āĻŽāĻžāĻ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ: āĻāĻāĻāĻŋ start date, āĻāĻŦāĻ āĻ
āĻĨāĻŦāĻž āĻāĻāĻāĻŋ end date āĻŦāĻž repeat countāĨ¤ āϏā§āĻŽāĻžāϰā§āĻāĻž "āĻ
āύāύā§āϤ āĻāĻā§āϏāĻĒā§āϝāĻžāύāĻļāύ" āĻŦāĻžāĻ āĻĒā§āϰāϤāĻŋāϰā§āϧ āĻāϰā§āĨ¤\n\n### 2) āĻŦā§āϝāϤāĻŋāĻā§āϰāĻŽ āĻāĻŦāĻ āĻāĻāĻžāϰāϰāĻžāĻāĻĄ āĻāϞāĻžāĻĻāĻžāĻāĻžāĻŦā§ āĻŽāĻĄā§āϞ āĻāϰā§āύ\n\nāĻĻā§āĻā§ āĻā§āĻ āĻā§āĻŦāĻŋāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ: āĻāĻāĻāĻŋ āϏā§āĻāĻŋāĻĒ-āϤāĻžāϰāĻŋāĻā§āϰ āĻāύā§āϝ, āĻāϰā§āĻāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ occurrence-āϰ āĻāύā§āϝāĨ¤ āϏā§āĻā§āϞā§āĻā§ schedule_id + local_date āĻĻā§āĻŦāĻžāϰāĻž āĻā§āĻā§āϞ⧠āĻāϰ⧠āϰāĻžāĻā§āύ āϝāĻžāϤ⧠āĻŽā§āϞ recurrence āĻĒāϰāĻŋāώā§āĻāĻžāϰāĻāĻžāĻŦā§ āĻŽā§āϝāĻžāĻ āĻāϰāĻž āϝāĻžā§āĨ¤\n\nāĻāĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āĻāĻžāĻ āĻžāĻŽā§ āĻĻā§āĻāϤ⧠āĻāϰāĻāĻŽ:\n\nsql\n-- core schedule\n-- tz is the location time zone\n-- start_time is local wall-clock time\nschedule(id, tz text, start_date date, end_date date, start_time time, duration_mins int, by_dow int[])\n\nschedule_skip(schedule_id, local_date date)\n\nschedule_override(schedule_id, local_date date, new_start_time time, new_duration_mins int)\n\n\n### 3) āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻ
āύā§āϰā§āϧāĻā§āϤ āĻāĻāύā§āĻĄā§āϰ āĻŽāϧā§āϝ⧠āĻāĻā§āϏāĻĒā§āϝāĻžāύā§āĻĄ āĻāϰā§āύ\n\nāϝ⧠āϰā§āĻā§āĻāĻāĻŋ āĻāĻĒāύāĻŋ āϰā§āύā§āĻĄāĻžāϰ āĻāϰāĻā§āύ (āϏāĻĒā§āϤāĻžāĻš, āĻŽāĻžāϏ) āϏā§āĻ āϰā§āĻā§āĻā§āϰ āĻāύā§āϝ āĻĒā§āϰāĻžāϰā§āĻĨā§ āϞā§āĻāĻžāϞ āϤāĻžāϰāĻŋāĻāĻā§āϞ⧠āĻā§āύāĻžāϰā§āĻ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āĻĻāĻŋāύ-āĻ
āĻĢ-āĻāĻāĻ āĻĻā§āĻŦāĻžāϰāĻž āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰā§āύ, āĻāĻŦāĻ āĻĒāϰ⧠āϏā§āĻāĻŋāĻĒ āĻ āĻāĻāĻžāϰāϰāĻžāĻāĻĄ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰā§āύāĨ¤\n\nsql\nWITH days AS (\n SELECT d::date AS local_date\n FROM generate_series($1::date, $2::date, interval '1 day') d\n), base AS (\n SELECT s.id, s.tz, days.local_date,\n make_timestamp(extract(year from days.local_date)::int,\n extract(month from days.local_date)::int,\n extract(day from days.local_date)::int,\n extract(hour from s.start_time)::int,\n extract(minute from s.start_time)::int, 0) AS local_start\n FROM schedule s\n JOIN days ON days.local_date BETWEEN s.start_date AND s.end_date\n WHERE extract(dow from days.local_date)::int = ANY (s.by_dow)\n)\nSELECT b.id,\n (b.local_start AT TIME ZONE b.tz) AS start_utc\nFROM base b\nLEFT JOIN schedule_skip sk\n ON sk.schedule_id = b.id AND sk.local_date = b.local_date\nWHERE sk.schedule_id IS NULL;\n\n\n### 4) āĻļā§āώ⧠āĻāĻŋāĻā§āĻžāϰā§āϰ āĻāύā§āϝ āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰā§āύ\n\nstart_utc āĻā§ timestamptz āĻšāĻŋāϏā§āĻŦā§ āϰāĻžāĻā§āύ āϏāĻžāĻāĻžāύā§āϰ, āĻāύāĻĢā§āϞāĻŋāĻā§āĻ āĻā§āĻ āĻāĻŦāĻ āĻŦā§āĻāĻŋāĻā§ā§āϰ āĻāύā§āϝāĨ¤ āĻā§āĻŦāϞ āĻĒā§āϰāĻĻāϰā§āĻļāύā§āϰ āϏāĻŽā§ āĻāĻŋāĻā§āĻžāϰā§āϰ āĻāĻžāĻāĻŽāĻā§āύ⧠āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰā§āύāĨ¤ āĻāϤ⧠DST-āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻ
āĻĒā§āϰāϤā§āϝāĻžāĻļāĻŋāϤ āĻāĻāύāĻž āĻā§āĻžāύ⧠āϝāĻžā§ āĻāĻŦāĻ āĻā§āϝāĻžāϞā§āύā§āĻĄāĻžāϰ āĻāĻŋāĻ āϏā§āĻĨāĻŋāϰ āĻĨāĻžāĻā§āĨ¤\n\n## āϏāĻ āĻŋāĻ āĻā§āϝāĻžāϞā§āύā§āĻĄāĻžāϰ āĻāĻŋāĻ āĻā§āύāĻžāϰā§āĻ āĻāϰāĻžāϰ āĻā§ā§ā§āϰāĻŋ āĻĒā§āϝāĻžāĻāĻžāϰā§āύāϏāĻŽā§āĻš\n\nāĻāĻāĻāĻŋ āĻā§āϝāĻžāϞā§āύā§āĻĄāĻžāϰ āϏā§āĻā§āϰāĻŋāύ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻāĻāĻŋ āϰā§āĻā§āĻ āĻā§ā§ā§āϰāĻŋ: "āĻāĻŽāĻžāĻā§ āϏāĻŦ āĻĻā§āĻāĻžāĻ from_ts āĻāĻŦāĻ to_ts āĻāϰ āĻŽāϧā§āϝā§"āĨ¤ āĻāĻāĻāĻŋ āύāĻŋāϰāĻžāĻĒāĻĻ āϧāĻžāϰāĻž:\n\n1) āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻ āĻāĻāύā§āĻĄā§āϰ āĻā§āϤāϰā§āϰ āĻĒā§āϰāĻžāϰā§āĻĨā§ āĻāĻā§āϏāĻĒā§āϝāĻžāύā§āĻĄ āĻāϰā§āύāĨ¤\n2) āĻŦā§āϝāϤāĻŋāĻā§āϰāĻŽ/āĻāĻāĻžāϰāϰāĻžāĻāĻĄ āĻĒā§āϰā§ā§āĻ āĻāϰā§āύāĨ¤\n3) āĻĢāĻžāĻāύāĻžāϞ āϰ⧠āĻāĻāĻāĻĒā§āĻ āĻāϰā§āύ start_at āĻāĻŦāĻ end_at āĻšāĻŋāϏā§āĻŦā§ timestamptzāĨ¤\n\n### āĻĻā§āύāĻŋāĻ āĻŦāĻž āϏāĻžāĻĒā§āϤāĻžāĻšāĻŋāĻ āĻāĻā§āϏāĻĒāĻžāύāĻļāύ generate_series āĻĻāĻŋā§ā§\n\nāϏāĻšāĻ āϏāĻžāĻĒā§āϤāĻžāĻšāĻŋāĻ āϰā§āϞāĻā§āϞā§āϰ āĻāύā§āϝ (āϝā§āĻŽāύ "āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏā§āĻŽ-āĻļā§āĻā§āϰ 09:00 āϞā§āĻāĻžāϞ"), āĻĒā§āϰāĻĨāĻŽā§ āϞā§āĻāĻžāϞ āϤāĻžāϰāĻŋāĻāĻā§āϞ⧠āĻā§āύāĻžāϰā§āĻ āĻāϰā§āύ āĻļāĻŋāĻĄāĻŋāĻāϞā§āϰ āĻāĻžāĻāĻŽāĻā§āύā§, āϤāĻžāϰāĻĒāϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϞā§āĻāĻžāϞ āϤāĻžāϰāĻŋāĻ + āϞā§āĻāĻžāϞ āĻāĻžāĻāĻŽāĻā§ āĻāĻāĻāĻŋ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻā§ āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰā§āύāĨ¤\n\nsql\n-- Inputs: :from_ts, :to_ts are timestamptz\n-- rule.tz is an IANA zone like 'America/New_York'\nWITH bounds AS (\n SELECT\n (:from_ts AT TIME ZONE rule.tz)::date AS from_local_date,\n (:to_ts AT TIME ZONE rule.tz)::date AS to_local_date\n FROM rule\n WHERE rule.id = :rule_id\n), days AS (\n SELECT d::date AS local_date\n FROM bounds, generate_series(from_local_date, to_local_date, interval '1 day') AS g(d)\n)\nSELECT\n (local_date + rule.start_local_time) AT TIME ZONE rule.tz AS start_at,\n (local_date + rule.end_local_time) AT TIME ZONE rule.tz AS end_at\nFROM rule\nJOIN days ON true\nWHERE EXTRACT(ISODOW FROM local_date) = ANY(rule.by_isodow);\n\n\nāĻāĻāĻŋ āĻāĻžāϞāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰ⧠āĻāĻžāϰāĻŖ āĻĒā§āϰāϤāĻŋāĻāĻŋ occurrence-āĻ timestamptz-āĻ āϰā§āĻĒāĻžāύā§āϤāϰ āĻšā§, āϤāĻžāĻ DST āĻŦāĻĻāϞ āϏāĻ āĻŋāĻ āĻĻāĻŋāύ āĻ
āύā§āϝāĻžā§ā§ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻž āĻšā§āĨ¤\n\n### "nth weekday" āĻŦāĻž āĻāĻžāϏā§āĻāĻŽ āĻāύā§āĻāĻžāϰāĻāĻžāϞ āĻšāϞ⧠āϰāĻŋāĻāĻžāϰā§āϏāĻŋāĻ CTE\n\nāϝāĻāύ āϰā§āϞāĻā§āϞ⧠"nth weekday"-āĻāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰā§, āĻĢāĻžāĻāĻ āĻĨāĻžāĻā§, āĻŦāĻž āĻāĻžāϏā§āĻāĻŽ āĻāύā§āĻāĻžāϰāĻāĻžāϞ āĻĨāĻžāĻā§, āϤāĻāύ āĻāĻāĻāĻŋ āϰāĻŋāĻāĻžāϰā§āϏāĻŋāĻ CTE āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ āĻĒāϰā§āϰ occurrence āĻā§āύāĻžāϰā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āϝāϤāĻā§āώāĻŖ āύāĻž āĻāĻāĻŋ to_ts āĻĒāĻžāϰ āĻāϰā§āĨ¤ āϰāĻŋāĻāĻžāϰā§āϏāύāĻā§ āĻāĻāύā§āĻĄā§āϰ āϏāĻā§āĻā§ āĻ
ā§āϝāĻžāĻā§āĻāϰ āĻāϰ⧠āϰāĻžāĻā§āύ āϝāĻžāϤ⧠āĻāĻāĻŋ āĻ
āύāύā§āϤ āĻāĻžāϞāĻŋāϤ āύāĻž āĻšā§āĨ¤\n\nāĻĒā§āϰāĻžāϰā§āĻĨā§ āϰ⧠āĻĒāĻžāĻā§āĻž āĻā§āϞā§, exception āĻāĻŦāĻ cancellation āĻĒā§āϰā§ā§āĻ āĻāϰā§āύ (rule_id, start_at) āĻŦāĻž āϏā§āĻĨāĻžāύā§ā§ āĻā§ (rule_id, local_date) āĻĻā§āĻŦāĻžāϰāĻž āĻā§ā§āĻžāĻāύā§āĨ¤ āϝāĻĻāĻŋ āĻā§āϝāĻžāύāϏā§āϞ āϰā§āĻāϰā§āĻĄ āĻĨāĻžāĻā§, āϰ⧠āĻŦāĻžāĻĻ āĻĻāĻŋāύāĨ¤ āĻāĻāĻžāϰāϰāĻžāĻāĻĄ āĻĨāĻžāĻāϞ⧠start_at/end_at āĻā§ āĻāĻāĻžāϰāϰāĻžāĻāĻĄ āĻŽāĻžāύ āĻĻāĻŋā§ā§ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āύāĨ¤\n\nāĻāĻžāϰā§āϝāĻā§āώāĻŽāϤāĻž āĻŦāĻŋāώā§āĻ āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āϝāĻž āϏāĻŦāĻā§ā§ā§ āĻŦā§āĻļāĻŋ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ:\n\n- āĻĒā§āϰāĻĨāĻŽā§āĻ āϰā§āĻā§āĻ āϏā§āĻŽāĻžāĻŦāĻĻā§āϧ āĻāϰā§āύ: āĻāĻā§ āϰā§āϞāĻā§āϞ⧠āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āĻā§āĻŦāϞ [from_ts, to_ts)-āĻāϰ āĻŽāϧā§āϝ⧠āĻāĻā§āϏāĻĒā§āϝāĻžāύā§āĻĄ āĻāϰā§āύāĨ¤\n- exception/override āĻā§āĻŦāĻŋāϞāĻā§āϞā§āĻā§ (rule_id, start_at) āĻŦāĻž (rule_id, local_date)-āĻ āĻāύāĻĄā§āĻā§āϏ āĻāϰā§āύāĨ¤\n- āĻŽāĻžāϏ āĻāĻŋāĻā§ā§āϰ āĻāύā§āϝ āĻŦāĻāϰā§āϰ āĻĄāĻžāĻāĻž āĻāĻā§āϏāĻĒā§āϝāĻžāύā§āĻĄ āĻāϰāĻž āĻĨā§āĻā§ āĻŦāĻŋāϰāϤ āĻĨāĻžāĻā§āύāĨ¤\n- āϰā§āϞ āĻŦāĻĻāϞ⧠āĻā§āϞ⧠āĻā§āϝāĻžāĻļ āύāĻŋāώā§āĻā§āϰāĻŋā§ āĻāϰāϤ⧠āĻĒāĻžāϰāϞ⧠āĻā§āĻŦāϞ āϤāĻāύāĻ expanded occurrences āĻā§āϝāĻžāĻļ āĻāϰā§āύāĨ¤\n\n## āĻŦā§āϝāϤāĻŋāĻā§āϰāĻŽ āĻāĻŦāĻ āĻāĻāĻžāϰāϰāĻžāĻāĻĄ āĻĒāϰāĻŋāώā§āĻāĻžāϰāĻāĻžāĻŦā§ āĻšā§āϝāĻžāύā§āĻĄāϞ āĻāϰāĻž\n\nāĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤ āĻļāĻŋāĻĄāĻŋāĻāϞāĻā§āϞāĻž āϤāĻāύāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāϝā§āĻā§āϝ āϝāĻāύ āĻāĻĒāύāĻŋ āϤāĻž āϏāĻšāĻā§ āĻāĻžāĻāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻŦā§āĻāĻŋāĻ āĻ āĻļāĻŋāĻĢāĻ āĻ
ā§āϝāĻžāĻĒā§, "āϏāĻžāϧāĻžāϰāĻŖ" āϏāĻĒā§āϤāĻžāĻš āĻšāϞ⧠āĻŦā§āϏ āϰā§āϞ, āĻāĻŦāĻ āĻŦāĻžāĻā§ āϏāĻŦāĻāĻŋāĻā§ āĻŦā§āϝāϤāĻŋāĻā§āϰāĻŽ: āĻā§āĻāĻŋ, āĻŦāĻžāϤāĻŋāϞ, āϏāϰāĻžāύ⧠āĻ
ā§āϝāĻžāĻĒā§ā§āύā§āĻāĻŽā§āύā§āĻ āĻŦāĻž āϏā§āĻāĻžāĻĢ āĻŦāĻĻāϞāĨ¤ āĻŦā§āϝāϤāĻŋāĻā§āϰāĻŽ āĻĒāϰ⧠āϞāĻžāĻāĻžāϞ⧠āĻā§āϝāĻžāϞā§āύā§āĻĄāĻžāϰ āĻāĻŋāĻ āĻĄā§āϰāĻŋāĻĢāĻ āĻāϰ⧠āĻāĻŦāĻ āĻĄā§āĻĒāϞāĻŋāĻā§āĻ āϤā§āϰāĻŋ āĻšā§āĨ¤\n\nāϤāĻŋāύāĻāĻŋ āϧāĻžāϰāĻŖāĻž āĻāϞāĻžāĻĻāĻž āϰāĻžāĻā§āύ:\n\n- āĻāĻāĻāĻŋ āĻŦā§āϏ āϏā§āĻāĻŋāĻĄāĻŋāĻāϞ (āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤ āϰā§āϞ āĻāĻŦāĻ āϤāĻžāϰ āĻāĻžāĻāĻŽāĻā§āύ)\n- āϏā§āĻāĻŋāĻĒ (āϝ⧠āϤāĻžāϰāĻŋāĻ āĻŦāĻž āĻāύāϏā§āĻā§āϝāĻžāύā§āϏāĻā§āϞ⧠āĻāĻāĻŦā§ āύāĻž)\n- āĻāĻāĻžāϰāϰāĻžāĻāĻĄ (āĻāĻāĻāĻŋ occurrence āĻāĻā§, āĻāĻŋāύā§āϤ⧠āĻŦāĻŋāĻŦāϰāĻŖ āĻŦāĻĻāϞ⧠āĻā§āĻā§)\n\n### āĻāĻāĻāĻŋ āϏā§āĻĨāĻŋāϰ āĻĒā§āϰāĻžāϧāĻžāύā§āϝ āύāĻŋā§āĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ\n\nāĻāĻāĻāĻŋ āĻā§āϰāĻŽ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύ āĻāĻŦāĻ āϤāĻž āĻāύāϏāĻŋāϏā§āĻā§āύā§āĻ āϰāĻžāĻā§āύāĨ¤ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĒāĻāύā§āĻĻ:\n\n1) āĻŦā§āϏ recurrence āĻĨā§āĻā§ āĻĒā§āϰāĻžāϰā§āĻĨā§āϰāĻž āĻā§āύāĻžāϰā§āĻ āĻāϰā§āύāĨ¤\n2) āĻāĻāĻžāϰāϰāĻžāĻāĻĄ āĻĒā§āϰā§ā§āĻ āĻāϰā§āύ (āĻā§āύāĻžāϰā§āĻ āĻšāĻā§āĻž āϰ⧠āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āύ)āĨ¤\n3) āϏā§āĻāĻŋāĻĒ āĻĒā§āϰā§ā§āĻ āĻāϰā§āύ (āĻā§āĻĒāύ āĻāϰā§āύ)āĨ¤\n\nāύāĻŋāϝāĻŧāĻŽāĻāĻŋ āĻāĻ āĻŦāĻžāĻā§āϝ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻāĻžāĻā§ āϏāĻšāĻā§ āĻŦā§āĻāĻžāύ⧠āϏāĻŽā§āĻāĻŦ āĻāĻŋāύāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύāĨ¤\n\n### āϝāĻāύ āĻāĻāĻžāϰāϰāĻžāĻāĻĄ āĻāĻāĻāĻŋ āĻāύāϏā§āĻā§āϝāĻžāύā§āϏ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰ⧠āϤāĻāύ āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ āĻā§āĻžāύ\n\nāĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ āϏāĻžāϧāĻžāϰāĻŖāϤ āϤāĻāύ āĻšā§ āϝāĻāύ āĻā§ā§ā§āϰāĻŋ āĻāĻā§: āĻā§āύāĻžāϰā§āĻā§āĻĄ occurrence āĻāĻŦāĻ āĻāĻāĻžāϰāϰāĻžāĻāĻĄ āϰ⧠āĻĢāĻŋāϰāĻŋā§ā§ āĻĻā§ā§āĨ¤ āĻāĻāĻž āĻĒā§āϰāϤāĻŋāϰā§āϧ āĻāϰā§āύ āĻāĻāĻāĻŋ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āĻā§ āĻĻāĻŋā§ā§:\n\n- āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻā§āύāĻžāϰā§āĻā§āĻĄ āĻāύāϏā§āĻā§āϝāĻžāύā§āϏāĻā§ āĻāĻāĻāĻŋ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āĻā§ āĻĻāĻŋāύ, āϝā§āĻŽāύ (schedule_id, local_date, start_time, tzid)āĨ¤\n- āĻāĻāĻžāϰāϰāĻžāĻāĻĄ āϰā§āϤ⧠āϏā§āĻāĻŋ "original occurrence key" āĻšāĻŋāϏā§āĻŦā§ āϏā§āĻā§āϰ āĻāϰā§āύāĨ¤\n- āĻāĻāĻāĻŋ unique constraint āϝā§āĻ āĻāϰā§āύ āϝāĻžāϤ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻŦā§āϏ occurrence-āϰ āĻāύā§āϝ āĻļā§āϧ⧠āĻāĻāĻāĻŋ āĻāĻāĻžāϰāϰāĻžāĻāĻĄ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤\n\nāϤāĻžāϰāĻĒāϰ āĻā§ā§ā§āϰāĻŋāϤā§, āĻŽāĻŋāϞ āĻāĻā§ āĻāĻŽāύ āĻā§āύāĻžāϰā§āĻā§āĻĄ occurrence āĻŦāĻžāĻĻ āĻĻāĻŋāύ āĻāĻŦāĻ āĻāĻāĻžāϰāϰāĻžāĻāĻĄ āϰ⧠āĻāĻāύāĻŋāϝāĻŧāύ āĻāϰ⧠āϝā§āĻā§āϤ āĻāϰā§āύāĨ¤\n\n### āĻ
āĻĄāĻŋāĻāϝā§āĻā§āϝāϤāĻž āϝā§āĻ āĻāϰā§āύ āĻāĻŋāύā§āϤ⧠āĻāĻžāĻŽā§āϞāĻž āĻŦāĻžā§āĻžāĻŦā§āύ āύāĻž\n\nāĻŦā§āϝāϤāĻŋāĻā§āϰāĻŽāĻā§āϞā§āĻ āĻŦāĻŋāϤāϰā§āĻā§āϰ āĻāĻžā§āĻāĻž ("āĻā§ āĻāĻŽāĻžāϰ āĻļāĻŋāĻĢāĻ āĻŦāĻĻāϞāĻžāϞā§?")āĨ¤ āϏā§āĻāĻŋāĻĒ āĻ āĻāĻāĻžāϰāϰāĻžāĻāĻĄā§ āĻŦā§āϏāĻŋāĻ āĻ
āĻĄāĻŋāĻ āĻĢāĻŋāϞā§āĻĄ āϝā§āĻ āĻāϰā§āύ: created_by, created_at, updated_by, updated_at, āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻā§āĻāĻŋāĻ āĻāĻžāϰāĻŖāĨ¤\n\n## āĻāĻ-āĻāύā§āĻāĻžāϰ āĻĻā§āϰāϤāϤā§āϰā§āĻāĻŋ āĻāĻāĻžāύā§āϰ āϏāĻžāϧāĻžāϰāĻŖ āĻā§āϞāĻā§āϞā§\n\nāĻ
āϧāĻŋāĻāĻžāĻāĻļ āĻāĻ-āĻāύā§āĻāĻžāϰ āĻŦāĻžāĻ āĻāϏ⧠āĻĻā§āĻ āϧāϰāύā§āϰ āϏāĻŽā§ā§āϰ āĻŽāĻžāύ⧠āĻŽāĻŋāĻļā§ āϝāĻžāĻā§āĻžāϰ āĻĢāϞā§: āĻāĻāĻāĻŋ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻ (UTC āĻāĻžāĻāĻŽāϞāĻžāĻāύ⧠āĻāĻāĻāĻŋ āĻŦāĻŋāύā§āĻĻā§) āĻāĻŦāĻ āĻāĻāĻāĻŋ āϞā§āĻāĻžāϞ āĻā§āϞāĻ āϰāĻŋāĻĄāĻŋāĻ (āϝā§āĻŽāύ āύāĻŋāĻāĻāϰā§āĻā§ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏā§āĻŽāĻŦāĻžāϰ 09:00)āĨ¤\n\nāĻāĻāĻāĻŋ āĻā§āϞāĻžāϏāĻŋāĻ āĻā§āϞ āĻšāϞ āĻāĻāĻāĻŋ āϞā§āĻāĻžāϞ āĻā§āĻžāϞ-āĻā§āϞāĻ āϰā§āϞ timestamptz āĻšāĻŋāϏā§āĻŦā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻžāĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ "āϏā§āĻŽāĻŦāĻžāϰ 09:00 America/New_York" āĻāĻāĻāĻŋ timestamptz āĻšāĻŋāϏā§āĻŦā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ, āĻāĻĒāύāĻŋ āĻāϤā§āĻŽāϧā§āϝā§āĻ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϤāĻžāϰāĻŋāĻ (āĻāĻŦāĻ DST āĻ
āĻŦāϏā§āĻĨāĻž) āĻŦā§āĻā§ āύāĻŋā§ā§āĻā§āύāĨ¤ āĻāĻŦāĻŋāώā§āϝāϤ āϏā§āĻŽāĻā§āϞ⧠āĻā§āύāĻžāϰā§āĻ āĻāϰāĻžāϰ āϏāĻŽā§ āĻāϏāϞ āĻāĻĻā§āĻĻā§āĻļā§āϝ ("āϏāĻŦāϏāĻŽā§ āϞā§āĻāĻžāϞāĻŋ 09:00") āĻāϞ⧠āϝāĻžā§āĨ¤\n\nāĻāϰā§āĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻžāϰāĻŖ āĻšāϞ āϏā§āĻĨāĻŋāϰ UTC offsets (-05:00) āύāĻŋāϰā§āĻāϰ āĻāϰāĻžāĨ¤ offsets-āĻ DST āύāĻŋā§āĻŽ āĻĨāĻžāĻā§ āύāĻžāĨ¤ America/New_York āĻāϰ āĻŽāϤ IANA zone ID āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ āĻāĻŦāĻ PostgreSQL-āĻā§ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϤāĻžāϰāĻŋāĻā§ āϏāĻ āĻŋāĻ āύāĻŋā§āĻŽ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāϤ⧠āĻĻāĻŋāύāĨ¤\n\nāĻāĻāύ āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰāĻŦā§āύ āϏ⧠āĻŦā§āϝāĻžāĻĒāĻžāϰ⧠āϏāϤāϰā§āĻ āĻĨāĻžāĻā§āύāĨ¤ āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻāĻā§āϏāĻĒā§āϝāĻžāύā§āϏāύ āĻāϰāĻžāϰ āϏāĻŽā§ āĻā§āĻŦ āĻĻā§āϰā§āϤ UTC āϤ⧠āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰā§āύ, āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ DST āĻ
āĻĢāϏā§āĻ āϏā§āĻĨāĻŋāϰ āĻāϰ⧠āϏā§āĻāĻŋ āĻĒā§āϰāϤāĻŋāĻāĻŋ occurrence-āϤ⧠āĻĒā§āϰā§ā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āύāĻŋāϰāĻžāĻĒāĻĻ āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āĻšāϞ: occurrences āϞā§āĻāĻžāϞ āĻļāĻŦā§āĻĻā§ (āϤāĻžāϰāĻŋāĻ + āϞā§āĻāĻžāϞ āϏāĻŽā§ + āĻā§āύ) āĻā§āύāĻžāϰā§āĻ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ occurrence āĻāϞāĻžāĻĻāĻž āĻāϰ⧠āĻāĻāĻāĻŋ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻā§ āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰā§āύāĨ¤\n\nāĻāĻāύāĻžāĻā§āϞ⧠āϝāĻž āĻŦāĻžāϰāĻāĻŦāĻžāϰ āĻĻā§āĻāĻž āϝāĻžā§:\n\n- āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤ āϞā§āĻāĻžāϞ āĻāĻžāĻāĻŽ-āĻ
āĻĢ-āĻĄā§ timestamptz āĻšāĻŋāϏā§āĻŦā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž (āĻāĻĒāύāĻŋ time + tzid + āĻāĻāĻāĻŋ āϰā§āϞ āĻĻāϰāĻāĻžāϰ āĻāĻŋāϞ)āĨ¤\n- āĻļā§āϧ⧠āĻāĻāĻāĻŋ āĻ
āĻĢāϏā§āĻ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž, IANA āĻā§āύ āύāĻž āϰāĻžāĻāĻžāĨ¤\n- āϰā§āĻĒāĻžāύā§āϤāϰ āĻāĻā§āϏāĻĒā§āϝāĻžāύāĻļāύ āĻāϰāĻžāϰ āϏāĻŽā§ āĻāϰāĻž āĻŦāϰāĻ āĻļā§āώ⧠āύāĻž āĻāϰāĻžāĨ¤\n- "āĻāĻŋāϰāĻĻāĻŋāύ" āϰā§āϞ āĻāĻā§āϏāĻĒā§āϝāĻžāύā§āĻĄ āĻāϰāĻž āĻŦāĻŋāύāĻž āĻāĻ ā§āϰ āĻāĻžāĻāĻŽ āĻāĻāύā§āĻĄā§ āĻāĻžāĻĄāĻŧāĻžāĨ¤\n- DST āĻļā§āϰ⧠āĻ DST āĻļā§āώ āϏāĻĒā§āϤāĻžāĻšāĻā§āϞ⧠āĻā§āϏā§āĻ āύāĻž āĻāϰāĻžāĨ¤\n\nāĻāĻāĻāĻŋ āϏāϰāϞ āĻā§āϏā§āĻ āϝāĻž āĻ
āϧāĻŋāĻāĻžāĻāĻļ āϏāĻŽāϏā§āϝāĻž āϧāϰāĻŦā§: āĻāĻāĻāĻŋ DST-āϝā§āĻā§āϤ āĻā§āύ āύāĻŋāύ, āĻāĻāĻāĻŋ āϏāĻžāĻĒā§āϤāĻžāĻšāĻŋāĻ 09:00 āĻļāĻŋāĻĢāĻ āϤā§āϰāĻŋ āĻāϰā§āύ, āĻāĻŦāĻ āĻāĻŽāύ āĻĻā§āĻāĻŋ āĻŽāĻžāϏā§āϰ āĻā§āϝāĻžāϞā§āύā§āĻĄāĻžāϰ āϰā§āύā§āĻĄāĻžāϰ āĻāϰā§āύ āϝāĻž DST āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻā§āϰāϏ āĻāϰā§āĨ¤ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāύāϏā§āĻā§āϝāĻžāύā§āϏ āϞā§āĻāĻžāϞāĻŋ 09:00 āĻĻā§āĻāĻžā§, āϝāĻĻāĻŋāĻ āĻāύā§āĻĄāĻžāϰāϞāĻžāĻāĻ UTC āĻāύāϏā§āĻā§āϝāĻžāύā§āĻāĻā§āϞ⧠āĻāĻŋāύā§āύāĨ¤\n\n## āĻāĻžāϞāĻžāύā§āϰ āĻāĻā§ āĻĻā§āϰā§āϤ āĻā§āĻāϞāĻŋāϏā§āĻ\n\nāϰāĻŋāϞāĻŋāĻā§āϰ āĻāĻā§ āĻŽā§āϞāĻŋāĻ āĻŦāĻŋāώā§āĻā§āϞ⧠āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύ:\n\n- āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻļāĻŋāĻĄāĻŋāĻāϞ āĻāĻāĻāĻŋ āϏā§āĻĨāĻžāύā§āϰ (āĻŦāĻž āĻŦāĻŋāĻāύā§āϏ āĻāĻāύāĻŋāĻā§āϰ) āϏāĻžāĻĨā§ āϝā§āĻā§āϤ āĻāĻŦāĻ āϤāĻžāϤ⧠āĻāĻāĻāĻŋ āύāĻžāĻŽāĻā§āϤ āĻāĻžāĻāĻŽāĻā§āύ āϏā§āĻā§āϰ āĻāϰāĻž āĻāĻā§āĨ¤\n- āĻāĻĒāύāĻŋ IANA āĻā§āύ ID (āϝā§āĻŽāύ America/New_York) āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻā§āύ, āĻāĻžāĻāĻāĻž āĻ
āĻĢāϏā§āĻ āύā§āĨ¤\n- āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤāĻŋ āĻāĻā§āϏāĻĒā§āϝāĻžāύāĻļāύ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻ
āύā§āϰā§āϧāĻā§āϤ āϰā§āĻā§āĻā§āϰ āĻŽāϧā§āϝ⧠āĻāĻā§āĨ¤\n- āĻŦā§āϝāϤāĻŋāĻā§āϰāĻŽ āĻ āĻāĻāĻžāϰāϰāĻžāĻāĻĄāĻā§āϞā§āϰ āĻāĻāĻāĻŋ āĻāĻāĻ, āĻĄāĻā§āĻŽā§āύā§āĻā§āĻĄ āĻĒā§āϰāĻžāϧāĻžāύā§āϝ āĻā§āϰāĻŽāĻžāύā§āϏāĻžāϰ⧠āĻāĻā§āĨ¤\n- āĻāĻĒāύāĻŋ DST āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āϏāĻĒā§āϤāĻžāĻšāĻā§āϞ⧠āĻāĻŦāĻ āĻļāĻŋāĻĄāĻŋāĻāϞ āĻĨā§āĻā§ āĻāĻŋāύā§āύ āĻāĻžāĻāĻŽāĻā§āύā§āϰ āĻāĻāĻāύ āĻāĻŋāĻā§āĻžāϰāĻā§ āĻā§āϏā§āĻ āĻāϰā§āĻā§āύāĨ¤\n\nāĻāĻāĻāĻŋ āĻŦāĻžāϏā§āϤāĻŦāϏāĻŽā§āĻŽāϤ āĻĄā§āϰāĻžāĻ āϰāĻžāύ āĻāϰā§āύ: āĻāĻāĻāĻŋ āĻĻā§āĻāĻžāύ Europe/Berlin-āĻ āĻĒā§āϰāϤāĻŋ āϏāĻĒā§āϤāĻžāĻšā§ 09:00 āϞā§āĻāĻžāϞ āĻļāĻŋāĻĢāĻ āĻāĻā§āĨ¤ āĻāĻāĻāĻŋ āĻŽā§āϝāĻžāύā§āĻāĻžāϰ America/Los_Angeles āĻĨā§āĻā§ āĻĻā§āĻā§āĨ¤ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύ āĻļāĻŋāĻĢāĻ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏāĻĒā§āϤāĻžāĻšā§ Berlin āĻāĻžāĻāĻŽā§ 09:00 āĻĨāĻžāĻā§, āĻāĻŽāύāĻāĻŋ āϝāĻāύ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻ
āĻā§āĻāϞ āĻāĻŋāύā§āύ āϏāĻŽā§ā§ DST āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰā§āĨ¤\n\n## āĻāĻĻāĻžāĻšāϰāĻŖ: āϏāĻžāĻĒā§āϤāĻžāĻšāĻŋāĻ āϏā§āĻāĻžāĻĢ āĻļāĻŋāĻĢāĻ āĻāĻ āĻā§āĻāĻŋ āĻ DST āĻĒāϰāĻŋāĻŦāϰā§āϤāύāϏāĻš\n\nāĻāĻāĻāĻŋ āĻā§āĻ āĻā§āϞāĻŋāύāĻŋāĻ āĻāĻāĻāĻŋ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤ āĻļāĻŋāĻĢāĻ āĻāĻžāϞāĻžā§: āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏā§āĻŽāĻŦāĻžāϰ, 09:00 āĻĨā§āĻā§ 17:00 āĻā§āϞāĻŋāύāĻŋāĻā§āϰ āϞā§āĻāĻžāϞ āĻāĻžāĻāĻŽā§ (America/New_York)āĨ¤ āĻā§āϞāĻŋāύāĻŋāĻ āĻāĻ āĻŦāĻŋāĻļā§āώ āϏā§āĻŽāĻŦāĻžāϰ āĻŦāύā§āϧ āĻāĻā§ (āĻā§āĻāĻŋ)āĨ¤ āĻāĻāĻāύ āϏā§āĻāĻžāĻĢ āĻĻā§āĻ āϏāĻĒā§āϤāĻžāĻš āĻāĻāϰā§āĻĒā§ āĻā§āϰāĻŽāĻŖ āĻāϰāĻā§, āĻāĻŋāύā§āϤ⧠āĻā§āϞāĻŋāύāĻŋāĻā§āϰ āĻļāĻŋāĻĄāĻŋāĻāϞ āĻāϰā§āĻŽāĻāĻžāϰā§āϰ āĻŦāϰā§āϤāĻŽāĻžāύ āĻ
āĻŦāϏā§āĻĨāĻžāύā§āϰ āĻāĻĒāϰ āύā§, āĻā§āϞāĻŋāύāĻŋāĻā§āϰ āĻā§āĻžāϞ-āĻāĻĄāĻŧāĻŋāϰ āĻāĻĒāϰ āĻ
ā§āϝāĻžāĻā§āĻāϰ āĻāϰāĻž āĻĨāĻžāĻāĻž āĻāĻāĻŋāϤāĨ¤\n\nāĻāĻāĻŋ āϏāĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰāĻžāύā§āϰ āĻāύā§āϝ:\n\n- āϞā§āĻāĻžāϞ āϤāĻžāϰāĻŋāĻā§ āĻ
ā§āϝāĻžāĻā§āĻāϰ āĻāϰāĻž āĻāĻāĻāĻŋ āϰāĻŋāĻāĻžāϰā§āύā§āϏ āϰā§āϞ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ (weekday = Monday, āϞā§āĻāĻžāϞ āϏāĻŽā§ = 09:00-17:00)\n- āĻļāĻŋāĻĄāĻŋāĻāϞā§āϰ āĻāĻžāĻāĻŽāĻā§āύ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ (America/New_York)\n- āϰā§āϞāĻā§ āĻāĻāĻāĻŋ āĻāĻžāϰā§āϝāĻāϰ start date āĻĻāĻŋāύ āϝāĻžāϤ⧠āϏā§āĻĒāώā§āĻ āĻ
ā§āϝāĻžāĻā§āĻāϰ āĻĨāĻžāĻā§\n- āĻāĻāĻāĻŋ āĻŦā§āϝāϤāĻŋāĻā§āϰāĻŽ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ āϝāĻž āϏā§āĻ āĻā§āĻāĻŋ āϏā§āĻŽāĻŦāĻžāϰ āĻŦāĻžāϤāĻŋāϞ āĻāϰ⧠(āĻāĻŦāĻ āĻāĻ-āĻŦāĻžāϰā§āϰ āĻāύā§āϝ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§āϞā§āϰ āĻāύā§āϝ āĻāĻāĻžāϰāϰāĻžāĻāĻĄ)\n\nāĻāĻāύ āĻāĻāĻāĻŋ āĻĻā§āĻ āϏāĻĒā§āϤāĻžāĻšā§āϰ āĻā§āϝāĻžāϞā§āύā§āĻĄāĻžāϰ āϰā§āĻā§āĻ āϰā§āύā§āĻĄāĻžāϰ āĻāϰā§āύ āϝāĻž New York-āĻ āĻāĻāĻāĻŋ DST āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰā§āĨ¤ āĻā§ā§ā§āϰāĻŋ āĻ āϞā§āĻāĻžāϞ āϤāĻžāϰāĻŋāĻ āϰā§āĻā§āĻā§ āϏā§āĻŽāĻŦāĻžāϰāĻā§āϞ⧠āĻā§āύāĻžāϰā§āĻ āĻāϰā§, āĻā§āϞāĻŋāύāĻŋāĻā§āϰ āϞā§āĻāĻžāϞ āϏāĻŽā§ āϝā§āĻā§āϤ āĻāϰā§, āϤāĻžāϰāĻĒāϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ occurrence-āĻā§ āĻāĻāĻāĻŋ āĻ
ā§āϝāĻžāĻŦāϏāϞā§āĻ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻ (timestamptz) āĻ āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰā§āĨ¤ āϝā§āĻšā§āϤ⧠āϰā§āĻĒāĻžāύā§āϤāϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ occurrence-āĻ āĻāϞāĻžāĻĻāĻž āĻāϰ⧠āĻāϰāĻž āĻšāĻā§āĻā§, DST āϏāĻ āĻŋāĻāĻāĻžāĻŦā§ āĻšā§āϝāĻžāύā§āĻĄāϞ āĻāϰāĻž āĻšā§āĨ¤\n\nāĻāĻŋāύā§āύ āĻāĻŋāĻā§āĻžāϰāϰāĻž āĻāĻāĻ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻā§āϰ āĻāύā§āϝ āĻāĻŋāύā§āύ āϞā§āĻāĻžāϞ āĻā§āϞāĻ āĻāĻžāĻāĻŽ āĻĻā§āĻāĻŦā§:\n\n- Los Angeles-āĻ āĻĨāĻžāĻāĻž āĻŽā§āϝāĻžāύā§āĻāĻžāϰāĻāĻŋ āĻā§āĻŋāϤ⧠āĻāĻāĻŋ āĻāĻā§ āĻĻā§āĻāĻŦā§āĨ¤\n- Berlin-āĻ āĻā§āϰāĻŽāĻŖāϰāϤ āϏā§āĻāĻžāĻĢ āĻāĻāĻŋ āĻĒāϰ⧠āĻĻā§āĻāĻŦā§āĨ¤\n\nāĻā§āϞāĻŋāύāĻŋāĻ āϝāĻž āĻā§ā§ā§āĻāĻŋāϞ āϏā§āĻāĻž āĻŦāĻāĻžā§ āĻĨāĻžāĻā§: āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻŦāĻžāϤāĻŋāϞ āύāĻž āĻāϰāĻž āϏā§āĻŽāĻŦāĻžāϰ⧠New York āĻāĻžāĻāĻŽā§ 09:00 āĻĨā§āĻā§ 17:00āĨ¤\n\n## āĻĒāϰāĻŦāϰā§āϤ⧠āϧāĻžāĻĒ: āĻŦāĻžāϏā§āϤāĻŦāĻžā§āύ, āĻā§āϏā§āĻ, āĻāĻŦāĻ āϰāĻā§āώāĻŖāϝā§āĻā§āϝāϤāĻž āĻŦāĻāĻžā§ āϰāĻžāĻā§āύ\n\nāĻāĻĒāύāĻžāϰ āĻāĻžāĻāĻŽ āĻāĻĒā§āϰā§āĻ āĻĒā§āϰāĻĨāĻŽā§ āϤāĻžāϞāĻžāĻŦāĻĻā§āϧ āĻāϰā§āύ: āĻāĻĒāύāĻŋ āĻā§āĻŦāϞ āϰā§āϞ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻŦā§āύ, āĻā§āĻŦāϞ occurrence āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻŦā§āύ, āύāĻž āĻāĻŋ āĻšāĻžāĻāĻŦā§āϰāĻŋāĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§āύ? āĻ
āύā§āĻ āĻŦā§āĻāĻŋāĻ āĻ āĻļāĻŋāĻĢāĻ āĻĒā§āϰā§āĻĄāĻžāĻā§āĻā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻšāĻžāĻāĻŦā§āϰāĻŋāĻĄ āĻāĻžāϞā§: āϰā§āϞāĻā§ āϏā§āϰā§āϏ āĻ
āĻŦ āĻā§āϰā§āĻĨ āϰāĻžāĻā§āύ, āĻĒā§āϰā§ā§āĻāύ āĻšāϞ⧠āϰā§āϞāĻŋāĻ āĻā§āϝāĻžāĻļ āϰāĻžāĻā§āύ, āĻāĻŦāĻ āĻŦā§āϝāϤāĻŋāĻā§āϰāĻŽ āĻ āĻāĻāĻžāϰāϰāĻžāĻāĻĄāĻā§āϞ⧠āĻŦāĻžāϏā§āϤāĻŦ āϰ⧠āĻšāĻŋāϏā§āĻŦā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύāĨ¤\n\nāĻāĻĒāύāĻžāϰ "āĻāĻžāĻāĻŽ āĻāύāĻā§āϰāĻžāĻā§āĻ" āĻāĻ āĻāĻžā§āĻāĻžā§ āϞāĻŋāĻā§ āϰāĻžāĻā§āύ: āĻā§ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻ āĻšāĻŋāϏā§āĻŦā§ āĻāĻŖā§āϝ, āĻā§ āϞā§āĻāĻžāϞ āĻā§āĻžāϞ āĻāĻžāĻāĻŽ āĻšāĻŋāϏā§āĻŦā§ āĻāĻŖā§āϝ, āĻāĻŦāĻ āĻā§āύ āĻāϞāĻžāĻŽ āĻā§āύāĻāĻŋ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āĨ¤ āĻāĻāĻŋ āĻĒā§āϰāϤāĻŋāϰā§āϧ āĻāϰ⧠āϝ⧠āĻā§āύ⧠āĻāĻ āĻāύā§āĻĄāĻĒā§ā§āύā§āĻ āϞā§āĻāĻžāϞ āϏāĻŽā§ āĻĢāĻŋāϰāĻžā§ āĻāϰ āĻ
āύā§āϝāĻāĻŋ UTCāĨ¤\n\nāϰāĻŋāĻāĻžāϰā§āύā§āϏ āĻā§āύāĻžāϰā§āĻļāύāĻā§ āĻāĻāĻāĻŋ āĻŽāĻĄāĻŋāĻāϞ āϰāĻžāĻā§āύ, āĻā§āĻžāύ⧠SQL āĻā§āĻāϰ⧠āύāĻžāĨ¤ āϝāĻĻāĻŋ āĻāĻāύ⧠āĻāĻĒāύāĻŋ "āϞā§āĻāĻžāϞāĻŋ 9:00 AM" āĻāĻŋāĻāĻžāĻŦā§ āĻāύā§āĻāĻžāϰāĻĒā§āϰā§āĻ āĻāϰāĻŦā§āύ āϤāĻž āĻŦāĻĻāϞāĻžāύ, āϤāĻāύ āĻāĻāĻāĻŋ āĻāĻžā§āĻāĻž āĻāĻĒāĻĄā§āĻ āĻāϰāϞā§āĻ āĻšāĻŦā§āĨ¤\n\nāϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āϏāĻŦāĻāĻŋāĻā§āĻā§ āύāĻŋāĻā§ āĻā§āĻĄ āύāĻž āĻāϰ⧠āĻā§āύ⧠scheduling āĻā§āϞ āĻŦāĻžāύāĻžāĻā§āĻā§āύ, AppMaster (appmaster.io) āĻāĻ āϧāϰāύā§āϰ āĻāĻžāĻā§āϰ āĻāύā§āϝ āĻŦāĻžāϏā§āϤāĻŦāϏāĻŽā§āĻŽāϤāĨ¤ āĻāĻĒāύāĻŋ Data Designer-āĻ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻŽāĻĄā§āϞ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύ, āĻŦāĻŋāĻāύā§āϏ āĻĒā§āϰāϏā§āϏ⧠āϰāĻŋāĻāĻžāϰā§āύā§āϏ āĻ āĻŦā§āϝāϤāĻŋāĻā§āϰāĻŽ āϞāĻāĻŋāĻ āĻŦāĻžāύāĻžāϤ⧠āĻĒāĻžāϰāĻŦā§āύ, āĻāĻŦāĻ āϤāĻŦā§āĻ āĻļā§āώ āĻĒāϰā§āϝāύā§āϤ āĻŦāĻžāϏā§āϤāĻŦ āĻā§āύāĻžāϰā§āĻā§āĻĄ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻ āĻ
ā§āϝāĻžāĻĒ āĻā§āĻĄ āĻĒā§āϤ⧠āĻĒāĻžāϰāĻŦā§āύāĨ¤