일일 기록이나 주간 계획을 작성하다 보면 매번 날짜를 입력하고 제목을 수정하는데 시간을 쓰곤하곤 하죠. 노션의 자동화 기능 중에는 유료 요금제에서만 사용할 수 있는 기능도 있지만, 버튼을 활용하면 무료 요금제에서도 반복 작업을 줄일 수 있어요.

이번 글에서는 노션 버튼 설정부터 날짜와 주차를 자동으로 계산하는 수식까지 알아보겠습니다.


1. 노션 버튼 설정

버튼은 클릭했을 때 미리 정해 둔 작업을 실행하는 기능입니다. 이 가이드에서는 버튼으로 새 페이지를 만들고, 제목이나 날짜 속성에 수식을 적용하는 방법을 소개합니다.

먼저 기록을 저장할 데이터베이스를 준비해주세요.

  1. + 버튼을 눌러 메뉴를 열거나 단축어 /버튼을 입력해 버튼을 생성합니다.
  2. 새 작업을 눌러 페이지 추가 위치를 선택합니다.
  3. 데이터 소스 선택을 눌러 기록을 저장할 데이터베이스를 지정합니다.

제목이나 날짜 속성에 값을 넣을 때는 입력란에서 수식 아이콘(Σ)을 선택해 주세요.
데이터베이스에서 제목은 텍스트로, 날짜 속성은 날짜 형식으로 저장해야 해야 제대로 작동해요!


2. 오늘 날짜 설정

제목 속성에서 값 입력란 오른쪽의 수식 아이콘(Σ)을 선택한 후, 아래 수식을 입력해 주세요.
formatDate(today(), "YYYY-MM-DD")

이 수식은 오늘 날짜를 연도-월-일 형식의 텍스트로 바꿉니다. 예를 들어 2026년 10월 16일에 버튼을 누르면 제목이 2026-10-16으로 나타납니다.

표시 형식 바꾸기

  • YY-MM-DD → 26-10-16
  • YY.MM.DD → 26.10.16
  • YYYY년 MM월 DD일 → 2026년 10월 16일
날짜 속성에 오늘 날짜를 넣고 싶다면 같은 방식으로 날짜 속성을 고른 뒤 수식 아이콘에서 today()를 입력하면 됩니다.

3. 이번 주 날짜와 주차 설정

날짜 속성을 이번 주 월요일로 설정하기

dateSubtract(today(), day(today()) - 1, "days")

노션의 day() 함수는 월요일을 1, 일요일을 7로 반환합니다. 따라서 오늘 요일 번호에서 1을 뺀 일수만큼 거슬러 올라가면 이번 주 월요일을 구할 수 있습니다. 예를 들어 2026년 10월 16일(금)에 버튼을 누르면 날짜는 2026-10-12로 입력됩니다.

  • 일요일부터 시작: day(today()) - 1 부분을 day(today()) % 7

제목 속성을 이번 주 기간으로 설정하기

lets(
  start, dateSubtract(today(), day(today()) - 1, "days"),
  end, dateAdd(start, 6, "days"),
  formatDate(start, "YYYY.MM.DD") + "~" + formatDate(end, "YYYY.MM.DD")
)

이번 주 월요일부터 일요일까지 제목으로 설정됩니다. 2026.10.12~2026.10.18같은 형식으로 작성되고, 월이 바뀌는 주도 시작일과 종료일을 각각 계산하니 걱정 없이 쓰셔도 돼요.

  • 다음 주: dateAdd(dateSubtract(today(), weekday(today()) - 1, "days"), 1, "weeks")
  • 지난주: dateSubtract(dateSubtract(today(), weekday(today()) - 1, "days"), 1, "weeks")

제목 속성을 올해 몇 주차로 설정하기

format(week(today())) + "주차"

올해 기준 몇 번째 주인지 계산해 42주차처럼 표시합니다. week()는 월요일에 시작하는 ISO 주차를 반환하므로, 월요일 시작으로 만든 위의 날짜 설정과 기준이 같습니다.


4. 이번 달 날짜와 제목 설정

날짜 속성을 이번 달 1일로 설정하기

dateSubtract(today(), date(today()) - 1, "days")

date() 함수는 오늘이 그 달의 며칠인지를 반환합니다. 따라서 오늘 날짜에서 (일 - 1)일을 빼면 항상 그 달 1일이 됩니다. 예를 들어 2026년 10월 16일에 버튼을 누르면 날짜는 2026-10-01로 입력됩니다.

  • 다음 달: dateAdd(dateSubtract(today(), date(today()) - 1, "days"), 1, "months")

제목 속성을 이번 달로 설정하기

formatDate(today(), "YYYY.MM")

오늘 기준으로 2026.10처럼 표시됩니다. 구분자를 바꾸고 싶다면 "YYYY-MM"(2026-10)이나 "YYYY년 MM월"(2026년 10월)처럼 쓰면 돼요.

  • 다음 달: formatDate(dateAdd(today(), 1, "months"), "YYYY.MM")

5. 올해 날짜와 제목 설정

날짜 속성을 올해 1월 1일로 설정하기

parseDate(formatDate(today(), "YYYY") + "-01-01")

현재 연도를 가져와 뒤에 -01-01을 붙이고, parseDate()로 날짜로 변환합니다. 예를 들어 2026년에 버튼을 누르면 시작일은 2026-01-01이 입력됩니다.

  • 내년: parseDate(formatDate(dateAdd(today(), 1, "years"), "YYYY") + "-01-01")

제목 속성을 올해로 설정하기

formatDate(today(), "YYYY")

오늘 기준으로 2026이 표시됩니다. 뒤에 + " 연간 계획"을 붙이면 2026 연간 계획처럼 제목을 완성할 수 있어요.

  • 내년: formatDate(dateAdd(today(), 1, "years"), "YYYY")

처음부터 모든 버튼을 만들기 보다 자주 사용하는 기록 하나에 적용해 보고, 원하는 날짜가 제대로 입력되는지 확인해 보세요. 실제로 사용하기 전에 미리 테스트해 보는 것을 추천드려요.

날짜를 직접 입력하는 일이 번거로웠다면 오늘 배운 수식부터 하나씩 적용해 보세요. 작은 설정만으로도 반복되는 기록 작업을 한결 편하게 관리할 수 있어요.